You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openserverless.apache.org by ms...@apache.org on 2025/10/04 12:07:10 UTC
(openserverless-task) 01/02: updated deployment using a persistent workspace folder
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 02ced485e69e74f09990ca3bf84169445308a81e
Author: Michele Sciabarra <ms...@apache.org>
AuthorDate: Sat Oct 4 11:14:17 2025 +0100
updated deployment using a persistent workspace folder
---
setup/docker/kind.yaml | 20 +++++++++++---------
setup/docker/opsfile.yml | 6 ++++--
setup/nuvolaris/devcontainer/deployment.yaml | 22 +++++++++++++++++++---
setup/nuvolaris/devcontainer/opsfile.yml | 3 +++
setup/nuvolaris/system-api/opsfile.yml | 13 ++++++-------
5 files changed, 43 insertions(+), 21 deletions(-)
diff --git a/setup/docker/kind.yaml b/setup/docker/kind.yaml
index 779e4f4..1234a98 100644
--- a/setup/docker/kind.yaml
+++ b/setup/docker/kind.yaml
@@ -48,26 +48,28 @@ nodes:
protocol: TCP
- role: worker
extraMounts:
- - hostPath: $DATADIR/data
+ - hostPath: "$DATADIR/data"
containerPath: /data
- - hostPath: $DATADIR/openwhisk/standalone
+ - hostPath: "$DATADIR/openwhisk/standalone"
containerPath: /openwhisk/standalone
- hostPath: $DATADIR/openwhisk/invoker
containerPath: /openwhisk/invoker
- - hostPath: $DATADIR/openwhisk/controller
+ - hostPath: "$DATADIR/openwhisk/controller"
containerPath: /openwhisk/controller
- - hostPath: $DATADIR/couchdb
+ - hostPath: "$DATADIR/couchdb"
containerPath: /couchdb
- - hostPath: $DATADIR/mongodb
+ - hostPath: "$DATADIR/mongodb"
containerPath: /mongodb
- - hostPath: $DATADIR/redis
+ - hostPath: "$DATADIR/redis"
containerPath: /redis
- - hostPath: $DATADIR/zookeper/data
+ - hostPath: "$DATADIR/zookeper/data"
containerPath: /zookeeper/data
- - hostPath: $DATADIR/zookeeper/log
+ - hostPath: "$DATADIR/zookeeper/log"
containerPath: /zookeeper/log
- - hostPath: $DATADIR/kafka
+ - hostPath: "$DATADIR/kafka"
containerPath: /kafka
+ - hostPath: "$OPS_HOME/workspace"
+ containerPath: /workspace
extraPortMappings:
- containerPort: 30232
hostPort: 3232
diff --git a/setup/docker/opsfile.yml b/setup/docker/opsfile.yml
index b40122c..7a37e63 100644
--- a/setup/docker/opsfile.yml
+++ b/setup/docker/opsfile.yml
@@ -21,7 +21,9 @@ vars:
env:
DATADIR:
- sh: echo $OPS_TMP/kind
+ sh: echo "$OPS_TMP/kind"
+ WORKSPACE:
+ sh: echo "$OPS_HOME/workspace"
KUBECONFIG:
sh: |-
if test -e "$OPS_TMP/kubeconfig"
@@ -60,7 +62,7 @@ tasks:
cluster:
silent: true
cmds:
- - mkdir -p "$DATADIR"
+ - mkdir -p "$DATADIR" "$OPS_HOME/workspace"
- envsubst -i kind.yaml -o _kind.yaml
- >
kind create cluster
diff --git a/setup/nuvolaris/devcontainer/deployment.yaml b/setup/nuvolaris/devcontainer/deployment.yaml
index 8438d6a..1cc8058 100644
--- a/setup/nuvolaris/devcontainer/deployment.yaml
+++ b/setup/nuvolaris/devcontainer/deployment.yaml
@@ -16,6 +16,21 @@ spec:
app: ssh-devcontainer
spec:
hostname: ssh-devcontainer
+ securityContext:
+ fsGroup: 1000
+ runAsUser: 1000
+ runAsGroup: 1000
+ volumes:
+ - name: workspace
+ hostPath:
+ path: /workspace
+ initContainers:
+ - name: fix-permissions
+ image: busybox
+ command: ['sh', '-c', 'chown -R 1000:1000 /workspace']
+ volumeMounts:
+ - name: workspace
+ mountPath: /workspace
containers:
- name: devcontainer
image: $IMAGE
@@ -23,6 +38,9 @@ spec:
- containerPort: 2222
name: ssh
protocol: TCP
+ volumeMounts:
+ - name: workspace
+ mountPath: /workspace
env:
- name: DEBIAN_FRONTEND
value: noninteractive
@@ -40,8 +58,6 @@ spec:
value: devel
- name: OPS_APIHOST
value: http://controller:3233
-
-
command:
- /bin/bash
- -c
@@ -53,11 +69,11 @@ spec:
mkdir -p ~/.ssh ;
chmod 600 ~/.ssh/authorized_keys ;
echo "$$SSH_KEY" > ~/.ssh/authorized_keys ;
+ ln -sf /workspace ~/workspace ;
ops -update ;
sudo /usr/sbin/sshd -p 2222 -D
# RENOVED - BUGGY - shhould be before sshd -p 2222
# echo -e "export OPS_PASSWORD='$$OPS_PASSWORD'\nexport OPS_USERNAME='$$OPS_USERNAME'\nexport OPS_APIHOST='$$OPS_APIHOST'" >>.bashrc ;
-
---
apiVersion: v1
kind: Service
diff --git a/setup/nuvolaris/devcontainer/opsfile.yml b/setup/nuvolaris/devcontainer/opsfile.yml
index cce9128..9060c7d 100644
--- a/setup/nuvolaris/devcontainer/opsfile.yml
+++ b/setup/nuvolaris/devcontainer/opsfile.yml
@@ -34,6 +34,9 @@ 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'
undeploy:
silent: true
diff --git a/setup/nuvolaris/system-api/opsfile.yml b/setup/nuvolaris/system-api/opsfile.yml
index f217aac..3115d11 100644
--- a/setup/nuvolaris/system-api/opsfile.yml
+++ b/setup/nuvolaris/system-api/opsfile.yml
@@ -36,19 +36,19 @@ env:
SYS_API_CDB_HOST: couchdb
SYS_API_CDB_USER:
- sh: kubectl -n nuvolaris get wsk/controller -o jsonpath='{.spec.couchdb.admin.user}'
+ sh: kubectl -n nuvolaris --kubeconfig "$OPS_TMP/kubeconfig" get wsk/controller -o jsonpath='{.spec.couchdb.admin.user}'
SYS_API_CDB_PASSWORD:
- sh: kubectl -n nuvolaris get wsk/controller -o jsonpath='{.spec.couchdb.admin.password}'
+ sh: kubectl -n nuvolaris --kubeconfig "$OPS_TMP/kubeconfig" get wsk/controller -o jsonpath='{.spec.couchdb.admin.password}'
SYS_API_HOSTNAME:
- sh: kubectl -n nuvolaris get ingress/apihost -o jsonpath='{.spec.rules[0].host}'
+ sh: kubectl -n nuvolaris --kubeconfig "$OPS_TMP/kubeconfig" get ingress/apihost -o jsonpath='{.spec.rules[0].host}'
INGRESS_TYPE:
sh: ops util ingress-type
REGISTRY_PASS:
- sh: kubectl -n nuvolaris get cm/config -o jsonpath='{.metadata.annotations.registry_password}'
+ sh: kubectl -n nuvolaris --kubeconfig "$OPS_TMP/kubeconfig" get cm/config -o jsonpath='{.metadata.annotations.registry_password}'
tasks:
install-toml:
@@ -86,7 +86,6 @@ tasks:
then kubectl -n nuvolaris delete secret registry-pull-secret-int
fi
-
deploy:
silent: true
ignore_error: false
@@ -96,9 +95,9 @@ tasks:
- test -n "$IMAGES_SYSTEMAPI" || die "IMAGES_SYSTEMAPI is not set. Please set it to the desired image version."
- envsubst -i api-template.yaml -o _api.yaml > /dev/null 2>&1
- envsubst -i ${INGRESS_TYPE}-template.yaml -o _ingress.yaml > /dev/null 2>&1
- - kubectl -n nuvolaris apply -f "$OPS_ROOT/setup/nuvolaris/system-api/_api.yaml"
+ - kubectl -n nuvolaris apply -f _api.yaml
#- cat _ingress.yaml
- - kubectl -n nuvolaris apply -f "$OPS_ROOT/setup/nuvolaris/system-api/_ingress.yaml"
+ - kubectl -n nuvolaris apply -f_ingress.yaml
- task: install-toml
- task: install-secret
- |