@underpostnet/cyberia 3.2.80 → 3.2.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/.env.example +34 -15
  2. package/.github/workflows/cyberia-client.cd.yml +13 -1
  3. package/.github/workflows/cyberia-server.cd.yml +13 -1
  4. package/.github/workflows/docker-image.cyberia-client.ci.yml +4 -4
  5. package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +4 -4
  6. package/.github/workflows/docker-image.cyberia-server.ci.yml +4 -4
  7. package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +4 -4
  8. package/.github/workflows/docker-image.engine-cyberia.ci.yml +3 -3
  9. package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +3 -3
  10. package/.github/workflows/engine-cyberia.cd.yml +14 -3
  11. package/CHANGELOG.md +182 -1
  12. package/CLI-HELP.md +37 -16
  13. package/Dockerfile +1 -1
  14. package/Dockerfile.dev +1 -1
  15. package/Dockerfile.test +1 -1
  16. package/bin/cyberia.js +203 -49
  17. package/bin/deploy.js +18 -16
  18. package/bin/index.js +203 -49
  19. package/compose.env +34 -15
  20. package/deployment.yaml +1 -210
  21. package/docker-compose.yml +73 -62
  22. package/hardhat/package-lock.json +134 -126
  23. package/hardhat/package.json +2 -2
  24. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
  25. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
  26. package/manifests/deployment/dd-cyberia-development/deployment.yaml +1 -210
  27. package/manifests/deployment/dd-cyberia-development/gateway.yaml +80 -0
  28. package/manifests/deployment/dd-cyberia-development/httproute.yaml +504 -0
  29. package/manifests/deployment/dd-cyberia-development/proxy.yaml +12 -12
  30. package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +0 -82
  31. package/manifests/deployment/dd-cyberia-development/traffic-service.yaml +121 -0
  32. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  33. package/manifests/deployment/playwright/deployment.yaml +1 -1
  34. package/manifests/mongodb/kustomization.yaml +4 -1
  35. package/manifests/mongodb/statefulset.yaml +4 -0
  36. package/manifests/mongodb/storage-class.yaml +9 -2
  37. package/nginx.conf +86 -16
  38. package/package.json +2 -2
  39. package/proxy.yaml +12 -12
  40. package/pv-pvc.yaml +0 -82
  41. package/scripts/nat-iptables.sh +10 -4
  42. package/scripts/test-monitor.sh +4 -3
  43. package/src/api/cyberia-action/cyberia-action.model.js +1 -0
  44. package/src/api/cyberia-instance/cyberia-fallback-world.js +41 -14
  45. package/src/api/cyberia-instance/cyberia-instance-map.service.js +8 -12
  46. package/src/api/cyberia-instance/cyberia-portal-connector.js +7 -5
  47. package/src/api/cyberia-instance/cyberia-random-source.js +80 -0
  48. package/src/api/cyberia-instance/cyberia-world-generator.js +4 -3
  49. package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +73 -0
  50. package/src/cli/cluster.js +740 -55
  51. package/src/cli/db.js +2 -2
  52. package/src/cli/deploy.js +1679 -174
  53. package/src/cli/docker-compose.js +19 -178
  54. package/src/cli/image.js +15 -6
  55. package/src/cli/index.js +124 -35
  56. package/src/cli/ipfs.js +82 -11
  57. package/src/cli/monitor.js +1 -1
  58. package/src/cli/repository.js +1 -1
  59. package/src/cli/run.js +2161 -420
  60. package/src/cli/secrets.js +969 -0
  61. package/src/cli/ssh.js +8 -28
  62. package/src/client/components/cyberia/InstanceSelectionView.js +11 -8
  63. package/src/client/components/cyberia/SharedDefaultsCyberia.js +5 -0
  64. package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +106 -39
  65. package/src/client/public/cyberia-docs/ARCHITECTURE.md +18 -0
  66. package/src/client/public/cyberia-docs/CYBERIA-CLI.md +44 -7
  67. package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
  68. package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
  69. package/src/client-builder/client-build.js +94 -11
  70. package/src/client-builder/ssr.js +27 -73
  71. package/src/db/mongo/MongoBootstrap.js +295 -54
  72. package/src/db/mongo/MongooseDB.js +47 -32
  73. package/src/index.js +1 -1
  74. package/src/projects/cyberia/besu-genesis-generator.js +3 -2
  75. package/src/projects/cyberia/hot-reload-trigger.js +3 -3
  76. package/src/projects/cyberia/instance-data.js +42 -1
  77. package/src/runtime/cyberia-client/Dockerfile +1 -1
  78. package/src/runtime/cyberia-client/Dockerfile.dev +1 -1
  79. package/src/runtime/cyberia-server/Dockerfile +1 -1
  80. package/src/runtime/cyberia-server/Dockerfile.dev +1 -1
  81. package/src/runtime/engine-cyberia/Dockerfile +1 -1
  82. package/src/runtime/engine-cyberia/Dockerfile.dev +1 -1
  83. package/src/runtime/engine-cyberia/Dockerfile.test +1 -1
  84. package/src/runtime/engine-cyberia/compose.env +34 -15
  85. package/src/runtime/engine-cyberia/docker-compose.yml +73 -62
  86. package/src/runtime/engine-cyberia/nginx.conf +86 -16
  87. package/src/server/conf.js +1208 -70
  88. package/src/server/cri.js +70 -0
  89. package/src/server/underpost-gateway.js +1073 -0
  90. package/src/server/underpost-ingress.js +364 -0
  91. package/test/cluster-instances.test.js +435 -0
  92. package/test/deploy-node-placement.test.js +45 -0
  93. package/test/instance-traffic-plan.test.js +710 -0
  94. package/test/sops-secret-store.test.js +612 -0
  95. package/test/underpost-gateway.test.js +469 -0
  96. package/test/underpost-ingress.test.js +253 -0
