argo-cd

Форк
0
/
application.yaml 
234 строки · 10.3 Кб
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 this finalizer ONLY if you want these to cascade delete.
8
  finalizers:
9
    # The default behaviour is foreground cascading deletion
10
    - resources-finalizer.argocd.argoproj.io
11
    # Alternatively, you can use background cascading deletion
12
    # - resources-finalizer.argocd.argoproj.io/background
13
  # Add labels to your application object.
14
  labels:
15
    name: guestbook
16
spec:
17
  # The project the application belongs to.
18
  project: default
19

20
  # Source of the application manifests
21
  source:
22
    repoURL: https://github.com/argoproj/argocd-example-apps.git  # Can point to either a Helm chart repo or a git repo.
23
    targetRevision: HEAD  # For Helm, this refers to the chart version.
24
    path: guestbook  # This has no meaning for Helm charts pulled directly from a Helm repo instead of git.
25

26
    # helm specific config
27
    chart: chart-name  # Set this when pulling directly from a Helm repo. DO NOT set for git-hosted Helm charts.
28
    helm:
29
      passCredentials: false # If true then adds --pass-credentials to Helm commands to pass credentials to all domains
30
      # Extra parameters to set (same as setting through values.yaml, but these take precedence)
31
      parameters:
32
      - name: "nginx-ingress.controller.service.annotations.external-dns\\.alpha\\.kubernetes\\.io/hostname"
33
        value: mydomain.example.com
34
      - name: "ingress.annotations.kubernetes\\.io/tls-acme"
35
        value: "true"
36
        forceString: true # ensures that value is treated as a string
37

38
      # Use the contents of files as parameters (uses Helm's --set-file)
39
      fileParameters:
40
      - name: config
41
        path: files/config.json
42

43
      # Release name override (defaults to application name)
44
      releaseName: guestbook
45

46
      # Helm values files for overriding values in the helm chart
47
      # The path is relative to the spec.source.path directory defined above
48
      valueFiles:
49
      - values-prod.yaml
50

51
      # Ignore locally missing valueFiles when installing Helm chart. Defaults to false
52
      ignoreMissingValueFiles: false
53

54
      # Values file as block file. Prefer to use valuesObject if possible (see below)
55
      values: |
56
        ingress:
57
          enabled: true
58
          path: /
59
          hosts:
60
            - mydomain.example.com
61
          annotations:
62
            kubernetes.io/ingress.class: nginx
63
            kubernetes.io/tls-acme: "true"
64
          labels: {}
65
          tls:
66
            - secretName: mydomain-tls
67
              hosts:
68
                - mydomain.example.com
69

70
      # Values file as block file. This takes precedence over values
71
      valuesObject:
72
        ingress:
73
          enabled: true
74
          path: /
75
          hosts:
76
            - mydomain.example.com
77
          annotations:
78
            kubernetes.io/ingress.class: nginx
79
            kubernetes.io/tls-acme: "true"
80
          labels: {}
81
          tls:
82
            - secretName: mydomain-tls
83
              hosts:
84
                - mydomain.example.com
85

86
      # Skip custom resource definition installation if chart contains custom resource definitions. Defaults to false
87
      skipCrds: false
88

89
      # Optional Helm version to template with. If omitted it will fall back to look at the 'apiVersion' in Chart.yaml
90
      # and decide which Helm binary to use automatically. This field can be either 'v2' or 'v3'.
91
      version: v2
92

93
    # kustomize specific config
94
    kustomize:
95
      # Optional kustomize version. Note: version must be configured in argocd-cm ConfigMap
96
      version: v3.5.4
97
      # Supported kustomize transformers. https://kubectl.docs.kubernetes.io/references/kustomize/kustomization/
98
      namePrefix: prod-
99
      nameSuffix: -some-suffix
100
      commonLabels:
101
        foo: bar
102
      commonAnnotations:
103
        beep: boop-${ARGOCD_APP_REVISION}
104
      # Toggle which enables/disables env variables substitution in commonAnnotations
105
      commonAnnotationsEnvsubst: true
106
      images:
107
      - gcr.io/heptio-images/ks-guestbook-demo:0.2
108
      - my-app=gcr.io/my-repo/my-app:0.1
109
      namespace: custom-namespace
110
      replicas:
111
      - name: kustomize-guestbook-ui
112
        count: 4
113

114
    # directory
115
    directory:
116
      recurse: true
117
      jsonnet:
118
        # A list of Jsonnet External Variables
119
        extVars:
120
        - name: foo
121
          value: bar
122
          # You can use "code" to determine if the value is either string (false, the default) or Jsonnet code (if code is true).
123
        - code: true
124
          name: baz
125
          value: "true"
126
        # A list of Jsonnet Top-level Arguments
127
        tlas:
128
        - code: false
129
          name: foo
130
          value: bar
131
      # Exclude contains a glob pattern to match paths against that should be explicitly excluded from being used during
