underpost 3.2.21 → 3.2.28
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.
- package/.github/workflows/ghpkg.ci.yml +1 -1
- package/.github/workflows/gitlab.ci.yml +1 -1
- package/.github/workflows/npmpkg.ci.yml +1 -1
- package/.github/workflows/publish.ci.yml +2 -2
- package/.github/workflows/pwa-microservices-template-page.cd.yml +1 -1
- package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
- package/CHANGELOG.md +178 -1
- package/CLI-HELP.md +58 -2
- package/README.md +3 -2
- package/baremetal/commission-workflows.json +1 -0
- package/bin/build.js +13 -1
- package/docker-compose.yml +224 -0
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/package.json +27 -15
- package/scripts/kubeadm-node-setup.sh +317 -0
- package/scripts/rocky-kickstart.sh +877 -185
- package/scripts/rpmfusion-ffmpeg-setup.sh +26 -50
- package/scripts/test-monitor.sh +242 -78
- package/src/cli/baremetal.js +717 -16
- package/src/cli/cluster.js +3 -1
- package/src/cli/deploy.js +11 -10
- package/src/cli/docker-compose.js +591 -0
- package/src/cli/fs.js +35 -11
- package/src/cli/index.js +83 -0
- package/src/cli/kickstart.js +142 -20
- package/src/cli/monitor.js +114 -29
- package/src/cli/repository.js +75 -11
- package/src/cli/run.js +275 -6
- package/src/cli/ssh.js +190 -0
- package/src/cli/static.js +2 -2
- package/src/client/components/core/PanelForm.js +44 -44
- package/src/{server → client-builder}/client-build-docs.js +15 -5
- package/src/{server → client-builder}/client-build-live.js +3 -3
- package/src/{server → client-builder}/client-build.js +25 -22
- package/src/{server → client-builder}/client-dev-server.js +3 -3
- package/src/{server → client-builder}/client-icons.js +2 -2
- package/src/{server → client-builder}/ssr.js +5 -5
- package/src/client.build.js +1 -1
- package/src/client.dev.js +1 -1
- package/src/index.js +12 -1
- package/src/mailer/EmailRender.js +1 -1
- package/src/{server → projects/underpost}/catalog-underpost.js +1 -2
- package/src/runtime/express/Express.js +2 -2
- package/src/runtime/nginx/Nginx.js +250 -0
- package/src/server/catalog.js +7 -14
- package/src/server/conf.js +61 -12
- package/src/server/start.js +17 -5
- package/src/server.js +1 -1
- package/test/deploy-monitor.test.js +33 -5
- package/typedoc.json +3 -1
- package/src/server/ipfs-client.js +0 -597
- /package/src/client/ssr/{Render.js → RootDocument.js} +0 -0
- /package/src/{server → client-builder}/client-formatted.js +0 -0
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
packages: write
|
|
18
18
|
id-token: write
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@v7
|
|
21
21
|
|
|
22
22
|
- name: Install required packages
|
|
23
23
|
run: |
|
|
@@ -54,7 +54,7 @@ jobs:
|
|
|
54
54
|
packages: write
|
|
55
55
|
id-token: write
|
|
56
56
|
steps:
|
|
57
|
-
- uses: actions/checkout@
|
|
57
|
+
- uses: actions/checkout@v7
|
|
58
58
|
|
|
59
59
|
- uses: actions/setup-node@v6
|
|
60
60
|
with:
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,183 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 2026-06-
|
|
3
|
+
## 2026-06-23
|
|
4
|
+
|
|
5
|
+
### hardhat
|
|
6
|
+
|
|
7
|
+
- Add chai devDependency in hardhat module ([bf20134d0](https://github.com/underpostnet/engine/commit/bf20134d0a61512b223b868129eed38c0e7583cf))
|
|
8
|
+
- Fix hardhat undici base dependency ([c9ad2a9f0](https://github.com/underpostnet/engine/commit/c9ad2a9f09d893495d3b80be400ca023c96e91cc))
|
|
9
|
+
- Hardhat 3 migration to nomicfoundation hardhat-toolbox-viem ([22c410635](https://github.com/underpostnet/engine/commit/22c4106355f3c7d6654f21179f131f6ed8fd20cc))
|
|
10
|
+
|
|
11
|
+
### deploy
|
|
12
|
+
|
|
13
|
+
- Fix verify secrets exists tls deployment in deploy pipeline ([0367676a9](https://github.com/underpostnet/engine/commit/0367676a9a6363e69f772739040bc100dc1c3ceb))
|
|
14
|
+
|
|
15
|
+
### run-cli
|
|
16
|
+
|
|
17
|
+
- move-node runner: Add skip the patch + rollout if the resource is already where node goal ([b88cf3c68](https://github.com/underpostnet/engine/commit/b88cf3c6833572e9128d4aa85eccf0c94b055609))
|
|
18
|
+
- Add node-move k8s crd between nodes runner ([4c0259a63](https://github.com/underpostnet/engine/commit/4c0259a63380fea6d5261f55f94ba8daf0d9783f))
|
|
19
|
+
|
|
20
|
+
### baremetal
|
|
21
|
+
|
|
22
|
+
- FIx kubeadm join node logic workflow ([72d7994a7](https://github.com/underpostnet/engine/commit/72d7994a7d978841df83854e1032f7fe79a7e185))
|
|
23
|
+
- Add flag --resume-infra-setup to restore ssh kubeadm remote node deployment ([78a41d400](https://github.com/underpostnet/engine/commit/78a41d4008eceb68a33a2445b4aafd4a7b5aa546))
|
|
24
|
+
- Add engine repo customization in control and worker node commission workflows ([2b8c47f52](https://github.com/underpostnet/engine/commit/2b8c47f52b0c4a1eff82bc8b6cf966aa58f0fece))
|
|
25
|
+
- Fix kubeadm join node logic in ssh remote commission workflows ([72f7e2527](https://github.com/underpostnet/engine/commit/72f7e252733be2f95f67afdfd758f471c1a590f6))
|
|
26
|
+
- Fix SELinux config in install chroot in os deployed ([e7d46472e](https://github.com/underpostnet/engine/commit/e7d46472e41d4beb992918a3c5e2274614818609))
|
|
27
|
+
- Add Timezone + keyboard now configured in the deployed OS ([de00c365d](https://github.com/underpostnet/engine/commit/de00c365d0a12d4abef9735f26dd4c56b77d5dc9))
|
|
28
|
+
- Implement user and ssh keys customization --deploy-id and --user flags in commission workflow ([ec0720230](https://github.com/underpostnet/engine/commit/ec07202309371c8e56df0c2dbe63e0283ccb5c8a))
|
|
29
|
+
- Implement worker and control plane automated infra setup post install os deploy ([d5edb41ab](https://github.com/underpostnet/engine/commit/d5edb41ab3855696198daa3ef44abe521768d260))
|
|
30
|
+
- Implement Automate Rocky Linux bare-metal deployment with SSH and disk detection ([2a0cbf5f1](https://github.com/underpostnet/engine/commit/2a0cbf5f1a90ebc1c4bdae0ea5f37fb16f1395c4))
|
|
31
|
+
|
|
32
|
+
### kickstart
|
|
33
|
+
|
|
34
|
+
- Fix rocky ephemeral commission ssh server exposure ([b5d3007f6](https://github.com/underpostnet/engine/commit/b5d3007f65e9df0affca1ca21ecdfb6cbbea1724))
|
|
35
|
+
|
|
36
|
+
### repository
|
|
37
|
+
|
|
38
|
+
- Enhance routePath candidates logic build ([a3d7fd806](https://github.com/underpostnet/engine/commit/a3d7fd8068e31fbdacc5b9832047f09f720ba30c))
|
|
39
|
+
|
|
40
|
+
### engine-cyberia
|
|
41
|
+
|
|
42
|
+
- Shrinks cyberia-client and cyberia-server production Dockerfile ([dd218c847](https://github.com/underpostnet/engine/commit/dd218c847bbc0c2e3662833607731a8bbe6815c9))
|
|
43
|
+
- Remove redundant saga index and fix null-safe frames access ([9947164e6](https://github.com/underpostnet/engine/commit/9947164e681ae7a5407af9227ae600c6a8a1aa84))
|
|
44
|
+
- Migrate saga generation from DeepSeek to Gemini with staged generation ([6322cd197](https://github.com/underpostnet/engine/commit/6322cd19774d94f312f64173cb41ba62d3c5bba3))
|
|
45
|
+
- Move cyberia server related modules to dedicated src/cyberia directory ([648309ece](https://github.com/underpostnet/engine/commit/648309ecee5b07bcf2132188d089c733f0646fb8))
|
|
46
|
+
- Introduce Top-Down PCG (Semantic Reverse-Engineering) modules and cli command ([5664f536c](https://github.com/underpostnet/engine/commit/5664f536c54446116296a465fc1efd63b1dece42))
|
|
47
|
+
- Clean up quotes and update comment in action service ([1668f95e6](https://github.com/underpostnet/engine/commit/1668f95e6fa266faba89dfecafe89b9654fd7b93))
|
|
48
|
+
- Split action-provider and quest-provider status icons ([e3186a37d](https://github.com/underpostnet/engine/commit/e3186a37d962980e34e0c29234bf4dd3388553e2))
|
|
49
|
+
- Add quest-by-cell lookup endpoint ([648eb1437](https://github.com/underpostnet/engine/commit/648eb14374a549f9e789a425533f9313b9292cfb))
|
|
50
|
+
- Implement base client component ActionEngineCyberia with map-driven quest and action management ([cc89512c0](https://github.com/underpostnet/engine/commit/cc89512c098729012d99e5817b29480808044885))
|
|
51
|
+
|
|
52
|
+
### docker-compose
|
|
53
|
+
|
|
54
|
+
- Implement base docker-compose engine integration ([3374c7f1a](https://github.com/underpostnet/engine/commit/3374c7f1a4379256db577988d841f414947db0c4))
|
|
55
|
+
|
|
56
|
+
### cyberia-cli
|
|
57
|
+
|
|
58
|
+
- Update default generate-saga temperature ([dbc5ce5b8](https://github.com/underpostnet/engine/commit/dbc5ce5b83a8268f342a3be3af8c21d1628578a0))
|
|
59
|
+
- In generate-saga pipeline add 'naming and character culture' customization ([516f0ded7](https://github.com/underpostnet/engine/commit/516f0ded7dde5d1990cde5a8e98b6a16807411db))
|
|
60
|
+
- Refactor generate saga pipeline general theme purpose ([993aac921](https://github.com/underpostnet/engine/commit/993aac921a5ba0a41dee8f53fb508505c900ad1e))
|
|
61
|
+
- Refactor saga pipeline replace THEME_DIMENSIONS to dedicated FACTIONS base theme scope ([1280edfde](https://github.com/underpostnet/engine/commit/1280edfdef885dd0e05afd00dd7dbb418a3d2896))
|
|
62
|
+
- Refactor theme dimension scope in generate-sage pipeline, add --tone and simplify 4 mains and add flag --temperature to customizaction ([cc0a3e245](https://github.com/underpostnet/engine/commit/cc0a3e245a3020246e71149d88ed6f026fdff7e2))
|
|
63
|
+
- Add maps semantic stage in generate-saga pipeline ([5c7bdab03](https://github.com/underpostnet/engine/commit/5c7bdab034a3de473e6197d5ffc5d3c61d71f4ef))
|
|
64
|
+
- Fix quest generation with talk objectives case and related logic ([c4d9e397c](https://github.com/underpostnet/engine/commit/c4d9e397c155d5d7c48e42f387c30263cde5c149))
|
|
65
|
+
- Add --space-context flag customization in generate-saga pipeline ([19d2f7ed6](https://github.com/underpostnet/engine/commit/19d2f7ed6aa8ea41ac72622c384f84a524464a4c))
|
|
66
|
+
- Generate saga command: Add lore-grounded auto-theme generation - Auto-synthesize saga themes from CYBERIA-LORE.md when --prompt is omitted - Add --lore-path option to override the base lore document - Add temperature support to GeminiClient.chatJson for varied output - Default --out to ./engine-private/cyberia-sagas/<saga-code>.json - Remove hard requirement for --prompt or --import - Update docs and help text to reflect auto-generation mode ([5b1a668a7](https://github.com/underpostnet/engine/commit/5b1a668a7c1e2b48652b717934d56ec6e9902d54))
|
|
67
|
+
|
|
68
|
+
### package
|
|
69
|
+
|
|
70
|
+
- Fix nodemailer version ([7d27b7f48](https://github.com/underpostnet/engine/commit/7d27b7f4826b656abdd1d2a10c5d5bb478cd90bf))
|
|
71
|
+
- Fix dependency vulnerability ([13991a0fe](https://github.com/underpostnet/engine/commit/13991a0fe4594887da89de16ac502be4ef7112cb))
|
|
72
|
+
|
|
73
|
+
### cyberia-docs
|
|
74
|
+
|
|
75
|
+
- Add base Cyberia Lore: The Frontier of Hyperspace ([d389b881f](https://github.com/underpostnet/engine/commit/d389b881ff8dadb9154bb1f7078a515246150031))
|
|
76
|
+
|
|
77
|
+
### build
|
|
78
|
+
|
|
79
|
+
- Fix catalog generic deploy-id handling ([413f3fc63](https://github.com/underpostnet/engine/commit/413f3fc63851d678267a5618c6779fffc49cb14e))
|
|
80
|
+
|
|
81
|
+
### engine
|
|
82
|
+
|
|
83
|
+
- Refactor introduce new projects module and client-builder modules split from server ([4d14ee552](https://github.com/underpostnet/engine/commit/4d14ee552258cb3c2f70e43291945798b4d95f1a))
|
|
84
|
+
|
|
85
|
+
### api
|
|
86
|
+
|
|
87
|
+
- Introduce base cyberia-saga api / model ([2f02f5d6a](https://github.com/underpostnet/engine/commit/2f02f5d6a2ff2258146498bb50ac3e65b51beced))
|
|
88
|
+
- Update canonical action defaults with typed quest dialogues and add Wason errand quest ([5e380abee](https://github.com/underpostnet/engine/commit/5e380abeef4954567717138af5218b506b3da414))
|
|
89
|
+
- Refactor action model: remove type and grantQuestCode, add per-quest dialogue map and getByCode endpoint ([3ce9f4c18](https://github.com/underpostnet/engine/commit/3ce9f4c18ef993da85fe5f9b10b61cf7987e5457))
|
|
90
|
+
- Update quest defaults: replace SCP-2040 references with Kishins ([bf6fa827d](https://github.com/underpostnet/engine/commit/bf6fa827d0fffbe5fcf97756263af50eade0af4b))
|
|
91
|
+
- Add fallback defaults to dialogue and quest services ([ab2894dd4](https://github.com/underpostnet/engine/commit/ab2894dd4f591cc7247d6708a25ea737ea059c56))
|
|
92
|
+
- Refactor CyberiaAction model to cell-based binding and remove provideItemId ([614a2aa60](https://github.com/underpostnet/engine/commit/614a2aa60bfa8e2330722c9c4e9fea4afc3adf3c))
|
|
93
|
+
- Add quest metadata REST endpoint GET /api/cyberia-quest/code/:code ([c6f7cfa94](https://github.com/underpostnet/engine/commit/c6f7cfa94a4b3cc9f398cd63c24082b8c47db642))
|
|
94
|
+
|
|
95
|
+
### grpc
|
|
96
|
+
|
|
97
|
+
- Scope quest delivery to instance map codes ([d357c0cce](https://github.com/underpostnet/engine/commit/d357c0cce491078ea00a294f15f1b886fb92c05d))
|
|
98
|
+
- Add prerequisiteCodes and canonical item fallback to instance config ([e34683e23](https://github.com/underpostnet/engine/commit/e34683e2372f48be034435fc2ce25915e5447aad))
|
|
99
|
+
|
|
100
|
+
### hardhar
|
|
101
|
+
|
|
102
|
+
- Fix prevent crash build due coverage build: Error HHE905: Couldn't download compiler version list. ([b841b5598](https://github.com/underpostnet/engine/commit/b841b55980cc5a3d19b6413f2ebb72c45b8906fb))
|
|
103
|
+
|
|
104
|
+
### cli-run
|
|
105
|
+
|
|
106
|
+
- Add shared-dir-add-user runner: Add user to an existing shared directory without changing file owners ([b5c7ea7c8](https://github.com/underpostnet/engine/commit/b5c7ea7c83cf85775eaf3fc3071097f2e5e9d59f))
|
|
107
|
+
|
|
108
|
+
### scripts
|
|
109
|
+
|
|
110
|
+
- Update scripts/rpmfusion-ffmpeg-setup.sh ([975f7e9f3](https://github.com/underpostnet/engine/commit/975f7e9f30f7f224bcf0faa78a617b7f67fc6c96))
|
|
111
|
+
|
|
112
|
+
### client-cyberia
|
|
113
|
+
|
|
114
|
+
- Update default bot skin in fallback world ([a7df2b9f6](https://github.com/underpostnet/engine/commit/a7df2b9f6fd80c62b1aa3fff2ce58d0a3dc18d7a))
|
|
115
|
+
- Fix headerName of metadata cid and render cid in ObjectLayerManagement component ([1d1419001](https://github.com/underpostnet/engine/commit/1d14190017c6b080c502a9478f65a35364c413df))
|
|
116
|
+
- Add Kishins skin item to shared defaults ([acf13ba0e](https://github.com/underpostnet/engine/commit/acf13ba0e2a6acabc7ee1ee233275cdb31311c0d))
|
|
117
|
+
- Fix render section title label in ObjectLayerEngineModal ([2b9a88bed](https://github.com/underpostnet/engine/commit/2b9a88bed67fe2b205f648050af411a9c1e7588d))
|
|
118
|
+
|
|
119
|
+
### docs
|
|
120
|
+
|
|
121
|
+
- Update action and quest system documentation for cell-based binding and explicit quest accept ([fadd9e360](https://github.com/underpostnet/engine/commit/fadd9e3605e686d8487aad1ef28b2668388256c4))
|
|
122
|
+
- Update quest system documentation with kill and collect objective details ([1695e17d9](https://github.com/underpostnet/engine/commit/1695e17d9ec628ed9907859d6dd4ec890f113240))
|
|
123
|
+
- Document mission system: action-provider NPCs and fallback world instantiation ([469094678](https://github.com/underpostnet/engine/commit/469094678a35d4bbd03c79181f78d7720614179c))
|
|
124
|
+
- Update cyberia client docs url env parsing ([77923cfa4](https://github.com/underpostnet/engine/commit/77923cfa4977fd21ed5acbe6e2e5dfdaa70a614d))
|
|
125
|
+
|
|
126
|
+
### cyberia-instance
|
|
127
|
+
|
|
128
|
+
- Give action provider NPCs small wander radius ([b56389b5a](https://github.com/underpostnet/engine/commit/b56389b5a63b964ee1c94fcce0d9dafea4c1b2f6))
|
|
129
|
+
- Add action-provider NPC generation and cell reservation to fallback world builder ([985ba010c](https://github.com/underpostnet/engine/commit/985ba010c0ca76dc10bd12fffbc07871c01e0e90))
|
|
130
|
+
|
|
131
|
+
### grcp
|
|
132
|
+
|
|
133
|
+
- Deliver actions and quests in InstanceConfig for mission content ([e26466e9a](https://github.com/underpostnet/engine/commit/e26466e9a401ada9a5add5b658243e9cf34879a9))
|
|
134
|
+
|
|
135
|
+
### cli-cyberia
|
|
136
|
+
|
|
137
|
+
- Add DefaultCyberiaActions, DefaultCyberiaQuests, and seed-actions-quests CLI command ([cc9f21377](https://github.com/underpostnet/engine/commit/cc9f21377ba77c0e141d153f852dbb9777d74525))
|
|
138
|
+
|
|
139
|
+
### fs
|
|
140
|
+
|
|
141
|
+
- Add Single-file handling in upload use case in cloudinary storage ([6061d8bf2](https://github.com/underpostnet/engine/commit/6061d8bf290f00c2c4e46a0206419ba4b1119f2e))
|
|
142
|
+
|
|
143
|
+
## New release v:3.2.22 (2026-06-07)
|
|
144
|
+
|
|
145
|
+
### repository
|
|
146
|
+
|
|
147
|
+
- Add safe repo config in pullSourceRepo ([4325c1ba7](https://github.com/underpostnet/engine/commit/4325c1ba736b4e2fa64f0570dc5bedb9b33e351f))
|
|
148
|
+
|
|
149
|
+
### docs
|
|
150
|
+
|
|
151
|
+
- Restore runtimeConfig docs logic ([819792d1d](https://github.com/underpostnet/engine/commit/819792d1de4e20e490c7bdffca66f794ef810868))
|
|
152
|
+
- Enhance favicon resolution logic in buildJsDocs function to handle missing files ([4b4b6cca2](https://github.com/underpostnet/engine/commit/4b4b6cca2b31f1b41c1e893e58a3bb94b67c4f26))
|
|
153
|
+
- Fix favicon path resolution in buildJsDocs function to handle missing files ([a572ffaf8](https://github.com/underpostnet/engine/commit/a572ffaf88de3e07b0c90fb485f57e9032d4e5bb))
|
|
154
|
+
- Update favicon path in buildJsDocs function to use publicClientId for dynamic resolution ([d839d6a02](https://github.com/underpostnet/engine/commit/d839d6a02b6a49a2aa6923ce5392ff4509c36f43))
|
|
155
|
+
|
|
156
|
+
### monitor
|
|
157
|
+
|
|
158
|
+
- Add support for custom image names in deployment scripts ([2d4ddf731](https://github.com/underpostnet/engine/commit/2d4ddf731565e45e90b7e105ce17e6a56862e17f))
|
|
159
|
+
- Enhance transport handling in UnderpostMonitor: Default to exec, add opt-in for http ([eebe7ef03](https://github.com/underpostnet/engine/commit/eebe7ef0318e3bbe2533e31701bba7af9483e73c))
|
|
160
|
+
- Refactor test-monitor script: Enhance deployment modes and flag parsing ([07b65b004](https://github.com/underpostnet/engine/commit/07b65b0040d34883f67ebf6d9fa61872ff4c81f2))
|
|
161
|
+
- Enhance runtime status handling with exec transport and kubernetes gate ([135773938](https://github.com/underpostnet/engine/commit/135773938dcbd4e466e09afea73ccc8994a6509e))
|
|
162
|
+
|
|
163
|
+
### deploy
|
|
164
|
+
|
|
165
|
+
- Refactor deployment commands to use dynamic node names and update MongoDB flag in run command ([b6a1dc9c7](https://github.com/underpostnet/engine/commit/b6a1dc9c751a09fd677d9778b252d967a08225cb))
|
|
166
|
+
|
|
167
|
+
### cli-start
|
|
168
|
+
|
|
169
|
+
- Add error handling for deployment build/init process in UnderpostStartUp class ([6c7d7e056](https://github.com/underpostnet/engine/commit/6c7d7e0568903f89a0a3a06683b726e4f34fa843))
|
|
170
|
+
- Add support for private test repositories in build and monitor scripts ([23837d02b](https://github.com/underpostnet/engine/commit/23837d02b6a250ecc420e903a095d5be397494bb))
|
|
171
|
+
|
|
172
|
+
### ipfs
|
|
173
|
+
|
|
174
|
+
- Refactor IPFS API URL functions to include container check for development environment ([61e3fcd1e](https://github.com/underpostnet/engine/commit/61e3fcd1e08b9ec43dca29a151a4309f2a44f276))
|
|
175
|
+
|
|
176
|
+
### client-core
|
|
177
|
+
|
|
178
|
+
- Fix bug Panel component; when the user writes markdown content but uploads missing reload md file ([f91da9780](https://github.com/underpostnet/engine/commit/f91da97807b991bf9c6b8693c9c97bb8365df6f4))
|
|
179
|
+
|
|
180
|
+
## New release v:3.2.21 (2026-06-06)
|
|
4
181
|
|
|
5
182
|
### release
|
|
6
183
|
|
package/CLI-HELP.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## Underpost CLI
|
|
2
2
|
|
|
3
|
-
> underpost ci/cd cli v3.2.
|
|
3
|
+
> underpost ci/cd cli v3.2.28
|
|
4
4
|
|
|
5
5
|
**Usage:** `underpost [options] [command]`
|
|
6
6
|
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
| [`monitor`](#underpost-monitor) | Manages health server monitoring for specified deployments. |
|
|
41
41
|
| [`ssh`](#underpost-ssh) | Manages SSH credentials and sessions for remote access to cluster nodes or services. |
|
|
42
42
|
| [`run`](#underpost-run) | Runs specified scripts using various runners. |
|
|
43
|
+
| [`docker-compose`](#underpost-docker-compose) | General-purpose Docker Compose development pipeline (mirrors the Kubernetes dev stack). |
|
|
43
44
|
| [`lxd`](#underpost-lxd) | Manages LXD virtual machines as K3s nodes (control plane or workers). |
|
|
44
45
|
| [`baremetal`](#underpost-baremetal) | Manages baremetal server operations, including installation, database setup, commissioning, and user management. |
|
|
45
46
|
| [`release`](#underpost-release) | Release orchestrator for building new versions and deploying releases of the Underpost CLI. |
|
|
@@ -132,6 +133,7 @@ Initiates application servers, build pipelines, or other defined services based
|
|
|
132
133
|
| `--skip-pull-base` | Skips cloning repositories, uses current workspace code directly. |
|
|
133
134
|
| `--skip-full-build` | Skips the full client bundle build during deployment. |
|
|
134
135
|
| `--pull-bundle` | Downloads the pre-built client bundle from Cloudinary via pull-bundle before starting. Use together with --skip-full-build to skip the local build entirely. |
|
|
136
|
+
| `--private-test-repo` | During --build, clone the private test source repo (engine-test-<id>) instead of the production engine-<id> repo. |
|
|
135
137
|
| `-h, --help` | display help for command |
|
|
136
138
|
|
|
137
139
|
---
|
|
@@ -814,7 +816,7 @@ Runs specified scripts using various runners.
|
|
|
814
816
|
|
|
815
817
|
| Argument | Description |
|
|
816
818
|
| --- | --- |
|
|
817
|
-
| `runner-id` | The runner ID to run. Options: dev-cluster,etc-hosts,ipfs-expose,metadata,svc-ls,svc-rm,ssh-deploy-info,dev-hosts-expose,dev-hosts-restore,cluster-build,template-deploy,template-deploy-local,docker-image,clean,pull,release-deploy,ssh-deploy,ide,crypto-policy,sync,stop,ssh-deploy-stop,ssh-deploy-db-rollback,ssh-deploy-db,ssh-deploy-db-status,tz,get-proxy,instance-promote,instance,instance-build-manifest,ls-deployments,host-update,install-crio,dd-container,ip-info,db-client,git-conf,promote,metrics,cluster,deploy,disk-clean,disk-devices,disk-usage,dev,service,sh,log,ps,pid-info,background,ports,deploy-test,tf-vae-test,spark-template,pull-rocky-image,rmi,kill,generate-pass,secret,underpost-config,gpu-env,tf-gpu-test,deploy-job,push-bundle,pull-bundle,build-cluster-deployment-manifests,monitor-ui,shared-dir. |
|
|
819
|
+
| `runner-id` | The runner ID to run. Options: dev-cluster,etc-hosts,ipfs-expose,metadata,svc-ls,svc-rm,ssh-deploy-info,node-move,dev-hosts-expose,dev-hosts-restore,cluster-build,template-deploy,template-deploy-local,docker-image,clean,pull,release-deploy,ssh-deploy,ide,crypto-policy,sync,stop,ssh-deploy-stop,ssh-deploy-db-rollback,ssh-deploy-db,ssh-deploy-db-status,tz,get-proxy,instance-promote,instance,instance-build-manifest,ls-deployments,host-update,install-crio,dd-container,ip-info,db-client,git-conf,promote,metrics,cluster,deploy,disk-clean,disk-devices,disk-usage,dev,service,sh,log,ps,pid-info,background,ports,deploy-test,tf-vae-test,spark-template,pull-rocky-image,rmi,kill,generate-pass,secret,underpost-config,gpu-env,tf-gpu-test,deploy-job,push-bundle,pull-bundle,build-cluster-deployment-manifests,monitor-ui,shared-dir,shared-dir-add-user. |
|
|
818
820
|
| `path` | The input value, identifier, or path for the operation. |
|
|
819
821
|
|
|
820
822
|
#### Options
|
|
@@ -888,6 +890,46 @@ Runs specified scripts using various runners.
|
|
|
888
890
|
| `--skip-full-build` | Skip client bundle rebuild; triggers pull-bundle in container startup (supported by: sync, template-deploy). |
|
|
889
891
|
| `--pull-bundle` | Explicitly download the pre-built client bundle from Cloudinary inside the container (supported by: sync, template-deploy). Use together with --skip-full-build. |
|
|
890
892
|
| `--remove` | Remove/teardown resources |
|
|
893
|
+
| `--test` | Enables test/generic-purpose mode for the runner (e.g. use self-signed TLS instead of cert-manager). |
|
|
894
|
+
| `-h, --help` | display help for command |
|
|
895
|
+
|
|
896
|
+
---
|
|
897
|
+
|
|
898
|
+
### underpost docker-compose
|
|
899
|
+
|
|
900
|
+
General-purpose Docker Compose development pipeline (mirrors the Kubernetes dev stack).
|
|
901
|
+
|
|
902
|
+
**Usage:** `underpost docker-compose [options] [target]`
|
|
903
|
+
|
|
904
|
+
#### Arguments
|
|
905
|
+
|
|
906
|
+
| Argument | Description |
|
|
907
|
+
| --- | --- |
|
|
908
|
+
| `target` | Optional service name for --logs, --shell, --restart, or --build. |
|
|
909
|
+
|
|
910
|
+
#### Options
|
|
911
|
+
|
|
912
|
+
| Option | Description |
|
|
913
|
+
| --- | --- |
|
|
914
|
+
| `--install` | Install Docker Engine and the Compose v2 plugin on RHEL/Rocky hosts. |
|
|
915
|
+
| `--reset` | Comprehensive teardown (equivalent to cluster --reset): removes all stack containers, the network, named volumes (destroys data), orphans, and generated artifacts. |
|
|
916
|
+
| `--force` | Force reinstall (--install), remove volumes (--down), or also drop the env-file (--reset). |
|
|
917
|
+
| `--deploy-id <deploy-id>` | Deployment to run as the app container (default: dd-default). 'dd-default' self-bootstraps a fresh engine; any other id runs the standard 'underpost start' command (mirrors src/cli/deploy.js). |
|
|
918
|
+
| `--env <env>` | Deployment environment for non-default deploy ids (default: development). |
|
|
919
|
+
| `--generate` | Render dynamic supporting files (nginx router config, env-file, app-command override). |
|
|
920
|
+
| `--up` | Start the full stack detached (regenerates config first). |
|
|
921
|
+
| `--down` | Stop and remove containers (and orphans). |
|
|
922
|
+
| `--volumes` | With --down, also remove named volumes (destroys persisted data). |
|
|
923
|
+
| `--restart` | Restart services (optionally a single [target]). |
|
|
924
|
+
| `--build` | With --up rebuild images; alone, rebuilds images with --no-cache. |
|
|
925
|
+
| `--pull` | Pull upstream images for all services. |
|
|
926
|
+
| `--logs` | Follow logs for all services (optionally a single [target]). |
|
|
927
|
+
| `--status` | Show a formatted status table of services. |
|
|
928
|
+
| `--shell` | Open an interactive shell in [target] (default: app). |
|
|
929
|
+
| `--exec <subcommand>` | General-purpose passthrough docker compose subcommand. |
|
|
930
|
+
| `--compose-file <path>` | Path to the compose file (default: docker-compose.yml). |
|
|
931
|
+
| `--env-file <path>` | Path to the compose env-file (default: docker/compose.env). |
|
|
932
|
+
| `--nginx-conf <path>` | Path to the generated nginx config (default: docker/nginx/default.conf). |
|
|
891
933
|
| `-h, --help` | display help for command |
|
|
892
934
|
|
|
893
935
|
---
|
|
@@ -974,6 +1016,18 @@ Manages baremetal server operations, including installation, database setup, com
|
|
|
974
1016
|
| `--remove-machines <system-ids>` | Removes baremetal machines by comma-separated system IDs, or use "all" |
|
|
975
1017
|
| `--clear-discovered` | Clears all discovered baremetal machines from the database. |
|
|
976
1018
|
| `--commission` | Init workflow for commissioning a physical machine. |
|
|
1019
|
+
| `--install-disk [device]` | Explicit target install disk for Rocky deployment (e.g. /dev/nvme0n1). Omit or leave empty to auto-detect the internal disk. |
|
|
1020
|
+
| `--no-auto-install` | Disables the ephemeral runtime AUTO_INSTALL fallback (controller must trigger install). |
|
|
1021
|
+
| `--no-remote-install` | Skips the controller-side remote install orchestration over SSH. |
|
|
1022
|
+
| `--worker` | Post-install infra role: join the deployed node as a Kubernetes worker (requires --control <ip>). Without this flag the node is set up as a control-plane. |
|
|
1023
|
+
| `--control <ip>` | Control-plane IP the worker node joins (used with --worker for kubeadm infra setup). |
|
|
1024
|
+
| `--ssh-key-dir <dir>` | Directory holding the SSH key pair used for commissioning/orchestration (expects <dir>/id_rsa and <dir>/id_rsa.pub). Overrides the workflow "sshKeyDir"; defaults to engine-private/deploy. Supports a leading ~. |
|
|
1025
|
+
| `--deploy-id <deploy-id>` | Deployment ID whose user key pair is used for SSH (key from engine-private/conf/<deploy-id>/users/<user>/id_rsa). Same user↔deployId↔key convention as the ssh command. |
|
|
1026
|
+
| `--user <user>` | SSH user paired with --deploy-id for key resolution and the login user on an existing control-plane (defaults to root). Mirrors the ssh command --user. |
|
|
1027
|
+
| `--engine-repo <url>` | Custom engine repo cloned + normalized to /home/dd/engine on the node (default: <GITHUB_USERNAME>/engine). |
|
|
1028
|
+
| `--engine-branch <branch>` | Branch of the engine repo to clone on the node. |
|
|
1029
|
+
| `--engine-private-repo <url>` | Custom private repo cloned + normalized to /home/dd/engine/engine-private on the node (default: <GITHUB_USERNAME>/engine-<id>-private). |
|
|
1030
|
+
| `--engine-private-branch <branch>` | Branch of the engine-private repo to clone on the node. |
|
|
977
1031
|
| `--bootstrap-http-server-run` | Runs a temporary bootstrap HTTP server for generic purposes such as serving iPXE scripts or ISO images during commissioning. |
|
|
978
1032
|
| `--bootstrap-http-server-path <path>` | Sets a custom bootstrap HTTP server path for baremetal commissioning. |
|
|
979
1033
|
| `--bootstrap-http-server-port <port>` | Sets a custom bootstrap HTTP server port for baremetal commissioning. |
|
|
@@ -995,6 +1049,8 @@ Manages baremetal server operations, including installation, database setup, com
|
|
|
995
1049
|
| `--logs <log-id>` | Displays logs for log id: dhcp,dhcp-lease,dhcp-lan,cloud-init,cloud-init-machine,cloud-init-config |
|
|
996
1050
|
| `--dev` | Sets the development context environment for baremetal operations. |
|
|
997
1051
|
| `--ls` | Lists available boot resources and machines. |
|
|
1052
|
+
| `--resume-infra-setup` | Skip commissioning, OS install, and all bootstrapping; resume only the SSH-based infra setup (kubeadm join/init) on a node that already has the OS installed and is reachable via SSH. |
|
|
1053
|
+
| `--resume-join` | Skip everything except the kubeadm join command. Assumes engine, Node.js, CRI-O, kubelet, and kubeadm are already installed. Only retrieves a fresh join token from the control-plane and runs kubeadm join. |
|
|
998
1054
|
| `-h, --help` | display help for command |
|
|
999
1055
|
|
|
1000
1056
|
---
|
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<div align="center">
|
|
18
18
|
|
|
19
|
-
[](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [](https://www.npmjs.com/package/underpost) [](https://www.jsdelivr.com/package/npm/underpost) [](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [](https://www.npmjs.com/package/underpost) [](https://www.jsdelivr.com/package/npm/underpost) [](https://socket.dev/npm/package/underpost/overview/3.2.28) [](https://coveralls.io/github/underpostnet/engine?branch=master) [](https://www.npmjs.org/package/underpost) [](https://www.npmjs.com/package/underpost)
|
|
20
20
|
|
|
21
21
|
</div>
|
|
22
22
|
|
|
@@ -88,7 +88,7 @@ npm run dev
|
|
|
88
88
|
<!-- cli-index-start -->
|
|
89
89
|
## Underpost CLI
|
|
90
90
|
|
|
91
|
-
> underpost ci/cd cli v3.2.
|
|
91
|
+
> underpost ci/cd cli v3.2.28
|
|
92
92
|
|
|
93
93
|
**Usage:** `underpost [options] [command]`
|
|
94
94
|
|
|
@@ -128,6 +128,7 @@ npm run dev
|
|
|
128
128
|
| [`monitor`](CLI-HELP.md#underpost-monitor) | Manages health server monitoring for specified deployments. |
|
|
129
129
|
| [`ssh`](CLI-HELP.md#underpost-ssh) | Manages SSH credentials and sessions for remote access to cluster nodes or services. |
|
|
130
130
|
| [`run`](CLI-HELP.md#underpost-run) | Runs specified scripts using various runners. |
|
|
131
|
+
| [`docker-compose`](CLI-HELP.md#underpost-docker-compose) | General-purpose Docker Compose development pipeline (mirrors the Kubernetes dev stack). |
|
|
131
132
|
| [`lxd`](CLI-HELP.md#underpost-lxd) | Manages LXD virtual machines as K3s nodes (control plane or workers). |
|
|
132
133
|
| [`baremetal`](CLI-HELP.md#underpost-baremetal) | Manages baremetal server operations, including installation, database setup, commissioning, and user management. |
|
|
133
134
|
| [`release`](CLI-HELP.md#underpost-release) | Release orchestrator for building new versions and deploying releases of the Underpost CLI. |
|
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
"type": "iso-ram",
|
|
175
175
|
"osIdLike": "rhel centos fedora",
|
|
176
176
|
"architecture": "amd64",
|
|
177
|
+
"infraSetup": "underpost-kubeadm-contour",
|
|
177
178
|
"isoUrl": "https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9-latest-x86_64-boot.iso",
|
|
178
179
|
"tftpPrefix": "envy-rocky9",
|
|
179
180
|
"bootstrapHttpServerPort": 8888,
|
package/bin/build.js
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
syncPrivateConf,
|
|
12
12
|
syncDeployIdSources,
|
|
13
13
|
buildTemplate,
|
|
14
|
+
updatePrivateEngineTestRepo,
|
|
14
15
|
} from '../src/server/conf.js';
|
|
15
16
|
import { loadDeployCatalog } from '../src/server/catalog.js';
|
|
16
17
|
import UnderpostRepository from '../src/cli/repository.js';
|
|
@@ -139,6 +140,7 @@ const buildDeployTemplate = async (confName) => {
|
|
|
139
140
|
break;
|
|
140
141
|
}
|
|
141
142
|
default:
|
|
143
|
+
for (const path of catalog.templatePaths) fs.copySync(`.${path}`, `${basePath}${path}`);
|
|
142
144
|
break;
|
|
143
145
|
}
|
|
144
146
|
|
|
@@ -191,6 +193,11 @@ program
|
|
|
191
193
|
'--no-template-rebuild',
|
|
192
194
|
'Skip the from-scratch base template reconstruction before assembly (assemble onto the existing template).',
|
|
193
195
|
)
|
|
196
|
+
.option(
|
|
197
|
+
'--update-private',
|
|
198
|
+
'After assembling each deploy id, publish it to its private test source repo (underpostnet/engine-test-<id>) for isolated test deploys.',
|
|
199
|
+
false,
|
|
200
|
+
)
|
|
194
201
|
.action(async (confName, env, options) => {
|
|
195
202
|
const deployList = resolveDeployList(confName);
|
|
196
203
|
logger.info('Build repository', { confName, basePath, deployList, conf: !!options.conf });
|
|
@@ -207,7 +214,12 @@ program
|
|
|
207
214
|
// build run leaks into this one. Opt out with --no-template-rebuild.
|
|
208
215
|
if (options.templateRebuild) await buildTemplate({ toPath: basePath });
|
|
209
216
|
|
|
210
|
-
for (const deployId of deployList)
|
|
217
|
+
for (const deployId of deployList) {
|
|
218
|
+
await buildDeployTemplate(deployId);
|
|
219
|
+
// Publish the just-assembled tree to the deploy id's private test repo so a
|
|
220
|
+
// pod started with `--private-test-repo` clones this work-in-progress source.
|
|
221
|
+
if (options.updatePrivate) await updatePrivateEngineTestRepo(deployId);
|
|
222
|
+
}
|
|
211
223
|
});
|
|
212
224
|
|
|
213
225
|
await program.parseAsync();
|