package/.env.example CHANGED
@@ -40,29 +40,27 @@ VALKEY_HOST=valkey-service
40
40
  VALKEY_PORT=6379
41
41
 
42
42
  # --- Cyberia instance wiring (compose service DNS) ---------------------------
43
- # cyberia-server-* -> engine-cyberia authority endpoints. INTERNAL only: these
44
- # use the docker service DNS (engine-cyberia) and must never leak to browser
45
- # clients. Per-instance INSTANCE_CODE is set on each generated server service
46
- # from conf.instances.json (multiInstance) — not here.
47
- ENGINE_API_BASE_URL=http://engine-cyberia:4005
48
- ENGINE_GRPC_ADDRESS=engine-cyberia:50051
43
+ # cyberia-server-* -> stable engine gateway for HTTP and the raw engine runtime
44
+ # for gRPC. The public engine-cyberia name belongs to nginx, avoiding ambiguous
45
+ # Docker DNS while keeping one stable HTTP endpoint for every module.
46
+ ENGINE_API_BASE_URL=http://engine-cyberia
47
+ ENGINE_GRPC_ADDRESS=engine-cyberia-runtime:50051
49
48
 
50
49
  # Client-visible Content Authority origin, forwarded to browser/Raylib clients
51
50
  # for every engine-cyberia content/asset/metadata request. Host-reachable
52
- # (docker publishes engine-cyberia :4005). Distinct from ENGINE_API_BASE_URL:
51
+ # (Docker publishes the raw engine runtime on host :4005). Unlike the internal
52
+ # ENGINE_API_BASE_URL, this value is consumed outside the Compose network:
53
53
  # the two responsibilities must never overwrite each other.
54
54
  ENGINE_PUBLIC_URL=http://localhost:4005
55
55
  ENGINE_GRPC_RELOAD_INTERVAL_SEC=300
56
56
 
57
57
  # --- Browser-facing client runtime config (injected by docker-driver.py) -----
58
58
  # The single WASM bundle resolves its instance from the URL sub-path and builds
59
- # its endpoints from these origins. They point at the nginx proxy on localhost:80
60
- # (the single gateway that path-routes WS -> server, /api + /assets -> engine),
61
- # NOT at the raw client/engine container ports — a WS to the client port (8082)
62
- # has no server behind it. So this must be the proxy origin, not :8082 / :4005.
63
- # http://localhost/ -> default instance, ws -> ws://localhost/ws
64
- # http://localhost/FOREST -> FOREST instance, ws -> ws://localhost/FOREST/ws
65
- CYBERIA_WS_ORIGIN=ws://localhost
59
+ # its endpoints from these origins. HTTP client/API traffic uses nginx on :80;
60
+ # WebSocket traffic uses the dedicated multi-path server gateway on :8081.
61
+ # http://localhost/ -> default, ws://localhost:8081/ws
62
+ # http://localhost/FOREST -> FOREST, ws://localhost:8081/FOREST/ws
63
+ CYBERIA_WS_ORIGIN=ws://localhost:8081
66
64
  CYBERIA_ENGINE_API_ORIGIN=http://localhost
67
65
  CYBERIA_DEFAULT_INSTANCE=amethyst-strata-expansion
68
66
 
@@ -82,6 +80,7 @@ NODE_OPTIONS=--max-old-space-size=8192
82
80
  BASE_API=api
83
81
  DEFAULT_DEPLOY_ID=dd-cyberia
84
82
  DEPLOY_ID=dd-cyberia
83
+ # Configuration/DB selector from conf.server.json; this is not a Docker DNS alias.
85
84
  DEFAULT_DEPLOY_HOST=www.cyberiaonline.com
86
85
  DEFAULT_DEPLOY_PATH=/
87
86
  DISABLE_API_RATE_LIMIT=true
@@ -131,7 +130,25 @@ IPFS_CLUSTER_API_URL=http://ipfs-cluster:9094
131
130
  # in docker-compose.yml). Override for a real/shared cluster.
132
131
  # CLUSTER_SECRET=
133
132
 
134
- # --- Host-published ports ----------------------------------------------------
133
+ # --- Local access ------------------------------------------------------------
134
+ # Client gateway: http://localhost/{,FOREST,TEST}
135
+ # Client port alias: http://localhost:8082/{,FOREST,TEST}
136
+ # Server gateway: http://localhost:8081/{,FOREST,TEST}
137
+ # Engine authority: http://localhost:4005
138
+ # Docker-network gateways:
139
+ # http://cyberia-client/{,FOREST,TEST}
140
+ # http://cyberia-server/{,FOREST,TEST}
141
+ # http://engine-cyberia/
142
+ #
143
+ # The *.localhost aliases normally resolve to loopback without configuration:
144
+ # http://client.cyberia.localhost/{,FOREST,TEST}
145
+ # http://server.cyberia.localhost/{,FOREST,TEST}
146
+ # http://engine.cyberia.localhost/
147
+ # `node bin/cyberia run-workflow docker:up` maintains this host entry (the
148
+ # aliases already work between containers):
149
+ # 127.0.0.1 cyberia-client cyberia-server engine-cyberia
150
+ #
151
+ # Host-published ports:
135
152
  PROXY_HTTP_PORT=80
