vpctl architecture and security
Learn about vpctl trust boundaries, three usage modes, and what vpctl touches on the network and in your cluster.
Read time 2 minutesLast updated 4 hours ago
This page helps security teams review vpctl. It describes what vpctl touches on the network, in your cluster, and on disk. It also shows the three usage modes in this guide. Each mode has different trust-boundary implications, you can pick the one that matches your security posture.
What vpctl does (full capability map)
vpctl spans five phases. Only Render (release generate
- Mode A (recommended) uses every phase.
- Mode B is Mode A with the Mirror phase made explicit for air-gapped deployments.
- Mode C uses only Render and stops there, vpctl hands outputs to the CD tooling you already run.
Mode A — Recommended (CI + ArgoCD)
vpctl runs only in your CI pipeline. Yourmanifest.yaml- Checks out the manifest
- Pulls the release from the Unity registry -Optionally mirrors artifacts to your registry
- Renders charts and Secret manifests
- Applies a single bootstrap ArgoCD to the cluster. After that, ArgoCD pulls charts from your Git repo and deploys workloads. With
Application(recommended), vpctl never holds a cluster-wide deploy credentials. Argo CD manages those credentials instead.. In this mode, the--format argocdvariant requires the CI runner to use a cluster-wide kubeconfig.--format helm

- With (recommended), vpctl applies a single bootstrap
--format argocdand ArgoCD pulls from Git after that. vpctl's cluster touch is limited to two namespace-scoped applies (Secrets + the Application).argoproj.io/Application - With , vpctl runs
--format helmfor every chart in the release, which requires a cluster-wide kubeconfig in the CI runner. ArgoCD is recommended because it keeps the cluster-wide deployment credentials out of CI.helm upgrade --install
Mode B — Air-gapped mirror
A bastion or staging host, runs vpctl once to mirror Unity release artifacts into your private registry. After the mirror completes, the production cluster, Argo CD, and your Git repository no longer reach the public internet. Image references in the rendered charts are rewritten to your registry at generate time.
--format helm | argocdMode C — Generate-only (bring your own CD)
vpctl renders Helm chart values and KubernetesSecretmanifest.yamlhelmkubectlgenerated-charts/secrets.yaml
vpctl release deploy --format helmhelm upgrade --installWhat vpctl touches
- Outbound network:
- Unity registry () — required for
uccmpprivatecloud.azurecr.ioand the source side ofrelease pull.artifact sync - Your registry — required for the target side of .
artifact sync - Kubernetes API — used only for and
secret deploy.release deploy
- Unity registry (
- Credentials read:
- Unity registry credentials, stored under your home directory after .
vpctl configure - Docker credential store () for ORAS and OCI Helm operations.
~/.docker/config.json - kubeconfig (default discovery; override with on
--contextandsecret deploy).release deploy
- Unity registry credentials, stored under your home directory after
- Files written (inside the working directory only):
- — release archive contents.
extracted-release/ - — rendered Helm charts and ArgoCD
generated-charts/manifests.Application - — rendered Kubernetes
secrets.yamlmanifests.Secret - — created only when you pass
secrets.import.yamlto--persist.secret generate
- What vpctl never does: send telemetry, call back to Unity, auto-update, or modify anything outside the working directory.