## underpost ci/cd cli v2.8.881

### Usage: `underpost [options] [command]`

```
Options:
-V, --version                                              output the version number
-h, --help                                                 display help for command

Commands:
new [options] <app-name>                                   Initializes a new Underpost project with a predefined structure.
start [options] <deploy-id> [env]                          Initiates application servers, build pipelines, or other defined services based on the deployment ID.
clone [options] <uri>                                      Clones a specified GitHub repository into the current directory.
pull [options] <path> <uri>                                Pulls the latest changes from a specified GitHub repository.
cmt [options] <path> <commit-type> [module-tag] [message]  Manages commits to a GitHub repository, supporting various commit types and options.
push [options] <path> <uri>                                Pushes committed changes from a local repository to a remote GitHub repository.
env <deploy-id> [env]                                      Sets environment variables and configurations related to a specific deployment ID.
config [options] <operator> [key] [value]                  Manages Underpost configurations using various operators.
root                                                       Displays the root path of the npm installation.
cluster [options] [pod-name]                               Manages Kubernetes clusters, defaulting to Kind cluster initialization.
deploy [options] [deploy-list] [env]                       Manages application deployments, defaulting to deploying development pods.
secret [options] <platform>                                Manages secrets for various platforms.
dockerfile-image-build [options]                           Builds a Docker image from a specified Dockerfile with various options for naming, saving, and loading.
dockerfile-pull-base-images [options]                      Pulls required Underpost Dockerfile base images and optionally loads them into clusters.
install                                                    Quickly imports Underpost npm dependencies by copying them.
db [options] <deploy-list>                                 Manages database operations, including import, export, and collection management.
metadata [options] [deploy-id] [host] [path]               Manages cluster metadata operations, including import and export.
script [options] <operator> <script-name> [script-value]   Supports a variety of built-in Underpost global scripts, their preset lifecycle events, and arbitrary custom scripts.
cron [options] [deploy-list] [job-list]                    Manages cron jobs, including initialization, execution, and configuration updates.
fs [options] [path]                                        Manages file storage, defaulting to file upload operations.
test [options] [deploy-list]                               Manages and runs tests, defaulting to the current Underpost default test suite.
monitor [options] <deploy-id> [env]                        Manages health server monitoring for specified deployments.
ssh [options]                                              Import and start ssh server and client based on current default deployment ID.
run [options] <runner-id> [path]                           Runs a script from the specified path.
lxd [options]                                              Manages LXD containers and virtual machines.
baremetal [options] [workflow-id] [hostname] [ip-address]  Manages baremetal server operations, including installation, database setup, commissioning, and user management.
help [command]                                             display help for command

```

## Commands:

### `new` :

```
 Usage: underpost new [options] <app-name>

Initializes a new Underpost project with a predefined structure.

Arguments:
  app-name     The name or deploy-id of the application to create.

Options:
  --deploy-id  Crete deploy ID conf env files
  --cluster    Create deploy ID cluster files and sync to current cluster
  --dev        Sets the development cli context
  -h, --help   display help for command

```

### `start` :

```
 Usage: underpost start [options] <deploy-id> [env]

Initiates application servers, build pipelines, or other defined services based
on the deployment ID.

Arguments:
  deploy-id   The unique identifier for the deployment configuration.
  env         Optional: The environment to start (e.g., "development",
              "production"). Defaults to "development".

Options:
  --run       Starts application servers and monitors their health.
  --build     Triggers the client-side application build process.
  -h, --help  display help for command

```

### `clone` :

```
 Usage: underpost clone [options] <uri>

Clones a specified GitHub repository into the current directory.

Arguments:
  uri         The URI of the GitHub repository (e.g., "username/repository").

Options:
  --bare      Performs a bare clone, downloading only the .git files.
  -g8         Uses the g8 repository extension for cloning.
  -h, --help  display help for command

```

### `pull` :

```
 Usage: underpost pull [options] <path> <uri>

Pulls the latest changes from a specified GitHub repository.

Arguments:
  path        The absolute or relative directory path where the repository is
              located.
  uri         The URI of the GitHub repository (e.g., "username/repository").

Options:
  -g8         Uses the g8 repository extension for pulling.
  -h, --help  display help for command

```

### `cmt` :

