Fix mirror org refs in ArgoCD apps and widen credential template (#266)
## Summary
- Widen `repo-creds-forge` URL prefix from `/eblume/` to host-wide `/` so it matches repos in all forge orgs (fixes `mirrors/` repos not getting SSH credentials)
- Update 8 ArgoCD app definitions from `eblume/<mirror>` → `mirrors/<mirror>` (immich-charts, cloudnative-pg-charts, external-secrets, connect-helm-charts)
- Fix stale alloy clone comment in Ansible defaults
- Bump immich v2.5.2 → v2.5.6 (bug-fix patches only)
- Update ArgoCD README bootstrap command and credential docs
## Context
Mirrors were migrated from `forge.ops.eblu.me/eblume/` to `forge.ops.eblu.me/mirrors/` in commit `cd57814`. Container Dockerfiles and image tags were updated, but ArgoCD app definitions and the repo credential template were missed, causing `ComparisonError` on apps that source Helm charts from mirrored repos.
## Deployment
1. Sync the ArgoCD `argocd` app first (picks up the widened credential template)
2. Sync the `apps` app (picks up new repo URLs for all 8 apps)
3. Verify immich resolves its ComparisonError: `argocd app get immich`
4. Sync immich to deploy v2.5.6: `argocd app sync immich`
5. Spot-check: `argocd app get external-secrets`, `argocd app get cloudnative-pg`, `argocd app get 1password-connect`
Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/266
This commit is contained in:
parent
5c31b6b42a
commit
5f9bc20345
14 changed files with 23 additions and 29 deletions
|
|
@ -14,7 +14,7 @@ metadata:
|
|||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/connect-helm-charts.git
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/connect-helm-charts.git
|
||||
targetRevision: connect-2.3.0
|
||||
path: charts/connect
|
||||
helm:
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ metadata:
|
|||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/connect-helm-charts.git
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/connect-helm-charts.git
|
||||
targetRevision: connect-2.3.0
|
||||
path: charts/connect
|
||||
helm:
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ spec:
|
|||
project: default
|
||||
sources:
|
||||
# Helm chart from forge mirror (SSH via egress)
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/cloudnative-pg-charts.git
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/cloudnative-pg-charts.git
|
||||
targetRevision: cloudnative-pg-v0.27.1
|
||||
path: charts/cloudnative-pg
|
||||
helm:
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ metadata:
|
|||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/external-secrets.git
|
||||
repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/external-secrets.git
|
||||
targetRevision: helm-chart-2.0.0
|
||||
path: config/crds/bases
|
||||
directory:
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ metadata:
|
|||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/external-secrets.git
|
||||
repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/external-secrets.git
|
||||
targetRevision: helm-chart-2.0.0
|
||||
path: config/crds/bases
|
||||
directory:
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ metadata:
|
|||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/external-secrets.git
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/external-secrets.git
|
||||
targetRevision: helm-chart-2.0.0
|
||||
path: deploy/charts/external-secrets
|
||||
helm:
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ metadata:
|
|||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/external-secrets.git
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/external-secrets.git
|
||||
targetRevision: helm-chart-2.0.0
|
||||
path: deploy/charts/external-secrets
|
||||
helm:
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ spec:
|
|||
project: default
|
||||
sources:
|
||||
# Helm chart from forge mirror (SSH via egress)
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/eblume/immich-charts.git
|
||||
- repoURL: ssh://forgejo@forge.ops.eblu.me:2222/mirrors/immich-charts.git
|
||||
targetRevision: immich-0.10.3
|
||||
path: charts/immich
|
||||
helm:
|
||||
|
|
|
|||
|
|
@ -30,11 +30,13 @@ argocd account update-password
|
|||
|
||||
# 6. Apply repo-creds-forge credential template for SSH access to all forge repos
|
||||
PRIV_KEY=$(op read "op://vg6xf6vvfmoh5hqjjhlhbeoaie/csjncynh6htjvnh2l2da65y32q/private key?ssh-format=openssh")$'\n' && \
|
||||
KNOWN_HOSTS=$(ssh-keyscan -p 2222 forge.ops.eblu.me 2>/dev/null | grep ssh-rsa) && \
|
||||
kubectl create secret generic repo-creds-forge -n argocd \
|
||||
--from-literal=type=git \
|
||||
--from-literal=url='ssh://forgejo@forge.ops.eblu.me:2222/eblume/' \
|
||||
--from-literal=insecure=true \
|
||||
--from-literal=sshPrivateKey="$PRIV_KEY" && \
|
||||
--from-literal=url='ssh://forgejo@forge.ops.eblu.me:2222/' \
|
||||
--from-literal=insecure=false \
|
||||
--from-literal=sshPrivateKey="$PRIV_KEY" \
|
||||
--from-literal=sshKnownHosts="$KNOWN_HOSTS" && \
|
||||
kubectl label secret repo-creds-forge -n argocd argocd.argoproj.io/secret-type=repo-creds
|
||||
|
||||
# 7. Apply ArgoCD Applications (self-management + app-of-apps)
|
||||
|
|
@ -110,6 +112,6 @@ spec:
|
|||
|
||||
- **TODO:** Secrets (`repo-creds-forge`) are not managed by ArgoCD and must be applied manually.
|
||||
Future improvement: integrate with a secrets operator (e.g., External Secrets).
|
||||
- The credential template (`repo-creds`) uses a URL prefix to match all repos under `eblume/`.
|
||||
- The credential template (`repo-creds`) uses a URL prefix to match all repos on forge.
|
||||
- ArgoCD uses Tailscale Ingress with Let's Encrypt for TLS termination.
|
||||
- The `--grpc-web` flag is required for CLI access through the Tailscale ingress.
|
||||
|
|
|
|||
|
|
@ -1,14 +1,4 @@
|
|||
# ExternalSecret for ArgoCD Forge SSH credentials
|
||||
#
|
||||
# Replaces the manual op inject workflow from repo-forge-secret.yaml.tpl
|
||||
#
|
||||
# 1Password item: "argocd-forge-ssh-key" in blumeops vault (Secure Note)
|
||||
# Field: "private-key-openssh"
|
||||
#
|
||||
# Note: Uses a separate Secure Note item because 1Password Connect doesn't
|
||||
# support the ?ssh-format=openssh query parameter that the CLI uses.
|
||||
#
|
||||
# This is a repo-creds (credential template) that matches ALL repos under eblume/
|
||||
# ArgoCD repo-creds template — matches all repos on forge via SSH
|
||||
#
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
|
|
@ -29,9 +19,10 @@ spec:
|
|||
argocd.argoproj.io/secret-type: repo-creds
|
||||
data:
|
||||
type: git
|
||||
url: "ssh://forgejo@forge.ops.eblu.me:2222/eblume/"
|
||||
insecure: "true"
|
||||
url: "ssh://forgejo@forge.ops.eblu.me:2222/"
|
||||
insecure: "false"
|
||||
sshPrivateKey: "{{ .privateKey }}"
|
||||
sshKnownHosts: "[forge.ops.eblu.me]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDlGQT5w03XxlhmEiDVtGq2SkhLIZU4vYhdMey/T2tFLp7kEiOwCWgDgbBn12VDfqXTXJreykBuREqYNSx4tL4Znwap0+HjLOjTIVri8af2ZFF6IP52pcmJEOnxm/yUZhJCosu1wOZwLOoQEPBYM6sPN4OY9PFOsrsxMO2LWPJAZujPlnsfKOTsIS5iRpiT4yU7Z+oWB21rMxjZ9sXZRn8PI2MbUIs/Yazpah2XPJm2YJ7C+kqTLmld4mXQaQtHhzvPaRNB59RS8xyinuaRs618tD3DQq3Qpt8ZZKZydLVv4CIrGvjdqavt0l+4rsNGBh8dWvDR7l2Z6wo9ggDCej957+J6tInfZ82KHSW3ONdm2mUOHObUVSte2xUPlRpnIBFt3lcCapifPULE7PuN0Xdw4r+ewr+6R65RzdptqGfKyyAYsERhbq904ryNZ9fy30vH8+j9imL5AhMkCbP8S/UW49rDIdfN6MvZlX9MoBhmbrkv+kETB7qz9zaOrocEOZOE3fzB9iZxNwlXjstUnjkqi4P1yY/SKpyLC/yDCUpxC79FbCAKIJwar3C2mZaLeBGyqL31HPKOx175VsSxIbjeJX8uNO9WhbFPlcbRETeEoq+dczeU25OESCyyelGb72tTNJYObn2R8Br9NFPiwGZJX6TLlKqaE7x3D0M64ncTJQ=="
|
||||
data:
|
||||
- secretKey: privateKey
|
||||
remoteRef:
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ controllers:
|
|||
containers:
|
||||
main:
|
||||
image:
|
||||
tag: v2.5.2
|
||||
tag: v2.5.6
|
||||
env:
|
||||
DB_HOSTNAME: "immich-pg-rw.databases.svc.cluster.local"
|
||||
DB_PORT: "5432"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue