Here’s how to integrate Esadax’s Private Container Registry with Kubernetes using imagePullSecrets — plus optional guidance on mirroring to GitHub Container Registry (GHCR).
To pull private container images hosted at esadax-registry.esadax.sh, you'll need to create a Kubernetes secret and reference it in your deployment or pod spec.
kubectl create secret docker-registry esadax-registry-creds \
--docker-server=esadax-registry.esadax.sh \
--docker-username=your_username \
--docker-password=your_token \
--docker-email=your@email.com
💡 Replace
your_tokenwith a personal access token or CI token from Esadax. You can renameesadax-registry-credsas needed for your environment.
apiVersion: apps/v1
kind: Deployment
metadata:
name: private-app
spec:
replicas: 1
selector:
matchLabels:
app: private-app
template:
metadata:
labels:
app: private-app
spec:
containers:
- name: app
image: esadax-registry.esadax.sh/my-project/my-app:latest
ports:
- containerPort: 80
imagePullSecrets:
- name: esadax-registry-creds
✅ Once deployed, Kubernetes will use the referenced secret to authenticate with Esadax’s registry and pull your image.
If you want to mirror your images to GHCR (e.g., for redundancy or public sharing), follow these steps.
# Authenticate to GHCR
echo $GHCR_TOKEN | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdin
# Tag the existing image
docker tag esadax-registry.esadax.sh/my-project/my-app:latest ghcr.io/YOUR_GITHUB_USERNAME/my-app:latest
# Push to GitHub
docker push ghcr.io/YOUR_GITHUB_USERNAME/my-app:latest
🔐 Make sure the GitHub repository is public or configured correctly for private access with fine-grained personal access tokens.
imagePullSecrets globally using a ServiceAccount, if your environment supports it.