136
153
  IPFS_API_PORT=5001
137
154
  IPFS_GATEWAY_PORT=8080
@@ -140,5 +157,7 @@ MONGO_HOST_PORT=27017
140
157
  VALKEY_NODEPORT=32079
141
158
  ENGINE_CYBERIA_REST_PORT=4005
142
159
  ENGINE_CYBERIA_GRPC_PORT=50051
160
+ # Multi-path nginx server gateway, not a single server container publication.
143
161
  CYBERIA_SERVER_PORT=8081
162
+ # Multi-path nginx client gateway; raw client containers remain internal.
144
163
  CYBERIA_CLIENT_PORT=8082
@@ -31,10 +31,22 @@ jobs:
31
31
  command_timeout: 60m
32
32
  script: |
33
33
  set -e
34
+ set -o pipefail
34
35
  echo "Starting remote deploy"
35
36
  cd /home/dd/engine
36
37
  TARGET_NODE=hp-envy-iso-ram-rocky9
38
+ INGRESS_NODE=localhost.localdomain
37
39
  sudo -n -- /bin/bash -lc "node bin run pull"
38
40
  sudo -n -- /bin/bash -lc "node bin run secret"
39
41
  sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
40
- sudo -n -- /bin/bash -lc "node bin run instance --image-pull-policy Always --node-name $HOSTNAME --kubeadm 'dd-cyberia,mmo-client' --node-name ${TARGET_NODE} --ssh-key-path /home/dd/tmp/897as9dxhaskd9"
42
+ sudo -n -- /bin/bash -lc "kubectl wait --for=condition=Ready node/${TARGET_NODE} --timeout=2m"
43
+ sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-ingress -n default --timeout=5m"
44
+ sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-gateway -n default --timeout=5m"
45
+ sudo -n -- /bin/bash -lc "node bin run instance \
46
+ --kubeadm \
47
+ --gateway-api \
48
+ --image-pull-policy Always \
49
+ --node-name ${TARGET_NODE} \
50
+ --ingress-node ${INGRESS_NODE} \
51
+ --ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
52
+ 'dd-cyberia,mmo-client'"
@@ -31,10 +31,22 @@ jobs:
31
31
  command_timeout: 60m
32
32
  script: |
33
33
  set -e
34
+ set -o pipefail
34
35
  echo "Starting remote deploy"
35
36
  cd /home/dd/engine
36
37
  TARGET_NODE=hp-envy-iso-ram-rocky9
38
+ INGRESS_NODE=localhost.localdomain
37
39
  sudo -n -- /bin/bash -lc "node bin run pull"
38
40
  sudo -n -- /bin/bash -lc "node bin run secret"
39
41
  sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
40
- sudo -n -- /bin/bash -lc "node bin run instance --image-pull-policy Always --node-name $HOSTNAME --kubeadm 'dd-cyberia,mmo-server' --node-name ${TARGET_NODE} --ssh-key-path /home/dd/tmp/897as9dxhaskd9"
42
+ sudo -n -- /bin/bash -lc "kubectl wait --for=condition=Ready node/${TARGET_NODE} --timeout=2m"
43
+ sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-ingress -n default --timeout=5m"
44
+ sudo -n -- /bin/bash -lc "kubectl rollout status deployment/underpost-gateway -n default --timeout=5m"
45
+ sudo -n -- /bin/bash -lc "node bin run instance \
46
+ --kubeadm \
47
+ --gateway-api \
48
+ --image-pull-policy Always \
49
+ --node-name ${TARGET_NODE} \
50
+ --ingress-node ${INGRESS_NODE} \
51
+ --ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
52
+ 'dd-cyberia,mmo-server'"
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.2.90'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -35,7 +35,7 @@ jobs:
35
35
  working-directory: engine
36
36
  run: |
37
37
  node bin/deploy cyberia
38
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
38
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
39
39
 
40
40
  - name: Set up Docker Buildx
41
41
  uses: docker/setup-buildx-action@v4
@@ -54,8 +54,8 @@ jobs:
54
54
  tags: |
55
55
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
56
56
  type=raw,value=latest
57
- type=ref,event=branch
58
- type=sha,prefix=sha-
57
+ # type=ref,event=branch
58
+ # type=sha,prefix=sha-
59
59
 
60
60
  - name: Build and push image
61
61
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.2.90'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -35,7 +35,7 @@ jobs:
35
35
  working-directory: engine
36
36
  run: |
37
37
  node bin/deploy cyberia
38
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
38
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../assets/404/index.html
39
39
 
40
40
  - name: Set up Docker Buildx
41
41
  uses: docker/setup-buildx-action@v4
@@ -54,8 +54,8 @@ jobs:
54
54
  tags: |
55
55
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
56
56
  type=raw,value=latest
57
- type=ref,event=branch
58
- type=sha,prefix=sha-
57
+ # type=ref,event=branch
58
+ # type=sha,prefix=sha-
59
59
 
60
60
  - name: Build and push image
61
61
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.2.90'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -36,7 +36,7 @@ jobs:
36
36
  run: |
37
37
  node bin/deploy cyberia