```
 Usage: underpost cmt [options] <path> <commit-type> [module-tag] [message]

Manages commits to a GitHub repository, supporting various commit types and
options.

Arguments:
  path         The absolute or relative directory path of the repository.
  commit-type  The type of commit to perform. Options: feat, fix, docs, style,
               refactor, perf, ci, cd, infra, build, test, chore, revert,
               backup.
  module-tag   Optional: Sets a specific module tag for the commit.
  message      Optional: Provides an additional custom message for the commit.

Options:
  --empty      Allows committing with empty files.
  --copy       Copies the generated commit message to the clipboard.
  --info       Displays information about available commit types.
  -h, --help   display help for command

```

### `push` :

```
 Usage: underpost push [options] <path> <uri>

Pushes committed changes from a local repository to a remote GitHub repository.

Arguments:
  path        The absolute or relative directory path of the repository.
  uri         The URI of the GitHub repository (e.g., "username/repository").

Options:
  -f          Forces the push, overwriting the remote repository history.
  -g8         Uses the g8 repository extension for pushing.
  -h, --help  display help for command

```

### `env` :

```
 Usage: underpost env [options] <deploy-id> [env]

Sets environment variables and configurations related to a specific deployment
ID.

Arguments:
  deploy-id   The deployment configuration ID. Use 'clean' to restore default
              environment settings.
  env         Optional: The environment to set (e.g., "production",
              "development"). Defaults to "production".

Options:
  -h, --help  display help for command

```

### `config` :

```
 Usage: underpost config [options] <operator> [key] [value]

Manages Underpost configurations using various operators.

Arguments:
  operator    The configuration operation to perform. Options: set, delete,
              get, list, clean.
  key         Optional: The specific configuration key to manage.
  value       Optional: The value to set for the configuration key.

Options:
  --plain     Prints the configuration value in plain text.
  -h, --help  display help for command

```

### `root` :

```
 Usage: underpost root [options]

Displays the root path of the npm installation.

Options:
  -h, --help  display help for command

```

### `cluster` :

```
 Usage: underpost cluster [options] [pod-name]

Manages Kubernetes clusters, defaulting to Kind cluster initialization.

Arguments:
  pod-name                Optional: Filters information by a specific pod name.

Options:
  --reset                 Deletes all clusters and prunes all related data and
                          caches.
  --mariadb               Initializes the cluster with a MariaDB statefulset.
  --mysql                 Initializes the cluster with a MySQL statefulset.
  --mongodb               Initializes the cluster with a MongoDB statefulset.
  --mongo-db-host <host>  Set custom mongo db host
  --postgresql            Initializes the cluster with a PostgreSQL
                          statefulset.
  --mongodb4              Initializes the cluster with a MongoDB 4.4 service.
  --valkey                Initializes the cluster with a Valkey service.
  --contour               Initializes the cluster with Project Contour base
                          HTTPProxy and Envoy.
  --cert-manager          Initializes the cluster with a Let's Encrypt
                          production ClusterIssuer.
  --dedicated-gpu         Initializes the cluster with dedicated GPU base
                          resources and environment settings.
  --info                  Retrieves information about all deployed Kubernetes
                          objects.
  --full                  Initializes the cluster with all available
                          statefulsets and services.
  --ns-use <ns-name>      Switches the current Kubernetes context to the
                          specified namespace.
  --kubeadm               Initializes the cluster using kubeadm for control
                          plane management.
  --grafana               Initializes the cluster with a Grafana deployment.
  --prom [hosts]          Initializes the cluster with a Prometheus Operator
                          deployment and monitor scrap for specified hosts.
  --dev                   Initializes a development-specific cluster
                          configuration.
  --list-pods             Displays detailed information about all pods.
  --info-capacity         Displays the current total machine capacity
                          information.
  --info-capacity-pod     Displays the current machine capacity information per
                          pod.
  --pull-image            Sets an optional associated image to pull during
                          initialization.
  --init-host             Installs necessary Kubernetes node CLI tools (e.g.,
                          kind, kubeadm, docker, podman, helm).
  --uninstall-host        Uninstalls all host components installed by
                          init-host.
  --config                Sets the base Kubernetes node configuration.
  --worker                Sets the context for a worker node.
  --chown                 Sets the appropriate ownership for Kubernetes
                          kubeconfig files.
  --k3s                   Initializes the cluster using K3s (Lightweight
                          Kubernetes).
  -h, --help              display help for command

```

### `deploy` :

