From 1d2b62c60adb3e8e100eba871ed46d9af46bd133 Mon Sep 17 00:00:00 2001 From: Trustable User Date: Sun, 5 Apr 2026 13:26:03 +0100 Subject: [PATCH 01/17] using dotenv instead of source -a --- ide/opsfile.yml | 32 +++++++++----------------------- ide/python/opsfile.yml | 5 ++--- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/ide/opsfile.yml b/ide/opsfile.yml index e48c20c..a777c89 100644 --- a/ide/opsfile.yml +++ b/ide/opsfile.yml @@ -139,17 +139,11 @@ tasks: login: silent: true desc: login in you OpenServerless host + dotenv: + - "{{.OPS_PWD}}/.env" + - "{{.OPS_PWD}}/.env.{{.__mode}}" cmds: - | - set -a - if test -e "$OPS_PWD/.env" - then source "$OPS_PWD/.env" - fi - if [ -n "{{.__mode}}" ] && [ -e "$OPS_PWD/.env.{{.__mode}}" ] - then - echo "Loading .env.{{.__mode}}" - source "$OPS_PWD/.env.{{.__mode}}" - fi if test -n "$OPS_USERNAME" then echo "Please use OPS_USER, OPS_USERNAME is deprecated" fi @@ -234,16 +228,12 @@ tasks: silent: true interactive: true desc: deploy a project or a single action (with _action_=) + dotenv: + - "{{.OPS_PWD}}/.env" + - "{{.OPS_PWD}}/packages/.env" cmds: - task: prereq - | - set -a - if test -e $OPS_PWD/.env - then source $OPS_PWD/.env - fi - if test -e $OPS_PWD/packages/.env - then source $OPS_PWD/packages/.env - fi if test -n "$AUTH_CHECK" then if test "$AUTH_CHECK" != "$AUTH" then echo "WARNING: wrong deploy! You are logged in a different user than your pinned one and configured in .env as AUTH_CHECK" ; exit 1 @@ -329,16 +319,12 @@ tasks: interactive: true silent: true desc: start interactive development mode files + dotenv: + - "{{.OPS_PWD}/.env" + - "{{.OPS_PWD}/packages/.env" cmds: - task: prereq - | - set -a - if test -e $OPS_PWD/.env - then source $OPS_PWD/.env - fi - if test -e $OPS_PWD/packages/.env - then source $OPS_PWD/packages/.env - fi if test -n "$AUTH_CHECK" then if test "$AUTH_CHECK" != "$AUTH" then echo "WARNING: wrong deploy! You are logged in a different user than your configured AUTH_CHECK" ; exit 1 diff --git a/ide/python/opsfile.yml b/ide/python/opsfile.yml index 0617ed9..906ca03 100644 --- a/ide/python/opsfile.yml +++ b/ide/python/opsfile.yml @@ -54,12 +54,11 @@ tasks: cli: silent: true desc: python cli + env: + - "{{.OPS_PWD}}/.env" cmds: - | pip install ipython find "$OPS_PWD" -name requirements.txt -execdir pip install -r {} \; - if test -e "$OPS_PWD/.env" - then set -a ; source "$OPS_PWD/.env" - fi ipython -i init.ipy From 78e13edcc4a2bdccce85a447b111049f1ba90cb1 Mon Sep 17 00:00:00 2001 From: Trustable User Date: Sun, 5 Apr 2026 13:34:38 +0100 Subject: [PATCH 02/17] fix opd ide devel --- ide/opsfile.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ide/opsfile.yml b/ide/opsfile.yml index a777c89..3c03cc7 100644 --- a/ide/opsfile.yml +++ b/ide/opsfile.yml @@ -320,8 +320,8 @@ tasks: silent: true desc: start interactive development mode files dotenv: - - "{{.OPS_PWD}/.env" - - "{{.OPS_PWD}/packages/.env" + - "{{.OPS_PWD}}/.env" + - "{{.OPS_PWD}}/packages/.env" cmds: - task: prereq - | From 18002c4d43b4810369b9db269287d95579f79ecc Mon Sep 17 00:00:00 2001 From: Trustable User Date: Sun, 5 Apr 2026 18:51:17 +0100 Subject: [PATCH 03/17] fix bug --- ide/opsfile.yml | 1 + ide/python/opsfile.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ide/opsfile.yml b/ide/opsfile.yml index 3c03cc7..1d1f579 100644 --- a/ide/opsfile.yml +++ b/ide/opsfile.yml @@ -48,6 +48,7 @@ tasks: You can then use 'ops ide devel' and 'ops ide deploy'. You can also reopen the project with VSCode and use the command 'Reopen in Container'. cmds: + - test {{OS}} != "windows" || die '{{.MSG}}' - test "$(printf '%s\n' "$(bun -v)" "1.1.18" | sort -V | head -n 1)" = "1.1.18" || die "bun 1.1.18 or greater not available" - test -d "$OPS_PWD/packages" || die "no packages in current directory" - test -e ~/.wskprops || die "please run 'ops ide login' first" diff --git a/ide/python/opsfile.yml b/ide/python/opsfile.yml index 906ca03..f400fe6 100644 --- a/ide/python/opsfile.yml +++ b/ide/python/opsfile.yml @@ -54,7 +54,7 @@ tasks: cli: silent: true desc: python cli - env: + dotenv: - "{{.OPS_PWD}}/.env" cmds: - | From 5a51244ecf388efb8edd51ce88f7b431a16743a7 Mon Sep 17 00:00:00 2001 From: Trustable User Date: Sun, 5 Apr 2026 19:47:34 +0100 Subject: [PATCH 04/17] production first --- ide/opsfile.yml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/ide/opsfile.yml b/ide/opsfile.yml index 1d1f579..2e5465a 100644 --- a/ide/opsfile.yml +++ b/ide/opsfile.yml @@ -126,24 +126,16 @@ tasks: while ! test -e ~/.wskprops do $OPS ide login done - - | - echo "**************************************************************************************" - echo "*** Available Commands on Terminal:" - echo "*** 'deploy' (alias for 'ops ide deploy') to deploy your app to {{.API_HOST}}" - echo "*** 'devel' (alias for 'ops ide devel') to start incremental development mode" - echo "*** 'login' (alias for 'ops ide login') to login as a different user" - echo "*** 'ops ide' for more informations" - echo "*** https://openserverless.apache.org/ for online documentation" - echo "**************************************************************************************" login: silent: true desc: login in you OpenServerless host dotenv: - - "{{.OPS_PWD}}/.env" - "{{.OPS_PWD}}/.env.{{.__mode}}" + - "{{.OPS_PWD}}/.env" cmds: + - echo "{{.OPS_PWD}}/.env" "{{.OPS_PWD}}/.env.{{.__mode}}" - | if test -n "$OPS_USERNAME" then echo "Please use OPS_USER, OPS_USERNAME is deprecated" From 10eb3141812ce5fff2222e417b81f3e0613a7795 Mon Sep 17 00:00:00 2001 From: Trustable User Date: Tue, 7 Apr 2026 12:39:20 +0100 Subject: [PATCH 05/17] overridable memcheck --- setup/docker/opsfile.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup/docker/opsfile.yml b/setup/docker/opsfile.yml index 8c0a4c0..cc3dee0 100644 --- a/setup/docker/opsfile.yml +++ b/setup/docker/opsfile.yml @@ -113,9 +113,9 @@ tasks: check-space: silent: true env: - REQUIRED_CPU: 4 - REQUIRED_MEM: 14 - REQUIRED_DISK: 60 + REQUIRED_CPU: '{{ or .REQUIRED_CPU "4" }}' + REQUIRED_MEM: '{{ or .REQUIRED_MEM "14" }}' + REQUIRED_DISK: '{{or .REQUIRED_DISK "60" }}' desc: check if the user has the minimum required disk space cmds: - bun run space.ts From e114f8bb747878a933c423ca014377fabc416696 Mon Sep 17 00:00:00 2001 From: miki3421 <42601846+miki3421@users.noreply.github.com> Date: Tue, 7 Apr 2026 16:02:37 +0200 Subject: [PATCH 06/17] Update operator image reference in opsroot.json fix mongodb - fix pykube - traefik ingress selection --- opsroot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opsroot.json b/opsroot.json index fdf25f9..836d59e 100644 --- a/opsroot.json +++ b/opsroot.json @@ -6,7 +6,7 @@ }, "images": { "standalone": "ghcr.io/nuvolaris/openwhisk-controller:3.1.0-mastrogpt.2402101445", - "operator": "ghcr.io/nuvolaris/openserverless-operator:0.1.0-incubating.2603192226", + "operator": "docker.io/apache/openserverless-operator:0.1.0-incubating.2604062108", "controller": "ghcr.io/nuvolaris/openwhisk-controller:3.1.0-mastrogpt.2402101445", "invoker": "ghcr.io/nuvolaris/openwhisk-invoker:3.1.0-mastrogpt.2402101445", "streamer": "registry.hub.docker.com/apache/openserverless-streamer:0.1.0-incubating.2505031325", From 9542b0667e1fec225176581ed2ddc75140f7ecf4 Mon Sep 17 00:00:00 2001 From: Trustable User Date: Tue, 7 Apr 2026 15:04:42 +0100 Subject: [PATCH 07/17] kind preload --- setup/docker/opsfile.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/setup/docker/opsfile.yml b/setup/docker/opsfile.yml index cc3dee0..557468e 100644 --- a/setup/docker/opsfile.yml +++ b/setup/docker/opsfile.yml @@ -140,11 +140,11 @@ tasks: if kind get clusters | rg {{.CLUSTER}} then kind export kubeconfig --name {{.CLUSTER}} --kubeconfig "$OPS_TMP/kubeconfig" else - ops util freeze docker-load - ops util freeze kind-preload - ops setup docker cluster - ops util freeze kind-load - ops setup docker ingress + ops util freeze docker-load + test -n "{{.NO_KIND_PRELOAD}}" || ops util freeze kind-preload + ops setup docker cluster + ops util freeze kind-load + ops setup docker ingress fi - cp "$OPS_TMP/kubeconfig" "$OPS_TMP/kind-{{.CLUSTER}}.kubeconfig" From 433844cedbd89e23b0e13fec6d7769d6d3c17fc8 Mon Sep 17 00:00:00 2001 From: Trustable User Date: Tue, 7 Apr 2026 15:39:09 +0100 Subject: [PATCH 08/17] work even if port 80 is busy --- setup/opsfile.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/setup/opsfile.yml b/setup/opsfile.yml index df0bab0..2e0b1f3 100644 --- a/setup/opsfile.yml +++ b/setup/opsfile.yml @@ -113,10 +113,11 @@ tasks: echo "*** You can can uninstall and restart with: ops setup docker delete" exit 1 else - if ! kind get clusters | rg nuvolaris - then echo "*** Something is already running as a local webserver, please remove it before installing miniops." - exit 1 - fi + # in WSL something answer in localhost to it is not an error + #if ! kind get clusters | rg nuvolaris + #then echo "*** Something is already running as a local webserver, please remove it before installing miniops." + # exit 1 + #fi fi fi fi From 15621d2747de84edec534d6d61feaa8477805fcb Mon Sep 17 00:00:00 2001 From: Trustable User Date: Tue, 7 Apr 2026 18:01:48 +0100 Subject: [PATCH 09/17] fix to login --- ide/opsfile.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ide/opsfile.yml b/ide/opsfile.yml index 2e5465a..7602efe 100644 --- a/ide/opsfile.yml +++ b/ide/opsfile.yml @@ -174,7 +174,10 @@ tasks: if test -n "$OPS_PASSWORD" then export "OPS_PASSWORD" fi - if $OPS -login "$OPSDEV_APIHOST" "$OPSDEV_USERNAME" + # TO FIX: workaround to a problem on ops that ignores the paratemer if OPS_USER is set + export OPS_USER="$OPSDEV_USERNAME" + export OPS_APIHOST="$OPSDEV_APIHOST" + if ops -login then OPSDEV_HOST_PROT="$(echo "$OPSDEV_APIHOST" | awk -F '://' '{print $1}')" OPSDEV_HOST_URL="$(echo "$OPSDEV_APIHOST" | awk -F '://' '{print $2}')" From 802265fece5731ed6cc0163337b37823ac6a732a Mon Sep 17 00:00:00 2001 From: miki3421 Date: Wed, 8 Apr 2026 19:01:10 +0200 Subject: [PATCH 10/17] Bump operator image to 0.1.0-incubating.2604082215 --- opsroot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opsroot.json b/opsroot.json index 836d59e..54ddd9d 100644 --- a/opsroot.json +++ b/opsroot.json @@ -6,7 +6,7 @@ }, "images": { "standalone": "ghcr.io/nuvolaris/openwhisk-controller:3.1.0-mastrogpt.2402101445", - "operator": "docker.io/apache/openserverless-operator:0.1.0-incubating.2604062108", + "operator": "ghcr.io/nuvolaris/openserverless-operator:0.1.0-incubating.2604082215", "controller": "ghcr.io/nuvolaris/openwhisk-controller:3.1.0-mastrogpt.2402101445", "invoker": "ghcr.io/nuvolaris/openwhisk-invoker:3.1.0-mastrogpt.2402101445", "streamer": "registry.hub.docker.com/apache/openserverless-streamer:0.1.0-incubating.2505031325", From 015df5d61e3ece1a33958e0efe17130ebbc38c00 Mon Sep 17 00:00:00 2001 From: miki3421 Date: Wed, 8 Apr 2026 20:59:59 +0200 Subject: [PATCH 11/17] Add Traefik v3 middleware RBAC compatibility --- setup/kubernetes/roles/operator-roles.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/setup/kubernetes/roles/operator-roles.yaml b/setup/kubernetes/roles/operator-roles.yaml index 2dcb904..4d8803b 100644 --- a/setup/kubernetes/roles/operator-roles.yaml +++ b/setup/kubernetes/roles/operator-roles.yaml @@ -82,6 +82,10 @@ rules: resources: ["middlewares"] verbs: ["get","patch","list","update","watch","create","delete"] +- apiGroups: ["traefik.io"] + resources: ["middlewares"] + verbs: ["get","patch","list","update","watch","create","delete"] + # required for kubegres - apiGroups: ["kubegres.reactive-tech.io"] resources: ["kubegres","kubegres/finalizers","kubegres/status"] From 878f5f71f39826a415e427fa2ebfe96300458de1 Mon Sep 17 00:00:00 2001 From: miki3421 Date: Wed, 8 Apr 2026 22:39:58 +0200 Subject: [PATCH 12/17] Use configured API host in setup login hint --- setup/nuvolaris/opsfile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/nuvolaris/opsfile.yml b/setup/nuvolaris/opsfile.yml index b03be40..d5ee9f3 100644 --- a/setup/nuvolaris/opsfile.yml +++ b/setup/nuvolaris/opsfile.yml @@ -281,6 +281,6 @@ tasks: retry ops ide login {{.USR}} "$APIHOST" - echo "{{.PSW}}" > ~/.ops/{{.USR}}.password - ops util upload "$(realpath web)" - - echo "Login with:" ops ide login {{.USR}} https://miniops.me + - echo "Login with:" ops ide login {{.USR}} "$APIHOST" - echo "Password is saved in:" ~/.ops/{{.USR}}.password - echo "Web URL is:" "$HOST" From abbe983f0648030eabce78c05aab9325cb0f68aa Mon Sep 17 00:00:00 2001 From: miki3421 Date: Fri, 10 Apr 2026 16:39:29 +0200 Subject: [PATCH 13/17] Avoid API host validation when generating setup secrets --- setup/kubernetes/opsfile.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup/kubernetes/opsfile.yml b/setup/kubernetes/opsfile.yml index a09d817..65c7699 100644 --- a/setup/kubernetes/opsfile.yml +++ b/setup/kubernetes/opsfile.yml @@ -258,7 +258,7 @@ tasks: cmds: - | if test -z "$SECRET_OPENWHISK_NUVOLARIS" - then ops util secret + then ops -task -t "$OPS_ROOT/util/opsfile.yml" secrets else echo Reusing current secrets. fi @@ -442,4 +442,4 @@ tasks: kubectl apply -f _whisk.yaml - task: wait vars: - OBJECT: pod/controller-0 \ No newline at end of file + OBJECT: pod/controller-0 From 8ad101f5d2f2ece1b4faadd1f4c65e00c852260d Mon Sep 17 00:00:00 2001 From: miki3421 Date: Fri, 10 Apr 2026 16:45:14 +0200 Subject: [PATCH 14/17] Fix setup nuvolaris login on bestia --- setup/nuvolaris/opsfile.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup/nuvolaris/opsfile.yml b/setup/nuvolaris/opsfile.yml index d5ee9f3..10ddfd4 100644 --- a/setup/nuvolaris/opsfile.yml +++ b/setup/nuvolaris/opsfile.yml @@ -126,7 +126,9 @@ tasks: echo Checking connection... retry -t 100 -m 600 ops -wsk {{.ETC}} --apihost "$OPSDEV_APIHOST" --auth "$AUTH" namespace list export OPS_PASSWORD=$(kubectl -n nuvolaris get wsk/controller -ojsonpath -ojsonpath='{.spec.nuvolaris.password}') - ops -login "$OPSDEV_APIHOST" "$OPSDEV_USERNAME" + export OPS_USER="$OPSDEV_USERNAME" + export OPS_APIHOST="$OPSDEV_APIHOST" + ops -login OPSDEV_HOST_PROT="$(echo "$OPSDEV_APIHOST" | awk -F '://' '{print $1}')" OPSDEV_HOST_URL="$(echo "$OPSDEV_APIHOST" | awk -F '://' '{print $2}')" config OPSDEV_APIHOST="$OPSDEV_APIHOST" From 7fda78e335651e2806aa5d0e7d84272e8136f46f Mon Sep 17 00:00:00 2001 From: miki3421 Date: Fri, 10 Apr 2026 16:56:45 +0200 Subject: [PATCH 15/17] Use Apache operator image 0.1.0-incubating.2604091352 --- opsroot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opsroot.json b/opsroot.json index 54ddd9d..58727cd 100644 --- a/opsroot.json +++ b/opsroot.json @@ -6,7 +6,7 @@ }, "images": { "standalone": "ghcr.io/nuvolaris/openwhisk-controller:3.1.0-mastrogpt.2402101445", - "operator": "ghcr.io/nuvolaris/openserverless-operator:0.1.0-incubating.2604082215", + "operator": "docker.io/apache/openserverless-operator:0.1.0-incubating.2604091352", "controller": "ghcr.io/nuvolaris/openwhisk-controller:3.1.0-mastrogpt.2402101445", "invoker": "ghcr.io/nuvolaris/openwhisk-invoker:3.1.0-mastrogpt.2402101445", "streamer": "registry.hub.docker.com/apache/openserverless-streamer:0.1.0-incubating.2505031325", From 66e0339b06c76192e9b1fe4c566f4b2673e60f81 Mon Sep 17 00:00:00 2001 From: Michele Sciabarra Date: Tue, 14 Apr 2026 12:12:18 +0100 Subject: [PATCH 16/17] k3sup 0.13.12 --- prereq.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prereq.yml b/prereq.yml index 177006c..7fe931b 100644 --- a/prereq.yml +++ b/prereq.yml @@ -117,7 +117,7 @@ tasks: k3sup: desc: download k3sup vars: - VERSION: 0.13.6 + VERSION: 0.13.12 BASE: "https://github.com/alexellis/k3sup/releases/download/{{.VERSION}}" FILE: sh: | From 1023eb59a47898ad2725e96571e3c08d66132654 Mon Sep 17 00:00:00 2001 From: Michele Sciabarra Date: Wed, 15 Apr 2026 13:34:15 +0100 Subject: [PATCH 17/17] mode also in deploy --- ide/docopts.md | 2 +- ide/opsfile.yml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ide/docopts.md b/ide/docopts.md index fa9126c..85821b6 100644 --- a/ide/docopts.md +++ b/ide/docopts.md @@ -25,8 +25,8 @@ OpenServerless Ide Development Utilities. ```text Usage: ide login [] [] [--pin] [--mode=] + ide deploy [|--packages|--web] [--dry-run] [--mode=] ide devel [--fast] [--dry-run] - ide deploy [|--packages|--web] [--dry-run] ide undeploy [] [--dry-run] ide clean ide setup diff --git a/ide/opsfile.yml b/ide/opsfile.yml index 7602efe..b820459 100644 --- a/ide/opsfile.yml +++ b/ide/opsfile.yml @@ -225,8 +225,9 @@ tasks: interactive: true desc: deploy a project or a single action (with _action_=) dotenv: - - "{{.OPS_PWD}}/.env" + - "{{.OPS_PWD}}/.env.{{.__mode}}" - "{{.OPS_PWD}}/packages/.env" + - "{{.OPS_PWD}}/.env" cmds: - task: prereq - |