Clusters need credentials to pull private container images. Akua’s registry proxy centralizes this: configure your registry credentials once, and all deployments pull private images without storing credentials on clusters. All image pulls through the proxy require authentication. You must configure credentials for any registry you want to proxy, including public registries like Docker Hub.Documentation Index
Fetch the complete documentation index at: https://akua-1dce587a.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Why use the registry proxy
- Centralized credentials: add your GitHub PAT or registry password once, use it across all clusters.
- Credentials stay in Akua’s secret store: upstream registry passwords and tokens are stored as versioned workspace secrets and never sent to clusters directly.
- Instant revocation: disable access immediately without rotating credentials everywhere.
- Audit trail: see which deployments pulled which images and when.
For marketplace products
When selling products with private images, the proxy is especially valuable:- Customers can pull your images without knowing your credentials.
- You can revoke a customer’s access without affecting others.
- Your credentials give access to all your repos, but customers only get access to what they purchased.
How it works
Akua runs a registry proxy atoci.akua.dev. When clusters pull images through this proxy, Akua validates the request using install-scoped credentials, looks up your workspace’s upstream registry credentials, forwards the request to the upstream registry with your credentials, and streams the response back to the cluster.
Your upstream credentials (GitHub PAT, Docker Hub token, and so on) never leave Akua’s infrastructure.
Using the proxy in your images
To pull images through Akua’s proxy, prefix your image references withoci.akua.dev/:
oci.akua.dev/{upstream-registry}/{repository}:{tag}
Marketplace products
When building products for the marketplace, reference your private images through the proxy in your Helm chart’svalues.yaml:
GitHub repository deployments
When deploying from GitHub repositories, your workflow pushes to GHCR normally. Akua handles the proxy routing automatically. Configure workspace credentials in Settings → Registries with a PAT that hasread:packages scope, and Akua detects image references in your Helm values and rewrites them to use the proxy at install time.
Setting up registry credentials
Add a registry
Click Add Registry and enter a friendly name, the registry hostname (for example,
docker.io or ghcr.io), and the authentication type.Configure authentication
- Username and password
- Token
- OAuth
Standard authentication used by most registries. Enter your registry username and password or access token.Used by: Docker Hub, Harbor, Nexus, JFrog Artifactory.
Supported registries
| Registry | URL | Auth type | Notes |
|---|---|---|---|
| Docker Hub | docker.io | Username/password | Use access token instead of password for better security |
| GitHub Container Registry | ghcr.io | Token | Use a PAT with read:packages scope |
| Amazon ECR | <account>.dkr.ecr.<region>.amazonaws.com | AWS credentials | Access Key ID, Secret Access Key, and region |
| Google Container Registry | gcr.io | Service account | Username _json_key, password is service account JSON |
| Azure Container Registry | <name>.azurecr.io | Username/password | Use service principal or admin credentials |
| GitLab Container Registry | registry.gitlab.com | Token | Use a PAT or deploy token with read_registry scope |
| Quay.io | quay.io | Token | Use robot accounts for automation |
Managing access
Workspace-level credentials
Registry credentials are configured at the workspace level:- All deployments in the workspace can access images from configured registries.
- Different workspaces can have different registry configurations.
- Credential updates automatically apply to all deployments in the workspace.
Syncing credentials to existing deployments
When you add or update registry credentials, existing deployments need to be synced. In Settings → Registries, click Sync All to push credentials to all active deployments, or on a deployment’s detail page click Re-sync Registry Access to update a specific deployment. New deployments receive registry access automatically during installation.Revoking access
To revoke access to private images:- Disable a credential: toggle the credential to disabled in Settings → Registries. This immediately invalidates all install tokens using that credential. Pods fail to pull images until the credential is re-enabled.
- Delete a credential: permanently removes the credential. Existing install tokens become invalid immediately.
Per-install tokens
Each deployment receives a unique token for authenticating with the registry proxy. Revoking one deployment’s access does not affect others, and deleting a deployment automatically revokes its registry token.Security
Credentials never leave Akua
Credentials never leave Akua
Your upstream registry credentials are stored as versioned workspace secrets and never sent to clusters directly. Clusters receive install-scoped tokens that only work with Akua’s proxy and cannot be used directly against upstream registries.
Install-scoped tokens
Install-scoped tokens
Each deployment receives a unique token. If a cluster is compromised, you can revoke just that deployment’s token without affecting others.
Instant revocation
Instant revocation
Disable a workspace credential to immediately block all image pulls. No need to rotate tokens across multiple clusters or wait for caches to expire.
Access control
Access control
Only workspace members can view or modify registry configurations. Credentials are never displayed after saving; only the registry name and URL are visible.
Audit logging
Audit logging
Akua logs all image pull operations, giving you visibility into which images are being accessed, by which deployment, and when.
Troubleshooting
Images fail to pull
Images fail to pull
Common causes: credentials do not have pull access to the repository, the registry URL does not match the image reference, the token has expired, or the image URL is not using the proxy format (
oci.akua.dev/...).To resolve: verify your credentials work locally with docker login, check that image references use the proxy format, and update credentials in Akua if they have expired.Deployment not synced
Deployment not synced
If newly added credentials are not working for existing deployments, go to the deployment’s detail page and click Re-sync Registry Access, or use Sync All in Settings → Registries.
Authentication errors
Authentication errors
Common causes: incorrect username format, token missing required scopes, or OAuth client misconfiguration. Check the registry’s documentation for the correct authentication format and required permissions. For GitHub, ensure your PAT has
read:packages scope.Rate limiting
Rate limiting
If you hit registry rate limits, ensure your credentials have appropriate permissions. For Docker Hub, authenticated users have higher rate limits than anonymous access.
API
Manage registry credentials programmatically.Registry API
List, create, and delete registry credentials.
Secrets API
Manage the underlying workspace secrets used by registry credentials.
Related topics
GitHub integration
Connect GitHub to pull from GHCR automatically.
Security
How Akua stores and rotates credentials.
Deployments
How applications are installed.
Workspaces
How workspaces organize your resources.