```
 Usage: underpost deploy [options] [deploy-list] [env]

Manages application deployments, defaulting to deploying development pods.

Arguments:
  deploy-list                       A comma-separated list of deployment IDs
                                    (e.g., "default-a,default-b").
  env                               Optional: The environment for deployment
                                    (e.g., "development", "production").
                                    Defaults to "development".

Options:
  --remove                          Deletes specified deployments and their
                                    associated services.
  --sync                            Synchronizes deployment environment
                                    variables, ports, and replica counts.
  --info-router                     Displays the current router structure and
                                    configuration.
  --expose                          Exposes services matching the provided
                                    deployment ID list.
  --info-util                       Displays useful `kubectl` utility
                                    management commands.
  --cert                            Resets TLS/SSL certificate secrets for
                                    deployments.
  --cert-hosts <hosts>              Resets TLS/SSL certificate secrets for
                                    specified hosts.
  --node <node>                     Sets optional node for deployment
                                    operations.
  --build-manifest                  Builds Kubernetes YAML manifests, including
                                    deployments, services, proxies, and
                                    secrets.
  --replicas <replicas>             Sets a custom number of replicas for
                                    deployments.
  --image <image>                   Sets a custom image for deployments.
  --versions <deployment-versions>  A comma-separated list of custom deployment
                                    versions.
  --traffic <traffic-versions>      A comma-separated list of custom deployment
                                    traffic weights.
  --disable-update-deployment       Disables updates to deployments.
  --info-traffic                    Retrieves traffic configuration from
                                    current resource deployments.
  --kubeadm                         Enables the kubeadm context for deployment
                                    operations.
  --etc-hosts                       Enables the etc-hosts context for
                                    deployment operations.
  --restore-hosts                   Restores default `/etc/hosts` entries.
  -h, --help                        display help for command

```

### `secret` :

```
 Usage: underpost secret [options] <platform>

Manages secrets for various platforms.

Arguments:
  platform                            The secret management platform. Options:
                                      docker, underpost.

Options:
  --init                              Initializes the secrets platform
                                      environment.
  --create-from-file <path-env-file>  Creates secrets from a specified
                                      environment file.
  --list                              Lists all available secrets for the
                                      platform.
  -h, --help                          display help for command

```

### `dockerfile-image-build` :

```
 Usage: underpost dockerfile-image-build [options]

Builds a Docker image from a specified Dockerfile with various options for
naming, saving, and loading.

Options:
  --path [path]                        The path to the Dockerfile directory.
  --image-name [image-name]            Sets a custom name for the Docker image.
  --image-path [image-path]            Sets the output path for the tar image
                                       archive.
  --dockerfile-name [dockerfile-name]  Sets a custom name for the Dockerfile.
  --podman-save                        Exports the built image as a tar file
                                       using Podman.
  --kind-load                          Imports the tar image into a Kind
                                       cluster.
  --kubeadm-load                       Imports the tar image into a Kubeadm
                                       cluster.
  --secrets                            Includes Dockerfile environment secrets
                                       during the build.
  --secrets-path [secrets-path]        Specifies a custom path for Dockerfile
                                       environment secrets.
  --reset                              Performs a build without using the
                                       cache.
  --k3s-load                           Loads the image into a K3s cluster.
  -h, --help                           display help for command

```

### `dockerfile-pull-base-images` :

```
 Usage: underpost dockerfile-pull-base-images [options]

Pulls required Underpost Dockerfile base images and optionally loads them into
clusters.

Options:
  --path [path]   The path to the Dockerfile directory.
  --kind-load     Imports the pulled image into a Kind cluster.
  --kubeadm-load  Imports the pulled image into a Kubeadm cluster.
  --version       Sets a custom version for the base images.
  --k3s-load      Loads the image into a K3s cluster.
  -h, --help      display help for command

```

### `install` :

```
 Usage: underpost install [options]

Quickly imports Underpost npm dependencies by copying them.

Options:
  -h, --help  display help for command

```

### `db` :

```
 Usage: underpost db [options] <deploy-list>

Manages database operations, including import, export, and collection
management.

Arguments:
  deploy-list                  A comma-separated list of deployment IDs (e.g.,
                               "default-a,default-b").

Options:
  --import                     Imports container backups from specified
                               repositories.
  --export                     Exports container backups to specified
                               repositories.
  --pod-name <pod-name>        Optional: Specifies the pod context for database
                               operations.
  --collections <collections>  A comma-separated list of database collections
                               to operate on.
  --out-path <out-path>        Specifies a custom output path for backups.
  --drop                       Drops the specified databases or collections.
  --preserveUUID               Preserves UUIDs during database operations.
  --git                        Uploads database backups to GitHub.
  --hosts <hosts>              A comma-separated list of database hosts.
  --paths <paths>              A comma-separated list of paths for database
                               files.
  --ns <ns-name>               Optional: Specifies the namespace context for
                               database operations.
  -h, --help                   display help for command

```

