underpost 3.2.12 → 3.2.21

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/CLI-HELP.md CHANGED
@@ -1,1187 +1,1030 @@
1
- ## underpost ci/cd cli v3.2.12
2
-
3
- ### Usage: `underpost [options] [command]`
4
- ```
5
- Options:
6
- -V, --version output the version number
7
- -h, --help display help for command
8
-
9
- Commands:
10
- new [options] [app-name] Initializes a new Underpost project, service, or configuration.
11
- client [options] [deploy-id] [sub-conf] [host] [path] Builds client assets, single replicas, and/or syncs environment ports.
12
- start [options] <deploy-id> [env] Initiates application servers, build pipelines, or other defined services based on the deployment ID.
13
- clone [options] <uri> Clones a specified GitHub repository into the current directory.
14
- pull [options] <path> <uri> Pulls the latest changes from a specified GitHub repository.
15
- cmt [options] [path] [commit-type] [module-tag] [message] Manages commits to a GitHub repository, supporting various commit types and options.
16
- push [options] <path> <uri> Pushes committed changes from a local repository to a remote GitHub repository.
17
- env [deploy-id] [env] [subConf] Sets environment variables and configurations related to a specific deployment ID.
18
- static [options] Manages static build of page, bundles, and documentation with comprehensive customization options.
19
- config [options] <operator> [key] [value] Manages Underpost configurations using various operators.
20
- root Displays the root path of the npm installation.
21
- ip [options] [ips] Displays the current public machine IP addresses.
22
- cluster [options] [pod-name] Manages Kubernetes clusters, defaulting to Kind cluster initialization.
23
- deploy [options] [deploy-list] [env] Manages application deployments, defaulting to deploying development pods.
24
- secret [options] <platform> Manages secrets for various platforms.
25
- image [options] Manages Docker images, including building, saving, and loading into Kubernetes clusters.
26
- install Quickly imports Underpost npm dependencies by copying them.
27
- db [options] [deploy-list] Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
28
- metadata [options] [deploy-id] [host] [path] Manages cluster metadata operations, including import and export.
29
- cron [options] [deploy-list] [job-list] Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests.
30
- fs [options] [path] Manages file storage, defaulting to file upload operations.
31
- test [options] [deploy-list] Manages and runs tests, defaulting to the current Underpost default test suite.
32
- monitor [options] <deploy-id> [env] Manages health server monitoring for specified deployments.
33
- ssh [options] Manages SSH credentials and sessions for remote access to cluster nodes or services.
34
- run [options] <runner-id> [path] Runs specified scripts using various runners.
35
- lxd [options] [vm-id] Manages LXD virtual machines as K3s nodes (control plane or workers).
36
- baremetal [options] [workflow-id] Manages baremetal server operations, including installation, database setup, commissioning, and user management.
37
- release [options] [version] Release orchestrator for building new versions and deploying releases of the Underpost CLI.
38
- help [command] display help for command
39
-
40
- ```
41
-
42
- ## Commands:
43
-
44
-
45
- ### `new` :
46
- ```
47
- Usage: underpost new [options] [app-name]
1
+ ## Underpost CLI
2
+
3
+ > underpost ci/cd cli v3.2.21
4
+
5
+ **Usage:** `underpost [options] [command]`
6
+
7
+ ### Global options
8
+
9
+ | Option | Description |
10
+ | --- | --- |
11
+ | `-V, --version` | output the version number |
12
+ | `-h, --help` | display help for command |
13
+
14
+ ### Commands
15
+
16
+ | Command | Description |
17
+ | --- | --- |
18
+ | [`new`](#underpost-new) | Initializes a new Underpost project, service, or configuration. |
19
+ | [`client`](#underpost-client) | Builds client assets, single replicas, and/or syncs environment ports. |
20
+ | [`start`](#underpost-start) | Initiates application servers, build pipelines, or other defined services based on the deployment ID. |
21
+ | [`clone`](#underpost-clone) | Clones a specified GitHub repository into the current directory. |
22
+ | [`pull`](#underpost-pull) | Pulls the latest changes from a specified GitHub repository. |
23
+ | [`cmt`](#underpost-cmt) | Manages commits to a GitHub repository, supporting various commit types and options. |
24
+ | [`push`](#underpost-push) | Pushes committed changes from a local repository to a remote GitHub repository. |
25
+ | [`env`](#underpost-env) | Sets environment variables and configurations related to a specific deployment ID. |
26
+ | [`static`](#underpost-static) | Manages static build of page, bundles, and documentation with comprehensive customization options. |
27
+ | [`config`](#underpost-config) | Manages Underpost configurations using various operators. |
28
+ | [`root`](#underpost-root) | Displays the root path of the npm installation. |
29
+ | [`ip`](#underpost-ip) | Displays the current public machine IP addresses. |
30
+ | [`cluster`](#underpost-cluster) | Manages Kubernetes clusters, defaulting to Kind cluster initialization. |
31
+ | [`deploy`](#underpost-deploy) | Manages application deployments, defaulting to deploying development pods. |
32
+ | [`secret`](#underpost-secret) | Manages secrets for various platforms. |
33
+ | [`image`](#underpost-image) | Manages Docker images, including building, saving, and loading into Kubernetes clusters. |
34
+ | [`install`](#underpost-install) | Quickly imports Underpost npm dependencies by copying them. |
35
+ | [`db`](#underpost-db) | Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration. |
36
+ | [`metadata`](#underpost-metadata) | Manages cluster metadata operations, including import and export. |
37
+ | [`cron`](#underpost-cron) | Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests. |
38
+ | [`fs`](#underpost-fs) | Manages file storage, defaulting to file upload operations. |
39
+ | [`test`](#underpost-test) | Manages and runs tests, defaulting to the current Underpost default test suite. |
40
+ | [`monitor`](#underpost-monitor) | Manages health server monitoring for specified deployments. |
41
+ | [`ssh`](#underpost-ssh) | Manages SSH credentials and sessions for remote access to cluster nodes or services. |
42
+ | [`run`](#underpost-run) | Runs specified scripts using various runners. |
43
+ | [`lxd`](#underpost-lxd) | Manages LXD virtual machines as K3s nodes (control plane or workers). |
44
+ | [`baremetal`](#underpost-baremetal) | Manages baremetal server operations, including installation, database setup, commissioning, and user management. |
45
+ | [`release`](#underpost-release) | Release orchestrator for building new versions and deploying releases of the Underpost CLI. |
46
+
47
+ ## Command reference
48
+
49
+ ### underpost new
48
50
 
49
51
  Initializes a new Underpost project, service, or configuration.
50
52
 
51
- Arguments:
52
- app-name The name of the new project.
53
-
54
- Options:
55
- --deploy-id <deploy-id> Create deploy ID conf env files
56
- --sub-conf <sub-conf> Create sub conf env files
57
- --cluster Create deploy ID cluster files and sync to
58
- current cluster
59
- --build-repos Create deploy ID repositories
60
- --build Build the deployment to
61
- pwa-microservices-template (requires
62
- --deploy-id)
63
- --clean-template Clean the build directory
64
- (pwa-microservices-template)
65
- --sync-conf Sync configuration to private repositories
66
- (requires --deploy-id)
67
- --sync-start Sync start scripts in deploy ID package.json
68
- with root package.json (use 'dd' as
69
- --deploy-id to sync all dd.router)
70
- --purge Remove deploy ID conf and all related
71
- repositories (requires --deploy-id)
72
- --dev Sets the development cli context
73
- --default-conf Create default deploy ID conf env files
74
- --conf-workflow-id <workflow-id> Set custom configuration workflow ID for
75
- conf generation
76
- -h, --help display help for command
77
-
78
- ```
79
-
80
-
81
- ### `client` :
82
- ```
83
- Usage: underpost client [options] [deploy-id] [sub-conf] [host] [path]
53
+ **Usage:** `underpost new [options] [app-name]`
54
+
55
+ #### Arguments
56
+
57
+ | Argument | Description |
58
+ | --- | --- |
59
+ | `app-name` | The name of the new project. |
60
+
61
+ #### Options
62
+
63
+ | Option | Description |
64
+ | --- | --- |
65
+ | `--deploy-id <deploy-id>` | Create deploy ID conf env files |
66
+ | `--sub-conf <sub-conf>` | Create sub conf env files |
67
+ | `--cluster` | Create deploy ID cluster files and sync to current cluster |
68
+ | `--build-repos` | Create deploy ID repositories |
69
+ | `--build` | Build the deployment to pwa-microservices-template (requires --deploy-id) |
70
+ | `--clean-template` | Clean the build directory (pwa-microservices-template) |
71
+ | `--sync-conf` | Sync configuration to private repositories (requires --deploy-id) |
72
+ | `--sync-start` | Sync start scripts in deploy ID package.json with root package.json (use 'dd' as --deploy-id to sync all dd.router) |
73
+ | `--purge` | Remove deploy ID conf and all related repositories (requires --deploy-id) |
74
+ | `--dev` | Sets the development cli context |
75
+ | `--default-conf` | Create default deploy ID conf env files |
76
+ | `--conf-workflow-id <workflow-id>` | Set custom configuration workflow ID for conf generation |
77
+ | `-h, --help` | display help for command |
78
+
79
+ ---
80
+
81
+ ### underpost client
84
82
 
85
83
  Builds client assets, single replicas, and/or syncs environment ports.
86
84
 
87
- Arguments:
88
- deploy-id The deployment ID to build. (default:
89
- "dd-default")
90
- sub-conf The sub-configuration for the build. (default: "")
91
- host Comma-separated hosts to filter the build.
92
- (default: "")
93
- path Comma-separated paths to filter the build.
94
- (default: "")
95
-
96
- Options:
97
- --sync-env-port Sync environment port assignments across all
98
- deploy IDs
99
- --single-replica Build single replica folders instead of full
100
- client
101
- --build-zip Create zip files of the builds
102
- --split <mb> Split generated zip files into parts of the
103
- specified size in MB
104
- --unzip <build-prefix> Extract a built client zip or split zip parts
105
- using the given build prefix
106
- --merge-zip <build-prefix> Merge split ZIP parts back into a single ZIP file
107
- for the given build prefix
108
- --lite-build Skip full build (default is full build)
109
- --icons-build Build icons
110
- -h, --help display help for command
111
-
112
- ```
113
-
114
-
115
- ### `start` :
116
- ```
117
- Usage: underpost start [options] <deploy-id> [env]
118
-
119
- Initiates application servers, build pipelines, or other defined services based
120
- on the deployment ID.
121
-
122
- Arguments:
123
- deploy-id The unique identifier for the deployment
124
- configuration.
125
- env Optional: The environment to start (e.g.,
126
- "development", "production"). Defaults to
127
- "development".
128
-
129
- Options:
130
- --run Starts application servers and monitors their
131
- health.
132
- --build Triggers the client-side application build
133
- process.
134
- --underpost-quickly-install Uses Underpost Quickly Install for dependency
135
- installation.
136
- --skip-pull-base Skips cloning repositories, uses current
137
- workspace code directly.
138
- --skip-full-build Skips the full client bundle build during
139
- deployment.
140
- --pull-bundle Downloads the pre-built client bundle from
141
- Cloudinary via pull-bundle before starting. Use
142
- together with --skip-full-build to skip the local
143
- build entirely.
144
- -h, --help display help for command
145
-
146
- ```
147
-
148
-
149
- ### `clone` :
150
- ```
151
- Usage: underpost clone [options] <uri>
85
+ **Usage:** `underpost client [options] [deploy-id] [sub-conf] [host] [path]`
86
+
87
+ #### Arguments
88
+
89
+ | Argument | Description |
90
+ | --- | --- |
91
+ | `deploy-id` | The deployment ID to build. (default: "dd-default") |
92
+ | `sub-conf` | The sub-configuration for the build. (default: "") |
93
+ | `host` | Comma-separated hosts to filter the build. (default: "") |
94
+ | `path` | Comma-separated paths to filter the build. (default: "") |
95
+
96
+ #### Options
97
+
98
+ | Option | Description |
99
+ | --- | --- |
100
+ | `--sync-env-port` | Sync environment port assignments across all deploy IDs |
101
+ | `--single-replica` | Build single replica folders instead of full client |
102
+ | `--build-zip` | Create zip files of the builds |
103
+ | `--split <mb>` | Split generated zip files into parts of the specified size in MB |
104
+ | `--unzip <build-prefix>` | Extract a built client zip or split zip parts using the given build prefix |
105
+ | `--merge-zip <build-prefix>` | Merge split ZIP parts back into a single ZIP file for the given build prefix |
106
+ | `--lite-build` | Skip full build (default is full build) |
107
+ | `--icons-build` | Build icons |
108
+ | `-h, --help` | display help for command |
109
+
110
+ ---
111
+
112
+ ### underpost start
113
+
114
+ Initiates application servers, build pipelines, or other defined services based on the deployment ID.
115
+
116
+ **Usage:** `underpost start [options] <deploy-id> [env]`
117
+
118
+ #### Arguments
119
+
120
+ | Argument | Description |
121
+ | --- | --- |
122
+ | `deploy-id` | The unique identifier for the deployment configuration. |
123
+ | `env` | Optional: The environment to start (e.g., "development", "production"). Defaults to "development". |
124
+
125
+ #### Options
126
+
127
+ | Option | Description |
128
+ | --- | --- |
129
+ | `--run` | Starts application servers and monitors their health. |
130
+ | `--build` | Triggers the client-side application build process. |
131
+ | `--underpost-quickly-install` | Uses Underpost Quickly Install for dependency installation. |
132
+ | `--skip-pull-base` | Skips cloning repositories, uses current workspace code directly. |
133
+ | `--skip-full-build` | Skips the full client bundle build during deployment. |
134
+ | `--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. |
135
+ | `-h, --help` | display help for command |
136
+
137
+ ---
138
+
139
+ ### underpost clone
152
140
 
153
141
  Clones a specified GitHub repository into the current directory.
154
142
 
