github.com/argoproj/argo-cd@v1.8.7/docs/operator-manual/application.yaml (about)

     1  apiVersion: argoproj.io/v1alpha1
     2  kind: Application
     3  metadata:
     4    name: guestbook
     5    # You'll usually want to add your resources to the argocd namespace.
     6    namespace: argocd
     7    # Add a this finalizer ONLY if you want these to cascade delete.
     8    finalizers:
     9      - resources-finalizer.argocd.argoproj.io
    10  spec:
    11    # The project the application belongs to.
    12    project: default
    13  
    14    # Source of the application manifests
    15    source:
    16      repoURL: https://github.com/argoproj/argocd-example-apps.git
    17      targetRevision: HEAD
    18      path: guestbook
    19  
    20      # helm specific config
    21      helm:
    22        # Extra parameters to set (same as setting through values.yaml, but these take precedence)
    23        parameters:
    24        - name: "nginx-ingress.controller.service.annotations.external-dns\\.alpha\\.kubernetes\\.io/hostname"
    25          value: mydomain.example.com
    26        - name: "ingress.annotations.kubernetes\\.io/tls-acme"
    27          value: "true"
    28          forceString: true # ensures that value is treated as a string
    29  
    30        # Release name override (defaults to application name)
    31        releaseName: guestbook
    32  
    33        # Helm values files for overriding values in the helm chart
    34        # The path is relative to the spec.source.path directory defined above
    35        valueFiles:
    36        - values-prod.yaml
    37  
    38        # Values file as block file
    39        values: |
    40          ingress:
    41            enabled: true
    42            path: /
    43            hosts:
    44              - mydomain.example.com
    45            annotations:
    46              kubernetes.io/ingress.class: nginx
    47              kubernetes.io/tls-acme: "true"
    48            labels: {}
    49            tls:
    50              - secretName: mydomain-tls
    51                hosts:
    52                  - mydomain.example.com
    53  
    54        # Optional Helm version to template with. If omitted it will fallback to look at the 'apiVersion' in Chart.yaml
    55        # and decide which Helm binary to use automatically. This field can be either 'v2' or 'v3'.
    56        version: v2
    57  
    58      # kustomize specific config
    59      kustomize:
    60        # Optional kustomize version. Note: version must be configured in argocd-cm ConfigMap
    61        version: v3.5.4
    62        # Optional image name prefix
    63        namePrefix: prod-
    64        # Optional images passed to "kustomize edit set image".
    65        images:
    66        - gcr.io/heptio-images/ks-guestbook-demo:0.2
    67  
    68      # directory
    69      directory:
    70        recurse: true
    71        jsonnet:
    72          # A list of Jsonnet External Variables
    73          extVars:
    74          - name: foo
    75            value: bar
    76            # You can use "code to determine if the value is either string (false, the default) or Jsonnet code (if code is true).
    77          - code: true
    78            name: baz
    79            value: "true"
    80          # A list of Jsonnet Top-level Arguments
    81          tlas:
    82          - code: false
    83            name: foo
    84            value: bar
    85  
    86      # plugin specific config
    87      plugin:
    88        name: mypluginname
    89        # environment variables passed to the plugin
    90        env:
    91          - name: FOO
    92            value: bar
    93  
    94    # Destination cluster and namespace to deploy the application
    95    destination:
    96      server: https://kubernetes.default.svc
    97      namespace: guestbook
    98  
    99    # Sync policy
   100    syncPolicy:
   101      automated: # automated sync by default retries failed attempts 5 times with following delays between attempts ( 5s, 10s, 20s, 40s, 80s ); retry controlled using `retry` field.
   102        prune: true # Specifies if resources should be pruned during auto-syncing ( false by default ).
   103        selfHeal: true # Specifies if partial app sync should be executed when resources are changed only in target Kubernetes cluster and no git change detected ( false by default ).
   104        allowEmpty: false # Allows deleting all application resources during automatic syncing ( false by default ).
   105      syncOptions:     # Sync options which modifies sync behavior
   106      - Validate=false # disables resource validation (equivalent to 'kubectl apply --validate=true')
   107      - CreateNamespace=true # Namespace Auto-Creation ensures that namespace specified as the application destination exists in the destination cluster.
   108      # The retry feature is available since v1.7
   109      retry:
   110        limit: 5 # number of failed sync attempt retries; unlimited number of attempts if less than 0
   111        backoff:
   112          duration: 5s # the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
   113          factor: 2 # a factor to multiply the base duration after each failed retry
   114          maxDuration: 3m # the maximum amount of time allowed for the backoff strategy
   115  
   116    # Ignore differences at the specified json pointers
   117    ignoreDifferences:
   118    - group: apps
   119      kind: Deployment
   120      jsonPointers:
   121      - /spec/replicas