### `metadata` :

```
 Usage: underpost metadata [options] [deploy-id] [host] [path]

Manages cluster metadata operations, including import and export.

Arguments:
  deploy-id    The deployment ID to manage metadata.
  host         The host to manage metadata.
  path         The path to manage metadata.

Options:
  --import     Imports from local storage.
  --export     Exports to local storage.
  --crons      Apply to cron data collection
  --instances  Apply to instance data collection
  --generate   Generate cluster metadata
  --itc        Apply under container execution context
  -h, --help   display help for command

```

### `script` :

```
 Usage: underpost script [options] <operator> <script-name> [script-value]

Supports a variety of built-in Underpost global scripts, their preset lifecycle
events, and arbitrary custom scripts.

Arguments:
  operator               The script operation to perform. Options: set, run,
                         get.
  script-name            The name of the script to execute.
  script-value           Optional: A literal command or a path to a script
                         file.

Options:
  --itc                  Executes the script within the container execution
                         context.
  --itc-path             Specifies container path options for script execution.
  --ns <ns-name>         Optional: Specifies the namespace context for script
                         execution.
  --pod-name <pod-name>  Optional: Specifies the pod name for script execution.
  -h, --help             display help for command

```

### `cron` :

```
 Usage: underpost cron [options] [deploy-list] [job-list]

Manages cron jobs, including initialization, execution, and configuration
updates.

Arguments:
  deploy-list  A comma-separated list of deployment IDs (e.g.,
               "default-a,default-b").
  job-list     A comma-separated list of job IDs. Options: callback,
               getRelatedDeployId. Defaults to all available jobs.

Options:
  --itc        Executes cron jobs within the container execution context.
  --init       Initializes cron jobs for the default deployment ID.
  --git        Uploads cron job configurations to GitHub.
  -h, --help   display help for command

```

### `fs` :

```
 Usage: underpost fs [options] [path]

Manages file storage, defaulting to file upload operations.

Arguments:
  path                                     The absolute or relative directory path for file operations.

Options:
  --rm                                     Removes the specified file.
  --git                                    Displays current Git changes related to file storage.
  --recursive                              Uploads files recursively from the specified path.
  --deploy-id <deploy-id>                  Specifies the deployment configuration ID for file operations.
  --pull                                   Downloads the specified file.
  --force                                  Forces the action, overriding any warnings or conflicts.
  --storage-file-path <storage-file-path>  Specifies a custom file storage path.
  -h, --help                               display help for command

```

### `test` :

```
 Usage: underpost test [options] [deploy-list]

Manages and runs tests, defaulting to the current Underpost default test suite.

Arguments:
  deploy-list                A comma-separated list of deployment IDs (e.g.,
                             "default-a,default-b").

Options:
  --itc                      Executes tests within the container execution
                             context.
  --sh                       Copies the container entrypoint shell command to
                             the clipboard.
  --logs                     Displays container logs for test debugging.
  --pod-name <pod-name>      Optional: Specifies the pod name for test
                             execution.
  --pod-status <pod-status>  Optional: Filters tests by pod status.
  --kind-type <kind-type>    Optional: Specifies the Kind cluster type for
                             tests.
  -h, --help                 display help for command

```

### `monitor` :

```
 Usage: underpost monitor [options] <deploy-id> [env]

Manages health server monitoring for specified deployments.

Arguments:
  deploy-id                    The deployment configuration ID to monitor.
  env                          Optional: The environment to monitor (e.g.,
                               "development", "production"). Defaults to
                               "development".

Options:
  --ms-interval <ms-interval>  Sets a custom millisecond interval for
                               monitoring checks.
  --now                        Executes the monitor script immediately.
  --single                     Disables recurrence, running the monitor script
                               only once.
  --replicas <replicas>        Sets a custom number of replicas for monitoring.
  --type <type>                Sets a custom monitor type.
  --sync                       Synchronizes with current proxy deployments and
                               traffic configurations.
  -h, --help                   display help for command

```

### `ssh` :

```
 Usage: underpost ssh [options]

Import and start ssh server and client based on current default deployment ID.

Options:
  --generate  Generates new ssh credential and stores it in current private
              keys file storage.
  -h, --help  display help for command

```

### `run` :

