Okteto Container Images Moving to GitHub Container Registry in 1.40

Starting with version 1.40, Okteto will default to pulling container images from GitHub Container Registry (GHCR) instead of Docker Hub.

We don’t expect any customer impact from this change. We’ll continue publishing images to both registries, so existing installations will continue to work without modification.

Important date: On March 11th, rate limiting on our Docker Hub account will take effect. If you’re still pulling images from Docker Hub after this date, you may experience throttled pulls during peak usage. We recommend taking action before then to ensure uninterrupted service.

Why we’re making this change

We’ve been experiencing reliability issues with Docker Hub over the past several months, including multiple service interruptions that have affected our ability to deliver a consistent experience. Moving to GHCR gives us:

  • Better reliability: GHCR has provided more stable service and aligns with our existing GitHub-based infrastructure

  • Unlimited anonymous pulls: No rate limiting concerns for customers pulling public images

  • Simpler operations: Consolidating on GitHub reduces operational complexity across our build and release pipelines

What this means for you

BYOC customers: We’ve already migrated your clusters to pull from GHCR. No action is required on your end; this transition has been completed successfully.

Self-Hosted customers: When you upgrade to version 1.40, your installation will begin pulling images from GHCR by default. Before upgrading, please ensure your cluster can reach ghcr.io. If you have network policies or firewall rules that restrict outbound traffic, you’ll need to allowlist this domain.

Customers who prefer to continue using Docker Hub can override the default registry in their Helm values. We’ll continue publishing to both registries for the foreseeable future.

Actions to take before March 11th

To avoid any disruption from Docker Hub rate limiting, we recommend one of the following:

Option 1: Upgrade to Okteto 1.40+

This is the simplest path. Version 1.40 defaults to GHCR, so upgrading automatically moves you off Docker Hub. Make sure your cluster can reach ghcr.io before upgrading.

Option 2: Configure your current installation to use GHCR

If you’re not ready to upgrade to 1.40, you can point your existing installation to GHCR by updating your Helm values:

registry: ghcr.io/okteto

Option 3: Add your Docker Hub credentials to your cluster

If you need to continue pulling from Docker Hub, you can avoid rate limiting by authenticating with your own Docker Hub credentials. Create a pull secret in your cluster:

kubectl create secret docker-registry dockerhub-credentials \
  --docker-server=https://index.docker.io/v1/ \
  --docker-username=<your-username> \
  --docker-password=<your-access-token> \
  --docker-email=<your-email> \
  -n okteto

Then reference the secret in your Helm values:

imagePullSecrets:
  - name: dockerhub-credentials

We recommend Options 1 or 2 as the long-term solution, since they also give you the reliability benefits of GHCR.

Questions?

If you have any questions or run into issues, drop a comment below or reach out to our support team. We’re happy to help.

1 Like