132
      # manifest generation. This takes precedence over the `include` field.
133
      # To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{config.yaml,env-use2/*}'
134
      exclude: 'config.yaml'
135
      # Include contains a glob pattern to match paths against that should be explicitly included during manifest
136
      # generation. If this field is set, only matching manifests will be included.
137
      # To match multiple patterns, wrap the patterns in {} and separate them with commas. For example: '{*.yml,*.yaml}'
138
      include: '*.yaml'
139

140
    # plugin specific config
141
    plugin:
142
      # If the plugin is defined as a sidecar and name is not passed, the plugin will be automatically matched with the
143
      # Application according to the plugin's discovery rules.
144
      name: mypluginname
145
      # environment variables passed to the plugin
146
      env:
147
        - name: FOO
148
          value: bar
149
      # Plugin parameters are new in v2.5.
150
      parameters:
151
        - name: string-param
152
          string: example-string
153
        - name: array-param
154
          array: [item1, item2]
155
        - name: map-param
156
          map:
157
            param-name: param-value
158
  
159
  # Sources field specifies the list of sources for the application
160
  sources:
161
    - repoURL: https://github.com/argoproj/argocd-example-apps.git  # Can point to either a Helm chart repo or a git repo.
162
      targetRevision: HEAD  # For Helm, this refers to the chart version.
163
      path: guestbook  # This has no meaning for Helm charts pulled directly from a Helm repo instead of git.
164
      ref: my-repo  # For Helm, acts as a reference to this source for fetching values files from this source. Has no meaning when under `source` field
165

166
  # Destination cluster and namespace to deploy the application
167
  destination:
168
    # cluster API URL
169
    server: https://kubernetes.default.svc
170
    # or cluster name
171
    # name: in-cluster
172
    # The namespace will only be set for namespace-scoped resources that have not set a value for .metadata.namespace
173
    namespace: guestbook
174
    
175
  # Extra information to show in the Argo CD Application details tab
176
  info:
177
    - name: 'Example:'
178
      value: 'https://example.com'
179
      
180
  # Sync policy
181
  syncPolicy:
182
    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.
183
      prune: true # Specifies if resources should be pruned during auto-syncing ( false by default ).
184
      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 ).
185
      allowEmpty: false # Allows deleting all application resources during automatic syncing ( false by default ).
186
    syncOptions:     # Sync options which modifies sync behavior
187
    - Validate=false # disables resource validation (equivalent to 'kubectl apply --validate=false') ( true by default ).
188
    - CreateNamespace=true # Namespace Auto-Creation ensures that namespace specified as the application destination exists in the destination cluster.
189
    - PrunePropagationPolicy=foreground # Supported policies are background, foreground and orphan.
190
    - PruneLast=true # Allow the ability for resource pruning to happen as a final, implicit wave of a sync operation
191
    - RespectIgnoreDifferences=true # When syncing changes, respect fields ignored by the ignoreDifferences configuration
192
    - ApplyOutOfSyncOnly=true # Only sync out-of-sync resources, rather than applying every object in the application
193
    managedNamespaceMetadata: # Sets the metadata for the application namespace. Only valid if CreateNamespace=true (see above), otherwise it's a no-op.
194
      labels: # The labels to set on the application namespace
195
        any: label
196
        you: like
197
      annotations: # The annotations to set on the application namespace
198
        the: same
199
        applies: for
200
        annotations: on-the-namespace
201

202
    # The retry feature is available since v1.7
203
    retry:
204
      limit: 5 # number of failed sync attempt retries; unlimited number of attempts if less than 0
205
      backoff:
206
        duration: 5s # the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
207
        factor: 2 # a factor to multiply the base duration after each failed retry
208
        maxDuration: 3m # the maximum amount of time allowed for the backoff strategy
209

210
  # Will ignore differences between live and desired states during the diff. Note that these configurations are not
211
  # used during the sync process unless the `RespectIgnoreDifferences=true` sync option is enabled.
212
  ignoreDifferences:
213
  # for the specified json pointers
214
  - group: apps
215
    kind: Deployment
216
    jsonPointers:
217
    - /spec/replicas
218
  - kind: ConfigMap
219
    jqPathExpressions:
220
    - '.data["config.yaml"].auth'
221
  # for the specified managedFields managers
222
  - group: "*"
223
    kind: "*"
224
    managedFieldsManagers:
225
    - kube-controller-manager
226
    # Name and namespace are optional. If specified, they must match exactly, these are not glob patterns.
227
    name: my-deployment
228
    namespace: my-namespace
229

230
  # RevisionHistoryLimit limits the number of items kept in the application's revision history, which is used for
231
  # informational purposes as well as for rollbacks to previous versions. This should only be changed in exceptional
232
  # circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the
233
  # space used to store the history, so we do not recommend increasing it.
234
  revisionHistoryLimit: 10
235

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.