155
- Arguments:
156
- uri The URI of the GitHub repository (e.g., "username/repository").
143
+ **Usage:** `underpost clone [options] <uri>`
144
+
145
+ #### Arguments
146
+
147
+ | Argument | Description |
148
+ | --- | --- |
149
+ | `uri` | The URI of the GitHub repository (e.g., "username/repository"). |
150
+
151
+ #### Options
152
+
153
+ | Option | Description |
154
+ | --- | --- |
155
+ | `--bare` | Performs a bare clone, downloading only the .git files. |
156
+ | `--g8` | Uses the g8 repository extension for cloning. |
157
+ | `-h, --help` | display help for command |
157
158
 
158
- Options:
159
- --bare Performs a bare clone, downloading only the .git files.
160
- --g8 Uses the g8 repository extension for cloning.
161
- -h, --help display help for command
162
-
163
- ```
164
-
159
+ ---
165
160
 
166
- ### `pull` :
167
- ```
168
- Usage: underpost pull [options] <path> <uri>
161
+ ### underpost pull
169
162
 
170
163
  Pulls the latest changes from a specified GitHub repository.
171
164
 
172
- Arguments:
173
- path The absolute or relative directory path where the repository is
174
- located.
175
- uri The URI of the GitHub repository (e.g., "username/repository").
176
-
177
- Options:
178
- --g8 Uses the g8 repository extension for pulling.
179
- -h, --help display help for command
180
-
181
- ```
182
-
183
-
184
- ### `cmt` :
185
- ```
186
- Usage: underpost cmt [options] [path] [commit-type] [module-tag] [message]
187
-
188
- Manages commits to a GitHub repository, supporting various commit types and
189
- options.
190
-
191
- Arguments:
192
- path The absolute or relative directory path of
193
- the repository.
194
- commit-type The type of commit to perform. Options:
195
- feat, fix, docs, style, refactor, perf, ci,
196
- cd, infra, build, test, chore, revert,
197
- backup.
198
- module-tag Optional: Sets a specific module tag for
199
- the commit.
200
- message Optional: Provides an additional custom
201
- message for the commit.
202
-
203
- Options:
204
- --log [latest-n] Shows commit history from the specified
205
- number of latest n path commits.
206
- --last-msg <latest-n> Displays the last n commit message.
207
- --empty Allows committing with empty files.
208
- --copy Copies the generated commit message to the
209
- clipboard.
210
- --info Displays information about available commit
211
- types.
212
- --diff Shows the current git diff changes.
213
- --edit Edit last commit.
214
- --deploy-id <deploy-id> Sets the deployment configuration ID for
215
- the commit context.
216
- --cached Commit staged changes only or context.
217
- --hashes <hashes> Comma-separated list of specific file
218
- hashes of commits.
219
- --extension <extension> specific file extensions of commits.
220
- --changelog [latest-n] Print plain the changelog of the specified
221
- number of latest n commits, if no number is
222
- provided it will get the changelog to
223
- latest ci integration
224
- --changelog-build Builds a CHANGELOG.md file based on the
225
- commit history
226
- --changelog-min-version <version> Sets the minimum version limit for
227
- --changelog-build (default: 2.85.0)
228
- --changelog-no-hash Excludes commit hashes from the generated
229
- changelog entries (used with
230
- --changelog-build).
231
- --unpush With --log, automatically sets range to
232
- unpushed commits ahead of remote.
233
- -b Shows the current Git branch name.
234
- -p [branch] Shows the reflog for the specified branch.
235
- --bc <commit-hash> Shows branches that contain the specified
236
- commit.
237
- --is-remote-repo <url-repo> Checks whether a remote Git repository URL
238
- is reachable. Prints true or false.
239
- -h, --help display help for command
240
-
241
- ```
242
-
243
-
244
- ### `push` :
245
- ```
246
- Usage: underpost push [options] <path> <uri>
165
+ **Usage:** `underpost pull [options] <path> <uri>`
166
+
167
+ #### Arguments
168
+
169
+ | Argument | Description |
170
+ | --- | --- |
171
+ | `path` | The absolute or relative directory path where the repository is located. |
172
+ | `uri` | The URI of the GitHub repository (e.g., "username/repository"). |
173
+
174
+ #### Options
175
+
176
+ | Option | Description |
177
+ | --- | --- |
178
+ | `--g8` | Uses the g8 repository extension for pulling. |
179
+ | `-h, --help` | display help for command |
180
+
181
+ ---
182
+
183
+ ### underpost cmt
184
+
185
+ Manages commits to a GitHub repository, supporting various commit types and options.
186
+
187
+ **Usage:** `underpost cmt [options] [path] [commit-type] [module-tag] [message]`
188
+
189
+ #### Arguments
190
+
191
+ | Argument | Description |
192
+ | --- | --- |
193
+ | `path` | The absolute or relative directory path of the repository. |
194
+ | `commit-type` | The type of commit to perform. Options: feat, fix, docs, style, refactor, perf, ci, cd, infra, build, test, chore, revert, backup. |
195
+ | `module-tag` | Optional: Sets a specific module tag for the commit. |
196
+ | `message` | Optional: Provides an additional custom message for the commit. |
197
+
198
+ #### Options
199
+
200
+ | Option | Description |
201
+ | --- | --- |
202
+ | `--log [latest-n]` | Shows commit history from the specified number of latest n path commits. |
203
+ | `--last-msg <latest-n>` | Displays the last n commit message. |
204
+ | `--empty` | Allows committing with empty files. |
205
+ | `--copy` | Copies the generated commit message to the clipboard. |
206
+ | `--info` | Displays information about available commit types. |
207
+ | `--diff` | Shows the current git diff changes. |
208
+ | `--edit` | Edit last commit. |
209
+ | `--deploy-id <deploy-id>` | Sets the deployment configuration ID for the commit context. |
210
+ | `--cached` | Commit staged changes only or context. |
211
+ | `--hashes <hashes>` | Comma-separated list of specific file hashes of commits. |
212
+ | `--extension <extension>` | specific file extensions of commits. |
213
+ | `--changelog [latest-n]` | Print plain the changelog of the specified number of latest n commits, if no number is provided it will get the changelog to latest ci integration |
214
+ | `--changelog-build` | Builds a CHANGELOG.md file based on the commit history |
215
+ | `--changelog-min-version <version>` | Sets the minimum version limit for --changelog-build (default: 2.85.0) |
216
+ | `--changelog-no-hash` | Excludes commit hashes from the generated changelog entries (used with --changelog-build). |
217
+ | `--unpush` | With --log, automatically sets range to unpushed commits ahead of remote. |
218
+ | `-b` | Shows the current Git branch name. |
219
+ | `-p [branch]` | Shows the reflog for the specified branch. |
220
+ | `--bc <commit-hash>` | Shows branches that contain the specified commit. |
221
+ | `--is-remote-repo <url-repo>` | Checks whether a remote Git repository URL is reachable. Prints true or false. |
222
+ | `--has-changes` | Prints "1" if there are staged or unstaged git changes in the repository, empty string otherwise. |
223
+ | `-h, --help` | display help for command |
224
+
225
+ ---
226
+
227
+ ### underpost push
247
228
 
248
229
  Pushes committed changes from a local repository to a remote GitHub repository.
249
230
 
250
- Arguments:
251
- path The absolute or relative directory path of the repository.
252
- uri The URI of the GitHub repository (e.g., "username/repository").
253
-
254
- Options:
255
- -f Forces the push, overwriting the remote repository history.
256
- --g8 Uses the g8 repository extension for pushing.
257
- -h, --help display help for command
258
-
259
- ```
260
-
261
-
262
- ### `env` :
263
- ```
264
- Usage: underpost env [options] [deploy-id] [env] [subConf]
265
-
266
- Sets environment variables and configurations related to a specific deployment
267
- ID.
268
-
269
- Arguments:
270
- deploy-id The deployment configuration ID. Use 'clean' to restore default
271
- environment settings. Use 'root' to load underpost root env. Use
272
- 'current' to get plain current deploy Id.
273
- env Optional: The environment to set (e.g., "production",
274
- "development"). Defaults to "production".
275
- subConf Optional: The sub configuration to set.
276
-
277
- Options:
278
- -h, --help display help for command
279
-
280
- ```
281
-
282
-
283
- ### `static` :
284
- ```
285
- Usage: underpost static [options]
286
-
287
- Manages static build of page, bundles, and documentation with comprehensive
288
- customization options.
289
-
290
- Options:
291
- --page <ssr-component-path> Build custom static pages.
292
- --title <title> Sets a custom title for the static page
293
- (deprecated: use --config-file).
294
- --output-path <output-path> Sets the output path for the generated static
295
- page.
296
- --description <description> Page description for SEO.
297
- --keywords <keywords> Comma-separated keywords for SEO.
298
- --author <author> Page author.
299
- --theme-color <color> Theme color for mobile browsers.
300
- --canonical-url <url> Canonical URL for SEO.
301
- --thumbnail <url> Open Graph thumbnail image URL.
302
- --locale <locale> Page locale (default: en-US).
303
- --site-name <name> Site name for Open Graph.
304
- --head-scripts <paths> Comma-separated paths to scripts for head
305
- section.
306
- --body-scripts <paths> Comma-separated paths to scripts for body
307
- section.
308
- --styles <paths> Comma-separated paths to stylesheets.
309
- --favicon <path> Favicon path.
310
- --apple-touch-icon <path> Apple touch icon path.
311
- --manifest <path> Web manifest path.
312
- --head-components <paths> Comma-separated SSR head component paths.
313
- --body-components <paths> Comma-separated SSR body component paths.
314
- --build-path <build-path> Sets a custom build path for static documents or
315
- assets.
316
- --env <env> Sets the environment for the static build (e.g.,
317
- "development", "production").
318
- --minify Minify HTML output (default: true for
319
- production).
320
- --no-minify Disable HTML minification.
321
- --config-file <path> Path to JSON configuration file.
322
- --generate-config [path] Generate a template configuration file.
323
- --lang <lang> HTML lang attribute (default: en).
324
- --dir <dir> HTML dir attribute (default: ltr).
325
- --dev Sets the development cli context
326
- --run-sv [port] Start a standalone Express static server to
327
- preview the static build (default port: 5000).
328
- -h, --help display help for command
329
-
330
- ```
331
-
332
-
333
- ### `config` :
334
- ```
335
- Usage: underpost config [options] <operator> [key] [value]
231
+ **Usage:** `underpost push [options] <path> <uri>`
232
+
233
+ #### Arguments
234
+
235
+ | Argument | Description |
236
+ | --- | --- |
237
+ | `path` | The absolute or relative directory path of the repository. |
238
+ | `uri` | The URI of the GitHub repository (e.g., "username/repository"). |
239
+
240
+ #### Options
241
+
242
+ | Option | Description |
243
+ | --- | --- |
244
+ | `-f` | Forces the push, overwriting the remote repository history. |
245
+ | `--g8` | Uses the g8 repository extension for pushing. |
246
+ | `-h, --help` | display help for command |
247
+
248
+ ---
249
+
250
+ ### underpost env
251
+
252
+ Sets environment variables and configurations related to a specific deployment ID.
253
+
254
+ **Usage:** `underpost env [options] [deploy-id] [env] [subConf]`
255
+
256
+ #### Arguments
257
+
258
+ | Argument | Description |
259
+ | --- | --- |
260
+ | `deploy-id` | The deployment configuration ID. Use 'clean' to restore default environment settings. Use 'root' to load underpost root env. Use 'current' to get plain current deploy Id. |
261
+ | `env` | Optional: The environment to set (e.g., "production", "development"). Defaults to "production". |
262
+ | `subConf` | Optional: The sub configuration to set. |
263
+
264
+ #### Options
265
+
266
+ | Option | Description |
267
+ | --- | --- |
268
+ | `-h, --help` | display help for command |
269
+
270
+ ---
271
+
272
+ ### underpost static
273
+
274
+ Manages static build of page, bundles, and documentation with comprehensive customization options.
275
+
276
+ **Usage:** `underpost static [options]`
277
+
278
+ #### Options
279
+
280
+ | Option | Description |
281
+ | --- | --- |
282
+ | `--page <ssr-component-path>` | Build custom static pages. |
283
+ | `--title <title>` | Sets a custom title for the static page (deprecated: use --config-file). |
284
+ | `--output-path <output-path>` | Sets the output path for the generated static page. |
285
+ | `--description <description>` | Page description for SEO. |
286
+ | `--keywords <keywords>` | Comma-separated keywords for SEO. |
287
+ | `--author <author>` | Page author. |
288
+ | `--theme-color <color>` | Theme color for mobile browsers. |
289
+ | `--canonical-url <url>` | Canonical URL for SEO. |
290
+ | `--thumbnail <url>` | Open Graph thumbnail image URL. |
291
+ | `--locale <locale>` | Page locale (default: en-US). |
292
+ | `--site-name <name>` | Site name for Open Graph. |
293
+ | `--head-scripts <paths>` | Comma-separated paths to scripts for head section. |
294
+ | `--body-scripts <paths>` | Comma-separated paths to scripts for body section. |
295
+ | `--styles <paths>` | Comma-separated paths to stylesheets. |
296
+ | `--favicon <path>` | Favicon path. |
297
+ | `--apple-touch-icon <path>` | Apple touch icon path. |
298
+ | `--manifest <path>` | Web manifest path. |
299
+ | `--head-components <paths>` | Comma-separated SSR head component paths. |
300
+ | `--body-components <paths>` | Comma-separated SSR body component paths. |
301
+ | `--build-path <build-path>` | Sets a custom build path for static documents or assets. |
302
+ | `--env <env>` | Sets the environment for the static build (e.g., "development", "production"). |
303
+ | `--minify` | Minify HTML output (default: true for production). |
304
+ | `--no-minify` | Disable HTML minification. |
305
+ | `--config-file <path>` | Path to JSON configuration file. |
306
+ | `--generate-config [path]` | Generate a template configuration file. |
307
+ | `--lang <lang>` | HTML lang attribute (default: en). |
308
+ | `--dir <dir>` | HTML dir attribute (default: ltr). |
309
+ | `--dev` | Sets the development cli context |
310
+ | `--run-sv [port]` | Start a standalone Express static server to preview the static build (default port: 5000). |
311
+ | `-h, --help` | display help for command |
312
+
313
+ ---
314
+
315
+ ### underpost config
336
316
 
