Ecco come integrare il Private Container Registry di Esadax con Kubernetes utilizzando imagePullSecrets — oltre a una guida opzionale sul mirroring su GitHub Container Registry (GHCR).
Per estrarre le immagini private del contenitore ospitate in esadax-registry.esadax.sh, dovrai creare un segreto Kubernetes e farvi riferimento nella distribuzione o nelle specifiche del pod.
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
💡 Sostituire
your_tokencon un token di accesso personale o un token CI di Esadax. È possibile rinominareesadax-registry-credsin base alle esigenze dell'ambiente.
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
✅ Una volta distribuito, Kubernetes utilizzerà il segreto di riferimento per autenticarsi con il registro di Esadax e estrarre la tua immagine.
Se si desidera eseguire il mirroring delle immagini su GHCR (ad esempio, per ridondanza o condivisione pubblica), seguire questi passaggi.
# 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
Assicurati che il repository GitHub sia pubblico o configurato correttamente per l'accesso privato con fine-grained personal access tokens.
imagePullSecrets globalmente utilizzando un ServiceAccount, se l'ambiente lo supporta.