```
 Usage: underpost run [options] <runner-id> [path]

Runs a script from the specified path.

Arguments:
  runner-id                                The runner ID to run. Options: spark-template, rmi, kill, secret, underpost-config, gpu-env, tf-gpu-test, dev-cluster, ssh-cluster-info, cyberia-ide, engine-ide, template-deploy, clean, pull, release-deploy, ssh-deploy, ide, dev-client, dev-api, sync, ls-deployments, monitor, db-client, promote, metrics, cluster, deploy, tf-vae-test, deploy-job.
  path                                     The absolute or relative directory path where the script is located.

Options:
  --command <command-array>                Array of commands to run.
  --args <args-array>                      Array of arguments to pass to the command.
  --dev                                    Sets the development context environment for the script.
  --build                                  Set builder context runner
  --replicas <replicas>                    Sets a custom number of replicas for deployment.
  --pod-name <pod-name>                    Optional: Specifies the pod name for test execution.
  --volume-host-path <volume-host-path>    Optional: Specifies the volume host path for test execution.
  --volume-mount-path <volume-mount-path>  Optional: Specifies the volume mount path for test execution.
  --volume-type <volume-type>              Optional: Specifies the volume type for test execution.
  --image-name <image-name>                Optional: Specifies the image name for test execution.
  --container-name <container-name>        Optional: Specifies the container name for test execution.
  --namespace <namespace>                  Optional: Specifies the namespace for test execution.
  --kubeadm                                Flag to indicate Kubeadm cluster type context
  --k3s                                    Flag to indicate K3s cluster type context
  -h, --help                               display help for command

```

### `lxd` :

```
 Usage: underpost lxd [options]

Manages LXD containers and virtual machines.

Options:
  --init                           Initializes LXD on the current machine.
  --reset                          Resets LXD on the current machine, deleting
                                   all configurations.
  --install                        Installs LXD on the current machine.
  --dev                            Sets the development context environment for
                                   LXD.
  --create-virtual-network         Creates an LXD virtual network bridge.
  --create-admin-profile           Creates an admin profile for LXD management.
  --control                        Sets the context for a control node VM.
  --worker                         Sets the context for a worker node VM.
  --create-vm <vm-id>              Creates default virtual machines with the
                                   specified ID.
  --init-vm <vm-id>                Retrieves the Underpost initialization
                                   script for the specified VM.
  --info-vm <vm-id>                Retrieves all information about the
                                   specified VM.
  --test <vm-id>                   Tests the health, status, and network
                                   connectivity for a VM.
  --root-size <gb-size>            Sets the root partition size (in GB) for the
                                   VM.
  --k3s                            Flag to indicate that the VM initialization
                                   is for a K3s cluster type.
  --join-node <nodes>              A comma-separated list of worker and control
                                   nodes to join (e.g.,
                                   "k8s-worker-1,k8s-control").
  --expose <vm-name-ports>         Exposes specified ports on a VM (e.g.,
                                   "k8s-control:80,443"). Multiple VM-port
                                   pairs can be comma-separated.
  --delete-expose <vm-name-ports>  Removes exposed ports on a VM (e.g.,
                                   "k8s-control:80,443"). Multiple VM-port
                                   pairs can be comma-separated.
  --auto-expose-k8s-ports <vm-id>  Automatically exposes common Kubernetes
                                   ports for the specified VM.
  -h, --help                       display help for command

```

### `baremetal` :

```
 Usage: underpost baremetal [options] [workflow-id] [hostname] [ip-address]

Manages baremetal server operations, including installation, database setup,
commissioning, and user management.

Options:
  --control-server-install       Installs the baremetal control server.
  --control-server-uninstall     Uninstalls the baremetal control server.
  --control-server-db-install    Installs up the database for the baremetal
                                 control server.
  --control-server-db-uninstall  Uninstalls the database for the baremetal
                                 control server.
  --commission                   Init workflow for commissioning a physical
                                 machine.
  --nfs-build                    Builds an NFS root filesystem for a workflow
                                 id config architecture using QEMU emulation.
  --nfs-mount                    Mounts the NFS root filesystem for a workflow
                                 id config architecture.
  --nfs-unmount                  Unmounts the NFS root filesystem for a
                                 workflow id config architecture.
  --nfs-sh                       Copies QEMU emulation root entrypoint shell
                                 command to the clipboard.
  --cloud-init-update            Updates cloud init for a workflow id config
                                 architecture.
  --cloud-init-reset             Resets cloud init for a workflow id config
                                 architecture.
  --logs <log-id>                Displays logs for log id: dhcp, cloud,
                                 machine, cloud-config.
  --dev                          Sets the development context environment for
                                 baremetal operations.
  --ls                           Lists available boot resources and machines.
  -h, --help                     display help for command

```