337
317
  Manages Underpost configurations using various operators.
338
318
 
339
- Arguments:
340
- operator The configuration operation to perform. Options: set,
341
- delete, get, list, clean, isInsideContainer.
342
- key Optional: The specific configuration key to manage.
343
- value Optional: The value to set for the configuration key.
344
-
345
- Options:
346
- --plain Prints the configuration value in plain text.
347
- --filter <keyword> Filters the list by matching key or value (only for
348
- list operation).
349
- --deploy-id <deploy-id> Sets the deployment configuration ID for the
350
- operation context.
351
- --build Sets the build context for the operation.
352
- --copy Copies the configuration value to the clipboard (only
353
- for get operation).
354
- -h, --help display help for command
355
-
356
- ```
357
-
358
-
359
- ### `root` :
360
- ```
361
- Usage: underpost root [options]
319
+ **Usage:** `underpost config [options] <operator> [key] [value]`
320
+
321
+ #### Arguments
322
+
323
+ | Argument | Description |
324
+ | --- | --- |
325
+ | `operator` | The configuration operation to perform. Options: set, delete, get, list, clean, isInsideContainer. |
326
+ | `key` | Optional: The specific configuration key to manage. |
327
+ | `value` | Optional: The value to set for the configuration key. |
328
+
329
+ #### Options
330
+
331
+ | Option | Description |
332
+ | --- | --- |
333
+ | `--plain` | Prints the configuration value in plain text. |
334
+ | `--filter <keyword>` | Filters the list by matching key or value (only for list operation). |
335
+ | `--deploy-id <deploy-id>` | Sets the deployment configuration ID for the operation context. |
336
+ | `--build` | Sets the build context for the operation. |
337
+ | `--copy` | Copies the configuration value to the clipboard (only for get operation). |
338
+ | `-h, --help` | display help for command |
339
+
340
+ ---
341
+
342
+ ### underpost root
362
343
 
363
344
  Displays the root path of the npm installation.
364
345
 
365
- Options:
366
- -h, --help display help for command
367
-
368
- ```
369
-
346
+ **Usage:** `underpost root [options]`
347
+
348
+ #### Options
349
+
350
+ | Option | Description |
351
+ | --- | --- |
352
+ | `-h, --help` | display help for command |
370
353
 
371
- ### `ip` :
372
- ```
373
- Usage: underpost ip [options] [ips]
354
+ ---
355
+
356
+ ### underpost ip
374
357
 
375
358
  Displays the current public machine IP addresses.
376
359
 
377
- Arguments:
378
- ips Optional args comma-separated list of IP to process.
379
-
380
- Options:
381
- --dhcp Fetches and displays the current Dynamic Host
382
- Configuration Protocol server IP address.
383
- --copy Copies the IP addresses to the clipboard.
384
- --ban-ingress-add Adds IP addresses to banned ingress list.
385
- --ban-ingress-remove Removes IP addresses from banned ingress list.
386
- --ban-ingress-list Lists all banned ingress IP addresses.
387
- --ban-ingress-clear Clears all banned ingress IP addresses.
388
- --ban-egress-add Adds IP addresses to banned egress list.
389
- --ban-egress-remove Removes IP addresses from banned egress list.
390
- --ban-egress-list Lists all banned egress IP addresses.
391
- --ban-egress-clear Clears all banned egress IP addresses.
392
- --ban-both-add Adds IP addresses to both banned ingress and egress
393
- lists.
394
- --ban-both-remove Removes IP addresses from both banned ingress and egress
395
- lists.
396
- --mac Prints the MAC address of the main network interface.
397
- -h, --help display help for command
398
-
399
- ```
400
-
401
-
402
- ### `cluster` :
403
- ```
404
- Usage: underpost cluster [options] [pod-name]
360
+ **Usage:** `underpost ip [options] [ips]`
361
+
362
+ #### Arguments
363
+
364
+ | Argument | Description |
365
+ | --- | --- |
366
+ | `ips` | Optional args comma-separated list of IP to process. |
367
+
368
+ #### Options
369
+
370
+ | Option | Description |
371
+ | --- | --- |
372
+ | `--dhcp` | Fetches and displays the current Dynamic Host Configuration Protocol server IP address. |
373
+ | `--copy` | Copies the IP addresses to the clipboard. |
374
+ | `--ban-ingress-add` | Adds IP addresses to banned ingress list. |
375
+ | `--ban-ingress-remove` | Removes IP addresses from banned ingress list. |
376
+ | `--ban-ingress-list` | Lists all banned ingress IP addresses. |
377
+ | `--ban-ingress-clear` | Clears all banned ingress IP addresses. |
378
+ | `--ban-egress-add` | Adds IP addresses to banned egress list. |
379
+ | `--ban-egress-remove` | Removes IP addresses from banned egress list. |
380
+ | `--ban-egress-list` | Lists all banned egress IP addresses. |
381
+ | `--ban-egress-clear` | Clears all banned egress IP addresses. |
382
+ | `--ban-both-add` | Adds IP addresses to both banned ingress and egress lists. |
383
+ | `--ban-both-remove` | Removes IP addresses from both banned ingress and egress lists. |
384
+ | `--mac` | Prints the MAC address of the main network interface. |
385
+ | `-h, --help` | display help for command |
386
+
387
+ ---
388
+
389
+ ### underpost cluster
405
390
 
406
391
  Manages Kubernetes clusters, defaulting to Kind cluster initialization.
407
392
 
408
- Arguments:
409
- pod-name Optional: Filters information by a
410
- specific pod name.
411
-
412
- Options:
413
- --reset Deletes all clusters and prunes all
414
- related data and caches.
415
- --reset-mongodb Performs a hard cleanup of only
416
- MongoDB-related resources (StatefulSet,
417
- PVCs/PVs, Secrets, ConfigMaps, caches)
418
- without restarting the whole node.
419
- --mariadb Initializes the cluster with a MariaDB
420
- statefulset.
421
- --mysql Initializes the cluster with a MySQL
422
- statefulset.
423
- --mongodb Initializes the cluster with a MongoDB
424
- statefulset.
425
- --service-host <host> Set custom host/IP for exposed MongoDB
426
- and Valkey clients.
427
- --postgresql Initializes the cluster with a PostgreSQL
428
- statefulset.
429
- --mongodb4 Initializes the cluster with a MongoDB
430
- 4.4 service.
431
- --valkey Initializes the cluster with a Valkey
432
- service.
433
- --ipfs Initializes the cluster with an
434
- ipfs-cluster statefulset.
435
- --contour Initializes the cluster with Project
436
- Contour base HTTPProxy and Envoy.
437
- --node-port Exposes enabled ready services (e.g.
438
- MongoDB 4.4, Valkey) to the host/public
439
- network via their NodePort Service
440
- manifest.
441
- --node-selector <k8s-node-name> Pins the just-deployed StatefulSet
442
- (MongoDB 4.4 / Valkey) to the given
443
- Kubernetes node once it is ready (via a
444
- kubernetes.io/hostname nodeSelector).
445
- --cert-manager Initializes the cluster with a Let's
446
- Encrypt production ClusterIssuer.
447
- --dedicated-gpu Initializes the cluster with dedicated
448
- GPU base resources and environment
449
- settings.
450
- --ns-use <ns-name> Switches the current Kubernetes context
451
- to the specified namespace (creates if it
452
- doesn't exist).
453
- --kubeadm Initializes the cluster using kubeadm for
454
- control plane management.
455
- --pod-network-cidr <cidr> Sets custom pod network CIDR for kubeadm
456
- cluster initialization (defaults to
457
- "192.168.0.0/16").
458
- --control-plane-endpoint <endpoint> Sets custom control plane endpoint for
459
- kubeadm cluster initialization (defaults
460
- to "localhost:6443").
461
- --grafana Initializes the cluster with a Grafana
462
- deployment.
463
- --prom [hosts] Initializes the cluster with a Prometheus
464
- Operator deployment and monitor scrap for
465
- specified hosts.
466
- --dev Initializes a development-specific
467
- cluster configuration.
468
- --list-pods Displays detailed information about all
469
- pods.
470
- --pull-image Sets an optional associated image to pull
471
- during initialization.
472
- --init-host Installs necessary Kubernetes node CLI
473
- tools (e.g., kind, kubeadm, docker,
474
- podman, helm).
475
- --uninstall-host Uninstalls all host components installed
476
- by init-host.
477
- --config Sets the base Kubernetes node
478
- configuration.
479
- --chown Sets the appropriate ownership for
480
- Kubernetes kubeconfig files.
481
- --k3s Initializes the cluster using K3s
482
- (Lightweight Kubernetes).
483
- --hosts <hosts> A comma-separated list of cluster
484
- hostnames or IP addresses.
485
- --remove-volume-host-paths Removes specified volume host paths after
486
- execution.
487
- --reset-mode <mode> Reset mode for --reset --k3s: "drain"
488
- (stop services, keep K3s installed) or
489
- "full" (uninstall + cleanup). Default:
490
- "full".
491
- --namespace <namespace> Kubernetes namespace for cluster
492
- operations (defaults to "default").
493
- --replicas <replicas> Sets a custom number of replicas for
494
- statefulset deployments.
495
- -h, --help display help for command
496
-
497
- ```
498
-
499
-
500
- ### `deploy` :
501
- ```
502
- Usage: underpost deploy [options] [deploy-list] [env]
393
+ **Usage:** `underpost cluster [options] [pod-name]`
394
+
395
+ #### Arguments
396
+
397
+ | Argument | Description |
398
+ | --- | --- |
399
+ | `pod-name` | Optional: Filters information by a specific pod name. |
400
+
401
+ #### Options
402
+
403
+ | Option | Description |
404
+ | --- | --- |
405
+ | `--reset` | Deletes all clusters and prunes all related data and caches. |
406
+ | `--reset-mongodb` | Performs a hard cleanup of only MongoDB-related resources (StatefulSet, PVCs/PVs, Secrets, ConfigMaps, caches) without restarting the whole node. |
407
+ | `--mariadb` | Initializes the cluster with a MariaDB statefulset. |
408
+ | `--mysql` | Initializes the cluster with a MySQL statefulset. |
409
+ | `--mongodb` | Initializes the cluster with a MongoDB statefulset. |
410
+ | `--service-host <host>` | Set custom host/IP for exposed MongoDB and Valkey clients. |
411
+ | `--postgresql` | Initializes the cluster with a PostgreSQL statefulset. |
412
+ | `--mongodb4` | Initializes the cluster with a MongoDB 4.4 service. |
413
+ | `--valkey` | Initializes the cluster with a Valkey service. |
414
+ | `--ipfs` | Initializes the cluster with an ipfs-cluster statefulset. |
415
+ | `--contour` | Initializes the cluster with Project Contour base HTTPProxy and Envoy. |
416
+ | `--node-port` | Exposes enabled ready services (e.g. MongoDB 4.4, Valkey) to the host/public network via their NodePort Service manifest. |
417
+ | `--node-selector <k8s-node-name>` | Pins the just-deployed StatefulSet (MongoDB 4.4 / Valkey) to the given Kubernetes node once it is ready (via a kubernetes.io/hostname nodeSelector). |
418
+ | `--cert-manager` | Initializes the cluster with a Let's Encrypt production ClusterIssuer. |
419
+ | `--dedicated-gpu` | Initializes the cluster with dedicated GPU base resources and environment settings. |
420
+ | `--ns-use <ns-name>` | Switches the current Kubernetes context to the specified namespace (creates if it doesn't exist). |
421
+ | `--kubeadm` | Initializes the cluster using kubeadm for control plane management. |
422
+ | `--pod-network-cidr <cidr>` | Sets custom pod network CIDR for kubeadm cluster initialization (defaults to "192.168.0.0/16"). |
423
+ | `--control-plane-endpoint <endpoint>` | Sets custom control plane endpoint for kubeadm cluster initialization (defaults to "localhost:6443"). |
424
+ | `--grafana` | Initializes the cluster with a Grafana deployment. |
425
+ | `--prom [hosts]` | Initializes the cluster with a Prometheus Operator deployment and monitor scrap for specified hosts. |
426
+ | `--dev` | Initializes a development-specific cluster configuration. |
427
+ | `--list-pods` | Displays detailed information about all pods. |
428
+ | `--pull-image` | Sets an optional associated image to pull during initialization. |
429
+ | `--init-host` | Installs necessary Kubernetes node CLI tools (e.g., kind, kubeadm, docker, podman, helm). |
430
+ | `--uninstall-host` | Uninstalls all host components installed by init-host. |
431
+ | `--config` | Sets the base Kubernetes node configuration. |
432
+ | `--chown` | Sets the appropriate ownership for Kubernetes kubeconfig files. |
433
+ | `--k3s` | Initializes the cluster using K3s (Lightweight Kubernetes). |
434
+ | `--hosts <hosts>` | A comma-separated list of cluster hostnames or IP addresses. |
435
+ | `--remove-volume-host-paths` | Removes specified volume host paths after execution. |
436
+ | `--reset-mode <mode>` | Reset mode for --reset --k3s: "drain" (stop services, keep K3s installed) or "full" (uninstall + cleanup). Default: "full". |
437
+ | `--namespace <namespace>` | Kubernetes namespace for cluster operations (defaults to "default"). |
438
+ | `--replicas <replicas>` | Sets a custom number of replicas for statefulset deployments. |
439
+ | `-h, --help` | display help for command |
440
+
441
+ ---
442
+
443
+ ### underpost deploy
503
444
 
504
445
  Manages application deployments, defaulting to deploying development pods.
505
446
 
506
- Arguments:
507
- deploy-list A comma-separated list of deployment IDs
508
- (e.g., "default-a,default-b").
509
- env Optional: The environment for deployment
510
- (e.g., "development", "production").
511
- Defaults to "development".
512
-
513
- Options:
514
- --remove Deletes specified deployments and their
515
- associated services.
516
- --sync Synchronizes deployment environment
517
- variables, ports, and replica counts.
518
- --info-router Displays the current router structure and
519
- configuration.
520
- --expose Exposes services matching the provided
521
- deployment ID list.
522
- --cert Resets TLS/SSL certificate secrets for
523
- deployments.
524
- --cert-hosts <hosts> Resets TLS/SSL certificate secrets for
525
- specified hosts.
526
- --node <node> Sets optional node for deployment
527
- operations.
528
- --build-manifest Builds Kubernetes YAML manifests,
529
- including deployments, services, proxies,
530
- and secrets.
531
- --replicas <replicas> Sets a custom number of replicas for
532
- deployments.
533
- --image <image> Sets a custom image for deployments.
534
- --versions <deployment-versions> A comma-separated list of custom
535
- deployment versions.
536
- --traffic <traffic-versions> A comma-separated list of custom
537
- deployment traffic weights.
538
- --timeout-response <duration> Sets HTTPProxy per-route response timeout
539
- (e.g., "1s", "300ms", "infinity").
540
- --timeout-idle <duration> Sets HTTPProxy per-route idle timeout
541
- (e.g., "10s", "infinity").
542
- --retry-count <count> Sets HTTPProxy per-route retry count
543
- (e.g., 3).
544
- --retry-per-try-timeout <duration> Sets HTTPProxy retry per-try timeout
545
- (e.g., "150ms").
546
- --disable-update-deployment Disables updates to deployments.
547
- --disable-update-proxy Disables updates to proxies.
548
- --disable-deployment-proxy Disables proxies of deployments.
549
- --disable-update-volume Disables updates to volume mounts during
550
- deployment.
551
- --status Retrieves current network traffic data
552
- from resource deployments and the host
553
- machine network configuration.
554
- --kubeadm Enables the kubeadm context for deployment
555
- operations.
556
- --k3s Enables the k3s context for deployment
557
- operations.
558
- --kind Enables the kind context for deployment
559
- operations.
560
- --git-clean Runs git clean on volume mount paths
561
- before copying.
562
- --disable-update-underpost-config Disables updates to Underpost
563
- configuration during deployment.
564
- --namespace <namespace> Kubernetes namespace for deployment
565
- operations (defaults to "default").
566
- --kind-type <kind-type> Specifies the Kind cluster type for
567
- deployment operations.
568
- --port <port> Sets up port forwarding from local to
569
- remote ports.
570
- --expose-port <port> Sets the local:remote port to expose when
571
- --expose is active (overrides
572
- auto-detected service port).
573
- --cmd <cmd> Custom initialization command for
574
- deployment (comma-separated commands).
575
- --skip-full-build Skip client bundle rebuild; container will
576
- pull pre-built bundle via pull-bundle
577
- instead.
578
- --pull-bundle Explicitly pull the pre-built client
579
- bundle from Cloudinary inside the
580
- container. Use together with
581
- --skip-full-build.
582
- --image-pull-policy <policy> Override container imagePullPolicy in the
583
- generated deployment manifest (Always,
584
- IfNotPresent, Never). Defaults to Never
585
- for localhost/ images and IfNotPresent
586
- otherwise.
587
- -h, --help display help for command
588
-
589
- ```
590
-
591
-
592
- ### `secret` :
593
- ```
594
- Usage: underpost secret [options] <platform>
447
+ **Usage:** `underpost deploy [options] [deploy-list] [env]`
448
+
449
+ #### Arguments
450
+
451
+ | Argument | Description |
452
+ | --- | --- |
453
+ | `deploy-list` | A comma-separated list of deployment IDs (e.g., "default-a,default-b"). |
454
+ | `env` | Optional: The environment for deployment (e.g., "development", "production"). Defaults to "development". |
455
+
456
+ #### Options
457
+
458
+ | Option | Description |
459
+ | --- | --- |
460
+ | `--remove` | Deletes specified deployments and their associated services. |
461
+ | `--sync` | Synchronizes deployment environment variables, ports, and replica counts. |
462
+ | `--info-router` | Displays the current router structure and configuration. |
463
+ | `--expose` | Exposes services matching the provided deployment ID list. |
464
+ | `--cert` | Resets TLS/SSL certificate secrets for deployments. |
465
+ | `--cert-hosts <hosts>` | Resets TLS/SSL certificate secrets for specified hosts. |
466
+ | `--self-signed` | Use a pre-created self-signed TLS secret (kubernetes.io/tls) instead of cert-manager. The secret must already exist in the namespace with the same name as the host. Enables TLS in the Contour HTTPProxy virtualhost without requiring a production ClusterIssuer. |
467
+ | `--node <node>` | Sets optional node for deployment operations. |
468
+ | `--build-manifest` | Builds Kubernetes YAML manifests, including deployments, services, proxies, and secrets. |
469
+ | `--replicas <replicas>` | Sets a custom number of replicas for deployments. |
470
+ | `--image <image>` | Sets a custom image for deployments. |
471
+ | `--versions <deployment-versions>` | A comma-separated list of custom deployment versions. |
472
+ | `--traffic <traffic-versions>` | A comma-separated list of custom deployment traffic weights. |
473
+ | `--timeout-response <duration>` | Sets HTTPProxy per-route response timeout (e.g., "1s", "300ms", "infinity"). |
474
+ | `--timeout-idle <duration>` | Sets HTTPProxy per-route idle timeout (e.g., "10s", "infinity"). |
475
+ | `--retry-count <count>` | Sets HTTPProxy per-route retry count (e.g., 3). |
476
+ | `--retry-per-try-timeout <duration>` | Sets HTTPProxy retry per-try timeout (e.g., "150ms"). |
477
+ | `--disable-update-deployment` | Disables updates to deployments. |
478
+ | `--disable-runtime-probes` | Omits the internal-status HTTP probes from generated deployment manifests. |
479
+ | `--tcp-probes` | Generates legacy TCP socket probes instead of HTTP internal-status probes (migration). |
480
+ | `--disable-update-proxy` | Disables updates to proxies. |
481
+ | `--disable-deployment-proxy` | Disables proxies of deployments. |
482
+ | `--disable-update-volume` | Disables updates to volume mounts during deployment. |
483
+ | `--status` | Retrieves current network traffic data from resource deployments and the host machine network configuration. |
484
+ | `--kubeadm` | Enables the kubeadm context for deployment operations. |
485
+ | `--k3s` | Enables the k3s context for deployment operations. |
486
+ | `--kind` | Enables the kind context for deployment operations. |
487
+ | `--git-clean` | Runs git clean on volume mount paths before copying. |
488
+ | `--disable-update-underpost-config` | Disables updates to Underpost configuration during deployment. |
489
+ | `--namespace <namespace>` | Kubernetes namespace for deployment operations (defaults to "default"). |
490
+ | `--kind-type <kind-type>` | Specifies the Kind cluster type for deployment operations. |
491
+ | `--port <port>` | Sets up port forwarding from local to remote ports. |
492
+ | `--expose-port <port>` | Sets the local:remote port to expose when --expose is active (overrides auto-detected service port). |
493
+ | `--expose-local-port <port>` | Sets a different local port for --expose (e.g. 80) while keeping the remote service port. Useful for /etc/hosts local access without specifying a port in the browser. |
494
+ | `--local-proxy` | Forward all service TCP ports locally and start the Node.js path-routing proxy. Enables full path-based routing (e.g. /wp alongside /) without needing --expose-local-port. Requires --expose. |
495
+ | `--cmd <cmd>` | Custom initialization command for deployment (comma-separated commands). |
496
+ | `--skip-full-build` | Skip client bundle rebuild; container will pull pre-built bundle via pull-bundle instead. |
497
+ | `--pull-bundle` | Explicitly pull the pre-built client bundle from Cloudinary inside the container. Use together with --skip-full-build. |
498
+ | `--image-pull-policy <policy>` | Override container imagePullPolicy in the generated deployment manifest (Always, IfNotPresent, Never). Defaults to Never for localhost/ images and IfNotPresent otherwise. |
499
+ | `--tls` | Enables TLS for the local proxy started by --expose --local-proxy. The proxy will serve HTTPS on port 443 using self-signed certificates resolved from the local SSL store. Use together with --expose and --local-proxy. |
500
+ | `-h, --help` | display help for command |
501
+
502
+ ---
503
+
504
+ ### underpost secret
595
505
 
596
506
  Manages secrets for various platforms.
597
507
 
598
- Arguments:
599
- platform The secret management platform. Options:
600
- underpost, globalSecretClean.
601
-
602
- Options:
603
- --init Initializes the secrets platform
604
- environment.
605
- --create-from-file <path-env-file> Creates secrets from a specified
606
- environment file.
607
- --create-from-env Creates secrets from container environment
608
- variables (envFrom: secretRef).
609
- --global-clean Removes all filesystem traces of secrets
610
- (engine-private, .env, conf cache).
611
- --list Lists all available secrets for the
612
- platform.
613
- -h, --help display help for command
614
-
615
- ```
616
-
617
-
618
- ### `image` :
619
- ```
620
- Usage: underpost image [options]
621
-
622
- Manages Docker images, including building, saving, and loading into Kubernetes
623
- clusters.
624
-
625
- Options:
626
- --build Builds a Docker image using Podman,
627
- optionally saves it as a tar archive, and
628
- loads it into a specified Kubernetes
629
- cluster (Kind, Kubeadm, or K3s).
630
- --ls Lists all available Underpost Dockerfile
631
- images.
632
- --rm <image-id> Removes specified Underpost Dockerfile
633
- images.
634
- --path [path] The path to the Dockerfile directory.
635
- --image-name [image-name] Sets a custom name for the Docker image.
636
- --image-path [image-path] Sets the output path for the tar image
637
- archive.
638
- --dockerfile-name [dockerfile-name] Sets a custom name for the Dockerfile.
639
- --podman-save Exports the built image as a tar file
640
- using Podman.
641
- --pull-base Pulls base images and builds a
642
- "rockylinux9-underpost" image.
643
- --spec Get current cached list of container
644
- images used by all pods
645
- --namespace <namespace> Kubernetes namespace for image operations
646
- (defaults to "default").
647
- --kind Set kind cluster env image context
648
- management.
649
- --kubeadm Set kubeadm cluster env image context
650
- management.
651
- --k3s Set k3s cluster env image context
652
- management.
653
- --node-name Set node name for kubeadm or k3s cluster
654
- env image context management.
655
- --reset Performs a build without using the cache.
656
- --dev Use development mode.
657
- --pull-dockerhub <dockerhub-image> Sets a custom Docker Hub image for base
658
- image pulls.
659
- -h, --help display help for command
660
-
661
- ```
662
-
663
-
664
- ### `install` :
665
- ```
666
- Usage: underpost install [options]
508
+ **Usage:** `underpost secret [options] <platform>`
509
+
510
+ #### Arguments
511
+
512
+ | Argument | Description |
513
+ | --- | --- |
514
+ | `platform` | The secret management platform. Options: underpost, globalSecretClean. |
515
+
516
+ #### Options
517
+
518
+ | Option | Description |
519
+ | --- | --- |
520
+ | `--init` | Initializes the secrets platform environment. |
521
+ | `--create-from-file <path-env-file>` | Creates secrets from a specified environment file. |
522
+ | `--create-from-env` | Creates secrets from container environment variables (envFrom: secretRef). |
523
+ | `--global-clean` | Removes all filesystem traces of secrets (engine-private, .env, conf cache). |
524
+ | `--list` | Lists all available secrets for the platform. |
525
+ | `-h, --help` | display help for command |
526
+
527
+ ---
528
+
529
+ ### underpost image
530
+
531
+ Manages Docker images, including building, saving, and loading into Kubernetes clusters.
532
+
533
+ **Usage:** `underpost image [options]`
534
+
535
+ #### Options
536
+
537
+ | Option | Description |
538
+ | --- | --- |
539
+ | `--build` | Builds a Docker image using Podman, optionally saves it as a tar archive, and loads it into a specified Kubernetes cluster (Kind, Kubeadm, or K3s). |
540
+ | `--ls` | Lists all available Underpost Dockerfile images. |
541
+ | `--rm <image-id>` | Removes specified Underpost Dockerfile images. |
542
+ | `--path [path]` | The path to the Dockerfile directory. |
543
+ | `--image-name [image-name]` | Sets a custom name for the Docker image. |
544
+ | `--image-path [image-path]` | Sets the output path for the tar image archive. |
545
+ | `--dockerfile-name [dockerfile-name]` | Sets a custom name for the Dockerfile. |
546
+ | `--podman-save` | Exports the built image as a tar file using Podman. |
547
+ | `--pull-base` | Pulls base images and builds a "rockylinux9-underpost" image. |
548
+ | `--spec` | Get current cached list of container images used by all pods |
549
+ | `--namespace <namespace>` | Kubernetes namespace for image operations (defaults to "default"). |
550
+ | `--kind` | Set kind cluster env image context management. |
551
+ | `--kubeadm` | Set kubeadm cluster env image context management. |
552
+ | `--k3s` | Set k3s cluster env image context management. |
553
+ | `--node-name` | Set node name for kubeadm or k3s cluster env image context management. |
554
+ | `--reset` | Performs a build without using the cache. |
555
+ | `--dev` | Use development mode. |
556
+ | `--pull-dockerhub <dockerhub-image>` | Sets a custom Docker Hub image for base image pulls. |
557
+ | `-h, --help` | display help for command |
558
+
559
+ ---
560
+
561
+ ### underpost install
667
562
 
668
563
  Quickly imports Underpost npm dependencies by copying them.
669
564
 
670
- Options:
671
- -h, --help display help for command
672
-
673
- ```
674
-
675
-
676
- ### `db` :
677
- ```
678
- Usage: underpost db [options] [deploy-list]
679
-
680
- Manages database operations with support for MariaDB and MongoDB, including
681
- import/export, multi-pod targeting, and Git integration.
682
-
683
- Arguments:
684
- deploy-list A comma-separated list of deployment IDs (e.g., "default-a,default-b").
685
-
686
- Options:
687
- --import Imports container backups from specified repositories.
688
- --export Exports container backups to specified repositories.
689
- --pod-name <pod-name> Comma-separated list of pod names or patterns (supports wildcards like "mariadb-*").
690
- --all-pods Target all matching pods instead of just the first one.
691
- --primary-pod Automatically detect and use MongoDB primary pod (MongoDB only).
692
- --primary-pod-ensure <pod-name> Ensure setup of MongoDB replica set primary pod before operations.
693
- --stats Display database statistics (collection/table names with document/row counts).
694
- --collections <collections> Comma-separated list of database collections to operate on.
695
- --out-path <out-path> Specifies a custom output path for backups.
696
- --drop Drops the specified databases or collections before importing.
697
- --preserveUUID Preserves UUIDs during database import operations.
698
- --git Enables Git integration for backup version control (clone, pull, commit, push to GitHub).
699
- --force-clone Forces cloning of the Git repository, overwriting local changes.
700
- --hosts <hosts> Comma-separated list of database hosts to filter operations.
701
- --paths <paths> Comma-separated list of paths to filter database operations.
702
- --ns <ns-name> Kubernetes namespace context for database operations (defaults to "default").
703
- --macro-rollback-export <n-commits-reset> Exports a macro rollback script that reverts the last n commits (Git integration required).
704
- --clean-fs-collection Cleans orphaned File documents from collections that are not referenced by any models.
705
- --clean-fs-dry-run Dry run mode - shows what would be deleted without actually deleting (use with --clean-fs-collection).
706
- --dev Sets the development cli context
707
- --kubeadm Enables the kubeadm context for database operations.
708
- --kind Enables the kind context for database operations.
709
- --k3s Enables the k3s context for database operations.
710
- --repo-backup Backs up repositories (git commit+push) inside deployment pods via kubectl exec.
711
- -h, --help display help for command
712
-
713
- ```
714
-
715
-
716
- ### `metadata` :
717
- ```
718
- Usage: underpost metadata [options] [deploy-id] [host] [path]
565
+ **Usage:** `underpost install [options]`
566
+
567
+ #### Options
568
+
569
+ | Option | Description |
570
+ | --- | --- |
571
+ | `-h, --help` | display help for command |
572
+
573
+ ---
574
+
575
+ ### underpost db
576
+
577
+ Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
578
+
579
+ **Usage:** `underpost db [options] [deploy-list]`
580
+
581
+ #### Arguments
582
+
583
+ | Argument | Description |
584
+ | --- | --- |
585
+ | `deploy-list` | A comma-separated list of deployment IDs (e.g., "default-a,default-b"). |
586
+
587
+ #### Options
588
+
589
+ | Option | Description |
590
+ | --- | --- |
591
+ | `--import` | Imports container backups from specified repositories. |
592
+ | `--export` | Exports container backups to specified repositories. |
593
+ | `--pod-name <pod-name>` | Comma-separated list of pod names or patterns (supports wildcards like "mariadb-*"). |
594
+ | `--all-pods` | Target all matching pods instead of just the first one. |
595
+ | `--primary-pod` | Automatically detect and use MongoDB primary pod (MongoDB only). |
596
+ | `--primary-pod-ensure <pod-name>` | Ensure setup of MongoDB replica set primary pod before operations. |
597
+ | `--stats` | Display database statistics (collection/table names with document/row counts). |
598
+ | `--collections <collections>` | Comma-separated list of database collections to operate on. |
599
+ | `--out-path <out-path>` | Specifies a custom output path for backups. |
600
+ | `--drop` | Drops the specified databases or collections before importing. |
601
+ | `--preserveUUID` | Preserves UUIDs during database import operations. |
602
+ | `--git` | Enables Git integration for backup version control (clone, pull, commit, push to GitHub). |
603
+ | `--force-clone` | Forces cloning of the Git repository, overwriting local changes. |
604
+ | `--hosts <hosts>` | Comma-separated list of database hosts to filter operations. |
605
+ | `--paths <paths>` | Comma-separated list of paths to filter database operations. |
606
+ | `--ns <ns-name>` | Kubernetes namespace context for database operations (defaults to "default"). |
607
+ | `--macro-rollback-export <n-commits-reset>` | Exports a macro rollback script that reverts the last n commits (Git integration required). |
608
+ | `--clean-fs-collection` | Cleans orphaned File documents from collections that are not referenced by any models. |
609
+ | `--clean-fs-dry-run` | Dry run mode - shows what would be deleted without actually deleting (use with --clean-fs-collection). |
610
+ | `--dev` | Sets the development cli context |
611
+ | `--kubeadm` | Enables the kubeadm context for database operations. |
612
+ | `--kind` | Enables the kind context for database operations. |
613
+ | `--k3s` | Enables the k3s context for database operations. |
614
+ | `--repo-backup` | Backs up repositories (git commit+push) inside deployment pods via kubectl exec. |
615
+ | `-h, --help` | display help for command |
616
+
617
+ ---
618
+
619
+ ### underpost metadata
719
620
 
720
621
  Manages cluster metadata operations, including import and export.
721
622
 
722
- Arguments:
723
- deploy-id The deployment ID to manage metadata.
724
- host The host to manage metadata.
725
- path The path to manage metadata.
726
-
727
- Options:
728
- --import Imports from local storage.
729
- --export Exports to local storage.
730
- --crons Apply to cron data collection
731
- --instances Apply to instance data collection
732
- --generate Generate cluster metadata
733
- --itc Apply under container execution context
734
- --dev Sets the development cli context
735
- -h, --help display help for command
736
-
737
- ```
738
-
739
-
740
- ### `cron` :
741
- ```
742
- Usage: underpost cron [options] [deploy-list] [job-list]
743
-
744
- Manages cron jobs: execute jobs directly or generate and apply K8s CronJob
745
- manifests.
746
-
747
- Arguments:
748
- deploy-list A comma-separated list of deployment IDs (e.g.,
749
- "default-a,default-b").
750
- job-list A comma-separated list of job IDs. Options:
751
- dns,backup. Defaults to all available jobs.
752
-
753
- Options:
754
- --generate-k8s-cronjobs Generates Kubernetes CronJob YAML manifests from
755
- cron configuration.
756
- --apply Applies generated K8s CronJob manifests to the
757
- cluster via kubectl.
758
- --setup-start [deploy-id] Updates deploy-id package.json start script and
759
- generates+applies its K8s CronJob manifests.
760
- --namespace <namespace> Kubernetes namespace for the CronJob resources
761
- (default: "default").
762
- --image <image> Custom container image for the CronJob pods.
763
- --git Pass --git flag to cron job execution.
764
- --cmd <cmd> Optional pre-script commands to run before cron
765
- execution.
766
- --dev Use local ./ base path instead of global underpost
767
- installation.
768
- --k3s Use k3s cluster context (apply directly on host).
769
- --kind Use kind cluster context (apply via kind-worker
770
- container).
771
- --kubeadm Use kubeadm cluster context (apply directly on
772
- host).
773
- --dry-run Preview cron jobs without executing them.
774
- --create-job-now After applying manifests, immediately create a Job
775
- from each CronJob (requires --apply).
776
- -h, --help display help for command
777
-
778
- ```
779
-
780
-
781
- ### `fs` :
782
- ```
783
- Usage: underpost fs [options] [path]
623
+ **Usage:** `underpost metadata [options] [deploy-id] [host] [path]`
624
+
625
+ #### Arguments
626
+
627
+ | Argument | Description |
628
+ | --- | --- |
629
+ | `deploy-id` | The deployment ID to manage metadata. |
630
+ | `host` | The host to manage metadata. |
631
+ | `path` | The path to manage metadata. |
632
+
633
+ #### Options
634
+
635
+ | Option | Description |
636
+ | --- | --- |
637
+ | `--import` | Imports from local storage. |
638
+ | `--export` | Exports to local storage. |
639
+ | `--crons` | Apply to cron data collection |
640
+ | `--instances` | Apply to instance data collection |
641
+ | `--generate` | Generate cluster metadata |
642
+ | `--itc` | Apply under container execution context |
643
+ | `--dev` | Sets the development cli context |
644
+ | `-h, --help` | display help for command |
645
+
646
+ ---
647
+
648
+ ### underpost cron
649
+
650
+ Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests.
651
+
652
+ **Usage:** `underpost cron [options] [deploy-list] [job-list]`
653
+
654
+ #### Arguments
655
+
656
+ | Argument | Description |
657
+ | --- | --- |
658
+ | `deploy-list` | A comma-separated list of deployment IDs (e.g., "default-a,default-b"). |
659
+ | `job-list` | A comma-separated list of job IDs. Options: dns,backup. Defaults to all available jobs. |
660
+
661
+ #### Options
662
+
663
+ | Option | Description |
664
+ | --- | --- |
665
+ | `--generate-k8s-cronjobs` | Generates Kubernetes CronJob YAML manifests from cron configuration. |
666
+ | `--apply` | Applies generated K8s CronJob manifests to the cluster via kubectl. |
667
+ | `--setup-start [deploy-id]` | Updates deploy-id package.json start script and generates+applies its K8s CronJob manifests. |
668
+ | `--namespace <namespace>` | Kubernetes namespace for the CronJob resources (default: "default"). |
669
+ | `--image <image>` | Custom container image for the CronJob pods. |
670
+ | `--git` | Pass --git flag to cron job execution. |
671
+ | `--cmd <cmd>` | Optional pre-script commands to run before cron execution. |
672
+ | `--dev` | Use local ./ base path instead of global underpost installation. |
673
+ | `--k3s` | Use k3s cluster context (apply directly on host). |
674
+ | `--kind` | Use kind cluster context (apply via kind-worker container). |
675
+ | `--kubeadm` | Use kubeadm cluster context (apply directly on host). |
676
+ | `--dry-run` | Preview cron jobs without executing them. |
677
+ | `--create-job-now` | After applying manifests, immediately create a Job from each CronJob (requires --apply). |
678
+ | `-h, --help` | display help for command |
679
+
680
+ ---
681
+
682
+ ### underpost fs
784
683
 
785
684
  Manages file storage, defaulting to file upload operations.
786
685
 
787
- Arguments:
788
- path The absolute or relative directory path for file operations.
789
-
790
- Options:
791
- --rm Removes the specified file.
792
- --git Displays current Git changes related to file storage.
793
- --recursive Uploads files recursively from the specified path.
794
- --deploy-id <deploy-id> Specifies the deployment configuration ID for file operations.
795
- --pull Downloads the specified file.
796
- --omit-unzip With --pull, keeps the downloaded .zip file and skips extraction.
797
- --force Forces the action, overriding any warnings or conflicts.
798
- --storage-file-path <storage-file-path> Specifies a custom file storage path.
799
- -h, --help display help for command
800
-
801
- ```
802
-
803
-
804
- ### `test` :
805
- ```
806
- Usage: underpost test [options] [deploy-list]
686
+ **Usage:** `underpost fs [options] [path]`
687
+
688
+ #### Arguments
689
+
690
+ | Argument | Description |
691
+ | --- | --- |
692
+ | `path` | The absolute or relative directory path for file operations. |
693
+
694
+ #### Options
695
+
696
+ | Option | Description |
697
+ | --- | --- |
698
+ | `--rm` | Removes the specified file. |
699
+ | `--git` | Displays current Git changes related to file storage. |
700
+ | `--recursive` | Uploads files recursively from the specified path. |
701
+ | `--deploy-id <deploy-id>` | Specifies the deployment configuration ID for file operations. |
702
+ | `--pull` | Downloads the specified file. |
703
+ | `--omit-unzip` | With --pull, keeps the downloaded .zip file and skips extraction. |
704
+ | `--force` | Forces the action, overriding any warnings or conflicts. |
705
+ | `--storage-file-path <storage-file-path>` | Specifies a custom file storage path. |
706
+ | `-h, --help` | display help for command |
707
+
708
+ ---
709
+
710
+ ### underpost test
807
711
 
808
712
  Manages and runs tests, defaulting to the current Underpost default test suite.
809
713
 
810
- Arguments:
811
- deploy-list A comma-separated list of deployment IDs (e.g.,
812
- "default-a,default-b").
813
-
814
- Options:
815
- --itc Executes tests within the container execution
816
- context.
817
- --sh Copies the container entrypoint shell command to
818
- the clipboard.
819
- --logs Displays container logs for test debugging.
820
- --pod-name <pod-name> Optional: Specifies the pod name for test
821
- execution.
822
- --pod-status <pod-status> Optional: Filters tests by pod status.
823
- --kind-type <kind-type> Optional: Specifies the Kind cluster type for
824
- tests.
825
- -h, --help display help for command
826
-
827
- ```
828
-
829
-
830
- ### `monitor` :
831
- ```
832
- Usage: underpost monitor [options] <deploy-id> [env]
714
+ **Usage:** `underpost test [options] [deploy-list]`
715
+
716
+ #### Arguments
717
+
718
+ | Argument | Description |
719
+ | --- | --- |
720
+ | `deploy-list` | A comma-separated list of deployment IDs (e.g., "default-a,default-b"). |
721
+
722
+ #### Options
723
+
724
+ | Option | Description |
725
+ | --- | --- |
726
+ | `--itc` | Executes tests within the container execution context. |
727
+ | `--sh` | Copies the container entrypoint shell command to the clipboard. |
728
+ | `--logs` | Displays container logs for test debugging. |
729
+ | `--pod-name <pod-name>` | Optional: Specifies the pod name for test execution. |
730
+ | `--pod-status <pod-status>` | Optional: Filters tests by pod status. |
731
+ | `--kind-type <kind-type>` | Optional: Specifies the Kind cluster type for tests. |
732
+ | `-h, --help` | display help for command |
733
+
734
+ ---
735
+
736
+ ### underpost monitor
833
737
 
834
738
  Manages health server monitoring for specified deployments.
835
739
 
836
- Arguments:
837
- deploy-id The deployment configuration ID to
838
- monitor.
839
- env Optional: The environment to monitor
840
- (e.g., "development", "production").
841
- Defaults to "development".
842
-
843
- Options:
844
- --ms-interval <ms-interval> Sets a custom millisecond interval for
845
- monitoring checks.
846
- --now Executes the monitor script immediately.
847
- --single Disables recurrence, running the monitor
848
- script only once.
849
- --replicas <replicas> Sets a custom number of replicas for
850
- monitoring. Defaults to 1.
851
- --type <type> Sets a custom monitor type.
852
- --sync Synchronizes with current proxy
853
- deployments and traffic configurations.
854
- --namespace <namespace> Sets the Kubernetes namespace for the
855
- deployment. Defaults to "default".
856
- --timeout-response <duration> Sets HTTPProxy per-route response timeout
857
- (e.g., "5s").
858
- --timeout-idle <duration> Sets HTTPProxy per-route idle timeout
859
- (e.g., "10s", "infinity").
860
- --retry-count <count> Sets HTTPProxy per-route retry count
861
- (e.g., 3).
862
- --retry-per-try-timeout <duration> Sets HTTPProxy retry per-try timeout
863
- (e.g., "150ms").
864
- --disable-private-conf-update Disables updates to private configuration
865
- during execution.
866
- --versions <deployment-versions> Specifies the deployment versions to
867
- monitor. eg. "blue,green", "green"
868
- --ready-deployment Run in ready deployment monitor mode.
869
- --promote Promotes the deployment after monitoring.
870
- -h, --help display help for command
871
-
872
- ```
873
-
874
-
875
- ### `ssh` :
876
- ```
877
- Usage: underpost ssh [options]
878
-
879
- Manages SSH credentials and sessions for remote access to cluster nodes or
880
- services.
881
-
882
- Options:
883
- --deploy-id <deploy-id> Sets deploy id context for ssh operations.
884
- --generate Generates new ssh credential and stores it in current
885
- private keys file storage.
886
- --user <user> Sets custom ssh user
887
- --password <password> Sets custom ssh password
888
- --host <host> Sets custom ssh host
889
- --port <port> Sets custom ssh port
890
- --filter <filter> Filters ssh user credentials from current private
891
- keys file storage.
892
- --groups <groups> Sets comma-separated ssh user groups for the ssh user
893
- credential.
894
- --user-add Adds a new ssh user credential to current private
895
- keys file storage.
896
- --user-remove Removes an existing ssh user credential from current
897
- private keys file storage.
898
- --user-ls Lists all ssh user credentials from current private
899
- keys file storage.
900
- --start Starts an SSH session with the specified credentials.
901
- --reset Resets ssh configuration and deletes all stored
902
- credentials.
903
- --keys-list Lists all ssh keys from current private keys file
904
- storage.
905
- --hosts-list Lists all ssh hosts from current private keys file
906
- storage.
907
- --disable-password Disables password authentication for the SSH session.
908
- --key-test Tests the SSH key using ssh-keygen.
909
- --stop Stops the SSH service.
910
- --status Checks the status of the SSH service.
911
- --connect-uri Displays the connection URI.
912
- --copy Copies the connection URI to clipboard.
913
- -h, --help display help for command
914
-
915
- ```
916
-
917
-
918
- ### `run` :
919
- ```
920
- Usage: underpost run [options] <runner-id> [path]
740
+ **Usage:** `underpost monitor [options] <deploy-id> [env]`
741
+
742
+ #### Arguments
743
+
744
+ | Argument | Description |
745
+ | --- | --- |
746
+ | `deploy-id` | The deployment configuration ID to monitor. |
747
+ | `env` | Optional: The environment to monitor (e.g., "development", "production"). Defaults to "development". |
748
+
749
+ #### Options
750
+
751
+ | Option | Description |
752
+ | --- | --- |
753
+ | `--ms-interval <ms-interval>` | Sets a custom millisecond interval for monitoring checks. |
754
+ | `--now` | Executes the monitor script immediately. |
755
+ | `--single` | Disables recurrence, running the monitor script only once. |
756
+ | `--replicas <replicas>` | Sets a custom number of replicas for monitoring. Defaults to 1. |
757
+ | `--type <type>` | Sets a custom monitor type. |
758
+ | `--sync` | Synchronizes with current proxy deployments and traffic configurations. |
759
+ | `--namespace <namespace>` | Sets the Kubernetes namespace for the deployment. Defaults to "default". |
760
+ | `--timeout-response <duration>` | Sets HTTPProxy per-route response timeout (e.g., "5s"). |
761
+ | `--timeout-idle <duration>` | Sets HTTPProxy per-route idle timeout (e.g., "10s", "infinity"). |
762
+ | `--retry-count <count>` | Sets HTTPProxy per-route retry count (e.g., 3). |
763
+ | `--retry-per-try-timeout <duration>` | Sets HTTPProxy retry per-try timeout (e.g., "150ms"). |
764
+ | `--disable-private-conf-update` | Disables updates to private configuration during execution. |
765
+ | `--versions <deployment-versions>` | Specifies the deployment versions to monitor. eg. "blue,green", "green" |
766
+ | `--ready-deployment` | Run in ready deployment monitor mode. |
767
+ | `--promote` | Promotes the deployment after monitoring. |
768
+ | `-h, --help` | display help for command |
769
+
770
+ ---
771
+
772
+ ### underpost ssh
773
+
774
+ Manages SSH credentials and sessions for remote access to cluster nodes or services.
775
+
776
+ **Usage:** `underpost ssh [options]`
777
+
778
+ #### Options
779
+
780
+ | Option | Description |
781
+ | --- | --- |
782
+ | `--deploy-id <deploy-id>` | Sets deploy id context for ssh operations. |
783
+ | `--generate` | Generates new ssh credential and stores it in current private keys file storage. |
784
+ | `--user <user>` | Sets custom ssh user |
785
+ | `--password <password>` | Sets custom ssh password |
786
+ | `--host <host>` | Sets custom ssh host |
787
+ | `--port <port>` | Sets custom ssh port |
788
+ | `--filter <filter>` | Filters ssh user credentials from current private keys file storage. |
789
+ | `--groups <groups>` | Sets comma-separated ssh user groups for the ssh user credential. |
790
+ | `--user-add` | Adds a new ssh user credential to current private keys file storage. |
791
+ | `--user-remove` | Removes an existing ssh user credential from current private keys file storage. |
792
+ | `--user-ls` | Lists all ssh user credentials from current private keys file storage. |
793
+ | `--start` | Starts an SSH session with the specified credentials. |
794
+ | `--reset` | Resets ssh configuration and deletes all stored credentials. |
795
+ | `--keys-list` | Lists all ssh keys from current private keys file storage. |
796
+ | `--hosts-list` | Lists all ssh hosts from current private keys file storage. |
797
+ | `--disable-password` | Disables password authentication for the SSH session. |
798
+ | `--key-test` | Tests the SSH key using ssh-keygen. |
799
+ | `--stop` | Stops the SSH service. |
800
+ | `--status` | Checks the status of the SSH service. |
801
+ | `--connect-uri` | Displays the connection URI. |
802
+ | `--copy` | Copies the connection URI to clipboard. |
803
+ | `-h, --help` | display help for command |
804
+
805
+ ---
806
+
807
+ ### underpost run
921
808
 
922
809
  Runs specified scripts using various runners.
923
810
 
924
- Arguments:
925
- runner-id The runner ID to run. Options: dev-cluster,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,etc-hosts,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,monitor-ui,shared-dir.
926
- path The input value, identifier, or path for the operation.
927
-
928
- Options:
929
- --cmd <command-list> Comma-separated list of commands to execute.
930
- --args <args-array> Array of arguments to pass to the command.
931
- --dev Sets the development context environment for the script.
932
- --build Set builder context runner
933
- --replicas <replicas> Sets a custom number of replicas for deployment.
934
- --pod-name <pod-name> Optional: Specifies the pod name for execution.
935
- --node-name <node-name> Optional: Specifies the node name for execution.
936
- --port <port> Optional: Specifies the port for execution.
937
- --etc-hosts Enables etc-hosts context for the runner execution.
938
- --volume-host-path <volume-host-path> Optional: Specifies the volume host path for test execution.
939
- --volume-mount-path <volume-mount-path> Optional: Specifies the volume mount path for test execution.
940
- --volume-type <volume-type> Optional: Specifies the volume type for test execution.
941
- --image-name <image-name> Optional: Specifies the image name for test execution.
942
- --container-name <container-name> Optional: Specifies the container name for test execution.
943
- --namespace <namespace> Optional: Specifies the namespace for test execution.
944
- --tty Enables TTY for the container in deploy-job.
945
- --stdin Keeps STDIN open for the container in deploy-job.
946
- --restart-policy <policy> Sets the restart policy for the job in deploy-job.
947
- --runtime-class-name <name> Sets the runtime class name for the job in deploy-job.
948
- --image-pull-policy <policy> Sets the image pull policy for the job in deploy-job.
949
- --api-version <version> Sets the API version for the job manifest in deploy-job.
950
- --labels <labels> Optional: Specifies a comma-separated list of key-value pairs for labels (e.g., "app=my-app,env=prod").
951
- --claim-name <name> Optional: Specifies the claim name for volume mounting in deploy-job.
952
- --kind-type <kind-type> Specifies the kind of Kubernetes resource (e.g., Job, Deployment) for deploy-job.
953
- --force Forces operation, overriding any warnings or conflicts.
954
- --tls Enables TLS for the runner execution.
955
- --reset Resets the runner state before execution.
956
- --dev-proxy-port-offset <port-offset> Sets a custom port offset for development proxy.
957
- --host-network Enables host network mode for the runner execution.
958
- --requests-memory <requests-memory> Requests memory limit for the runner execution.
959
- --requests-cpu <requests-cpu> Requests CPU limit for the runner execution.
960
- --limits-memory <limits-memory> Sets memory limit for the runner execution.
961
- --limits-cpu <limits-cpu> Sets CPU limit for the runner execution.
962
- --resource-template-id <resource-template-id > Specifies a resource template ID for the runner execution.
963
- --expose Enables service exposure for the runner execution.
964
- --conf-server-path <conf-server-path> Sets a custom configuration server path.
965
- --underpost-root <underpost-root> Sets a custom Underpost root path.
966
- --cmd-cron-jobs <cmd-cron-jobs> Pre-script commands to run before cron job execution.
967
- --deploy-id-cron-jobs <deploy-id-cron-jobs> Specifies deployment IDs to synchronize cron jobs with during execution.
968
- --timezone <timezone> Sets the timezone for the runner execution.
969
- --kubeadm Sets the kubeadm cluster context for the runner execution.
970
- --k3s Sets the k3s cluster context for the runner execution.
971
- --kind Sets the kind cluster context for the runner execution.
972
- --git-clean Runs git clean on volume mount paths before copying.
973
- --deploy-id <deploy-id> Sets deploy id context for the runner execution.
974
- --user <user> Sets user context for the runner execution.
975
- --hosts <hosts> Comma-separated list of hosts for the runner execution.
976
- --instance-id <instance-id> Sets instance id context for the runner execution.
977
- --pid <process-id> Sets process id context for the runner execution.
978
- --timeout-response <duration> Sets HTTPProxy per-route response timeout (e.g., "1s", "300ms", "infinity").
979
- --timeout-idle <duration> Sets HTTPProxy per-route idle timeout (e.g., "10s", "infinity").
980
- --retry-count <count> Sets HTTPProxy per-route retry count (e.g., 3).
981
- --retry-per-try-timeout <duration> Sets HTTPProxy retry per-try timeout (e.g., "150ms").
982
- --disable-private-conf-update Disables updates to private configuration during execution.
983
- --logs Streams logs during the runner execution.
984
- --monitor-status <status> Sets the status to monitor for pod/resource (default: "Running").
985
- --monitor-status-kind-type <kind-type> Sets the Kubernetes resource kind type to monitor (default: "pods").
986
- --monitor-status-delta-ms <milliseconds> Sets the polling interval in milliseconds for status monitoring (default: 1000).
987
- --monitor-status-max-attempts <attempts> Sets the maximum number of status check attempts (default: 600).
988
- --dry-run Preview operations without executing them.
989
- --from-n-commit <n> Number of commits back to use for message propagation in template-deploy (default: 1, last commit only).
990
- --create-job-now After applying cron manifests, immediately create a Job from each CronJob (forwarded to cron runner).
991
- --host-aliases <host-aliases> Adds entries to the Pod /etc/hosts via hostAliases. Format: semicolon-separated entries of "ip=hostname1,hostname2" (e.g., "127.0.0.1=foo.local,bar.local;10.1.2.3=foo.remote,bar.remote").
992
- --copy Copies the runner output to the clipboard (supported by: generate-pass, template-deploy-local).
993
- --skip-full-build Skip client bundle rebuild; triggers pull-bundle in container startup (supported by: sync, template-deploy).
994
- --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.
995
- --remove Remove/teardown resources
996
- -h, --help display help for command
997
-
998
- ```
999
-
1000
-
1001
- ### `lxd` :
1002
- ```
1003
- Usage: underpost lxd [options] [vm-id]
811
+ **Usage:** `underpost run [options] <runner-id> [path]`
812
+
813
+ #### Arguments
814
+
815
+ | Argument | Description |
816
+ | --- | --- |
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. |
818
+ | `path` | The input value, identifier, or path for the operation. |
819
+
820
+ #### Options
821
+
822
+ | Option | Description |
823
+ | --- | --- |
824
+ | `--cmd <command-list>` | Comma-separated list of commands to execute. |
825
+ | `--args <args-array>` | Array of arguments to pass to the command. |
826
+ | `--dev` | Sets the development context environment for the script. |
827
+ | `--build` | Set builder context runner |
828
+ | `--replicas <replicas>` | Sets a custom number of replicas for deployment. |
829
+ | `--pod-name <pod-name>` | Optional: Specifies the pod name for execution. |
830
+ | `--node-name <node-name>` | Optional: Specifies the node name for execution. |
831
+ | `--port <port>` | Optional: Specifies the port for execution. |
832
+ | `--etc-hosts` | Enables etc-hosts context for the runner execution. |
833
+ | `--volume-host-path <volume-host-path>` | Optional: Specifies the volume host path for test execution. |
834
+ | `--volume-mount-path <volume-mount-path>` | Optional: Specifies the volume mount path for test execution. |
835
+ | `--volume-type <volume-type>` | Optional: Specifies the volume type for test execution. |
836
+ | `--image-name <image-name>` | Optional: Specifies the image name for test execution. |
837
+ | `--container-name <container-name>` | Optional: Specifies the container name for test execution. |
838
+ | `--namespace <namespace>` | Optional: Specifies the namespace for test execution. |
839
+ | `--tty` | Enables TTY for the container in deploy-job. |
840
+ | `--stdin` | Keeps STDIN open for the container in deploy-job. |
841
+ | `--restart-policy <policy>` | Sets the restart policy for the job in deploy-job. |
842
+ | `--runtime-class-name <name>` | Sets the runtime class name for the job in deploy-job. |
843
+ | `--image-pull-policy <policy>` | Sets the image pull policy for the job in deploy-job. |
844
+ | `--api-version <version>` | Sets the API version for the job manifest in deploy-job. |
845
+ | `--labels <labels>` | Optional: Specifies a comma-separated list of key-value pairs for labels (e.g., "app=my-app,env=prod"). |
846
+ | `--claim-name <name>` | Optional: Specifies the claim name for volume mounting in deploy-job. |
847
+ | `--kind-type <kind-type>` | Specifies the kind of Kubernetes resource (e.g., Job, Deployment) for deploy-job. |
848
+ | `--force` | Forces operation, overriding any warnings or conflicts. |
849
+ | `--tls` | Enables TLS for the runner execution. |
850
+ | `--reset` | Resets the runner state before execution. |
851
+ | `--dev-proxy-port-offset <port-offset>` | Sets a custom port offset for development proxy. |
852
+ | `--host-network` | Enables host network mode for the runner execution. |
853
+ | `--requests-memory <requests-memory>` | Requests memory limit for the runner execution. |
854
+ | `--requests-cpu <requests-cpu>` | Requests CPU limit for the runner execution. |
855
+ | `--limits-memory <limits-memory>` | Sets memory limit for the runner execution. |
856
+ | `--limits-cpu <limits-cpu>` | Sets CPU limit for the runner execution. |
857
+ | `--resource-template-id <resource-template-id >` | Specifies a resource template ID for the runner execution. |
858
+ | `--expose` | Enables service exposure for the runner execution. |
859
+ | `--conf-server-path <conf-server-path>` | Sets a custom configuration server path. |
860
+ | `--underpost-root <underpost-root>` | Sets a custom Underpost root path. |
861
+ | `--cmd-cron-jobs <cmd-cron-jobs>` | Pre-script commands to run before cron job execution. |
862
+ | `--deploy-id-cron-jobs <deploy-id-cron-jobs>` | Specifies deployment IDs to synchronize cron jobs with during execution. |
863
+ | `--timezone <timezone>` | Sets the timezone for the runner execution. |
864
+ | `--kubeadm` | Sets the kubeadm cluster context for the runner execution. |
865
+ | `--k3s` | Sets the k3s cluster context for the runner execution. |
866
+ | `--kind` | Sets the kind cluster context for the runner execution. |
867
+ | `--git-clean` | Runs git clean on volume mount paths before copying. |
868
+ | `--deploy-id <deploy-id>` | Sets deploy id context for the runner execution. |
869
+ | `--user <user>` | Sets user context for the runner execution. |
870
+ | `--hosts <hosts>` | Comma-separated list of hosts for the runner execution. |
871
+ | `--instance-id <instance-id>` | Sets instance id context for the runner execution. |
872
+ | `--pid <process-id>` | Sets process id context for the runner execution. |
873
+ | `--timeout-response <duration>` | Sets HTTPProxy per-route response timeout (e.g., "1s", "300ms", "infinity"). |
874
+ | `--timeout-idle <duration>` | Sets HTTPProxy per-route idle timeout (e.g., "10s", "infinity"). |
875
+ | `--retry-count <count>` | Sets HTTPProxy per-route retry count (e.g., 3). |
876
+ | `--retry-per-try-timeout <duration>` | Sets HTTPProxy retry per-try timeout (e.g., "150ms"). |
877
+ | `--disable-private-conf-update` | Disables updates to private configuration during execution. |
878
+ | `--logs` | Streams logs during the runner execution. |
879
+ | `--monitor-status <status>` | Sets the status to monitor for pod/resource (default: "Running"). |
880
+ | `--monitor-status-kind-type <kind-type>` | Sets the Kubernetes resource kind type to monitor (default: "pods"). |
881
+ | `--monitor-status-delta-ms <milliseconds>` | Sets the polling interval in milliseconds for status monitoring (default: 1000). |
882
+ | `--monitor-status-max-attempts <attempts>` | Sets the maximum number of status check attempts (default: 600). |
883
+ | `--dry-run` | Preview operations without executing them. |
884
+ | `--from-n-commit <n>` | Number of commits back to use for message propagation in template-deploy (default: 1, last commit only). |
885
+ | `--create-job-now` | After applying cron manifests, immediately create a Job from each CronJob (forwarded to cron runner). |
886
+ | `--host-aliases <host-aliases>` | Adds entries to the Pod /etc/hosts via hostAliases. Format: semicolon-separated entries of "ip=hostname1,hostname2" (e.g., "127.0.0.1=foo.local,bar.local;10.1.2.3=foo.remote,bar.remote"). |
887
+ | `--copy` | Copies the runner output to the clipboard (supported by: generate-pass, template-deploy-local). |
888
+ | `--skip-full-build` | Skip client bundle rebuild; triggers pull-bundle in container startup (supported by: sync, template-deploy). |
889
+ | `--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
+ | `--remove` | Remove/teardown resources |
891
+ | `-h, --help` | display help for command |
892
+
893
+ ---
894
+
895
+ ### underpost lxd
1004
896
 
1005
897
  Manages LXD virtual machines as K3s nodes (control plane or workers).
1006
898
 
1007
- Arguments:
1008
- vm-id VM identifier shared by current-VM flags like
1009
- --vm-create, --vm-delete, --vm-init,
1010
- --vm-info, and --vm-test.
1011
-
1012
- Options:
1013
- --init Initializes LXD on the current machine via
1014
- preseed.
1015
- --reset Host-safe reset: removes proxy devices,
1016
- stops/deletes VMs, drops admin-profile and
1017
- lxdbr0. Does NOT touch the LXD snap or
1018
- storage pools.
1019
- --purge DESTRUCTIVE: gracefully shuts down the LXD
1020
- daemon (60s timeout), then removes the LXD
1021
- snap. Combine with --reset to wipe per-VM
1022
- state first. Safe replacement for the prior
1023
- aggressive teardown.
1024
- --shutdown Pre-host-reboot procedure: gracefully stops
1025
- every VM and the LXD daemon. Run BEFORE any
1026
- reboot/poweroff to keep the host bootable.
1027
- --restore Symmetric to --shutdown: starts the LXD
1028
- daemon, waits for it to be responsive, then
1029
- starts every VM. VMs created via
1030
- admin-profile have boot.autostart=false, so
1031
- this is the explicit "bring the lab back up"
1032
- command.
1033
- --install Installs the LXD snap.
1034
- --dev Use local paths instead of the global npm
1035
- installation.
1036
- --create-virtual-network Creates the lxdbr0 bridge network.
1037
- --ipv4-address <cidr> IPv4 address/CIDR for the lxdbr0 bridge
1038
- network (default: "10.250.250.1/24").
1039
- --create-admin-profile Creates the admin-profile for VM management.
1040
- --control Initialize the target VM as a K3s control
1041
- plane node.
1042
- --worker Initialize the target VM as a K3s worker
1043
- node.
1044
- --vm-create Copy the LXC launch command for the command
1045
- argument [vm-id] to the clipboard.
1046
- --vm-delete SAFELY stop and delete the command argument
1047
- [vm-id] (removes proxy devices first, then
1048
- stops, then deletes). Safe to re-run.
1049
- --vm-init Bring the command argument [vm-id] up as a
1050
- K3s node end-to-end: OS base setup, mirror
1051
- /home/dd/engine into the VM, then K3s role
1052
- install via the local engine (use with
1053
- --control or --worker).
1054
- --vm-info Display full configuration and status for the
1055
- command argument [vm-id].
1056
- --vm-test Run connectivity and health checks on the
1057
- command argument [vm-id].
1058
- --vm-sync-engine Re-copy the host engine source into the
1059
- command argument [vm-id], overriding whatever
1060
- is currently there (equivalent to the
1061
- engine-bootstrap step of --vm-init in
1062
- isolation).
1063
- --root-size <gb-size> Root disk size in GiB for --vm-create
1064
- (default: 32).
1065
- --join-node <nodes> Join a K3s worker to a control plane.
1066
- Standalone format: "workerName,controlName".
1067
- When used with --vm-init --worker, provide
1068
- just the control node name for auto-join.
1069
- --expose <vm-name:ports> Proxy host ports to a VM (e.g.,
1070
- "k3s-control:80,443").
1071
- --node-port <port> Customizes the VM-side (connect) port for
1072
- --expose, so the host listens on the given
1073
- port but proxies to this NodePort inside the
1074
- VM (e.g. expose host 27017 -> VM NodePort
1075
- 32017).
1076
- --delete-expose <vm-name:ports> Remove proxied ports from a VM (e.g.,
1077
- "k3s-control:80,443").
1078
- --copy For two-phase flows that surface a command
1079
- for the user to execute (e.g.
1080
- --create-admin-profile phase 1), copy the
1081
- command to the clipboard instead of printing
1082
- it to the terminal.
1083
- --namespace <namespace> Kubernetes namespace context (defaults to
1084
- "default").
1085
- --maas-project <project> LXD project managed by MAAS (e.g.
1086
- "k3s-cluster"). When set, all lxc commands
1087
- target this project so MAAS enumerates the
1088
- VMs in its machines UI.
1089
- --move-to-project Stop the [vm-id] VM in the default project,
1090
- move it to --maas-project, then start it so
1091
- MAAS picks it up. Requires --maas-project.
1092
- -h, --help display help for command
1093
-
1094
- ```
1095
-
1096
-
1097
- ### `baremetal` :
1098
- ```
1099
- Usage: underpost baremetal [options] [workflow-id]
1100
-
1101
- Manages baremetal server operations, including installation, database setup,
1102
- commissioning, and user management.
1103
-
1104
- Options:
1105
- --ip-address <ip-address> The IP address of the control server or the local machine.
1106
- --hostname <hostname> The hostname of the target baremetal machine.
1107
- --ip-file-server <ip-file-server> The IP address of the file server (NFS/TFTP).
1108
- --ip-config <ip-config> IP configuration string for the baremetal machine.
1109
- --netmask <netmask> Netmask of network.
1110
- --dns-server <dns-server> DNS server IP address.
1111
- --control-server-install Installs the baremetal control server.
1112
- --control-server-uninstall Uninstalls the baremetal control server.
1113
- --control-server-restart Restarts the baremetal control server.
1114
- --control-server-db-install Installs up the database for the baremetal control server.
1115
- --control-server-db-uninstall Uninstalls the database for the baremetal control server.
1116
- --create-machine Creates a new baremetal machine entry in the database.
1117
- --mac <mac> Specifies the MAC address for baremetal machine operations. Use "random" for random MAC, "hardware" to use device's actual MAC (no spoofing), or specify a MAC address.
1118
- --ipxe Chainloads iPXE to normalize identity before commissioning.
1119
- --ipxe-rebuild Forces rebuild of iPXE binary with embedded boot script.
1120
- --ipxe-build-iso <iso-path> Builds a standalone iPXE ISO with embedded script for the specified workflow ID.
1121
- --install-packer Installs Packer CLI.
1122
- --packer-maas-image-template <template-path> Creates a new image folder from canonical/packer-maas template path (requires workflow-id).
1123
- --packer-workflow-id <workflow-id> Specifies the workflow ID for Packer MAAS image operations.
1124
- --packer-maas-image-build Builds a MAAS image using Packer for the workflow specified by --packer-workflow-id.
1125
- --packer-maas-image-upload Uploads an existing MAAS image artifact without rebuilding for the workflow specified by --packer-workflow-id.
1126
- --packer-maas-image-cached Continue last build without removing artifacts (used with --packer-maas-image-build).
1127
- --remove-machines <system-ids> Removes baremetal machines by comma-separated system IDs, or use "all"
1128
- --clear-discovered Clears all discovered baremetal machines from the database.
1129
- --commission Init workflow for commissioning a physical machine.
1130
- --bootstrap-http-server-run Runs a temporary bootstrap HTTP server for generic purposes such as serving iPXE scripts or ISO images during commissioning.
1131
- --bootstrap-http-server-path <path> Sets a custom bootstrap HTTP server path for baremetal commissioning.
1132
- --bootstrap-http-server-port <port> Sets a custom bootstrap HTTP server port for baremetal commissioning.
1133
- --iso-url <url> Uses a custom ISO URL for baremetal machine commissioning.
1134
- --nfs-build Builds an NFS root filesystem for a workflow id config architecture using QEMU emulation.
1135
- --nfs-mount Mounts the NFS root filesystem for a workflow id config architecture.
1136
- --nfs-reset Resets the NFS server completely, closing all connections before reloading exports.
1137
- --nfs-unmount Unmounts the NFS root filesystem for a workflow id config architecture.
1138
- --nfs-build-server Builds the NFS server for a workflow id config architecture.
1139
- --nfs-sh Copies QEMU emulation root entrypoint shell command to the clipboard.
1140
- --cloud-init Sets the kernel parameters and sets the necessary seed users on the HTTP server.
1141
- --cloud-init-update Updates cloud init for a workflow id config architecture.
1142
- --ubuntu-tools-build Builds ubuntu tools for chroot environment.
1143
- --ubuntu-tools-test Tests ubuntu tools in chroot environment.
1144
- --rocky-tools-build Builds rocky linux tools for chroot environment.
1145
- --rocky-tools-test Tests rocky linux tools in chroot environment.
1146
- --bootcmd <bootcmd-list> Comma-separated list of boot commands to execute.
1147
- --runcmd <runcmd-list> Comma-separated list of run commands to execute.
1148
- --logs <log-id> Displays logs for log id: dhcp,dhcp-lease,dhcp-lan,cloud-init,cloud-init-machine,cloud-init-config
1149
- --dev Sets the development context environment for baremetal operations.
1150
- --ls Lists available boot resources and machines.
1151
- -h, --help display help for command
1152
-
1153
- ```
1154
-
1155
-
1156
- ### `release` :
1157
- ```
1158
- Usage: underpost release [options] [version]
1159
-
1160
- Release orchestrator for building new versions and deploying releases of the
1161
- Underpost CLI.
1162
-
1163
- Arguments:
1164
- version The new version string to set (e.g., "3.1.4"). Defaults
1165
- to current version.
1166
-
1167
- Options:
1168
- --build Builds a new version: tests template, bumps versions,
1169
- rebuilds manifests and configs.
1170
- --deploy Deploys the release: syncs secrets, commits, and pushes
1171
- to remote repositories.
1172
- --ci-push <deploy-id> Local equivalent of engine-*.ci.yml: builds
1173
- dd-{deploy-id} and pushes to the engine-{deploy-id}
1174
- repository. Accepts the suffix (e.g., "cyberia"),
1175
- "dd-cyberia", or "engine-cyberia".
1176
- --message <message> Commit message for --ci-push or --pwa-build (defaults
1177
- to last commit of the engine repository).
1178
- --pwa-build Runs the pwa-microservices-template update flow: always
1179
- re-clones, syncs engine sources, installs, builds, and
1180
- pushes.
1181
- --dry-run For --build: previews version-bump changes (per-file
1182
- substitution counts) without writing files or running
1183
- downstream commands.
1184
- -h, --help display help for command
1185
-
1186
- ```
1187
-
899
+ **Usage:** `underpost lxd [options] [vm-id]`
900
+
901
+ #### Arguments
902
+
903
+ | Argument | Description |
904
+ | --- | --- |
905
+ | `vm-id` | VM identifier shared by current-VM flags like --vm-create, --vm-delete, --vm-init, --vm-info, and --vm-test. |
906
+
907
+ #### Options
908
+
909
+ | Option | Description |
910
+ | --- | --- |
911
+ | `--init` | Initializes LXD on the current machine via preseed. |
912
+ | `--reset` | Host-safe reset: removes proxy devices, stops/deletes VMs, drops admin-profile and lxdbr0. Does NOT touch the LXD snap or storage pools. |
913
+ | `--purge` | DESTRUCTIVE: gracefully shuts down the LXD daemon (60s timeout), then removes the LXD snap. Combine with --reset to wipe per-VM state first. Safe replacement for the prior aggressive teardown. |
914
+ | `--shutdown` | Pre-host-reboot procedure: gracefully stops every VM and the LXD daemon. Run BEFORE any reboot/poweroff to keep the host bootable. |
915
+ | `--restore` | Symmetric to --shutdown: starts the LXD daemon, waits for it to be responsive, then starts every VM. VMs created via admin-profile have boot.autostart=false, so this is the explicit "bring the lab back up" command. |
916
+ | `--install` | Installs the LXD snap. |
917
+ | `--dev` | Use local paths instead of the global npm installation. |
918
+ | `--create-virtual-network` | Creates the lxdbr0 bridge network. |
919
+ | `--ipv4-address <cidr>` | IPv4 address/CIDR for the lxdbr0 bridge network (default: "10.250.250.1/24"). |
920
+ | `--create-admin-profile` | Creates the admin-profile for VM management. |
921
+ | `--control` | Initialize the target VM as a K3s control plane node. |
922
+ | `--worker` | Initialize the target VM as a K3s worker node. |
923
+ | `--vm-create` | Copy the LXC launch command for the command argument [vm-id] to the clipboard. |
924
+ | `--vm-delete` | SAFELY stop and delete the command argument [vm-id] (removes proxy devices first, then stops, then deletes). Safe to re-run. |
925
+ | `--vm-init` | Bring the command argument [vm-id] up as a K3s node end-to-end: OS base setup, mirror /home/dd/engine into the VM, then K3s role install via the local engine (use with --control or --worker). |
926
+ | `--vm-info` | Display full configuration and status for the command argument [vm-id]. |
927
+ | `--vm-test` | Run connectivity and health checks on the command argument [vm-id]. |
928
+ | `--vm-sync-engine` | Re-copy the host engine source into the command argument [vm-id], overriding whatever is currently there (equivalent to the engine-bootstrap step of --vm-init in isolation). |
929
+ | `--root-size <gb-size>` | Root disk size in GiB for --vm-create (default: 32). |
930
+ | `--join-node <nodes>` | Join a K3s worker to a control plane. Standalone format: "workerName,controlName". When used with --vm-init --worker, provide just the control node name for auto-join. |
931
+ | `--expose <vm-name:ports>` | Proxy host ports to a VM (e.g., "k3s-control:80,443"). |
932
+ | `--node-port <port>` | Customizes the VM-side (connect) port for --expose, so the host listens on the given port but proxies to this NodePort inside the VM (e.g. expose host 27017 -> VM NodePort 32017). |
933
+ | `--delete-expose <vm-name:ports>` | Remove proxied ports from a VM (e.g., "k3s-control:80,443"). |
934
+ | `--copy` | For two-phase flows that surface a command for the user to execute (e.g. --create-admin-profile phase 1), copy the command to the clipboard instead of printing it to the terminal. |
935
+ | `--namespace <namespace>` | Kubernetes namespace context (defaults to "default"). |
936
+ | `--maas-project <project>` | LXD project managed by MAAS (e.g. "k3s-cluster"). When set, all lxc commands target this project so MAAS enumerates the VMs in its machines UI. |
937
+ | `--move-to-project` | Stop the [vm-id] VM in the default project, move it to --maas-project, then start it so MAAS picks it up. Requires --maas-project. |
938
+ | `-h, --help` | display help for command |
939
+
940
+ ---
941
+
942
+ ### underpost baremetal
943
+
944
+ Manages baremetal server operations, including installation, database setup, commissioning, and user management.
945
+
946
+ **Usage:** `underpost baremetal [options] [workflow-id]`
947
+
948
+ #### Options
949
+
950
+ | Option | Description |
951
+ | --- | --- |
952
+ | `--ip-address <ip-address>` | The IP address of the control server or the local machine. |
953
+ | `--hostname <hostname>` | The hostname of the target baremetal machine. |
954
+ | `--ip-file-server <ip-file-server>` | The IP address of the file server (NFS/TFTP). |
955
+ | `--ip-config <ip-config>` | IP configuration string for the baremetal machine. |
956
+ | `--netmask <netmask>` | Netmask of network. |
957
+ | `--dns-server <dns-server>` | DNS server IP address. |
958
+ | `--control-server-install` | Installs the baremetal control server. |
959
+ | `--control-server-uninstall` | Uninstalls the baremetal control server. |
960
+ | `--control-server-restart` | Restarts the baremetal control server. |
961
+ | `--control-server-db-install` | Installs up the database for the baremetal control server. |
962
+ | `--control-server-db-uninstall` | Uninstalls the database for the baremetal control server. |
963
+ | `--create-machine` | Creates a new baremetal machine entry in the database. |
964
+ | `--mac <mac>` | Specifies the MAC address for baremetal machine operations. Use "random" for random MAC, "hardware" to use device's actual MAC (no spoofing), or specify a MAC address. |
965
+ | `--ipxe` | Chainloads iPXE to normalize identity before commissioning. |
966
+ | `--ipxe-rebuild` | Forces rebuild of iPXE binary with embedded boot script. |
967
+ | `--ipxe-build-iso <iso-path>` | Builds a standalone iPXE ISO with embedded script for the specified workflow ID. |
968
+ | `--install-packer` | Installs Packer CLI. |
969
+ | `--packer-maas-image-template <template-path>` | Creates a new image folder from canonical/packer-maas template path (requires workflow-id). |
970
+ | `--packer-workflow-id <workflow-id>` | Specifies the workflow ID for Packer MAAS image operations. |
971
+ | `--packer-maas-image-build` | Builds a MAAS image using Packer for the workflow specified by --packer-workflow-id. |
972
+ | `--packer-maas-image-upload` | Uploads an existing MAAS image artifact without rebuilding for the workflow specified by --packer-workflow-id. |
973
+ | `--packer-maas-image-cached` | Continue last build without removing artifacts (used with --packer-maas-image-build). |
974
+ | `--remove-machines <system-ids>` | Removes baremetal machines by comma-separated system IDs, or use "all" |
975
+ | `--clear-discovered` | Clears all discovered baremetal machines from the database. |
976
+ | `--commission` | Init workflow for commissioning a physical machine. |
977
+ | `--bootstrap-http-server-run` | Runs a temporary bootstrap HTTP server for generic purposes such as serving iPXE scripts or ISO images during commissioning. |
978
+ | `--bootstrap-http-server-path <path>` | Sets a custom bootstrap HTTP server path for baremetal commissioning. |
979
+ | `--bootstrap-http-server-port <port>` | Sets a custom bootstrap HTTP server port for baremetal commissioning. |
980
+ | `--iso-url <url>` | Uses a custom ISO URL for baremetal machine commissioning. |
981
+ | `--nfs-build` | Builds an NFS root filesystem for a workflow id config architecture using QEMU emulation. |
982
+ | `--nfs-mount` | Mounts the NFS root filesystem for a workflow id config architecture. |
983
+ | `--nfs-reset` | Resets the NFS server completely, closing all connections before reloading exports. |
984
+ | `--nfs-unmount` | Unmounts the NFS root filesystem for a workflow id config architecture. |
985
+ | `--nfs-build-server` | Builds the NFS server for a workflow id config architecture. |
986
+ | `--nfs-sh` | Copies QEMU emulation root entrypoint shell command to the clipboard. |
987
+ | `--cloud-init` | Sets the kernel parameters and sets the necessary seed users on the HTTP server. |
988
+ | `--cloud-init-update` | Updates cloud init for a workflow id config architecture. |
989
+ | `--ubuntu-tools-build` | Builds ubuntu tools for chroot environment. |
990
+ | `--ubuntu-tools-test` | Tests ubuntu tools in chroot environment. |
991
+ | `--rocky-tools-build` | Builds rocky linux tools for chroot environment. |
992
+ | `--rocky-tools-test` | Tests rocky linux tools in chroot environment. |
993
+ | `--bootcmd <bootcmd-list>` | Comma-separated list of boot commands to execute. |
994
+ | `--runcmd <runcmd-list>` | Comma-separated list of run commands to execute. |
995
+ | `--logs <log-id>` | Displays logs for log id: dhcp,dhcp-lease,dhcp-lan,cloud-init,cloud-init-machine,cloud-init-config |
996
+ | `--dev` | Sets the development context environment for baremetal operations. |
997
+ | `--ls` | Lists available boot resources and machines. |
998
+ | `-h, --help` | display help for command |
999
+
1000
+ ---
1001
+
1002
+ ### underpost release
1003
+
1004
+ Release orchestrator for building new versions and deploying releases of the Underpost CLI.
1005
+
1006
+ **Usage:** `underpost release [options] [version]`
1007
+
1008
+ #### Arguments
1009
+
1010
+ | Argument | Description |
1011
+ | --- | --- |
1012
+ | `version` | The new version string to set (e.g., "3.1.4"). Defaults to current version. |
1013
+
1014
+ #### Options
1015
+
1016
+ | Option | Description |
1017
+ | --- | --- |
1018
+ | `--build` | Builds a new version: tests template, bumps versions, rebuilds manifests and configs. |
1019
+ | `--deploy` | Deploys the release: syncs secrets, commits, and pushes to remote repositories. |
1020
+ | `--ci-push <deploy-id>` | Local equivalent of engine-*.ci.yml: builds dd-{deploy-id} and pushes to the engine-{deploy-id} repository. Accepts the suffix (e.g., "cyberia"), "dd-cyberia", or "engine-cyberia". |
1021
+ | `--message <message>` | Commit message for --ci-push or --pwa-build (defaults to last commit of the engine repository). |
1022
+ | `--pwa-build` | Runs the pwa-microservices-template update flow: always re-clones, syncs engine sources, installs, builds, and pushes. |
1023
+ | `--dry-run` | For --build: previews version-bump changes (per-file substitution counts) without writing files or running downstream commands. |
1024
+ | `--mongo-host <host>` | For --build: override DB_HOST in the template .env.example for the smoke test (e.g., "192.168.1.82:27017"). |
1025
+ | `--mongo-user <user>` | For --build: override DB_USER in the template .env.example for the smoke test. |
1026
+ | `--mongo-password <password>` | For --build: override DB_PASSWORD in the template .env.example for the smoke test. |
1027
+ | `--valkey-host <host>` | For --build: override VALKEY_HOST in the template .env.example for the smoke test (e.g., "192.168.1.82"). |
1028
+ | `-h, --help` | display help for command |
1029
+
1030
+ ---