underpost 2.99.4 → 2.99.6
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/.env.development +0 -3
- package/.env.production +1 -3
- package/.env.test +0 -3
- package/README.md +3 -3
- package/baremetal/commission-workflows.json +93 -4
- package/bin/deploy.js +56 -45
- package/cli.md +45 -28
- package/examples/static-page/README.md +101 -357
- package/examples/static-page/ssr-components/CustomPage.js +1 -13
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +40 -0
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +40 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +2 -2
- package/package.json +3 -4
- package/scripts/disk-devices.sh +13 -0
- package/scripts/maas-setup.sh +13 -9
- package/scripts/rocky-kickstart.sh +294 -0
- package/src/cli/baremetal.js +657 -263
- package/src/cli/cloud-init.js +120 -120
- package/src/cli/env.js +4 -1
- package/src/cli/image.js +4 -37
- package/src/cli/index.js +56 -11
- package/src/cli/kickstart.js +149 -0
- package/src/cli/repository.js +3 -1
- package/src/cli/run.js +56 -10
- package/src/cli/secrets.js +0 -34
- package/src/cli/static.js +23 -23
- package/src/client/components/core/Docs.js +22 -3
- package/src/index.js +30 -5
- package/src/server/backup.js +11 -4
- package/src/server/client-build-docs.js +1 -1
- package/src/server/conf.js +0 -22
- package/src/server/cron.js +339 -130
- package/src/server/dns.js +10 -0
- package/src/server/logger.js +22 -27
- package/src/server/tls.js +14 -14
- package/examples/static-page/QUICK-REFERENCE.md +0 -481
- package/examples/static-page/STATIC-GENERATOR-GUIDE.md +0 -757
package/.env.development
CHANGED
|
@@ -16,9 +16,6 @@ DEFAULT_DEPLOY_PATH=/
|
|
|
16
16
|
MARIADB_HOST=changethis
|
|
17
17
|
MARIADB_USER=changethis
|
|
18
18
|
MARIADB_PASSWORD=changethis
|
|
19
|
-
DD_LAMPP_TEST_DB_0=changethis
|
|
20
|
-
WIFI=changethis
|
|
21
|
-
ROUTER=changethis
|
|
22
19
|
CLOUDINARY_CLOUD_NAME=changethis
|
|
23
20
|
CLOUDINARY_API_KEY=changethis
|
|
24
21
|
CLOUDINARY_API_SECRET=changethis
|
package/.env.production
CHANGED
|
@@ -17,9 +17,7 @@ DEFAULT_DEPLOY_PATH=/
|
|
|
17
17
|
MARIADB_HOST=changethis
|
|
18
18
|
MARIADB_USER=changethis
|
|
19
19
|
MARIADB_PASSWORD=changethis
|
|
20
|
-
|
|
21
|
-
WIFI=changethis
|
|
22
|
-
ROUTER=changethis
|
|
20
|
+
WIFI_PASSWORD=changethis
|
|
23
21
|
CLOUDINARY_CLOUD_NAME=changethis
|
|
24
22
|
CLOUDINARY_API_KEY=changethis
|
|
25
23
|
CLOUDINARY_API_SECRET=changethis
|
package/.env.test
CHANGED
|
@@ -16,9 +16,6 @@ DEFAULT_DEPLOY_PATH=/
|
|
|
16
16
|
MARIADB_HOST=changethis
|
|
17
17
|
MARIADB_USER=changethis
|
|
18
18
|
MARIADB_PASSWORD=changethis
|
|
19
|
-
DD_LAMPP_TEST_DB_0=changethis
|
|
20
|
-
WIFI=changethis
|
|
21
|
-
ROUTER=changethis
|
|
22
19
|
CLOUDINARY_CLOUD_NAME=changethis
|
|
23
20
|
CLOUDINARY_API_KEY=changethis
|
|
24
21
|
CLOUDINARY_API_SECRET=changethis
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
<!-- badges -->
|
|
20
20
|
|
|
21
|
-
[](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [](https://www.npmjs.com/package/underpost) [](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml) [](https://www.npmjs.com/package/underpost) [](https://socket.dev/npm/package/underpost/overview/2.99.6) [](https://coveralls.io/github/underpostnet/engine?branch=master) [](https://www.npmjs.org/package/underpost) [](https://www.npmjs.com/package/underpost)
|
|
22
22
|
|
|
23
23
|
<!-- end-badges -->
|
|
24
24
|
|
|
@@ -66,7 +66,7 @@ Run dev client server
|
|
|
66
66
|
npm run dev
|
|
67
67
|
```
|
|
68
68
|
<!-- -->
|
|
69
|
-
## underpost ci/cd cli v2.99.
|
|
69
|
+
## underpost ci/cd cli v2.99.6
|
|
70
70
|
|
|
71
71
|
### Usage: `underpost [options] [command]`
|
|
72
72
|
```
|
|
@@ -93,7 +93,7 @@ Commands:
|
|
|
93
93
|
install Quickly imports Underpost npm dependencies by copying them.
|
|
94
94
|
db [options] [deploy-list] Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
|
|
95
95
|
metadata [options] [deploy-id] [host] [path] Manages cluster metadata operations, including import and export.
|
|
96
|
-
cron [options] [deploy-list] [job-list] Manages cron jobs
|
|
96
|
+
cron [options] [deploy-list] [job-list] Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests.
|
|
97
97
|
fs [options] [path] Manages file storage, defaulting to file upload operations.
|
|
98
98
|
test [options] [deploy-list] Manages and runs tests, defaulting to the current Underpost default test suite.
|
|
99
99
|
monitor [options] <deploy-id> [env] Manages health server monitoring for specified deployments.
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
"rpi4mbarm64-iso-ram": {
|
|
3
3
|
"type": "iso-ram",
|
|
4
4
|
"osIdLike": "debian ubuntu",
|
|
5
|
+
"architecture": "arm64",
|
|
5
6
|
"isoUrl": "https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.3-live-server-arm64.iso",
|
|
6
7
|
"tftpPrefix": "rpi4mb",
|
|
7
8
|
"bootstrapHttpServerPort": 8888,
|
|
8
|
-
"menuentryStr": "UNDERPOST.NET UEFI/GRUB/MAAS RPi4 ISO-RAM commissioning (ARM64)",
|
|
9
|
+
"menuentryStr": "UNDERPOST.NET UEFI/GRUB/MAAS RPi4 ISO-RAM Ubuntu 24.04 ephemeral commissioning (ARM64)",
|
|
9
10
|
"networkInterfaceName": "enabcm6e4ei0",
|
|
10
11
|
"chronyc": {
|
|
11
12
|
"timezone": "America/Santiago",
|
|
@@ -31,9 +32,10 @@
|
|
|
31
32
|
"rpi4mbarm64-chroot": {
|
|
32
33
|
"type": "chroot-debootstrap",
|
|
33
34
|
"osIdLike": "debian ubuntu",
|
|
35
|
+
"architecture": "arm64",
|
|
34
36
|
"tftpPrefix": "rpi4mb",
|
|
35
37
|
"bootstrapHttpServerPort": 8888,
|
|
36
|
-
"menuentryStr": "UNDERPOST.NET UEFI/GRUB/MAAS RPi4 CHROOT commissioning (ARM64)",
|
|
38
|
+
"menuentryStr": "UNDERPOST.NET UEFI/GRUB/MAAS RPi4 CHROOT Ubuntu 24.04 ephemeral commissioning (ARM64)",
|
|
37
39
|
"networkInterfaceName": "enabcm6e4ei0",
|
|
38
40
|
"firmwares": [
|
|
39
41
|
{
|
|
@@ -65,10 +67,11 @@
|
|
|
65
67
|
"rpi4mbarm64-iso-nfs": {
|
|
66
68
|
"type": "iso-nfs",
|
|
67
69
|
"osIdLike": "debian ubuntu",
|
|
70
|
+
"architecture": "arm64",
|
|
68
71
|
"isoUrl": "https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.3-live-server-arm64.iso",
|
|
69
72
|
"tftpPrefix": "rpi4mb",
|
|
70
73
|
"bootstrapHttpServerPort": 8888,
|
|
71
|
-
"menuentryStr": "UNDERPOST.NET UEFI/GRUB/MAAS RPi4 ISO-NFS commissioning (ARM64)",
|
|
74
|
+
"menuentryStr": "UNDERPOST.NET UEFI/GRUB/MAAS RPi4 ISO-NFS Ubuntu 24.04 ephemeral commissioning (ARM64)",
|
|
72
75
|
"networkInterfaceName": "enabcm6e4ei0",
|
|
73
76
|
"chronyc": {
|
|
74
77
|
"timezone": "America/Santiago",
|
|
@@ -94,9 +97,10 @@
|
|
|
94
97
|
"rpi4mbarm64-chroot-rocky9": {
|
|
95
98
|
"type": "chroot-container",
|
|
96
99
|
"osIdLike": "rhel centos fedora",
|
|
100
|
+
"architecture": "arm64",
|
|
97
101
|
"tftpPrefix": "rpi4mb",
|
|
98
102
|
"bootstrapHttpServerPort": 8888,
|
|
99
|
-
"menuentryStr": "UNDERPOST.NET
|
|
103
|
+
"menuentryStr": "UNDERPOST.NET Container CHROOT Rocky Linux 9 ephemeral commissioning (ARM64)",
|
|
100
104
|
"networkInterfaceName": "eth0",
|
|
101
105
|
"firmwares": [
|
|
102
106
|
{
|
|
@@ -117,5 +121,90 @@
|
|
|
117
121
|
"keyboard": {
|
|
118
122
|
"layout": "es"
|
|
119
123
|
}
|
|
124
|
+
},
|
|
125
|
+
"hp-envy-iso-nfs": {
|
|
126
|
+
"type": "iso-nfs",
|
|
127
|
+
"osIdLike": "debian ubuntu",
|
|
128
|
+
"architecture": "amd64",
|
|
129
|
+
"isoUrl": "https://releases.ubuntu.com/releases/24.04/ubuntu-24.04.3-live-server-amd64.iso",
|
|
130
|
+
"tftpPrefix": "envy",
|
|
131
|
+
"bootstrapHttpServerPort": 8888,
|
|
132
|
+
"menuentryStr": "UNDERPOST.NET UEFI/ISO-IPXE/MAAS hp-envy ISO-NFS Ubuntu 24.04 ephemeral commissioning (AMD64)",
|
|
133
|
+
"networkInterfaceName": "eth0",
|
|
134
|
+
"chronyc": {
|
|
135
|
+
"timezone": "America/Santiago",
|
|
136
|
+
"chronyConfPath": "/etc/chrony/chrony.conf"
|
|
137
|
+
},
|
|
138
|
+
"firmwares": [],
|
|
139
|
+
"maas": {
|
|
140
|
+
"commissioning": {
|
|
141
|
+
"architecture": "amd64/hwe-24.04-edge",
|
|
142
|
+
"name": "ubuntu/noble"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"keyboard": {
|
|
146
|
+
"layout": "es"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"hp-envy-iso-ram": {
|
|
150
|
+
"type": "iso-ram",
|
|
151
|
+
"osIdLike": "debian ubuntu",
|
|
152
|
+
"architecture": "amd64",
|
|
153
|
+
"isoUrl": "https://releases.ubuntu.com/releases/24.04/ubuntu-24.04.3-live-server-amd64.iso",
|
|
154
|
+
"tftpPrefix": "envy",
|
|
155
|
+
"bootstrapHttpServerPort": 8888,
|
|
156
|
+
"menuentryStr": "UNDERPOST.NET UEFI/ISO-IPXE/MAAS hp-envy ISO-RAM Ubuntu 24.04 ephemeral commissioning (AMD64)",
|
|
157
|
+
"networkInterfaceName": "eth0",
|
|
158
|
+
"chronyc": {
|
|
159
|
+
"timezone": "America/Santiago",
|
|
160
|
+
"chronyConfPath": "/etc/chrony/chrony.conf"
|
|
161
|
+
},
|
|
162
|
+
"firmwares": [],
|
|
163
|
+
"maas": {
|
|
164
|
+
"commissioning": {
|
|
165
|
+
"architecture": "amd64/hwe-24.04-edge",
|
|
166
|
+
"name": "ubuntu/noble"
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"keyboard": {
|
|
170
|
+
"layout": "es"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"hp-envy-iso-ram-rocky9": {
|
|
174
|
+
"type": "iso-ram",
|
|
175
|
+
"osIdLike": "rhel centos fedora",
|
|
176
|
+
"architecture": "amd64",
|
|
177
|
+
"isoUrl": "https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9-latest-x86_64-boot.iso",
|
|
178
|
+
"tftpPrefix": "envy-rocky9",
|
|
179
|
+
"bootstrapHttpServerPort": 8888,
|
|
180
|
+
"menuentryStr": "UNDERPOST.NET UEFI/ISO-IPXE/KICKSTART-ANACONDA hp-envy ISO-RAM Rocky Linux 9 ephemeral commissioning (AMD64)",
|
|
181
|
+
"networkInterfaceName": "eth0",
|
|
182
|
+
"chronyc": {
|
|
183
|
+
"timezone": "America/Santiago",
|
|
184
|
+
"chronyConfPath": "/etc/chrony/chrony.conf"
|
|
185
|
+
},
|
|
186
|
+
"firmwares": [],
|
|
187
|
+
"container": {
|
|
188
|
+
"image": "quay.io/rockylinux/rockylinux:9",
|
|
189
|
+
"architecture": "amd64",
|
|
190
|
+
"packages": [
|
|
191
|
+
"kernel",
|
|
192
|
+
"kernel-core",
|
|
193
|
+
"kernel-modules",
|
|
194
|
+
"linux-firmware",
|
|
195
|
+
"dracut",
|
|
196
|
+
"dracut-network",
|
|
197
|
+
"dracut-config-generic",
|
|
198
|
+
"dracut-live",
|
|
199
|
+
"nfs-utils",
|
|
200
|
+
"tar",
|
|
201
|
+
"iproute",
|
|
202
|
+
"openssh-server",
|
|
203
|
+
"openssh-clients"
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
"keyboard": {
|
|
207
|
+
"layout": "es"
|
|
208
|
+
}
|
|
120
209
|
}
|
|
121
210
|
}
|
package/bin/deploy.js
CHANGED
|
@@ -468,7 +468,10 @@ try {
|
|
|
468
468
|
shellExec(`node bin new --deploy-id dd-default`);
|
|
469
469
|
console.log(fs.existsSync(`./engine-private/conf/dd-default`));
|
|
470
470
|
shellExec(`sudo rm -rf ./engine-private/conf/dd-default`);
|
|
471
|
-
shellExec(
|
|
471
|
+
shellExec(
|
|
472
|
+
`node bin cron --cmd 'cd /home/dd/engine && node bin run secret && node bin env dd-cron production' --git --kubeadm --dev --setup-start`,
|
|
473
|
+
);
|
|
474
|
+
shellExec(`node bin/deploy build-envs`);
|
|
472
475
|
break;
|
|
473
476
|
}
|
|
474
477
|
|
|
@@ -477,7 +480,7 @@ try {
|
|
|
477
480
|
shellExec(
|
|
478
481
|
`underpost secret underpost --create-from-file /home/dd/engine/engine-private/conf/dd-cron/.env.production`,
|
|
479
482
|
);
|
|
480
|
-
shellExec(`node bin/deploy sync-
|
|
483
|
+
shellExec(`node bin/deploy sync-envs`);
|
|
481
484
|
shellExec(`node bin/build dd conf`);
|
|
482
485
|
shellExec(`git add . && cd ./engine-private && git add .`);
|
|
483
486
|
shellExec(`node bin cmt . ci package-pwa-microservices-template 'New release v:${process.argv[3]}'`);
|
|
@@ -537,45 +540,6 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
|
|
|
537
540
|
|
|
538
541
|
break;
|
|
539
542
|
}
|
|
540
|
-
case 'build-env': {
|
|
541
|
-
const buildEnv = (privateEnvPath, originEnv, env) => {
|
|
542
|
-
const privateEnv = dotenv.parse(fs.readFileSync(privateEnvPath, 'utf8'));
|
|
543
|
-
for (const key of Object.keys(privateEnv)) {
|
|
544
|
-
if (key in env) {
|
|
545
|
-
console.warn(`Key ${key} already exists in origin env`);
|
|
546
|
-
continue;
|
|
547
|
-
}
|
|
548
|
-
if (key in originEnv) {
|
|
549
|
-
console.warn(`Key ${key} already exists in origin env`);
|
|
550
|
-
env[key] = originEnv[key];
|
|
551
|
-
continue;
|
|
552
|
-
}
|
|
553
|
-
env[key] =
|
|
554
|
-
`${key}`.toUpperCase().match('API') ||
|
|
555
|
-
`${key}`.toUpperCase().match('KEY') ||
|
|
556
|
-
`${key}`.toUpperCase().match('SECRET') ||
|
|
557
|
-
`${key}`.toUpperCase().match('TOKEN') ||
|
|
558
|
-
`${key}`.toUpperCase().match('PASSWORD') ||
|
|
559
|
-
`${key}`.toUpperCase().match('MAC')
|
|
560
|
-
? 'changethis'
|
|
561
|
-
: isNaN(parseFloat(privateEnv[key]))
|
|
562
|
-
? `${privateEnv[key]}`.match(`@`)
|
|
563
|
-
? 'admin@default.net'
|
|
564
|
-
: 'changethis'
|
|
565
|
-
: privateEnv[key];
|
|
566
|
-
}
|
|
567
|
-
return env;
|
|
568
|
-
};
|
|
569
|
-
for (let envPath of ['.env.development', '.env.production', '.env.test']) {
|
|
570
|
-
const originEnv = dotenv.parse(fs.readFileSync(`./${envPath}`, 'utf8'));
|
|
571
|
-
|
|
572
|
-
let env = {};
|
|
573
|
-
env = buildEnv(`./engine-private/conf/dd-cron/${envPath}`, originEnv, env);
|
|
574
|
-
env = buildEnv(`./engine-private/conf/dd-core/${envPath}`, originEnv, env);
|
|
575
|
-
writeEnv(envPath, env);
|
|
576
|
-
}
|
|
577
|
-
break;
|
|
578
|
-
}
|
|
579
543
|
|
|
580
544
|
case 'maas-db': {
|
|
581
545
|
// DROP, ALTER, CREATE, WITH ENCRYPTED
|
|
@@ -1121,20 +1085,67 @@ nvidia/gpu-operator \
|
|
|
1121
1085
|
break;
|
|
1122
1086
|
}
|
|
1123
1087
|
|
|
1124
|
-
case '
|
|
1125
|
-
const
|
|
1088
|
+
case 'build-envs': {
|
|
1089
|
+
const buildEnv = (privateEnvPath, originEnv, env) => {
|
|
1090
|
+
const privateEnv = dotenv.parse(fs.readFileSync(privateEnvPath, 'utf8'));
|
|
1091
|
+
for (const key of Object.keys(privateEnv)) {
|
|
1092
|
+
if (key in env) {
|
|
1093
|
+
console.warn(`Key ${key} already exists in origin env`);
|
|
1094
|
+
continue;
|
|
1095
|
+
}
|
|
1096
|
+
if (key in originEnv) {
|
|
1097
|
+
console.warn(`Key ${key} already exists in origin env`);
|
|
1098
|
+
env[key] = originEnv[key];
|
|
1099
|
+
continue;
|
|
1100
|
+
}
|
|
1101
|
+
env[key] =
|
|
1102
|
+
`${key}`.toUpperCase().match('API') ||
|
|
1103
|
+
`${key}`.toUpperCase().match('KEY') ||
|
|
1104
|
+
`${key}`.toUpperCase().match('SECRET') ||
|
|
1105
|
+
`${key}`.toUpperCase().match('TOKEN') ||
|
|
1106
|
+
`${key}`.toUpperCase().match('PASSWORD') ||
|
|
1107
|
+
`${key}`.toUpperCase().match('MAC')
|
|
1108
|
+
? 'changethis'
|
|
1109
|
+
: isNaN(parseFloat(privateEnv[key]))
|
|
1110
|
+
? `${privateEnv[key]}`.match(`@`)
|
|
1111
|
+
? 'admin@default.net'
|
|
1112
|
+
: 'changethis'
|
|
1113
|
+
: privateEnv[key];
|
|
1114
|
+
}
|
|
1115
|
+
return env;
|
|
1116
|
+
};
|
|
1117
|
+
for (let envPath of ['.env.development', '.env.production', '.env.test']) {
|
|
1118
|
+
const originEnv = dotenv.parse(fs.readFileSync(`./${envPath}`, 'utf8'));
|
|
1119
|
+
|
|
1120
|
+
let env = {};
|
|
1121
|
+
env = buildEnv(`./engine-private/conf/dd-cron/${envPath}`, originEnv, env);
|
|
1122
|
+
env = buildEnv(`./engine-private/conf/dd-core/${envPath}`, originEnv, env);
|
|
1123
|
+
writeEnv(envPath, env);
|
|
1124
|
+
}
|
|
1125
|
+
break;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
case 'sync-envs': {
|
|
1126
1129
|
for (const deployId of ['dd-cron'].concat(
|
|
1127
1130
|
fs.readFileSync(`./engine-private/deploy/dd.router`, 'utf8').split(','),
|
|
1128
1131
|
)) {
|
|
1129
1132
|
for (const env of ['production', 'development', 'test']) {
|
|
1130
1133
|
const _envObj = dotenv.parse(fs.readFileSync(`./engine-private/conf/${deployId}/.env.${env}`, 'utf8'));
|
|
1131
|
-
|
|
1134
|
+
for (const env of []) {
|
|
1135
|
+
delete _envObj[env];
|
|
1136
|
+
}
|
|
1132
1137
|
writeEnv(`./engine-private/conf/${deployId}/.env.${env}`, _envObj);
|
|
1133
1138
|
}
|
|
1134
1139
|
}
|
|
1135
1140
|
break;
|
|
1136
1141
|
}
|
|
1137
1142
|
|
|
1143
|
+
case 'envs': {
|
|
1144
|
+
shellExec(`node bin/deploy sync-envs`);
|
|
1145
|
+
shellExec(`node bin/deploy build-envs`);
|
|
1146
|
+
break;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1138
1149
|
case 'cyberia': {
|
|
1139
1150
|
const { CyberiaDependencies } = await import(`../src/client/components/cyberia-portal/CommonCyberiaPortal.js`);
|
|
1140
1151
|
for (const dep of Object.keys(CyberiaDependencies)) {
|
|
@@ -1148,7 +1159,7 @@ nvidia/gpu-operator \
|
|
|
1148
1159
|
const help = `node bin/deploy pw <script-path> <from-path-in-pod> [to-path-on-local]`;
|
|
1149
1160
|
const scriptPath = process.argv[3];
|
|
1150
1161
|
const fromPath = process.argv[4];
|
|
1151
|
-
const toPath = process.argv[5] ? process.argv[5] : fromPath ?
|
|
1162
|
+
const toPath = process.argv[5] ? process.argv[5] : fromPath ? `/tmp/${fromPath.split('/').pop()}` : '';
|
|
1152
1163
|
if (scriptPath === 'help') {
|
|
1153
1164
|
logger.info(help);
|
|
1154
1165
|
break;
|
package/cli.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## underpost ci/cd cli v2.99.
|
|
1
|
+
## underpost ci/cd cli v2.99.6
|
|
2
2
|
|
|
3
3
|
### Usage: `underpost [options] [command]`
|
|
4
4
|
```
|
|
@@ -25,7 +25,7 @@ Commands:
|
|
|
25
25
|
install Quickly imports Underpost npm dependencies by copying them.
|
|
26
26
|
db [options] [deploy-list] Manages database operations with support for MariaDB and MongoDB, including import/export, multi-pod targeting, and Git integration.
|
|
27
27
|
metadata [options] [deploy-id] [host] [path] Manages cluster metadata operations, including import and export.
|
|
28
|
-
cron [options] [deploy-list] [job-list] Manages cron jobs
|
|
28
|
+
cron [options] [deploy-list] [job-list] Manages cron jobs: execute jobs directly or generate and apply K8s CronJob manifests.
|
|
29
29
|
fs [options] [path] Manages file storage, defaulting to file upload operations.
|
|
30
30
|
test [options] [deploy-list] Manages and runs tests, defaulting to the current Underpost default test suite.
|
|
31
31
|
monitor [options] <deploy-id> [env] Manages health server monitoring for specified deployments.
|
|
@@ -243,12 +243,6 @@ Options:
|
|
|
243
243
|
--manifest <path> Web manifest path.
|
|
244
244
|
--head-components <paths> Comma-separated SSR head component paths.
|
|
245
245
|
--body-components <paths> Comma-separated SSR body component paths.
|
|
246
|
-
--deploy-id <deploy-id> Build static assets for a specific deployment
|
|
247
|
-
ID.
|
|
248
|
-
--build Triggers the static build process for the
|
|
249
|
-
specified deployment ID.
|
|
250
|
-
--build-host <build-host> Sets a custom build host for static documents or
|
|
251
|
-
assets.
|
|
252
246
|
--build-path <build-path> Sets a custom build path for static documents or
|
|
253
247
|
assets.
|
|
254
248
|
--env <env> Sets the environment for the static build (e.g.,
|
|
@@ -261,6 +255,8 @@ Options:
|
|
|
261
255
|
--lang <lang> HTML lang attribute (default: en).
|
|
262
256
|
--dir <dir> HTML dir attribute (default: ltr).
|
|
263
257
|
--dev Sets the development cli context
|
|
258
|
+
--run-sv [port] Start a standalone Express static server to
|
|
259
|
+
preview the static build (default port: 5000).
|
|
264
260
|
-h, --help display help for command
|
|
265
261
|
|
|
266
262
|
```
|
|
@@ -286,6 +282,8 @@ Options:
|
|
|
286
282
|
--deploy-id <deploy-id> Sets the deployment configuration ID for the
|
|
287
283
|
operation context.
|
|
288
284
|
--build Sets the build context for the operation.
|
|
285
|
+
--copy Copies the configuration value to the clipboard
|
|
286
|
+
(only for get operation).
|
|
289
287
|
-h, --help display help for command
|
|
290
288
|
|
|
291
289
|
```
|
|
@@ -495,7 +493,7 @@ Manages secrets for various platforms.
|
|
|
495
493
|
|
|
496
494
|
Arguments:
|
|
497
495
|
platform The secret management platform. Options:
|
|
498
|
-
|
|
496
|
+
underpost.
|
|
499
497
|
|
|
500
498
|
Options:
|
|
501
499
|
--init Initializes the secrets platform
|
|
@@ -546,10 +544,6 @@ Options:
|
|
|
546
544
|
management.
|
|
547
545
|
--node-name Set node name for kubeadm or k3s cluster
|
|
548
546
|
env image context management.
|
|
549
|
-
--secrets Includes Dockerfile environment secrets
|
|
550
|
-
during the build.
|
|
551
|
-
--secrets-path [secrets-path] Specifies a custom path for Dockerfile
|
|
552
|
-
environment secrets.
|
|
553
547
|
--reset Performs a build without using the
|
|
554
548
|
cache.
|
|
555
549
|
--dev Use development mode.
|
|
@@ -638,22 +632,39 @@ Options:
|
|
|
638
632
|
```
|
|
639
633
|
Usage: underpost cron [options] [deploy-list] [job-list]
|
|
640
634
|
|
|
641
|
-
Manages cron jobs
|
|
642
|
-
|
|
635
|
+
Manages cron jobs: execute jobs directly or generate and apply K8s CronJob
|
|
636
|
+
manifests.
|
|
643
637
|
|
|
644
638
|
Arguments:
|
|
645
|
-
deploy-list
|
|
646
|
-
|
|
647
|
-
job-list
|
|
648
|
-
|
|
639
|
+
deploy-list A comma-separated list of deployment IDs (e.g.,
|
|
640
|
+
"default-a,default-b").
|
|
641
|
+
job-list A comma-separated list of job IDs. Options:
|
|
642
|
+
dns,backup. Defaults to all available jobs.
|
|
649
643
|
|
|
650
644
|
Options:
|
|
651
|
-
--
|
|
652
|
-
|
|
653
|
-
--
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
645
|
+
--generate-k8s-cronjobs Generates Kubernetes CronJob YAML manifests from
|
|
646
|
+
cron configuration.
|
|
647
|
+
--apply Applies generated K8s CronJob manifests to the
|
|
648
|
+
cluster via kubectl.
|
|
649
|
+
--setup-start [deploy-id] Updates deploy-id package.json start script and
|
|
650
|
+
generates+applies its K8s CronJob manifests.
|
|
651
|
+
--namespace <namespace> Kubernetes namespace for the CronJob resources
|
|
652
|
+
(default: "default").
|
|
653
|
+
--image <image> Custom container image for the CronJob pods.
|
|
654
|
+
--git Pass --git flag to cron job execution.
|
|
655
|
+
--cmd <cmd> Optional pre-script commands to run before cron
|
|
656
|
+
execution.
|
|
657
|
+
--dev Use local ./ base path instead of global underpost
|
|
658
|
+
installation.
|
|
659
|
+
--k3s Use k3s cluster context (apply directly on host).
|
|
660
|
+
--kind Use kind cluster context (apply via kind-worker
|
|
661
|
+
container).
|
|
662
|
+
--kubeadm Use kubeadm cluster context (apply directly on
|
|
663
|
+
host).
|
|
664
|
+
--dry-run Preview cron jobs without executing them.
|
|
665
|
+
--create-job-now After applying manifests, immediately create a Job
|
|
666
|
+
from each CronJob (requires --apply).
|
|
667
|
+
-h, --help display help for command
|
|
657
668
|
|
|
658
669
|
```
|
|
659
670
|
|
|
@@ -800,7 +811,7 @@ Options:
|
|
|
800
811
|
Runs specified scripts using various runners.
|
|
801
812
|
|
|
802
813
|
Arguments:
|
|
803
|
-
runner-id The runner ID to run. Options: dev-cluster,metadata,svc-ls,svc-rm,ssh-deploy-info,dev-hosts-expose,dev-hosts-restore,cluster-build,template-deploy,template-deploy-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,cron,get-proxy,instance-promote,instance,ls-deployments,host-update,dd-container,ip-info,db-client,git-conf,promote,metrics,cluster,deploy,disk-clean,disk-usage,dev,service,etc-hosts,sh,log,ps,ptls,release-cmt,deploy-test,sync-replica,tf-vae-test,spark-template,rmi,kill,secret,underpost-config,gpu-env,tf-gpu-test,deploy-job.
|
|
814
|
+
runner-id The runner ID to run. Options: dev-cluster,metadata,svc-ls,svc-rm,ssh-deploy-info,dev-hosts-expose,dev-hosts-restore,cluster-build,template-deploy,template-deploy-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,cron,get-proxy,instance-promote,instance,ls-deployments,host-update,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,ptls,release-cmt,deploy-test,sync-replica,tf-vae-test,spark-template,rmi,kill,secret,underpost-config,gpu-env,tf-gpu-test,deploy-job.
|
|
804
815
|
path The input value, identifier, or path for the operation.
|
|
805
816
|
|
|
806
817
|
Options:
|
|
@@ -842,7 +853,8 @@ Options:
|
|
|
842
853
|
--expose Enables service exposure for the runner execution.
|
|
843
854
|
--conf-server-path <conf-server-path> Sets a custom configuration server path.
|
|
844
855
|
--underpost-root <underpost-root> Sets a custom Underpost root path.
|
|
845
|
-
--cron-jobs <jobs>
|
|
856
|
+
--cmd-cron-jobs <cmd-cron-jobs> Pre-script commands to run before cron job execution.
|
|
857
|
+
--deploy-id-cron-jobs <deploy-id-cron-jobs> Specifies deployment IDs to synchronize cron jobs with during execution.
|
|
846
858
|
--timezone <timezone> Sets the timezone for the runner execution.
|
|
847
859
|
--kubeadm Sets the kubeadm cluster context for the runner execution.
|
|
848
860
|
--k3s Sets the k3s cluster context for the runner execution.
|
|
@@ -863,6 +875,8 @@ Options:
|
|
|
863
875
|
--monitor-status-kind-type <kind-type> Sets the Kubernetes resource kind type to monitor (default: "pods").
|
|
864
876
|
--monitor-status-delta-ms <milliseconds> Sets the polling interval in milliseconds for status monitoring (default: 1000).
|
|
865
877
|
--monitor-status-max-attempts <attempts> Sets the maximum number of status check attempts (default: 600).
|
|
878
|
+
--dry-run Preview operations without executing them.
|
|
879
|
+
--create-job-now After applying cron manifests, immediately create a Job from each CronJob (forwarded to cron runner).
|
|
866
880
|
-h, --help display help for command
|
|
867
881
|
|
|
868
882
|
```
|
|
@@ -941,6 +955,7 @@ Options:
|
|
|
941
955
|
--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.
|
|
942
956
|
--ipxe Chainloads iPXE to normalize identity before commissioning.
|
|
943
957
|
--ipxe-rebuild Forces rebuild of iPXE binary with embedded boot script.
|
|
958
|
+
--ipxe-build-iso <iso-path> Builds a standalone iPXE ISO with embedded script for the specified workflow ID.
|
|
944
959
|
--install-packer Installs Packer CLI.
|
|
945
960
|
--packer-maas-image-template <template-path> Creates a new image folder from canonical/packer-maas template path (requires workflow-id).
|
|
946
961
|
--packer-workflow-id <workflow-id> Specifies the workflow ID for Packer MAAS image operations.
|
|
@@ -950,11 +965,13 @@ Options:
|
|
|
950
965
|
--remove-machines <system-ids> Removes baremetal machines by comma-separated system IDs, or use "all"
|
|
951
966
|
--clear-discovered Clears all discovered baremetal machines from the database.
|
|
952
967
|
--commission Init workflow for commissioning a physical machine.
|
|
968
|
+
--bootstrap-http-server-run Runs a temporary bootstrap HTTP server for generic purposes such as serving iPXE scripts or ISO images during commissioning.
|
|
953
969
|
--bootstrap-http-server-path <path> Sets a custom bootstrap HTTP server path for baremetal commissioning.
|
|
954
970
|
--bootstrap-http-server-port <port> Sets a custom bootstrap HTTP server port for baremetal commissioning.
|
|
955
971
|
--iso-url <url> Uses a custom ISO URL for baremetal machine commissioning.
|
|
956
972
|
--nfs-build Builds an NFS root filesystem for a workflow id config architecture using QEMU emulation.
|
|
957
973
|
--nfs-mount Mounts the NFS root filesystem for a workflow id config architecture.
|
|
974
|
+
--nfs-reset Resets the NFS server completely, closing all connections before reloading exports.
|
|
958
975
|
--nfs-unmount Unmounts the NFS root filesystem for a workflow id config architecture.
|
|
959
976
|
--nfs-build-server Builds the NFS server for a workflow id config architecture.
|
|
960
977
|
--nfs-sh Copies QEMU emulation root entrypoint shell command to the clipboard.
|
|
@@ -966,7 +983,7 @@ Options:
|
|
|
966
983
|
--rocky-tools-test Tests rocky linux tools in chroot environment.
|
|
967
984
|
--bootcmd <bootcmd-list> Comma-separated list of boot commands to execute.
|
|
968
985
|
--runcmd <runcmd-list> Comma-separated list of run commands to execute.
|
|
969
|
-
--logs <log-id> Displays logs for log id: dhcp,
|
|
986
|
+
--logs <log-id> Displays logs for log id: dhcp,dhcp-lease,dhcp-lan,cloud-init,cloud-init-machine,cloud-init-config
|
|
970
987
|
--dev Sets the development context environment for baremetal operations.
|
|
971
988
|
--ls Lists available boot resources and machines.
|
|
972
989
|
-h, --help display help for command
|