38
38
  node bin/cyberia run-workflow build-server-dashboard --output-path ../public/index.html
39
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
39
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
40
40
 
41
41
  - name: Set up Docker Buildx
42
42
  uses: docker/setup-buildx-action@v4
@@ -55,8 +55,8 @@ jobs:
55
55
  tags: |
56
56
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
57
57
  type=raw,value=latest
58
- type=ref,event=branch
59
- type=sha,prefix=sha-
58
+ # type=ref,event=branch
59
+ # type=sha,prefix=sha-
60
60
 
61
61
  - name: Build and push image
62
62
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.2.90'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -36,7 +36,7 @@ jobs:
36
36
  run: |
37
37
  node bin/deploy cyberia
38
38
  node bin/cyberia run-workflow build-server-dashboard --dev --output-path ../public/index.html
39
- node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404.html
39
+ node bin/cyberia run-workflow build-cyberia-404 --output-path ../public/404/index.html
40
40
 
41
41
  - name: Set up Docker Buildx
42
42
  uses: docker/setup-buildx-action@v4
@@ -55,8 +55,8 @@ jobs:
55
55
  tags: |
56
56
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
57
57
  type=raw,value=latest
58
- type=ref,event=branch
59
- type=sha,prefix=sha-
58
+ # type=ref,event=branch
59
+ # type=sha,prefix=sha-
60
60
 
61
61
  - name: Build and push image
62
62
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.2.90'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -33,8 +33,8 @@ jobs:
33
33
  tags: |
34
34
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
35
  type=raw,value=latest
36
- type=ref,event=branch
37
- type=sha,prefix=sha-
36
+ # type=ref,event=branch
37
+ # type=sha,prefix=sha-
38
38
 
39
39
  - name: Build and push image
40
40
  uses: docker/build-push-action@v7
@@ -4,7 +4,7 @@ on:
4
4
  workflow_dispatch:
5
5
 
6
6
  env:
7
- UNDERPOST_VERSION: '3.2.80'
7
+ UNDERPOST_VERSION: '3.2.90'
8
8
 
9
9
  jobs:
10
10
  build-and-push:
@@ -33,8 +33,8 @@ jobs:
33
33
  tags: |
34
34
  type=raw,value=v${{ env.UNDERPOST_VERSION }}
35
35
  type=raw,value=latest
36
- type=ref,event=branch
37
- type=sha,prefix=sha-
36
+ # type=ref,event=branch
37
+ # type=sha,prefix=sha-
38
38
 
39
39
  - name: Build and push image
40
40
  uses: docker/build-push-action@v7
@@ -41,11 +41,12 @@ jobs:
41
41
  set -e
42
42
  set -o pipefail
43
43
  echo "Starting remote deploy"
44
+ INGRESS_NODE=localhost.localdomain
44
45
  cd /home/dd/engine
45
46
  sudo -n -- /bin/bash -lc "node bin run pull"
46
47
  sudo -n -- /bin/bash -lc "npm install"
47
48
  sudo -n -- /bin/bash -lc "node bin run secret"
48
- sudo -n -- /bin/bash -lc "node bin run deploy dd-cyberia"
49
+ sudo -n -- /bin/bash -lc "node bin run deploy dd-cyberia --gateway-api --ingress-node ${INGRESS_NODE}"
49
50
  sync-and-deploy:
50
51
  if: github.event.inputs.job == 'sync-and-deploy'
51
52
  name: Remote SSH sync and deploy
@@ -72,6 +73,7 @@ jobs:
72
73
  set -o pipefail
73
74
  echo "Starting remote sync and deploy"
74
75
  TARGET_NODE=localhost.localdomain
76
+ INGRESS_NODE=localhost.localdomain
75
77
  cd /home/dd/engine
76
78
  sudo -n -- /bin/bash -lc "node bin run pull"
77
79
  sudo -n -- /bin/bash -lc "npm install"
@@ -91,11 +93,19 @@ jobs:
91
93
  if [ "$CHANGES_UNDERPOST" = "1" ]; then
92
94
  sudo -n -- /bin/bash -lc "node bin cmt src/client/public/underpost feat 'Update underpost public assets'"
93
95
  fi
96
+ sudo -n -- /bin/bash -lc "npm run fix"
97
+ sudo -n -- /bin/bash -lc "npm install"
98
+ sudo -n -- /bin/bash -lc "node bin/deploy cyberia"
99
+ sudo -n -- /bin/bash -lc "underpost run clean"
100
+ sudo -n -- /bin/bash -lc "node bin env dd-cyberia production"
101
+ sudo -n -- /bin/bash -lc "node bin/cyberia run-workflow build-manifest"
94
102
  sudo -n -- /bin/bash -lc "node bin run sync 'dd-cyberia,1,,underpost/engine-cyberia:latest' \
95
103
  --kubeadm \
96
104
  --deploy-id-cron-jobs none \
97
105
  --timeout-response 300000ms \
98
106
  --node-name ${TARGET_NODE} \
107
+ --gateway-api \
108
+ --ingress-node ${INGRESS_NODE} \
99
109
  --ssh-key-path /home/dd/tmp/897as9dxhaskd9 \
100
110
  --image-pull-policy Always \
101
111
  --cmd 'cd /home/dd/engine, \
@@ -147,11 +157,12 @@ jobs:
147
157
  set -e
148
158
  set -o pipefail
149
159
  echo "Starting init deploy"
