- Consolidates multiple artifact types into a single registry.
- Reuses existing authentication/authorization and lifecycle tooling.
- Enables GitOps operators (Flux, Argo CD) to pull artifacts from registries that support OCI artifacts.

Callouts
Using a single OCI registry for multiple artifact types simplifies access management: you can reuse the same credentials, RBAC rules, and audit trails for images, charts, and other artifacts.
Do not embed long-lived credentials in scripts. Prefer short-lived tokens, OIDC-based flows, or CI/CD secret managers. Always revoke or rotate Personal Access Tokens (PATs) used for registry access.
ghcr.io) but the commands and concepts apply to other OCI registries (Docker Hub, Azure Container Registry, Google Artifact Registry).
Pushing container images to an OCI registry
Steps:- Authenticate to the registry (use a Personal Access Token or other secure credentials).
- Tag the local image using the registry repository name.
- Push the tagged image.
<<GITHUB_PERSONAL_ACCESS_TOKEN>> with your token):
ghcr.io/sidd-harth/nginx:1.1.0 reference provided they have access.
Pushing Helm charts to an OCI registry
Modern Helm supports saving and pushing charts as OCI artifacts. Typical flow:- Create or have a chart (e.g.,
helm create app1). - Package the chart as a
.tgz. - Login to the registry with Helm.
- Save/push the chart as an OCI artifact.
<<GITHUB_PERSONAL_ACCESS_TOKEN>> with your token):
Publishing plain Kubernetes manifests to an OCI registry (using Flux)
You can package a directory of Kubernetes manifests and push it as an OCI artifact. Flux providesflux push artifact to create a manifest bundle and push it to an OCI registry; a GitOps operator can then reference that bundle.
Example using Flux (replace <<GITHUB_PERSONAL_ACCESS_TOKEN>> with your token):
How GitOps operators consume OCI artifacts
- Argo CD and Flux both support pulling from OCI registries:
- Argo CD: supports OCI images and some extensions for OCI-based applications.
- Flux: has first-class support for
Kustomization/HelmRepositoryusingoci://sources andflux push artifact.
- Typical operator flow: fetch OCI artifact → verify digest/revision → render/apply manifests or charts → report status.
Registry examples and links
Best practices
- Consolidate related artifacts under predictable repository paths (e.g.,
ghcr.io/<org>/<app>). - Use image and artifact digests (sha256) in production manifests to guarantee immutability.
- Use short-lived credentials or OIDC where possible; avoid embedding PATs in long-lived scripts.
- Apply RBAC and least privilege on the registry to limit artifact access.