This is an automated email from the ASF dual-hosted git repository. msciabarra pushed a commit to branch embedded-devcontainer in repository https://gitbox.apache.org/repos/asf/openserverless-task.git
commit 5c5577c6448b756f17c8545a48a0620a031a3595 Author: Michele Sciabarra <[email protected]> AuthorDate: Sat Oct 18 10:43:46 2025 +0100 devcontainer --- setup/nuvolaris/devcontainer/deployment.yaml | 60 ++++++++++++++++++++++++---- setup/nuvolaris/devcontainer/opsfile.yml | 9 +++-- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/setup/nuvolaris/devcontainer/deployment.yaml b/setup/nuvolaris/devcontainer/deployment.yaml index 77fdfd5..80b5ff1 100644 --- a/setup/nuvolaris/devcontainer/deployment.yaml +++ b/setup/nuvolaris/devcontainer/deployment.yaml @@ -16,14 +16,13 @@ spec: app: ssh-devcontainer spec: hostname: ssh-devcontainer - securityContext: - fsGroup: 1000 - runAsUser: 1000 - runAsGroup: 1000 volumes: - name: workspace - hostPath: + hostPath: path: /workspace + - name: nginx-config + configMap: + name: nginx-proxy-config containers: - name: devcontainer image: $IMAGE @@ -31,6 +30,9 @@ spec: - containerPort: 2222 name: ssh protocol: TCP + securityContext: + runAsUser: 1000 + runAsGroup: 1000 volumeMounts: - name: workspace mountPath: /workspace @@ -42,6 +44,11 @@ spec: secretKeyRef: name: ssh-secret key: authorized_keys + - name: DEVEL_PASSWORD + valueFrom: + secretKeyRef: + name: devel-secret + key: password command: - /bin/bash - -c @@ -55,9 +62,48 @@ spec: chmod 600 ~/.ssh/authorized_keys ; echo "$$SSH_KEY" > ~/.ssh/authorized_keys ; ln -sf /workspace ~/workspace ; - ops -update ; - sudo chown -R 1000:1000 /workspace ; + echo "ops -update ; env OPS_PASSWORD='$$DEVEL_PASSWORD' ops ide login devel http://miniops.me" >>~/.bashrc ; + sudo chown -R 1000:1000 /workspace ; sudo /usr/sbin/sshd -p 2222 -D + - name: reverse-proxy + image: nginx:alpine + ports: + - containerPort: 80 + name: http + protocol: TCP + command: ["nginx", "-g", "daemon off;"] + volumeMounts: + - name: nginx-config + mountPath: /etc/nginx/nginx.conf + subPath: nginx.conf + readOnly: true +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: nginx-proxy-config + namespace: nuvolaris +data: + nginx.conf: | + events { + worker_connections 1024; + } + http { + client_max_body_size 1g; + + server { + listen 80; + server_name miniops.me *.miniops.me; + + location / { + proxy_pass http://ingress-nginx-controller.ingress-nginx.svc.cluster.local; + proxy_set_header Host $$host; + proxy_set_header X-Real-IP $$remote_addr; + proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto http; + } + } + } --- apiVersion: v1 kind: Service diff --git a/setup/nuvolaris/devcontainer/opsfile.yml b/setup/nuvolaris/devcontainer/opsfile.yml index 9060c7d..ed21ede 100644 --- a/setup/nuvolaris/devcontainer/opsfile.yml +++ b/setup/nuvolaris/devcontainer/opsfile.yml @@ -20,7 +20,7 @@ tasks: - test -e ~/.ssh/id_rsa.pub || die "please generate an ssh key with ssh-keygen in ~/.ssh/id_rsa.pub" - > kubectl -n nuvolaris create secret generic ssh-secret - --from-literal=authorized_keys="$(cat ~/.ssh/id_rsa.pub)" + --from-literal=authorized_keys="$(cat ~/.ssh/id_rsa.pub)" 2>/dev/null || die "devcontainer already exists" - > kubectl -n nuvolaris create secret generic devel-secret --from-literal=password="$(cat ~/.ops/devel.password)" @@ -34,9 +34,10 @@ tasks: if ! rg "Host miniops" ~/.ssh/config >/dev/null then echo -e "\nHost miniops\n Hostname localhost\n Port 2222\n User node\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null\n" >> ~/.ssh/config fi - - echo waiting the devcontainer to be ready... - - retry -t 20 -m 120 ssh miniops exit 2>/dev/null - - echo you can now connect to the devcontainer with 'ssh miniops' + - > + retry -t 100 -m 600 ssh miniops exit 2>&1 + | awk '{s=""; for(i=1;i<=NR;i++) s=s"#"; printf "\rwaiting for ssh: [%s]", s; fflush()}' + - echo -e "\nyou can now connect to the devcontainer with 'ssh miniops'" undeploy: silent: true
