Skip to content

Argo CD Application Configuration

Placeholder names used on this page

Placeholder What it means Example
ENTITY_NAMESPACE Your entity/partner name โ€” used as both namespace and Argo project france-titres
APP_SLUG Your application's identifier hello-world
ARGO_PROJECT The Argo CD project (usually the same as ENTITY_NAMESPACE) france-titres
HELM_REPO_URL Git URL of your Helm chart repository https://tools.playground.france-identite.gouv.fr/gitlab/...
TARGET_REVISION The Git revision Argo CD deploys HEAD

The Application manifest, generic form

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: ${ENTITY_NAMESPACE}-${APP_SLUG}
spec:
  destination:
    namespace: ${ENTITY_NAMESPACE}
    server: https://kubernetes.default.svc
  source:
    path: .
    repoURL: ${HELM_REPO_URL}
    targetRevision: ${TARGET_REVISION}
  sources: []
  project: ${ARGO_PROJECT}

A real example (france-titres)

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: france-titres-hello-world
spec:
  destination:
    namespace: france-titres
    server: https://kubernetes.default.svc
  source:
    path: .
    repoURL: https://tools.playground.france-identite.gouv.fr/gitlab/plg/helm-hello-world.git
    targetRevision: HEAD
  sources: []
  project: france-titres

Where ENTITY_NAMESPACE shows up

It appears in three places, so ownership, the target namespace, and Argo permissions all stay aligned:

Field Value
metadata.name ${ENTITY_NAMESPACE}-${APP_SLUG}
spec.destination.namespace ${ENTITY_NAMESPACE}
spec.project ${ENTITY_NAMESPACE}

How this connects to the Helm chart

repoURL points at the Helm chart repository (helm-hello-world-main/). Argo CD renders its templates and applies them to your cluster:


How to check it worked

  • The Application shows status Synced in Argo CD
  • spec.destination.namespace matches your entity namespace
  • Your resources exist in the ${ENTITY_NAMESPACE} namespace
  • Your app is reachable at /${ENTITY_NAMESPACE}/${APP_SLUG}/

Assumptions

  • The Argo CD project (e.g. france-titres) already exists and is authorized for your repository and namespace โ€” this is set up outside the chart repositories.
  • Argo CD has credentials to reach your Git repository. These aren't stored in either code repository โ€” they're configured directly in Argo CD.