vpctl release commands
Pull, generate, deploy, and uninstall vpctl release commands
Read time 5 minutesLast updated 12 hours ago
Use the command group to manage the deployment lifecycle. Pull a release archive from the Unity registry, render Helm chart values from your manifest, deploy to your cluster or hand off to ArgoCD, and uninstall.
releasePull a release
Download a release from the registry. If you use a manifest file, the tool reads the version from the manifest automatically. By default, the release is extracted to .
./extracted-releasevpctl release pull --clean-output
Parameters:
- : Directory to extract the archive to (default:
--extract-dir)../extracted-release - : Skip extracting the downloaded archive (default: extracts to
--skip-extract)../extracted-release - : Clear the extraction directory before extracting.
--clean-output - : Release version to pull (optional, defaults to value from manifest).
--version - : Registry URL (default:
--registry).uccmpprivatecloud.azurecr.io - : Output file path for the archive (default:
--output).unity-private-cloud-<platform>-<version>.tar.gz
Example with manifest:
vpctl release pull --clean-output
Example without manifest, specify version:
vpctl release pull --version 1.2.3 --clean-output
Example with custom extraction directory:
vpctl release pull --extract-dir ./my-release --clean-output
Example skipping extraction:
vpctl release pull --skip-extract
Generate and deploy charts
Choose your deployment method: Helm or ArgoCD.
Generate Helm charts
vpctl release generate --clean-output
Parameters:
- : Clean the output directory before generating
--clean-output - : Output format (
--formatgenerates app-of-apps chart structure; omit for standard Helm charts)argocd - : Path to extracted release (defaults to
--extracted-release)./extracted-release - : Output directory (defaults to
--output)generated-charts - : Filter to generate only charts matching a name pattern
--name - : Skip vpctl version compatibility check against the release package
--skip-version-check
Example:
vpctl release generate --extracted-release ./extracted-release --output ./my-charts --clean-output
Deploy with Helm
Preview deployment (recommended):
vpctl release deploy --dry-run
If you're deploying Asset Manager for the first time, deploy the release in waves. Start with the lowest wave, use the flag, for example `-3, then validate the deployment before deploying the next wave. This ensures the release deploys in the correct order and all dependencies are satisfied.
--waveExecute deployment:
vpctl release deploy
Common options:
- : Show commands without executing.
--dry-run - : Deployment format (
--formatorhelm; defaults toargocd).helm - : Directory containing charts (defaults to
--charts-dir).generated-charts - : Deploy only a specific wave (Helm format only; for example,
--waveis lowest,-3is highest).0 - : Deploy only a single chart by name.
--name - : Wait for each Helm release to complete before moving on (default:
--wait; disable withtrue).--wait=false - : Timeout per Helm release when
--timeout(default:--wait=true; ignored when10m).--wait=false - : Number of additional attempts after a failed Helm command (default:
--retries). Useful for the CRD-not-yet-visible race that sometimes resolves on a second attempt.0 - : Delay between retry attempts (default:
--retry-delay; only meaningful when5s).--retries > 0 - : Update chart dependencies before deployment (default:
--dependency-update). In parallel mode (truegreater than--concurrency), the update runs as a separate step for each chart and skips the repository refresh.1 - : Additional Helm flags to pass to the command.
--helm-flags - : Number of charts to deploy in parallel within a wave (default:
--concurrency, sequential; Helm format only). When you omit the flag, the manifest value1applies. Refer to the parallel deployment notes that follow.deployment.helm.concurrency
Example deploying a specific wave:
vpctl release deploy --wave -3
Parallel deployment
Set (where is greater than ) to deploy the charts within the same wave in parallel. You can also set in the manifest to make it the default for your environment; the CLI flag takes precedence when both are set.
--concurrency NN1deployment.helm.concurrency- Charts within the same wave deploy concurrently through a bounded worker pool of size . Waves remain sequential: the next wave starts only after every chart in the current wave succeeds.
N - The Helm chart repositories refresh once at the start of the deployment, and per-chart dependency updates skip the refresh, which avoids races on the shared Helm cache.
- Each chart's Helm output is buffered and printed as a single block when that chart finishes, for example , so the line ordering differs from sequential mode and there's no live progress for an in-flight chart.
==> [chart-name] done in 12.3s - A summary line at the end of every wave and at the end of the deployment reports the total, succeeded, and failed counts with the elapsed time. On failure, the error lists the failing chart names.
- Parallel deployment applies to the Helm format only: with , any
--format argocdvalue greater than--concurrencyis rejected, because the ArgoCD path applies a single bootstrap1and does no per-chart Helm work.Application
Example deploying with four workers:
vpctl release deploy --format helm --concurrency 4
Manifest defaults for ArgoCD
You can define ArgoCD parameters in the manifest under so you don't need to pass them every time. CLI flags always take precedence over manifest values when both are provided.
deployment.argocd# manifest.yamldeployment: argocd: repoURL: "https://github.com/org/repo.git" pathPrefix: "onprem/cluster1" destinationServer: "https://kubernetes.default.svc" targetRevision: "main"
When the tool reads a value from the manifest instead of a CLI flag, it prints a log message, for example, .
Using argocd-repo-url from manifest: ...Helm chart mode
The field controls how Helm charts are sourced:
deployment.helmChartMode# manifest.yamldeployment: helmChartMode: "local" # default: use charts from the release package
Value | Behavior |
|---|---|
| All charts are installed from the release package. This is the safe default for existing installations and airgapped environments. |
| Charts marked as |
If you omit this field, the tool uses . Set to opt in to OCI remote charts.
"local"helmChartMode: "remote"Generate ArgoCD application
If you set in the manifest, you only need to pass flags you want to override:
deployment.argocdvpctl release generate --format argocd --clean-output
Or override specific values for each run:
vpctl release generate --format argocd --argocd-path-prefix <path-prefix> --argocd-target-revision <branch-or-tag> --clean-output
You can still pass all flags explicitly, they take precedence over the manifest:
vpctl release generate --format argocd --argocd-repo-url <your-git-repo-url> --argocd-destination "https://kubernetes.default.svc" --argocd-target-revision "main" --argocd-path-prefix <path-prefix> --clean-output
Parameters:
- : Generate ArgoCD format
--format argocd - : Git repository URL where charts are stored (can be set in manifest
--argocd-repo-url)deployment.argocd.repoURL - : Kubernetes server URL (can be set in manifest
--argocd-destination)deployment.argocd.destinationServer - : Git branch/tag to use (can be set in manifest
--argocd-target-revision)deployment.argocd.targetRevision - : Path prefix in the Git repository (can be set in manifest
--argocd-path-prefix)deployment.argocd.pathPrefix - : Clean output directory before generating
--clean-output
This command creates an app-of-apps chart structure in the output directory.
Deploy ArgoCD application
Preview deployment (recommended):
vpctl release deploy --format argocd --dry-run
Execute deployment:
vpctl release deploy --format argocd
Common options:
- : Use ArgoCD deployment
--format argocd - : Preview kubectl command without executing
--dry-run - : Directory containing charts (defaults to
--charts-dir)generated-charts
Uninstall a release
To remove a deployed release, use the uninstall command. The tool uninstalls charts in reverse wave order with the highest wave first to ensure dependencies are removed correctly.
Preview uninstall commands (recommended):
vpctl release uninstall --dry-run
Execute uninstall:
vpctl release uninstall
Common options:
- : Show commands without executing
--dry-run - : Directory containing charts (defaults to
--charts-dir)generated-charts - : Uninstall only charts in the specified wave (for example
--waveis lowest,-3is highest)0 - : Uninstall only a single chart (chart name)
--name
Example uninstalling a specific wave:
vpctl release uninstall --wave 0 --dry-run
Example uninstalling a specific chart:
vpctl release uninstall --name my-chart --dry-run
The uninstall command uses for Helm-deployed charts and for charts deployed with templateApply, such as. kube-prometheus-stack.
helm uninstallhelm template | kubectl delete