Files
factory/argocd/values.yaml
T
arcodangeandClaude Fable 5 73bf7d1170 fix(argocd): url-shortener enfin syncable — ignorer le volumeName épinglé de son PVC
L'app url-shortener était en SyncError permanent : son PVC live porte un
spec.volumeName épinglé (rebind du volume Longhorn après le drill coupure de
courant) absent du chart ; chaque sync tentait donc de le vider, refus API
(spec immuable après création), échec en boucle malgré automated+selfHeal.

- apps.yaml : passthrough générique ignoreDifferences + syncOptions par app.
- values.yaml : url-shortener ignore /spec/volumeName du PVC, avec
  RespectIgnoreDifferences=true pour que l'apply réinjecte la valeur live au
  lieu de la vider (le cas d'usage documenté d'ArgoCD pour les champs
  immuables).

Rendu helm vérifié : seule l'Application url-shortener change.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-25 10:47:34 +02:00

94 lines
3.8 KiB
YAML

# Default values for argocd.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
gitea_applications:
url-shortener:
annotations: {}
# Le PVC live a un spec.volumeName épinglé (rebind du volume Longhorn) que
# le chart ne déclare pas : sans ceci, chaque sync tente de le vider et
# l'API le refuse (spec immuable) → SyncError permanent.
ignoreDifferences:
- kind: PersistentVolumeClaim
jsonPointers:
- /spec/volumeName
syncOptions:
- RespectIgnoreDifferences=true
tools:
annotations: {}
syncPolicy:
automated:
prune: true
selfHeal: true
webapp:
annotations:
argocd-image-updater.argoproj.io/image-list: webapp=gitea.arcodange.lab/arcodange-org/webapp:latest
argocd-image-updater.argoproj.io/webapp.update-strategy: digest
telegram-gateway:
org: arcodange
annotations:
argocd-image-updater.argoproj.io/image-list: telegram-gateway=gitea.arcodange.lab/arcodange/telegram-gateway:latest
argocd-image-updater.argoproj.io/telegram-gateway.update-strategy: digest
erp:
annotations: {}
# Non-prod environments (ADR-0002). Each key renders an extra Application
# "<app>-<env>" overlaid with chart/values-<env>.yaml into namespace
# "<app>-<env>". Prod erp is unaffected.
envs:
sandbox: {}
cms:
annotations:
argocd-image-updater.argoproj.io/image-list: cms=gitea.arcodange.lab/arcodange-org/cms:latest
argocd-image-updater.argoproj.io/cms.update-strategy: digest
dance-lessons-coach:
org: arcodange
annotations:
argocd-image-updater.argoproj.io/image-list: dance-lessons-coach=gitea.arcodange.lab/arcodange/dance-lessons-coach:latest
argocd-image-updater.argoproj.io/dance-lessons-coach.update-strategy: digest
prospection:
annotations:
argocd-image-updater.argoproj.io/image-list: prospection=gitea.arcodange.lab/arcodange-org/prospection:latest
argocd-image-updater.argoproj.io/prospection.update-strategy: digest
kadans:
org: arcodange
annotations:
argocd-image-updater.argoproj.io/image-list: kadans=gitea.arcodange.lab/arcodange/kadans:latest
argocd-image-updater.argoproj.io/kadans.update-strategy: digest
kadans-jobs:
org: arcodange
# La façade d'analyse vit dans le namespace de l'app qu'elle sert.
namespace: kadans
annotations:
argocd-image-updater.argoproj.io/image-list: kadans-jobs=gitea.arcodange.lab/arcodange/kadans-jobs:latest
argocd-image-updater.argoproj.io/kadans-jobs.update-strategy: digest
kadans-api:
org: arcodange
# L'API cœur partage le stack Vault/DB « kadans » (VaultAuth, creds Postgres,
# policy KV) : elle vit donc dans le namespace de l'app front qu'elle sert.
namespace: kadans
annotations:
argocd-image-updater.argoproj.io/image-list: kadans-api=gitea.arcodange.lab/arcodange/kadans-api:latest
argocd-image-updater.argoproj.io/kadans-api.update-strategy: digest
argocd_image_updater_chart_values:
config:
argocd:
grpcWeb: false
serverAddress: "https://argocd.arcodange.lab/"
insecure: true
plaintext: true
# The lab CA, so the updater can talk to the Gitea registry over TLS.
# Go reads every file in /etc/ssl/certs on top of the bundle, so dropping our
# root in there (subPath — the image's own certs stay untouched) is enough.
# Without it every query died on "certificate signed by unknown authority"
# and no image was ever rolled out. The registry itself allows anonymous
# pulls, so no credentials are needed — trust was the only missing piece.
volumes:
- name: homelab-ca
configMap:
name: homelab-ca
volumeMounts:
- name: homelab-ca
mountPath: /etc/ssl/certs/arcodange-root.crt
subPath: arcodange-root.crt
readOnly: true