160
+ INGRESS_NODE=localhost.localdomain
150
161
  cd /home/dd/engine
151
162
  sudo -n -- /bin/bash -lc "node bin run pull"
152
163
  sudo -n -- /bin/bash -lc "npm install"
153
164
  sudo -n -- /bin/bash -lc "node bin run secret"
154
165
  sudo -n -- /bin/bash -lc "node bin/build dd-cyberia --conf"
155
- sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --sync --build-manifest --timeout-response 300000ms --versions green --replicas 1"
156
- sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --disable-update-proxy --git-clean"
166
+ sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --gateway-api --ingress-node ${INGRESS_NODE} --sync --build-manifest --timeout-response 300000ms --versions green --replicas 1"
167
+ sudo -n -- /bin/bash -lc "node bin deploy dd-cyberia production --kubeadm --gateway-api --ingress-node ${INGRESS_NODE} --disable-update-proxy --git-clean"
157
168
  sudo -n -- /bin/bash -lc "node bin monitor dd-cyberia production --ready-deployment --promote --timeout-response 300000ms --versions green --replicas 1"
package/CHANGELOG.md CHANGED
@@ -1,6 +1,187 @@
1
1
  # Changelog
2
2
 
3
- ## 2026-07-23
3
+ ## 2026-08-11
4
+
5
+ ### cli-run
6
+
7
+ - Add version parameter in cluster runner cmd lines ([bd909bc0](https://github.com/underpostnet/engine/commit/bd909bc046f77f5c36d601116d2f94291ca6aa0a))
8
+ - Handle multi-recipient keys in sops runners ([92ecdc15](https://github.com/underpostnet/engine/commit/92ecdc1518d645faa913d0897288a5f6e27e075d))
9
+ - Trim ipfs expose to core host ports ([dc473d4f](https://github.com/underpostnet/engine/commit/dc473d4faa1221f0102ce88ee6fff866941d0f3b))
10
+ - Add sops setup and status runners ([a29fd394](https://github.com/underpostnet/engine/commit/a29fd3947637ca64398040deaea30d0fab624263))
11
+ - Fix sub path handling probes in get-traffic runner ([b65d0fe4](https://github.com/underpostnet/engine/commit/b65d0fe4e73b370a627efbb8b2e23386deff7f74))
12
+ - Add restore mongo statefulset runner ([e9e1b224](https://github.com/underpostnet/engine/commit/e9e1b224b964a713f5d6aedbf05d11b41e15a98c))
13
+ - In get-traffic runner retains every configured host row matching the input ([a1654225](https://github.com/underpostnet/engine/commit/a16542254c92f9d1564a9a817b990ecbe061459d))
14
+ - Rework get-traffic runner with CURRENT and OPPOSITE color state deployment ([34e4a723](https://github.com/underpostnet/engine/commit/34e4a7234784dec5ac6af20bd785a830f9f238bf))
15
+ - Rework expose runner to port list options ([b6fe9cfe](https://github.com/underpostnet/engine/commit/b6fe9cfe46e07cf8776157e66d6006341902b616))
16
+ - Add status and expose runners ([0d383e7d](https://github.com/underpostnet/engine/commit/0d383e7d9a6bdbc062060635c279821e559a6473))
17
+ - Drop redundant rollout restart after node-move patch ([b5399b13](https://github.com/underpostnet/engine/commit/b5399b1342b6c3932b065eb4d6c6b01f7f361e10))
18
+ - Load project instance env builder by convention ([8b226d07](https://github.com/underpostnet/engine/commit/8b226d07367e1f5e7a93ffc3ced17c0ebd953f99))
19
+ - Route instances through stable traffic Service ([65c674e0](https://github.com/underpostnet/engine/commit/65c674e05c280bba50e6ab6c6bfdda0480e72d67))
20
+ - Refactor stop runner logic introduce stopPlanFactory method ([aa972f12](https://github.com/underpostnet/engine/commit/aa972f12008ceb49e3ee3cd053f47b525c344fbd))
21
+ - Remove direct ssh remote runners ([79ecee89](https://github.com/underpostnet/engine/commit/79ecee8926e4ccf63f1d8a8fc023e359e750072f))
22
+ - Integrate underpost gateway into run ([ce02c328](https://github.com/underpostnet/engine/commit/ce02c3282721f02d89e6af76380ace95a8bfa424))
23
+ - Add Gateway API HTTPRoute rules for instance runners ([c85c48e4](https://github.com/underpostnet/engine/commit/c85c48e434c65437bb9704a019c4945c1620e317))
24
+
25
+ ### test-secrets
26
+
27
+ - Fix rotate and apply manifest test workflow ([5f0be40c](https://github.com/underpostnet/engine/commit/5f0be40c51440bf6496a7da66a5d9edb78d6de0d))
28
+
29
+ ### hardhat
30
+
31
+ - Update transitive dependencies ([59f18f31](https://github.com/underpostnet/engine/commit/59f18f31bd2490904c4ead85ca8a0dd9d50d1459))
32
+
33
+ ### engine-cyberia
34
+
35
+ - Implement storageSlots capability workload in fallback world ([c6bceef0](https://github.com/underpostnet/engine/commit/c6bceef0b6d8c4d64e8f02f87ed2fb20abf3e287))
36
+ - Implement storageSlots capability workload in fallback world ([e5f4d1c9](https://github.com/underpostnet/engine/commit/e5f4d1c9a979f87d53cbc9c7ddef4dd2d6e747e3))
37
+ - Add assembler craft recipes to cyberia action system ([c5072452](https://github.com/underpostnet/engine/commit/c5072452309a51882283568650098eebf87620ff))
38
+ - Add vendor shop catalog to cyberia action system ([748533a0](https://github.com/underpostnet/engine/commit/748533a0c68e57c25f9f9c5844fc27f545c2cae6))
39
+ - Preserve variant base path through ingress ([3daa9a18](https://github.com/underpostnet/engine/commit/3daa9a18190f41bef20b9a590b04ae51f150a7fc))
40
+ - Normalize instance topology and dispatch env builders ([cd0309ae](https://github.com/underpostnet/engine/commit/cd0309ae425c59c957eed5357cabdbc27ad3ffe6))
41
+ - Refactor gateway static to underpost gateway ([9f35a007](https://github.com/underpostnet/engine/commit/9f35a007d5cf444f4d84c7eccf446d46b4208e0f))
42
+ - Fix minor besu genesis generator update ([6680d5a1](https://github.com/underpostnet/engine/commit/6680d5a16b9936c6995812b3b9f99415d72636c0))
43
+ - Fix sum stat response in fall back world static instance map endpoint ([84ea1e4c](https://github.com/underpostnet/engine/commit/84ea1e4ca39bf8046736703951857ba3f91b6965))
44
+ - Add seeded random source for deterministic fallback world generation ([74741187](https://github.com/underpostnet/engine/commit/7474118721a446a53077a2a4aa243eefc95abb96))
45
+
46
+ ### dependencies
47
+
48
+ - Update transitive dependencies ([9c12f8fd](https://github.com/underpostnet/engine/commit/9c12f8fde0739131fa9dc42ccf142e7351ab4295))
49
+
50
+ ### github-actions
51
+
52
+ - Set dd-cyberia env before build manifest ([3ec1c8e4](https://github.com/underpostnet/engine/commit/3ec1c8e46bca4d31097f7d80b62c7276ef5974bd))
53
+ - Update build and deployment manifests ([b8aad935](https://github.com/underpostnet/engine/commit/b8aad9359dafaf0c6aea08b6e9925e3b0425592f))
54
+ - Wait for underpost-gateway rollout ([57fc7c22](https://github.com/underpostnet/engine/commit/57fc7c22ff1bbc4f45f042e11d86d73348746915))
55
+ - Update engine-test CD deploy workflow ([712cc9e1](https://github.com/underpostnet/engine/commit/712cc9e17a581ed20a27923b169405824f05e759))
56
+ - Update build and deployment manifests ([14965333](https://github.com/underpostnet/engine/commit/149653332980e66ab8d49f9bc496f5b32f89c211))
57
+ - Update engine-cyberia docker-compose build and deployment manifests ([8dcb10ab](https://github.com/underpostnet/engine/commit/8dcb10ab22c7942d51fa6b94d5a1d09b62fc1930))
58
+ - Update engine-cyberia docker-compose build and deployment manifests ([1cf4f753](https://github.com/underpostnet/engine/commit/1cf4f753f899fa995b5b25aba74792f39da6055f))
59
+ - Update build and deployment manifests ([ba4f4a17](https://github.com/underpostnet/engine/commit/ba4f4a17321771873f04f2782ff43bce9811bd9e))
60
+ - Update build and deployment manifests ([9874b895](https://github.com/underpostnet/engine/commit/9874b895df5f4904b6b5ab6c016a6f8487e24ef9))
61
+ - Update build and deployment manifests ([c3a4ec9f](https://github.com/underpostnet/engine/commit/c3a4ec9f154be351d4fffec78d31f55b8119ba94))
62
+ - Update build and deployment manifests ([a8bdbf05](https://github.com/underpostnet/engine/commit/a8bdbf0503e437237750bb1257c50aca9b92bfe5))
63
+ - Update engine-cyberia CD add prebuild manifest workflow ([a1f4954f](https://github.com/underpostnet/engine/commit/a1f4954f7accfdcf354afcf2c602960bedeca1c5))
64
+ - Fix 404 page location in cyber ua-client docker image workflow ([b52bdf89](https://github.com/underpostnet/engine/commit/b52bdf89e50597bb03f325e6f1bec127005af406))
65
+ - Disable publish branch and sha docker images versions ([12a37a46](https://github.com/underpostnet/engine/commit/12a37a468a39083e07c13406d1882905eb3d05da))
66
+
67
+ ### test
68
+
69
+ - Cover store adoption and recipient registration ([e570d647](https://github.com/underpostnet/engine/commit/e570d6472c2f9e87613d109bc88ddabb2acefd38))
70
+ - Cover sops encrypted secret store ([7c41910b](https://github.com/underpostnet/engine/commit/7c41910bd48d4ddbee5ff1698fd678e9c03f0606))
71
+ - Cover expose and curl status chain ([c19471ae](https://github.com/underpostnet/engine/commit/c19471ae2dc3c38df89a911708679ed12cb13812))
72
+ - Add deployment node placement tests ([390e0aa7](https://github.com/underpostnet/engine/commit/390e0aa7d0b05e4410d7c62da2990bac3546bb29))
73
+ - Fix test/cluster-instances.test.js ([481740db](https://github.com/underpostnet/engine/commit/481740db8cd24108bc4a599180626d8e3f23c118))
74
+ - Remove buildCyberiaMmoInstanceEnv tests in test/cluster-instances.test.js ([46afd8ae](https://github.com/underpostnet/engine/commit/46afd8aed83a023cbc8e3153d7123aee748079e9))
75
+
76
+ ### docs
77
+
78
+ - Document joining a store created on another host ([25a85b6c](https://github.com/underpostnet/engine/commit/25a85b6cee4b04dec73016782f61ba9ab7d84e49))
79
+ - Document shop transaction flow in action system ([7091a506](https://github.com/underpostnet/engine/commit/7091a506a644f7c1a8c0a62526ced91ed568af0c))
80
+ - Document sops age secret management ([6b538a2f](https://github.com/underpostnet/engine/commit/6b538a2f6241f47a1ff2e039e8593bddc3328216))
81
+ - Document expose port list examples ([f9ba1808](https://github.com/underpostnet/engine/commit/f9ba18083ebd013fa83ef660e5150dbd9934ff03))
82
+ - Document run status and expose runners ([bf9a83b4](https://github.com/underpostnet/engine/commit/bf9a83b423834ed7647b5d84ff2bee53b55cd66e))
83
+ - Update node-move mechanics for template patch rollout ([fb8d36f8](https://github.com/underpostnet/engine/commit/fb8d36f8974c9f5079a3cce373e0634dbc3bf0e4))
84
+
85
+ ### cli-secret
86
+
87
+ - Add store adoption pre-flight and recipient registration ([2d634dbb](https://github.com/underpostnet/engine/commit/2d634dbbb503ec00db3df61a1925a888b8c83288))
88
+ - Add managed secrets and repair creation rules ([4661114a](https://github.com/underpostnet/engine/commit/4661114a03836074ab3cad51559b660a88a55290))
89
+ - Add sops age encrypted secret store ([8de77fdd](https://github.com/underpostnet/engine/commit/8de77fdd6b2e82fcbeabcedba9305bb15f881418))
90
+
91
+ ### server-conf
92
+
93
+ - Derive remote ports from host ports in expose plan ([45bec1ad](https://github.com/underpostnet/engine/commit/45bec1ad9735794ad57c672a43e76ac2fc9861d2))
94
+ - Add replica count and secure password factories ([83320d06](https://github.com/underpostnet/engine/commit/83320d061b192dc883ab8b6ccadd171989c9659e))
95
+ - Add expose port list and plan factories ([928ad835](https://github.com/underpostnet/engine/commit/928ad8350426a93d0d8c84f0eee7b8730a538d97))
96
+ - Add curl status chain factory ([dfeef123](https://github.com/underpostnet/engine/commit/dfeef123b33253205c70f0a437323179e590a229))
97
+ - Support idempotent hosts blocks in etcHostFactory ([aa45f40a](https://github.com/underpostnet/engine/commit/aa45f40ace07b6508e0f7a09f2de4ba8a82b3bb9))
98
+
99
+ ### ipfs
100
+
101
+ - Prefer sops store for cluster credentials ([62f40264](https://github.com/underpostnet/engine/commit/62f402649454e5fbb049dde070a3f392d55b1963))
102
+
103
+ ### engine
104
+
105
+ - Generate per-replica mongo volumes with static storage class ([703b8bba](https://github.com/underpostnet/engine/commit/703b8bbacc16c73d0fb96586ea71406d8c723afb))
106
+
107
+ ### cli-cluster
108
+
109
+ - Prefer sops store in cluster secret seeding ([7be50059](https://github.com/underpostnet/engine/commit/7be50059a724b5fad9cb600cf540e69141dd30da))
110
+ - Hot-reload shared ingress host table ([d6328a5e](https://github.com/underpostnet/engine/commit/d6328a5e06237232f492777eca680cf8afd839f7))
111
+ - Add shared underpost ingress front for dual ingress stacks ([041debe9](https://github.com/underpostnet/engine/commit/041debe99e0082412798960ec0be3be3229144c2))
112
+ - Update Gateway API versions and integrate underpost gateway ([12eefb86](https://github.com/underpostnet/engine/commit/12eefb86e6434da8b55a16ffeb28ac267fe62d05))
113
+ - Add Gateway API control plane and CRI socket resolution ([97565eea](https://github.com/underpostnet/engine/commit/97565eea7d4bab91838321a3a96cd058d8496249))
114
+
115
+ ### underpost-gateway
116
+
117
+ - Fix path replicas handling in deploy pwa workfloads ([702f48e4](https://github.com/underpostnet/engine/commit/702f48e4b04c1a9b4458361ed0d33f0b72815c08))
118
+ - Validate and rollback gateway config on reload failure ([4f7ce879](https://github.com/underpostnet/engine/commit/4f7ce8795ef2a46a47bd6d0f49fd0a941cadcca8))
119
+
120
+ ### cli-deploy
121
+
122
+ - Add resolveSchedulableNode method ([c62ee86d](https://github.com/underpostnet/engine/commit/c62ee86d024e9797f279396d647431a97a399f50))
123
+ - Fix merged Gateway listener isolation ([a34f0b93](https://github.com/underpostnet/engine/commit/a34f0b9363a7b16f7d1bf704f27617f7411f2087))
124
+ - Remove expose and status options ([e55227eb](https://github.com/underpostnet/engine/commit/e55227eb0ce75fd308cd72a0f3331a62a08ae0ab))
125
+ - Add node placement to deployment manifest ([9487ad16](https://github.com/underpostnet/engine/commit/9487ad169e79c1ed4c2d1eb05b1e36ff46defe8d))
126
+ - Add stable traffic Service for blue/green routing ([838d1ec0](https://github.com/underpostnet/engine/commit/838d1ec0c1d9d2d9ff35c529180593efcf341203))
127
+ - Fall back to other ingress stack for traffic colour ([3115cc84](https://github.com/underpostnet/engine/commit/3115cc84b02aa091927b25ae09de41879bf012d3))
128
+ - Fix deploy status workflow logic ([35e1af02](https://github.com/underpostnet/engine/commit/35e1af02484e9d6abeb6f031b33589534fe77665))
129
+ - Integrate underpost gateway into deploy ([e95a46d6](https://github.com/underpostnet/engine/commit/e95a46d64897fc92ba2fbb3b5da07c51a0abb729))
130
+ - Add gateway.yaml and httproute.yaml to build manifest mirror ([afb7bcf9](https://github.com/underpostnet/engine/commit/afb7bcf9d8a902d744d6030c72c07d1814f45940))
131
+ - Add Gateway API deploy manifests and gateway static utility ([073231ca](https://github.com/underpostnet/engine/commit/073231ca5a44b860420373035628ad22cc0435d8))
132
+
133
+ ### scripts
134
+
135
+ - Use run expose in test monitor ([b19c4931](https://github.com/underpostnet/engine/commit/b19c49318728b92a8fcf6f7e50e90b5b0e808b0d))
136
+ - Add firewall UDP range for QUIC/HTTP3 to nat-iptables ([3bdacec3](https://github.com/underpostnet/engine/commit/3bdacec350caa1776b418ac44dd3b1e95e259196))
137
+
138
+ ### cli
139
+
140
+ - Update run and deploy option flags ([0dfb9ce6](https://github.com/underpostnet/engine/commit/0dfb9ce6cbfef8f5d990a6fa8287902de20500f2))
141
+
142
+ ### underpost-ingress
143
+
144
+ - Add multi node work load handling ([3dccb3de](https://github.com/underpostnet/engine/commit/3dccb3de3c9a795096613adcca56389c71291c8b))
145
+
146
+ ### cli-cyberia
147
+
148
+ - Add testPaths in dev-env runner ([b087f4af](https://github.com/underpostnet/engine/commit/b087f4afd226a2fefd0cb344a60ac3b945073a40))
149
+ - Install Docker host aliases in compose workflows ([a9fb7507](https://github.com/underpostnet/engine/commit/a9fb750709a4e94f9dd299ff7b62784bb728ad2a))
150
+
151
+ ### docker-compose
152
+
153
+ - Implement project-agnostic docker-compose workflow ([e0d07689](https://github.com/underpostnet/engine/commit/e0d07689ceb9cf34a930c5f4120d8d5ab05f6ae8))
154
+ - Update subpath handling logic ([69fb72fc](https://github.com/underpostnet/engine/commit/69fb72fcb7f7ac87f67f71314d0580ec6a8052f8))
155
+
156
+ ### bin-deploy
157
+
158
+ - Fix add --ignore-not-found in 'pw-conf' runner ([2f14d2ab](https://github.com/underpostnet/engine/commit/2f14d2ab66357eb032266487e2dee5b614d1b697))
159
+
160
+ ### cyberia-docs
161
+
162
+ - Update docs for gateway and CLI changes ([c064f82a](https://github.com/underpostnet/engine/commit/c064f82ad3c315fec5ad7cbdd322d577bc311abf))
163
+ - Document edge tier architecture and CLI updates ([72760e40](https://github.com/underpostnet/engine/commit/72760e40eb9ea96999b94b5c7d916a21c04ac8ef))
164
+
165
+ ### cyberia-cli
166
+
167
+ - Refactor SSH port wait to shared utility ([cdf4c4f9](https://github.com/underpostnet/engine/commit/cdf4c4f922ee7980cf43111db1ef1c81578ad2a3))
168
+ - Add status page build and instance project resolution ([b1b0a840](https://github.com/underpostnet/engine/commit/b1b0a840e5cd7f7edf084bf86323dfdee7d56fd7))
169
+ - Fix SSR html views locations path ([1bf2843c](https://github.com/underpostnet/engine/commit/1bf2843c87607e5b9648f8ec98b35efca5d79b4a))
170
+ - Remove redundant logs ([3adba85f](https://github.com/underpostnet/engine/commit/3adba85fe5199972a8a0cd49f6be005c989f2145))
171
+
172
+ ### cli-image
173
+
174
+ - Implement crictlCommandFactory in image build ([69d24d66](https://github.com/underpostnet/engine/commit/69d24d66848fc27a2503193f82a31ef84435252f))
175
+
176
+ ### db
177
+
178
+ - Fix MongoDB replica set orphan recovery and improve bootstrap ([71b5f1a3](https://github.com/underpostnet/engine/commit/71b5f1a3e032f34c29a9a6b9251aac328c951872))
179
+
180
+ ### cyberia-client
181
+
182
+ - Fix instance selection play URL for default instance code ([efec4a34](https://github.com/underpostnet/engine/commit/efec4a34edbfb3aae780a42b02ad64d4d93791a1))
183
+
184
+ ## New release v:3.2.80 (2026-07-23)
4
185
 
5
186
  ### engine-cyberia
6
187