vpctl artifact command
Mirror Docker images, ORAS artifacts, and OCI Helm charts between registries.
Read time 2 minutesLast updated 11 hours ago
Before you deploy, sync artifacts from the source registry (
artifactSync.sourceRepositoryconfiguration.kubernetes.docker.repository- — Docker container images (uses
vpctl artifact sync images/docker pull/tag)push - — ORAS artifacts (registry-to-registry copy via
vpctl artifact sync oras)oras-go - — OCI Helm charts (registry-to-registry copy via
vpctl artifact sync charts; runs only whenoras-gois set in the manifest)deployment.helmChartMode: "remote"
docker.namespacePreflight
Verify your Docker and ORAS credentials are working before you run a full sync:The command picks one Docker image, one ORAS artifact, and one Helm chart (whenvpctl artifact sync preflight
helmChartMode: "remote"docker loginSync Docker images
-
Authenticate to both source and target registries before you sync:
docker login <source-registry>docker login <target-registry>
-
Preview the commands that would be executed:
vpctl artifact sync images --dry-run
-
Run the sync:
vpctl artifact sync images
- : Show commands without executing (default: false)
--dry-run - : Target registry URL (defaults to manifest value)
--target-registry - : Path to extracted release (defaults to
--extracted-release)./extracted-release - : Filter to sync only images that match a name pattern
--name - : Remove local images (
--cleanup) after each push (default: false)docker rmi - : Skip images already present on the target registry (default: false)
--skip-existing - : Set how many images sync in parallel. CLI flag default:
--concurrency(sequential). If omitted, the manifest value1applies. Manifest default:artifactSync.concurrency.5
vpctl artifact sync images --skip-existing --cleanup
Sync ORAS artifacts
ORAS artifact sync reads authentication from Docker's credential store (~/.docker/config.jsondocker loginThis shows thevpctl artifact sync oras --dry-run
oras copyOptions:vpctl artifact sync oras
- : Show commands without executing (default: false)
--dry-run - : Target registry URL (defaults to manifest value)
--target-registry - : Path to extracted release (defaults to
--extracted-release)./extracted-release - : Filter to sync only ORAS artifacts matching a name pattern
--name - : Number of artifacts to sync in parallel. CLI flag default:
--concurrency(sequential). When the flag is omitted, the manifest value1applies (manifest default:artifactSync.concurrency).5
Sync OCI Helm charts
OCI Helm chart sync mirrors only the charts markedtype: "remote"versions.yamldeployment.helmChartMode: "remote""local"~/.docker/config.jsondocker loginThis shows thevpctl artifact sync charts --dry-run
oras copyOptions:vpctl artifact sync charts
- : Show commands without executing (default: false)
--dry-run - : Target registry URL (defaults to manifest value)
--target-registry - : Path to extracted release (defaults to
--extracted-release)./extracted-release - : Filter to sync only Helm charts matching a name pattern
--name - : Number of charts to sync in parallel (default:
--concurrency, sequential)1
Full sync example with ECR
In automated environments, pipe the password from a secret store with# Authenticate to both registries (Docker prompts for the password)aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <account>.dkr.ecr.us-east-1.amazonaws.comdocker login -u <user> uccmpprivatecloud.azurecr.io# Preflight: verify authentication worksvpctl artifact sync preflight# Sync Docker imagesvpctl artifact sync images --skip-existing --cleanup# Sync ORAS artifacts (reads Docker credential store automatically)vpctl artifact sync oras
--password-stdin-p <password>-pps auxWARNING! Using --password via the CLI is insecure