| Registry | Trust Tier | ACR Type | Usage | Status |
|---|---|---|---|---|
ctfacentry.azurecr.io |
★ CTC-trusted (primary) | Azure Premium private link compliant |
CT cluster prod images pemos-portal, merostone-relay |
✅ Live |
eoseentry.azurecr.io |
EOSE dev/staging | Azure Standard | Dev + QE promotion path pre-ctfacentry gate |
✅ Live |
eosefleetacrdev.azurecr.io |
EOSE fleet prod | Azure Standard | EOSE fleet (pemos-system) aks-eose-aaas-dev |
✅ Live |
docker.io/eose |
Public | Docker Hub | curated-*, pemos-portal, mrcp-agent, tfe-agent, merostone-store |
✅ Live |
ghcr.io/eose-sre |
CI artifact | GitHub Packages | GitHub Actions CI build path intermediate store |
✅ Live |
registry.gitlab.com/eose-sre |
CI artifact | GitLab Registry | GitLab CI path compliance artifacts |
✅ Live |
public.ecr.aws/eose |
Future | AWS ECR Public | Future EKS rig planned |
🔲 Planned |
ctfacentry.azurecr.io (existing Premium ACR, private link compliant). Do not attempt to create new ACRs in the CTC subscription — they will be denied at ARM layer.
ghcr.io/eose-sreeoseentry.azurecr.ioregistry.gitlab.com/eose-sreeoseentry.azurecr.ioctfacentry.azurecr.io/eose-fleetct-fac-portal → >=900.0.0 — only post-MECIPOL tags (900+) promote to CT clustermerostone-relay → >=1.0.0 — any stable semver promotes (relay uses its own versioning)1. Developer pushes to feat/pemclau-master 2. GitHub Actions: build → ghcr.io/eose-sre (artifact) + eoseentry.azurecr.io (QE) 3. QE deployment: relay.pemos.io:443 (merostone-relay on ct cluster, QE endpoint) 4. QE team validates — pass signal to ADO 5. ADO Release: docker pull eoseentry → retag → push ctfacentry.azurecr.io/eose-fleet/pemos-portal:924 6. Flux image-reflector-controller polls ctfacentry every 1m → detects tag 924 7. ImagePolicy >=900.0.0 matches tag 924 → ImageUpdateAutomation fires 8. Auto-commit: updates $imagepolicy tag in fleet-sync/ctc-flux/eose-entry/ct-fac-portal.yaml 9. Flux Kustomization reconciles (2m interval) → kubectl apply → rolling update 10. relay.ct-fac.eose.ca:443 serves new image
commit abc123 (feat/pemclau-master)
Author: flux-bot <flux@pemos.io>
chore(flux): auto-update image tags in eose-entry
γ₁ = 14.134725141734693
diff --git a/fleet-sync/ctc-flux/eose-entry/ct-fac-portal.yaml b/...
- image: ctfacentry.azurecr.io/eose-fleet/pemos-portal:922 # {"$imagepolicy": "flux-system:ct-fac-portal"}
+ image: ctfacentry.azurecr.io/eose-fleet/pemos-portal:924 # {"$imagepolicy": "flux-system:ct-fac-portal"}
eose/merostone-relay:latest (private Docker Hub, no pull secret)LoadBalancer port 11454ctfacentry.azurecr.io/eose-fleet/merostone-relay:latesteoseentry-pullClusterIP (Ingress is external face)nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-read-timeout: "600" nginx.ingress.kubernetes.io/proxy-send-timeout: "600" cert-manager.io/cluster-issuer: letsencrypt-prod external-dns.alpha.kubernetes.io/hostname: "relay.pemos.io,relay.ct-fac.eose.ca"
eose.ca/gamma1: "14.134725141734693" eose.ca/managed-by: flux eose.ca/crew: meimpossible
ctfacentry.azurecr.io/eose-fleet/merostone-relay
ctfacentry-acr-creds
ctfacentry.azurecr.io/eose-fleet/pemos-portal
ctfacentry-acr-creds
eoseentry.azurecr.io/pemos-portal
eoseentry-acr-creds
eosefleetacrdev.azurecr.io/pemos-portal
eosefleetacrdev-acr-creds
apiVersion: image.toolkit.fluxcd.io/v1beta1
kind: ImageUpdateAutomation
metadata:
name: eose-entry-auto
namespace: flux-system
spec:
interval: 1m
sourceRef:
kind: GitRepository
name: eose-fleet
git:
checkout:
ref:
branch: feat/pemclau-master
commit:
author:
email: flux@pemos.io
name: flux-bot
push:
branch: feat/pemclau-master
update:
path: ./fleet-sync/ctc-flux/eose-entry
strategy: Setters