๐Ÿ“ฆ sorend / helm-controller

๐Ÿ“„ crds.yaml ยท 418 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: helmreleases.helm.fluxcd.io
spec:
  additionalPrinterColumns:
    - JSONPath: .status.releaseName
      name: Release
      type: string
      description: ReleaseName is the name of the Helm release managed by the HelmRelease,
        as given by Helm.
    - JSONPath: .status.phase
      name: Phase
      type: string
      description: Phase is the current release phase being performed for the HelmRelease.
    - JSONPath: .status.releaseStatus
      name: Status
      type: string
      description: ReleaseStatus is the status of the Helm release managed by the HelmRelease,
        as given by Helm.
    - JSONPath: .status.conditions[?(@.type=="Released")].message
      name: Message
      type: string
    - JSONPath: .metadata.creationTimestamp
      description: CreationTimestamp is a timestamp representing the server time when
        this object was created. It is not guaranteed to be set in happens-before order
        across separate operations. Clients may not set this value. It is represented
        in RFC3339 form and is in UTC.
      name: Age
      type: date
  group: helm.fluxcd.io
  names:
    kind: HelmRelease
    listKind: HelmReleaseList
    plural: helmreleases
    shortNames:
      - hr
      - hrs
    singular: helmrelease
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: HelmRelease is a type to represent a Helm release.
      type: object
      required:
        - metadata
        - spec
      properties:
        apiVersion:
          description: 'APIVersion defines the versioned schema of this representation
            of an object. Servers should convert recognized schemas to the latest
            internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
          type: string
        kind:
          description: 'Kind is a string value representing the REST resource this
            object represents. Servers may infer this from the endpoint the client
            submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
          type: string
        metadata:
          type: object
        spec:
          type: object
          required:
            - chart
          properties:
            chart:
              type: object
              properties:
                chartPullSecret:
                  description: ChartPullSecret holds the reference to the authentication
                    secret for accessing the Helm repository using HTTPS basic auth.
                    NOT IMPLEMENTED!
                  type: object
                  required:
                    - name
                  properties:
                    name:
                      type: string
                git:
                  description: Git URL is the URL of the Git repository, e.g. `git@github.com:org/repo`,
                    `http://github.com/org/repo`, or `ssh://git@example.com:2222/org/repo.git`.
                  type: string
                name:
                  description: Name is the name of the Helm chart _without_ an alias,
                    e.g. redis (for `helm upgrade [flags] stable/redis`).
                  type: string
                path:
                  description: Path is the path to the chart relative to the repository
                    root.
                  type: string
                ref:
                  description: Ref is the Git branch (or other reference) to use.
                    Defaults to 'master', or the configured default Git ref.
                  type: string
                repository:
                  description: RepoURL is the URL of the Helm repository, e.g. `https://kubernetes-charts.storage.googleapis.com`
                    or `https://charts.example.com`.
                  type: string
                secretRef:
                  description: SecretRef holds the authentication secret for accessing
                    the Git repository (over HTTPS). The credentials will be added
                    to an HTTPS GitURL before the mirror is started.
                  type: object
                  required:
                    - name
                  properties:
                    name:
                      type: string
                    namespace:
                      type: string
                skipDepUpdate:
                  description: SkipDepUpdate will tell the operator to skip running
                    'helm dep update' before installing or upgrading the chart, the
                    chart dependencies _must_ be present for this to succeed.
                  type: boolean
                version:
                  description: Version is the targeted Helm chart version, e.g. 7.0.1.
                  type: string
            disableOpenAPIValidation:
              description: DisableOpenAPIValidation controls whether OpenAPI validation
                is enforced.
              type: boolean
            forceUpgrade:
              description: Force will mark this Helm release to `--force` upgrades.
                This forces the resource updates through delete/recreate if needed.
              type: boolean
            helmVersion:
              description: 'HelmVersion is the version of Helm to target. If not supplied,
                the lowest _enabled Helm version_ will be targeted. Valid HelmVersion
                values are: "v2", "v3"'
              type: string
              enum:
                - v2
                - v3
            maxHistory:
              description: MaxHistory is the maximum amount of revisions to keep for
                the Helm release. If not supplied, it defaults to 10.
              type: integer
            releaseName:
              description: ReleaseName is the name of the The Helm release. If not
                supplied, it will be generated by affixing the namespace to the resource
                name.
              type: string
            resetValues:
              description: ResetValues will mark this Helm release to reset the values
                to the defaults of the targeted chart before performing an upgrade.
                Not explicitly setting this to `false` equals to `true` due to the
                declarative nature of the operator.
              type: boolean
            rollback:
              description: The rollback settings for this Helm release.
              type: object
              properties:
                disableHooks:
                  description: DisableHooks will mark this Helm release to prevent
                    hooks from running during the rollback.
                  type: boolean
                enable:
                  description: Enable will mark this Helm release for rollbacks.
                  type: boolean
                force:
                  description: Force will mark this Helm release to `--force` rollbacks.
                    This forces the resource updates through delete/recreate if needed.
                  type: boolean
                maxRetries:
                  description: MaxRetries is the maximum amount of upgrade retries
                    the operator should make before bailing.
                  type: integer
                  format: int64
                recreate:
                  description: Recreate will mark this Helm release to `--recreate-pods`
                    for if applicable. This performs pod restarts.
                  type: boolean
                retry:
                  description: Retry will mark this Helm release for upgrade retries
                    after a rollback.
                  type: boolean
                timeout:
                  description: Timeout is the time to wait for any individual Kubernetes
                    operation (like Jobs for hooks) during rollback.
                  type: integer
                  format: int64
                wait:
                  description: Wait will mark this Helm release to wait until all
                    Pods, PVCs, Services, and minimum number of Pods of a Deployment,
                    StatefulSet, or ReplicaSet are in a ready state before marking
                    the release as successful.
                  type: boolean
            skipCRDs:
              description: SkipCRDs will mark this Helm release to skip the creation
                of CRDs during a Helm 3 installation.
              type: boolean
            targetNamespace:
              description: TargetNamespace overrides the targeted namespace for the
                Helm release. The default namespace equals to the namespace of the
                HelmRelease resource.
              type: string
            test:
              description: The test settings for this Helm release.
              type: object
              properties:
                cleanup:
                  description: Cleanup, when targeting Helm 2, determines whether
                    to delete test pods between each test run initiated by the Helm
                    Operator.
                  type: boolean
                enable:
                  description: Enable will mark this Helm release for tests.
                  type: boolean
                ignoreFailures:
                  description: IgnoreFailures will cause a Helm release to be rolled
                    back if it fails otherwise it will be left in a released state
                  type: boolean
                timeout:
                  description: Timeout is the time to wait for any individual Kubernetes
                    operation (like Jobs for hooks) during test.
                  type: integer
                  format: int64
            timeout:
              description: Timeout is the time to wait for any individual Kubernetes
                operation (like Jobs for hooks) during installation and upgrade operations.
              type: integer
              format: int64
            valueFileSecrets:
              description: ValueFileSecrets holds the local name references to secrets.
                DEPRECATED, use ValuesFrom.secretKeyRef instead.
              type: array
              items:
                type: object
                required:
                  - name
                properties:
                  name:
                    type: string
            values:
              description: Values holds the values for this Helm release.
              type: object
            valuesFrom:
              type: array
              items:
                type: object
                properties:
                  chartFileRef:
                    description: The reference to a local chart file with release
                      values.
                    type: object
                    required:
                      - path
                    properties:
                      optional:
                        description: Optional will mark this ChartFileSelector as
                          optional. The result of this are that operations are permitted
                          without the source, due to it e.g. being temporarily unavailable.
                        type: boolean
                      path:
                        description: Path is the file path to the source relative
                          to the chart root.
                        type: string
                  configMapKeyRef:
                    description: The reference to a config map with release values.
                    type: object
                    required:
                      - name
                    properties:
                      key:
                        type: string
                      name:
                        type: string
                      namespace:
                        type: string
                      optional:
                        type: boolean
                  externalSourceRef:
                    description: The reference to an external source with release
                      values.
                    type: object
                    required:
                      - url
                    properties:
                      optional:
                        description: Optional will mark this ExternalSourceSelector
                          as optional. The result of this are that operations are
                          permitted without the source, due to it e.g. being temporarily
                          unavailable.
                        type: boolean
                      url:
                        description: URL is the URL of the external source.
                        type: string
                  secretKeyRef:
                    description: The reference to a secret with release values.
                    type: object
                    required:
                      - name
                    properties:
                      key:
                        type: string
                      name:
                        type: string
                      namespace:
                        type: string
                      optional:
                        type: boolean
            wait:
              description: Wait will mark this Helm release to wait until all Pods,
                PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet,
                or ReplicaSet are in a ready state before marking the release as successful.
              type: boolean
        status:
          description: HelmReleaseStatus contains status information about an HelmRelease.
          type: object
          properties:
            conditions:
              description: Conditions contains observations of the resource's state,
                e.g., has the chart which it refers to been fetched.
              type: array
              items:
                type: object
                required:
                  - status
                  - type
                properties:
                  lastTransitionTime:
                    description: LastTransitionTime is the timestamp corresponding
                      to the last status change of this condition.
                    type: string
                    format: date-time
                  lastUpdateTime:
                    description: LastUpdateTime is the timestamp corresponding to
                      the last status update of this condition.
                    type: string
                    format: date-time
                  message:
                    description: Message is a human readable description of the details
                      of the last transition, complementing reason.
                    type: string
                  reason:
                    description: Reason is a brief machine readable explanation for
                      the condition's last transition.
                    type: string
                  status:
                    description: Status of the condition, one of ('True', 'False',
                      'Unknown').
                    type: string
                    enum:
                      - "True"
                      - "False"
                      - Unknown
                  type:
                    description: Type of the condition, one of ('ChartFetched', 'Deployed',
                      'Released', 'RolledBack', 'Tested').
                    type: string
                    enum:
                      - ChartFetched
                      - Deployed
                      - Released
                      - RolledBack
                      - Tested
            lastAttemptedRevision:
              description: LastAttemptedRevision is the revision of the latest chart
                sync, and may be of a failed release.
              type: string
            observedGeneration:
              description: ObservedGeneration is the most recent generation observed
                by the operator.
              type: integer
              format: int64
            phase:
              description: Phase the release is in, one of ('ChartFetched', 'ChartFetchFailed',
                'Installing', 'Upgrading', 'Deployed', 'DeployFailed', 'Testing',
                'TestFailed', 'Tested', 'Succeeded', 'RollingBack', 'RolledBack',
                'RollbackFailed')
              type: string
              enum:
                - ChartFetched
                - ChartFetchFailed
                - Installing
                - Upgrading
                - Deployed
                - DeployFailed
                - Testing
                - TestFailed
                - Tested
                - Succeeded
                - Failed
                - RollingBack
                - RolledBack
                - RollbackFailed
            releaseName:
              description: ReleaseName is the name as either supplied or generated.
              type: string
            releaseStatus:
              description: ReleaseStatus is the status as given by Helm for the release
                managed by this resource.
              type: string
            revision:
              description: Revision holds the Git hash or version of the chart currently
                deployed.
              type: string
            rollbackCount:
              description: RollbackCount records the amount of rollback attempts made,
                it is incremented after a rollback failure and reset after a successful
                upgrade or revision change.
              type: integer
              format: int64
  version: v1
  versions:
    - name: v1
      served: true
      storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []