@k8ts/sample-interfaces 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/_mix.d.ts +4 -0
  2. package/dist/_mix.d.ts.map +1 -0
  3. package/dist/_mix.js +7 -0
  4. package/dist/_mix.js.map +1 -0
  5. package/dist/acme.cert-manager.io.d.ts +4832 -0
  6. package/dist/acme.cert-manager.io.d.ts.map +1 -0
  7. package/dist/acme.cert-manager.io.js +2476 -0
  8. package/dist/acme.cert-manager.io.js.map +1 -0
  9. package/dist/gateway.networking.k8s.io.d.ts +8786 -0
  10. package/dist/gateway.networking.k8s.io.d.ts.map +1 -0
  11. package/dist/gateway.networking.k8s.io.js +3668 -0
  12. package/dist/gateway.networking.k8s.io.js.map +1 -0
  13. package/dist/helm.toolkit.fluxcd.io.d.ts +4560 -0
  14. package/dist/helm.toolkit.fluxcd.io.d.ts.map +1 -0
  15. package/dist/helm.toolkit.fluxcd.io.js +2274 -0
  16. package/dist/helm.toolkit.fluxcd.io.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +38 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/k8s.d.ts +18772 -0
  22. package/dist/k8s.d.ts.map +1 -0
  23. package/dist/k8s.js +12173 -0
  24. package/dist/k8s.js.map +1 -0
  25. package/dist/kustomize.toolkit.fluxcd.io.d.ts +2202 -0
  26. package/dist/kustomize.toolkit.fluxcd.io.d.ts.map +1 -0
  27. package/dist/kustomize.toolkit.fluxcd.io.js +1196 -0
  28. package/dist/kustomize.toolkit.fluxcd.io.js.map +1 -0
  29. package/dist/notification.toolkit.fluxcd.io.d.ts +1851 -0
  30. package/dist/notification.toolkit.fluxcd.io.d.ts.map +1 -0
  31. package/dist/notification.toolkit.fluxcd.io.js +1489 -0
  32. package/dist/notification.toolkit.fluxcd.io.js.map +1 -0
  33. package/dist/source.toolkit.fluxcd.io.d.ts +3733 -0
  34. package/dist/source.toolkit.fluxcd.io.d.ts.map +1 -0
  35. package/dist/source.toolkit.fluxcd.io.js +2539 -0
  36. package/dist/source.toolkit.fluxcd.io.js.map +1 -0
  37. package/package.json +68 -0
  38. package/src/_mix.ts +3 -0
  39. package/src/acme.cert-manager.io.ts +8202 -0
  40. package/src/gateway.networking.k8s.io.ts +12226 -0
  41. package/src/helm.toolkit.fluxcd.io.ts +7010 -0
  42. package/src/index.ts +1 -0
  43. package/src/k8s.ts +31018 -0
  44. package/src/kustomize.toolkit.fluxcd.io.ts +3560 -0
  45. package/src/notification.toolkit.fluxcd.io.ts +2944 -0
  46. package/src/source.toolkit.fluxcd.io.ts +6277 -0
  47. package/tsconfig.json +12 -0
@@ -0,0 +1,3560 @@
1
+ // generated by cdk8s
2
+ import { ApiObject, ApiObjectMetadata, GroupVersionKind } from "cdk8s"
3
+ import { Construct } from "constructs"
4
+
5
+ /**
6
+ * Kustomization is the Schema for the kustomizations API.
7
+ *
8
+ * @schema Kustomization
9
+ */
10
+ export class Kustomization extends ApiObject {
11
+ /** Returns the apiVersion and kind for "Kustomization" */
12
+ public static GVK: GroupVersionKind = {
13
+ apiVersion: "kustomize.toolkit.fluxcd.io/v1",
14
+ kind: "Kustomization"
15
+ }
16
+
17
+ /**
18
+ * Renders a Kubernetes manifest for "Kustomization".
19
+ *
20
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
21
+ *
22
+ * @param props Initialization props
23
+ */
24
+ public static manifest(props: KustomizationProps = {}): any {
25
+ return {
26
+ ...Kustomization.GVK,
27
+ ...toJson_KustomizationProps(props)
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Defines a "Kustomization" API object
33
+ *
34
+ * @param scope The scope in which to define this object
35
+ * @param id A scope-local name for the object
36
+ * @param props Initialization props
37
+ */
38
+ public constructor(scope: Construct, id: string, props: KustomizationProps = {}) {
39
+ super(scope, id, {
40
+ ...Kustomization.GVK,
41
+ ...props
42
+ })
43
+ }
44
+
45
+ /** Renders the object to Kubernetes JSON. */
46
+ public toJson(): any {
47
+ const resolved = super.toJson()
48
+
49
+ return {
50
+ ...Kustomization.GVK,
51
+ ...toJson_KustomizationProps(resolved)
52
+ }
53
+ }
54
+ }
55
+
56
+ /**
57
+ * Kustomization is the Schema for the kustomizations API.
58
+ *
59
+ * @schema Kustomization
60
+ */
61
+ export interface KustomizationProps {
62
+ /** @schema Kustomization#metadata */
63
+ metadata?: ApiObjectMetadata
64
+
65
+ /**
66
+ * KustomizationSpec defines the configuration to calculate the desired state from a Source
67
+ * using Kustomize.
68
+ *
69
+ * @schema Kustomization#spec
70
+ */
71
+ spec?: KustomizationSpec
72
+ }
73
+
74
+ /** Converts an object of type 'KustomizationProps' to JSON representation. */
75
+ /* eslint-disable max-len, quote-props */
76
+ export function toJson_KustomizationProps(
77
+ obj: KustomizationProps | undefined
78
+ ): Record<string, any> | undefined {
79
+ if (obj === undefined) {
80
+ return undefined
81
+ }
82
+ const result = {
83
+ metadata: obj.metadata,
84
+ spec: toJson_KustomizationSpec(obj.spec)
85
+ }
86
+ // filter undefined values
87
+ return Object.entries(result).reduce(
88
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
89
+ {}
90
+ )
91
+ }
92
+ /* eslint-enable max-len, quote-props */
93
+
94
+ /**
95
+ * KustomizationSpec defines the configuration to calculate the desired state from a Source using
96
+ * Kustomize.
97
+ *
98
+ * @schema KustomizationSpec
99
+ */
100
+ export interface KustomizationSpec {
101
+ /**
102
+ * CommonMetadata specifies the common labels and annotations that are applied to all resources.
103
+ * Any existing label or annotation will be overridden if its key matches a common one.
104
+ *
105
+ * @schema KustomizationSpec#commonMetadata
106
+ */
107
+ commonMetadata?: KustomizationSpecCommonMetadata
108
+
109
+ /**
110
+ * Components specifies relative paths to specifications of other Components.
111
+ *
112
+ * @schema KustomizationSpec#components
113
+ */
114
+ components?: string[]
115
+
116
+ /**
117
+ * Decrypt Kubernetes secrets before applying them on the cluster.
118
+ *
119
+ * @schema KustomizationSpec#decryption
120
+ */
121
+ decryption?: KustomizationSpecDecryption
122
+
123
+ /**
124
+ * DeletionPolicy can be used to control garbage collection when this Kustomization is deleted.
125
+ * Valid values are ('MirrorPrune', 'Delete', 'Orphan'). 'MirrorPrune' mirrors the Prune field
126
+ * (orphan if false, delete if true). Defaults to 'MirrorPrune'.
127
+ *
128
+ * @default MirrorPrune'.
129
+ * @schema KustomizationSpec#deletionPolicy
130
+ */
131
+ deletionPolicy?: KustomizationSpecDeletionPolicy
132
+
133
+ /**
134
+ * DependsOn may contain a meta.NamespacedObjectReference slice with references to Kustomization
135
+ * resources that must be ready before this Kustomization can be reconciled.
136
+ *
137
+ * @schema KustomizationSpec#dependsOn
138
+ */
139
+ dependsOn?: KustomizationSpecDependsOn[]
140
+
141
+ /**
142
+ * Force instructs the controller to recreate resources when patching fails due to an immutable
143
+ * field change.
144
+ *
145
+ * @schema KustomizationSpec#force
146
+ */
147
+ force?: boolean
148
+
149
+ /**
150
+ * HealthCheckExprs is a list of healthcheck expressions for evaluating the health of custom
151
+ * resources using Common Expression Language (CEL). The expressions are evaluated only when
152
+ * Wait or HealthChecks are specified.
153
+ *
154
+ * @schema KustomizationSpec#healthCheckExprs
155
+ */
156
+ healthCheckExprs?: KustomizationSpecHealthCheckExprs[]
157
+
158
+ /**
159
+ * A list of resources to be included in the health assessment.
160
+ *
161
+ * @schema KustomizationSpec#healthChecks
162
+ */
163
+ healthChecks?: KustomizationSpecHealthChecks[]
164
+
165
+ /**
166
+ * Images is a list of (image name, new name, new tag or digest) for changing image names, tags
167
+ * or digests. This can also be achieved with a patch, but this operator is simpler to specify.
168
+ *
169
+ * @schema KustomizationSpec#images
170
+ */
171
+ images?: KustomizationSpecImages[]
172
+
173
+ /**
174
+ * The interval at which to reconcile the Kustomization. This interval is approximate and may be
175
+ * subject to jitter to ensure efficient use of resources.
176
+ *
177
+ * @schema KustomizationSpec#interval
178
+ */
179
+ interval: string
180
+
181
+ /**
182
+ * The KubeConfig for reconciling the Kustomization on a remote cluster. When used in
183
+ * combination with KustomizationSpec.ServiceAccountName, forces the controller to act on behalf
184
+ * of that Service Account at the target cluster. If the --default-service-account flag is set,
185
+ * its value will be used as a controller level fallback for when
186
+ * KustomizationSpec.ServiceAccountName is empty.
187
+ *
188
+ * @schema KustomizationSpec#kubeConfig
189
+ */
190
+ kubeConfig?: KustomizationSpecKubeConfig
191
+
192
+ /**
193
+ * NamePrefix will prefix the names of all managed resources.
194
+ *
195
+ * @schema KustomizationSpec#namePrefix
196
+ */
197
+ namePrefix?: string
198
+
199
+ /**
200
+ * NameSuffix will suffix the names of all managed resources.
201
+ *
202
+ * @schema KustomizationSpec#nameSuffix
203
+ */
204
+ nameSuffix?: string
205
+
206
+ /**
207
+ * Strategic merge and JSON patches, defined as inline YAML objects, capable of targeting
208
+ * objects based on kind, label and annotation selectors.
209
+ *
210
+ * @schema KustomizationSpec#patches
211
+ */
212
+ patches?: KustomizationSpecPatches[]
213
+
214
+ /**
215
+ * Path to the directory containing the kustomization.yaml file, or the set of plain YAMLs a
216
+ * kustomization.yaml should be generated for. Defaults to 'None', which translates to the root
217
+ * path of the SourceRef.
218
+ *
219
+ * @default None', which translates to the root path of the SourceRef.
220
+ * @schema KustomizationSpec#path
221
+ */
222
+ path?: string
223
+
224
+ /**
225
+ * PostBuild describes which actions to perform on the YAML manifest generated by building the
226
+ * kustomize overlay.
227
+ *
228
+ * @schema KustomizationSpec#postBuild
229
+ */
230
+ postBuild?: KustomizationSpecPostBuild
231
+
232
+ /**
233
+ * Prune enables garbage collection.
234
+ *
235
+ * @schema KustomizationSpec#prune
236
+ */
237
+ prune: boolean
238
+
239
+ /**
240
+ * The interval at which to retry a previously failed reconciliation. When not specified, the
241
+ * controller uses the KustomizationSpec.Interval value to retry failures.
242
+ *
243
+ * @schema KustomizationSpec#retryInterval
244
+ */
245
+ retryInterval?: string
246
+
247
+ /**
248
+ * The name of the Kubernetes service account to impersonate when reconciling this
249
+ * Kustomization.
250
+ *
251
+ * @schema KustomizationSpec#serviceAccountName
252
+ */
253
+ serviceAccountName?: string
254
+
255
+ /**
256
+ * Reference of the source where the kustomization file is.
257
+ *
258
+ * @schema KustomizationSpec#sourceRef
259
+ */
260
+ sourceRef: KustomizationSpecSourceRef
261
+
262
+ /**
263
+ * This flag tells the controller to suspend subsequent kustomize executions, it does not apply
264
+ * to already started executions. Defaults to false.
265
+ *
266
+ * @default false.
267
+ * @schema KustomizationSpec#suspend
268
+ */
269
+ suspend?: boolean
270
+
271
+ /**
272
+ * TargetNamespace sets or overrides the namespace in the kustomization.yaml file.
273
+ *
274
+ * @schema KustomizationSpec#targetNamespace
275
+ */
276
+ targetNamespace?: string
277
+
278
+ /**
279
+ * Timeout for validation, apply and health checking operations. Defaults to 'Interval'
280
+ * duration.
281
+ *
282
+ * @default Interval' duration.
283
+ * @schema KustomizationSpec#timeout
284
+ */
285
+ timeout?: string
286
+
287
+ /**
288
+ * Wait instructs the controller to check the health of all the reconciled resources. When
289
+ * enabled, the HealthChecks are ignored. Defaults to false.
290
+ *
291
+ * @default false.
292
+ * @schema KustomizationSpec#wait
293
+ */
294
+ wait?: boolean
295
+ }
296
+
297
+ /** Converts an object of type 'KustomizationSpec' to JSON representation. */
298
+ /* eslint-disable max-len, quote-props */
299
+ export function toJson_KustomizationSpec(
300
+ obj: KustomizationSpec | undefined
301
+ ): Record<string, any> | undefined {
302
+ if (obj === undefined) {
303
+ return undefined
304
+ }
305
+ const result = {
306
+ commonMetadata: toJson_KustomizationSpecCommonMetadata(obj.commonMetadata),
307
+ components: obj.components?.map(y => y),
308
+ decryption: toJson_KustomizationSpecDecryption(obj.decryption),
309
+ deletionPolicy: obj.deletionPolicy,
310
+ dependsOn: obj.dependsOn?.map(y => toJson_KustomizationSpecDependsOn(y)),
311
+ force: obj.force,
312
+ healthCheckExprs: obj.healthCheckExprs?.map(y =>
313
+ toJson_KustomizationSpecHealthCheckExprs(y)
314
+ ),
315
+ healthChecks: obj.healthChecks?.map(y => toJson_KustomizationSpecHealthChecks(y)),
316
+ images: obj.images?.map(y => toJson_KustomizationSpecImages(y)),
317
+ interval: obj.interval,
318
+ kubeConfig: toJson_KustomizationSpecKubeConfig(obj.kubeConfig),
319
+ namePrefix: obj.namePrefix,
320
+ nameSuffix: obj.nameSuffix,
321
+ patches: obj.patches?.map(y => toJson_KustomizationSpecPatches(y)),
322
+ path: obj.path,
323
+ postBuild: toJson_KustomizationSpecPostBuild(obj.postBuild),
324
+ prune: obj.prune,
325
+ retryInterval: obj.retryInterval,
326
+ serviceAccountName: obj.serviceAccountName,
327
+ sourceRef: toJson_KustomizationSpecSourceRef(obj.sourceRef),
328
+ suspend: obj.suspend,
329
+ targetNamespace: obj.targetNamespace,
330
+ timeout: obj.timeout,
331
+ wait: obj.wait
332
+ }
333
+ // filter undefined values
334
+ return Object.entries(result).reduce(
335
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
336
+ {}
337
+ )
338
+ }
339
+ /* eslint-enable max-len, quote-props */
340
+
341
+ /**
342
+ * CommonMetadata specifies the common labels and annotations that are applied to all resources. Any
343
+ * existing label or annotation will be overridden if its key matches a common one.
344
+ *
345
+ * @schema KustomizationSpecCommonMetadata
346
+ */
347
+ export interface KustomizationSpecCommonMetadata {
348
+ /**
349
+ * Annotations to be added to the object's metadata.
350
+ *
351
+ * @schema KustomizationSpecCommonMetadata#annotations
352
+ */
353
+ annotations?: { [key: string]: string }
354
+
355
+ /**
356
+ * Labels to be added to the object's metadata.
357
+ *
358
+ * @schema KustomizationSpecCommonMetadata#labels
359
+ */
360
+ labels?: { [key: string]: string }
361
+ }
362
+
363
+ /** Converts an object of type 'KustomizationSpecCommonMetadata' to JSON representation. */
364
+ /* eslint-disable max-len, quote-props */
365
+ export function toJson_KustomizationSpecCommonMetadata(
366
+ obj: KustomizationSpecCommonMetadata | undefined
367
+ ): Record<string, any> | undefined {
368
+ if (obj === undefined) {
369
+ return undefined
370
+ }
371
+ const result = {
372
+ annotations:
373
+ obj.annotations === undefined
374
+ ? undefined
375
+ : Object.entries(obj.annotations).reduce(
376
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
377
+ {}
378
+ ),
379
+ labels:
380
+ obj.labels === undefined
381
+ ? undefined
382
+ : Object.entries(obj.labels).reduce(
383
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
384
+ {}
385
+ )
386
+ }
387
+ // filter undefined values
388
+ return Object.entries(result).reduce(
389
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
390
+ {}
391
+ )
392
+ }
393
+ /* eslint-enable max-len, quote-props */
394
+
395
+ /**
396
+ * Decrypt Kubernetes secrets before applying them on the cluster.
397
+ *
398
+ * @schema KustomizationSpecDecryption
399
+ */
400
+ export interface KustomizationSpecDecryption {
401
+ /**
402
+ * Provider is the name of the decryption engine.
403
+ *
404
+ * @schema KustomizationSpecDecryption#provider
405
+ */
406
+ provider: KustomizationSpecDecryptionProvider
407
+
408
+ /**
409
+ * The secret name containing the private OpenPGP keys used for decryption.
410
+ *
411
+ * @schema KustomizationSpecDecryption#secretRef
412
+ */
413
+ secretRef?: KustomizationSpecDecryptionSecretRef
414
+ }
415
+
416
+ /** Converts an object of type 'KustomizationSpecDecryption' to JSON representation. */
417
+ /* eslint-disable max-len, quote-props */
418
+ export function toJson_KustomizationSpecDecryption(
419
+ obj: KustomizationSpecDecryption | undefined
420
+ ): Record<string, any> | undefined {
421
+ if (obj === undefined) {
422
+ return undefined
423
+ }
424
+ const result = {
425
+ provider: obj.provider,
426
+ secretRef: toJson_KustomizationSpecDecryptionSecretRef(obj.secretRef)
427
+ }
428
+ // filter undefined values
429
+ return Object.entries(result).reduce(
430
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
431
+ {}
432
+ )
433
+ }
434
+ /* eslint-enable max-len, quote-props */
435
+
436
+ /**
437
+ * DeletionPolicy can be used to control garbage collection when this Kustomization is deleted.
438
+ * Valid values are ('MirrorPrune', 'Delete', 'Orphan'). 'MirrorPrune' mirrors the Prune field
439
+ * (orphan if false, delete if true). Defaults to 'MirrorPrune'.
440
+ *
441
+ * @default MirrorPrune'.
442
+ * @schema KustomizationSpecDeletionPolicy
443
+ */
444
+ export enum KustomizationSpecDeletionPolicy {
445
+ /** MirrorPrune */
446
+ MIRROR_PRUNE = "MirrorPrune",
447
+ /** Delete */
448
+ DELETE = "Delete",
449
+ /** Orphan */
450
+ ORPHAN = "Orphan"
451
+ }
452
+
453
+ /**
454
+ * NamespacedObjectReference contains enough information to locate the referenced Kubernetes
455
+ * resource object in any namespace.
456
+ *
457
+ * @schema KustomizationSpecDependsOn
458
+ */
459
+ export interface KustomizationSpecDependsOn {
460
+ /**
461
+ * Name of the referent.
462
+ *
463
+ * @schema KustomizationSpecDependsOn#name
464
+ */
465
+ name: string
466
+
467
+ /**
468
+ * Namespace of the referent, when not specified it acts as LocalObjectReference.
469
+ *
470
+ * @schema KustomizationSpecDependsOn#namespace
471
+ */
472
+ namespace?: string
473
+ }
474
+
475
+ /** Converts an object of type 'KustomizationSpecDependsOn' to JSON representation. */
476
+ /* eslint-disable max-len, quote-props */
477
+ export function toJson_KustomizationSpecDependsOn(
478
+ obj: KustomizationSpecDependsOn | undefined
479
+ ): Record<string, any> | undefined {
480
+ if (obj === undefined) {
481
+ return undefined
482
+ }
483
+ const result = {
484
+ name: obj.name,
485
+ namespace: obj.namespace
486
+ }
487
+ // filter undefined values
488
+ return Object.entries(result).reduce(
489
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
490
+ {}
491
+ )
492
+ }
493
+ /* eslint-enable max-len, quote-props */
494
+
495
+ /**
496
+ * CustomHealthCheck defines the health check for custom resources.
497
+ *
498
+ * @schema KustomizationSpecHealthCheckExprs
499
+ */
500
+ export interface KustomizationSpecHealthCheckExprs {
501
+ /**
502
+ * APIVersion of the custom resource under evaluation.
503
+ *
504
+ * @schema KustomizationSpecHealthCheckExprs#apiVersion
505
+ */
506
+ apiVersion: string
507
+
508
+ /**
509
+ * Current is the CEL expression that determines if the status of the custom resource has
510
+ * reached the desired state.
511
+ *
512
+ * @schema KustomizationSpecHealthCheckExprs#current
513
+ */
514
+ current: string
515
+
516
+ /**
517
+ * Failed is the CEL expression that determines if the status of the custom resource has failed
518
+ * to reach the desired state.
519
+ *
520
+ * @schema KustomizationSpecHealthCheckExprs#failed
521
+ */
522
+ failed?: string
523
+
524
+ /**
525
+ * InProgress is the CEL expression that determines if the status of the custom resource has not
526
+ * yet reached the desired state.
527
+ *
528
+ * @schema KustomizationSpecHealthCheckExprs#inProgress
529
+ */
530
+ inProgress?: string
531
+
532
+ /**
533
+ * Kind of the custom resource under evaluation.
534
+ *
535
+ * @schema KustomizationSpecHealthCheckExprs#kind
536
+ */
537
+ kind: string
538
+ }
539
+
540
+ /** Converts an object of type 'KustomizationSpecHealthCheckExprs' to JSON representation. */
541
+ /* eslint-disable max-len, quote-props */
542
+ export function toJson_KustomizationSpecHealthCheckExprs(
543
+ obj: KustomizationSpecHealthCheckExprs | undefined
544
+ ): Record<string, any> | undefined {
545
+ if (obj === undefined) {
546
+ return undefined
547
+ }
548
+ const result = {
549
+ apiVersion: obj.apiVersion,
550
+ current: obj.current,
551
+ failed: obj.failed,
552
+ inProgress: obj.inProgress,
553
+ kind: obj.kind
554
+ }
555
+ // filter undefined values
556
+ return Object.entries(result).reduce(
557
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
558
+ {}
559
+ )
560
+ }
561
+ /* eslint-enable max-len, quote-props */
562
+
563
+ /**
564
+ * NamespacedObjectKindReference contains enough information to locate the typed referenced
565
+ * Kubernetes resource object in any namespace.
566
+ *
567
+ * @schema KustomizationSpecHealthChecks
568
+ */
569
+ export interface KustomizationSpecHealthChecks {
570
+ /**
571
+ * API version of the referent, if not specified the Kubernetes preferred version will be used.
572
+ *
573
+ * @schema KustomizationSpecHealthChecks#apiVersion
574
+ */
575
+ apiVersion?: string
576
+
577
+ /**
578
+ * Kind of the referent.
579
+ *
580
+ * @schema KustomizationSpecHealthChecks#kind
581
+ */
582
+ kind: string
583
+
584
+ /**
585
+ * Name of the referent.
586
+ *
587
+ * @schema KustomizationSpecHealthChecks#name
588
+ */
589
+ name: string
590
+
591
+ /**
592
+ * Namespace of the referent, when not specified it acts as LocalObjectReference.
593
+ *
594
+ * @schema KustomizationSpecHealthChecks#namespace
595
+ */
596
+ namespace?: string
597
+ }
598
+
599
+ /** Converts an object of type 'KustomizationSpecHealthChecks' to JSON representation. */
600
+ /* eslint-disable max-len, quote-props */
601
+ export function toJson_KustomizationSpecHealthChecks(
602
+ obj: KustomizationSpecHealthChecks | undefined
603
+ ): Record<string, any> | undefined {
604
+ if (obj === undefined) {
605
+ return undefined
606
+ }
607
+ const result = {
608
+ apiVersion: obj.apiVersion,
609
+ kind: obj.kind,
610
+ name: obj.name,
611
+ namespace: obj.namespace
612
+ }
613
+ // filter undefined values
614
+ return Object.entries(result).reduce(
615
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
616
+ {}
617
+ )
618
+ }
619
+ /* eslint-enable max-len, quote-props */
620
+
621
+ /**
622
+ * Image contains an image name, a new name, a new tag or digest, which will replace the original
623
+ * name and tag.
624
+ *
625
+ * @schema KustomizationSpecImages
626
+ */
627
+ export interface KustomizationSpecImages {
628
+ /**
629
+ * Digest is the value used to replace the original image tag. If digest is present NewTag value
630
+ * is ignored.
631
+ *
632
+ * @schema KustomizationSpecImages#digest
633
+ */
634
+ digest?: string
635
+
636
+ /**
637
+ * Name is a tag-less image name.
638
+ *
639
+ * @schema KustomizationSpecImages#name
640
+ */
641
+ name: string
642
+
643
+ /**
644
+ * NewName is the value used to replace the original name.
645
+ *
646
+ * @schema KustomizationSpecImages#newName
647
+ */
648
+ newName?: string
649
+
650
+ /**
651
+ * NewTag is the value used to replace the original tag.
652
+ *
653
+ * @schema KustomizationSpecImages#newTag
654
+ */
655
+ newTag?: string
656
+ }
657
+
658
+ /** Converts an object of type 'KustomizationSpecImages' to JSON representation. */
659
+ /* eslint-disable max-len, quote-props */
660
+ export function toJson_KustomizationSpecImages(
661
+ obj: KustomizationSpecImages | undefined
662
+ ): Record<string, any> | undefined {
663
+ if (obj === undefined) {
664
+ return undefined
665
+ }
666
+ const result = {
667
+ digest: obj.digest,
668
+ name: obj.name,
669
+ newName: obj.newName,
670
+ newTag: obj.newTag
671
+ }
672
+ // filter undefined values
673
+ return Object.entries(result).reduce(
674
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
675
+ {}
676
+ )
677
+ }
678
+ /* eslint-enable max-len, quote-props */
679
+
680
+ /**
681
+ * The KubeConfig for reconciling the Kustomization on a remote cluster. When used in combination
682
+ * with KustomizationSpec.ServiceAccountName, forces the controller to act on behalf of that Service
683
+ * Account at the target cluster. If the --default-service-account flag is set, its value will be
684
+ * used as a controller level fallback for when KustomizationSpec.ServiceAccountName is empty.
685
+ *
686
+ * @schema KustomizationSpecKubeConfig
687
+ */
688
+ export interface KustomizationSpecKubeConfig {
689
+ /**
690
+ * SecretRef holds the name of a secret that contains a key with the kubeconfig file as the
691
+ * value. If no key is set, the key will default to 'value'. It is recommended that the
692
+ * kubeconfig is self-contained, and the secret is regularly updated if credentials such as a
693
+ * cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without
694
+ * adding binaries and credentials to the Pod that is responsible for reconciling Kubernetes
695
+ * resources.
696
+ *
697
+ * @schema KustomizationSpecKubeConfig#secretRef
698
+ */
699
+ secretRef: KustomizationSpecKubeConfigSecretRef
700
+ }
701
+
702
+ /** Converts an object of type 'KustomizationSpecKubeConfig' to JSON representation. */
703
+ /* eslint-disable max-len, quote-props */
704
+ export function toJson_KustomizationSpecKubeConfig(
705
+ obj: KustomizationSpecKubeConfig | undefined
706
+ ): Record<string, any> | undefined {
707
+ if (obj === undefined) {
708
+ return undefined
709
+ }
710
+ const result = {
711
+ secretRef: toJson_KustomizationSpecKubeConfigSecretRef(obj.secretRef)
712
+ }
713
+ // filter undefined values
714
+ return Object.entries(result).reduce(
715
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
716
+ {}
717
+ )
718
+ }
719
+ /* eslint-enable max-len, quote-props */
720
+
721
+ /**
722
+ * Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should be
723
+ * applied to.
724
+ *
725
+ * @schema KustomizationSpecPatches
726
+ */
727
+ export interface KustomizationSpecPatches {
728
+ /**
729
+ * Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with an array of
730
+ * operation objects.
731
+ *
732
+ * @schema KustomizationSpecPatches#patch
733
+ */
734
+ patch: string
735
+
736
+ /**
737
+ * Target points to the resources that the patch document should be applied to.
738
+ *
739
+ * @schema KustomizationSpecPatches#target
740
+ */
741
+ target?: KustomizationSpecPatchesTarget
742
+ }
743
+
744
+ /** Converts an object of type 'KustomizationSpecPatches' to JSON representation. */
745
+ /* eslint-disable max-len, quote-props */
746
+ export function toJson_KustomizationSpecPatches(
747
+ obj: KustomizationSpecPatches | undefined
748
+ ): Record<string, any> | undefined {
749
+ if (obj === undefined) {
750
+ return undefined
751
+ }
752
+ const result = {
753
+ patch: obj.patch,
754
+ target: toJson_KustomizationSpecPatchesTarget(obj.target)
755
+ }
756
+ // filter undefined values
757
+ return Object.entries(result).reduce(
758
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
759
+ {}
760
+ )
761
+ }
762
+ /* eslint-enable max-len, quote-props */
763
+
764
+ /**
765
+ * PostBuild describes which actions to perform on the YAML manifest generated by building the
766
+ * kustomize overlay.
767
+ *
768
+ * @schema KustomizationSpecPostBuild
769
+ */
770
+ export interface KustomizationSpecPostBuild {
771
+ /**
772
+ * Substitute holds a map of key/value pairs. The variables defined in your YAML manifests that
773
+ * match any of the keys defined in the map will be substituted with the set value. Includes
774
+ * support for bash string replacement functions e.g. ${var:=default}, ${var:position} and
775
+ * ${var/substring/replacement}.
776
+ *
777
+ * @schema KustomizationSpecPostBuild#substitute
778
+ */
779
+ substitute?: { [key: string]: string }
780
+
781
+ /**
782
+ * SubstituteFrom holds references to ConfigMaps and Secrets containing the variables and their
783
+ * values to be substituted in the YAML manifests. The ConfigMap and the Secret data keys
784
+ * represent the var names, and they must match the vars declared in the manifests for the
785
+ * substitution to happen.
786
+ *
787
+ * @schema KustomizationSpecPostBuild#substituteFrom
788
+ */
789
+ substituteFrom?: KustomizationSpecPostBuildSubstituteFrom[]
790
+ }
791
+
792
+ /** Converts an object of type 'KustomizationSpecPostBuild' to JSON representation. */
793
+ /* eslint-disable max-len, quote-props */
794
+ export function toJson_KustomizationSpecPostBuild(
795
+ obj: KustomizationSpecPostBuild | undefined
796
+ ): Record<string, any> | undefined {
797
+ if (obj === undefined) {
798
+ return undefined
799
+ }
800
+ const result = {
801
+ substitute:
802
+ obj.substitute === undefined
803
+ ? undefined
804
+ : Object.entries(obj.substitute).reduce(
805
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
806
+ {}
807
+ ),
808
+ substituteFrom: obj.substituteFrom?.map(y =>
809
+ toJson_KustomizationSpecPostBuildSubstituteFrom(y)
810
+ )
811
+ }
812
+ // filter undefined values
813
+ return Object.entries(result).reduce(
814
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
815
+ {}
816
+ )
817
+ }
818
+ /* eslint-enable max-len, quote-props */
819
+
820
+ /**
821
+ * Reference of the source where the kustomization file is.
822
+ *
823
+ * @schema KustomizationSpecSourceRef
824
+ */
825
+ export interface KustomizationSpecSourceRef {
826
+ /**
827
+ * API version of the referent.
828
+ *
829
+ * @schema KustomizationSpecSourceRef#apiVersion
830
+ */
831
+ apiVersion?: string
832
+
833
+ /**
834
+ * Kind of the referent.
835
+ *
836
+ * @schema KustomizationSpecSourceRef#kind
837
+ */
838
+ kind: KustomizationSpecSourceRefKind
839
+
840
+ /**
841
+ * Name of the referent.
842
+ *
843
+ * @schema KustomizationSpecSourceRef#name
844
+ */
845
+ name: string
846
+
847
+ /**
848
+ * Namespace of the referent, defaults to the namespace of the Kubernetes resource object that
849
+ * contains the reference.
850
+ *
851
+ * @schema KustomizationSpecSourceRef#namespace
852
+ */
853
+ namespace?: string
854
+ }
855
+
856
+ /** Converts an object of type 'KustomizationSpecSourceRef' to JSON representation. */
857
+ /* eslint-disable max-len, quote-props */
858
+ export function toJson_KustomizationSpecSourceRef(
859
+ obj: KustomizationSpecSourceRef | undefined
860
+ ): Record<string, any> | undefined {
861
+ if (obj === undefined) {
862
+ return undefined
863
+ }
864
+ const result = {
865
+ apiVersion: obj.apiVersion,
866
+ kind: obj.kind,
867
+ name: obj.name,
868
+ namespace: obj.namespace
869
+ }
870
+ // filter undefined values
871
+ return Object.entries(result).reduce(
872
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
873
+ {}
874
+ )
875
+ }
876
+ /* eslint-enable max-len, quote-props */
877
+
878
+ /**
879
+ * Provider is the name of the decryption engine.
880
+ *
881
+ * @schema KustomizationSpecDecryptionProvider
882
+ */
883
+ export enum KustomizationSpecDecryptionProvider {
884
+ /** Sops */
885
+ SOPS = "sops"
886
+ }
887
+
888
+ /**
889
+ * The secret name containing the private OpenPGP keys used for decryption.
890
+ *
891
+ * @schema KustomizationSpecDecryptionSecretRef
892
+ */
893
+ export interface KustomizationSpecDecryptionSecretRef {
894
+ /**
895
+ * Name of the referent.
896
+ *
897
+ * @schema KustomizationSpecDecryptionSecretRef#name
898
+ */
899
+ name: string
900
+ }
901
+
902
+ /** Converts an object of type 'KustomizationSpecDecryptionSecretRef' to JSON representation. */
903
+ /* eslint-disable max-len, quote-props */
904
+ export function toJson_KustomizationSpecDecryptionSecretRef(
905
+ obj: KustomizationSpecDecryptionSecretRef | undefined
906
+ ): Record<string, any> | undefined {
907
+ if (obj === undefined) {
908
+ return undefined
909
+ }
910
+ const result = {
911
+ name: obj.name
912
+ }
913
+ // filter undefined values
914
+ return Object.entries(result).reduce(
915
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
916
+ {}
917
+ )
918
+ }
919
+ /* eslint-enable max-len, quote-props */
920
+
921
+ /**
922
+ * SecretRef holds the name of a secret that contains a key with the kubeconfig file as the value.
923
+ * If no key is set, the key will default to 'value'. It is recommended that the kubeconfig is
924
+ * self-contained, and the secret is regularly updated if credentials such as a cloud-access-token
925
+ * expire. Cloud specific `cmd-path` auth helpers will not function without adding binaries and
926
+ * credentials to the Pod that is responsible for reconciling Kubernetes resources.
927
+ *
928
+ * @schema KustomizationSpecKubeConfigSecretRef
929
+ */
930
+ export interface KustomizationSpecKubeConfigSecretRef {
931
+ /**
932
+ * Key in the Secret, when not specified an implementation-specific default key is used.
933
+ *
934
+ * @schema KustomizationSpecKubeConfigSecretRef#key
935
+ */
936
+ key?: string
937
+
938
+ /**
939
+ * Name of the Secret.
940
+ *
941
+ * @schema KustomizationSpecKubeConfigSecretRef#name
942
+ */
943
+ name: string
944
+ }
945
+
946
+ /** Converts an object of type 'KustomizationSpecKubeConfigSecretRef' to JSON representation. */
947
+ /* eslint-disable max-len, quote-props */
948
+ export function toJson_KustomizationSpecKubeConfigSecretRef(
949
+ obj: KustomizationSpecKubeConfigSecretRef | undefined
950
+ ): Record<string, any> | undefined {
951
+ if (obj === undefined) {
952
+ return undefined
953
+ }
954
+ const result = {
955
+ key: obj.key,
956
+ name: obj.name
957
+ }
958
+ // filter undefined values
959
+ return Object.entries(result).reduce(
960
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
961
+ {}
962
+ )
963
+ }
964
+ /* eslint-enable max-len, quote-props */
965
+
966
+ /**
967
+ * Target points to the resources that the patch document should be applied to.
968
+ *
969
+ * @schema KustomizationSpecPatchesTarget
970
+ */
971
+ export interface KustomizationSpecPatchesTarget {
972
+ /**
973
+ * AnnotationSelector is a string that follows the label selection expression
974
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
975
+ * the resource annotations.
976
+ *
977
+ * @schema KustomizationSpecPatchesTarget#annotationSelector
978
+ */
979
+ annotationSelector?: string
980
+
981
+ /**
982
+ * Group is the API group to select resources from. Together with Version and Kind it is capable
983
+ * of unambiguously identifying and/or selecting resources.
984
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
985
+ *
986
+ * @schema KustomizationSpecPatchesTarget#group
987
+ */
988
+ group?: string
989
+
990
+ /**
991
+ * Kind of the API Group to select resources from. Together with Group and Version it is capable
992
+ * of unambiguously identifying and/or selecting resources.
993
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
994
+ *
995
+ * @schema KustomizationSpecPatchesTarget#kind
996
+ */
997
+ kind?: string
998
+
999
+ /**
1000
+ * LabelSelector is a string that follows the label selection expression
1001
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
1002
+ * the resource labels.
1003
+ *
1004
+ * @schema KustomizationSpecPatchesTarget#labelSelector
1005
+ */
1006
+ labelSelector?: string
1007
+
1008
+ /**
1009
+ * Name to match resources with.
1010
+ *
1011
+ * @schema KustomizationSpecPatchesTarget#name
1012
+ */
1013
+ name?: string
1014
+
1015
+ /**
1016
+ * Namespace to select resources from.
1017
+ *
1018
+ * @schema KustomizationSpecPatchesTarget#namespace
1019
+ */
1020
+ namespace?: string
1021
+
1022
+ /**
1023
+ * Version of the API Group to select resources from. Together with Group and Kind it is capable
1024
+ * of unambiguously identifying and/or selecting resources.
1025
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
1026
+ *
1027
+ * @schema KustomizationSpecPatchesTarget#version
1028
+ */
1029
+ version?: string
1030
+ }
1031
+
1032
+ /** Converts an object of type 'KustomizationSpecPatchesTarget' to JSON representation. */
1033
+ /* eslint-disable max-len, quote-props */
1034
+ export function toJson_KustomizationSpecPatchesTarget(
1035
+ obj: KustomizationSpecPatchesTarget | undefined
1036
+ ): Record<string, any> | undefined {
1037
+ if (obj === undefined) {
1038
+ return undefined
1039
+ }
1040
+ const result = {
1041
+ annotationSelector: obj.annotationSelector,
1042
+ group: obj.group,
1043
+ kind: obj.kind,
1044
+ labelSelector: obj.labelSelector,
1045
+ name: obj.name,
1046
+ namespace: obj.namespace,
1047
+ version: obj.version
1048
+ }
1049
+ // filter undefined values
1050
+ return Object.entries(result).reduce(
1051
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1052
+ {}
1053
+ )
1054
+ }
1055
+ /* eslint-enable max-len, quote-props */
1056
+
1057
+ /**
1058
+ * SubstituteReference contains a reference to a resource containing the variables name and value.
1059
+ *
1060
+ * @schema KustomizationSpecPostBuildSubstituteFrom
1061
+ */
1062
+ export interface KustomizationSpecPostBuildSubstituteFrom {
1063
+ /**
1064
+ * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
1065
+ *
1066
+ * @schema KustomizationSpecPostBuildSubstituteFrom#kind
1067
+ */
1068
+ kind: KustomizationSpecPostBuildSubstituteFromKind
1069
+
1070
+ /**
1071
+ * Name of the values referent. Should reside in the same namespace as the referring resource.
1072
+ *
1073
+ * @schema KustomizationSpecPostBuildSubstituteFrom#name
1074
+ */
1075
+ name: string
1076
+
1077
+ /**
1078
+ * Optional indicates whether the referenced resource must exist, or whether to tolerate its
1079
+ * absence. If true and the referenced resource is absent, proceed as if the resource was
1080
+ * present but empty, without any variables defined.
1081
+ *
1082
+ * @schema KustomizationSpecPostBuildSubstituteFrom#optional
1083
+ */
1084
+ optional?: boolean
1085
+ }
1086
+
1087
+ /** Converts an object of type 'KustomizationSpecPostBuildSubstituteFrom' to JSON representation. */
1088
+ /* eslint-disable max-len, quote-props */
1089
+ export function toJson_KustomizationSpecPostBuildSubstituteFrom(
1090
+ obj: KustomizationSpecPostBuildSubstituteFrom | undefined
1091
+ ): Record<string, any> | undefined {
1092
+ if (obj === undefined) {
1093
+ return undefined
1094
+ }
1095
+ const result = {
1096
+ kind: obj.kind,
1097
+ name: obj.name,
1098
+ optional: obj.optional
1099
+ }
1100
+ // filter undefined values
1101
+ return Object.entries(result).reduce(
1102
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1103
+ {}
1104
+ )
1105
+ }
1106
+ /* eslint-enable max-len, quote-props */
1107
+
1108
+ /**
1109
+ * Kind of the referent.
1110
+ *
1111
+ * @schema KustomizationSpecSourceRefKind
1112
+ */
1113
+ export enum KustomizationSpecSourceRefKind {
1114
+ /** OCIRepository */
1115
+ OCI_REPOSITORY = "OCIRepository",
1116
+ /** GitRepository */
1117
+ GIT_REPOSITORY = "GitRepository",
1118
+ /** Bucket */
1119
+ BUCKET = "Bucket"
1120
+ }
1121
+
1122
+ /**
1123
+ * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
1124
+ *
1125
+ * @schema KustomizationSpecPostBuildSubstituteFromKind
1126
+ */
1127
+ export enum KustomizationSpecPostBuildSubstituteFromKind {
1128
+ /** Secret */
1129
+ SECRET = "Secret",
1130
+ /** ConfigMap */
1131
+ CONFIG_MAP = "ConfigMap"
1132
+ }
1133
+
1134
+ /**
1135
+ * Kustomization is the Schema for the kustomizations API.
1136
+ *
1137
+ * @schema KustomizationV1Beta1
1138
+ */
1139
+ export class KustomizationV1Beta1 extends ApiObject {
1140
+ /** Returns the apiVersion and kind for "KustomizationV1Beta1" */
1141
+ public static GVK: GroupVersionKind = {
1142
+ apiVersion: "kustomize.toolkit.fluxcd.io/v1beta1",
1143
+ kind: "Kustomization"
1144
+ }
1145
+
1146
+ /**
1147
+ * Renders a Kubernetes manifest for "KustomizationV1Beta1".
1148
+ *
1149
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
1150
+ *
1151
+ * @param props Initialization props
1152
+ */
1153
+ public static manifest(props: KustomizationV1Beta1Props = {}): any {
1154
+ return {
1155
+ ...KustomizationV1Beta1.GVK,
1156
+ ...toJson_KustomizationV1Beta1Props(props)
1157
+ }
1158
+ }
1159
+
1160
+ /**
1161
+ * Defines a "KustomizationV1Beta1" API object
1162
+ *
1163
+ * @param scope The scope in which to define this object
1164
+ * @param id A scope-local name for the object
1165
+ * @param props Initialization props
1166
+ */
1167
+ public constructor(scope: Construct, id: string, props: KustomizationV1Beta1Props = {}) {
1168
+ super(scope, id, {
1169
+ ...KustomizationV1Beta1.GVK,
1170
+ ...props
1171
+ })
1172
+ }
1173
+
1174
+ /** Renders the object to Kubernetes JSON. */
1175
+ public toJson(): any {
1176
+ const resolved = super.toJson()
1177
+
1178
+ return {
1179
+ ...KustomizationV1Beta1.GVK,
1180
+ ...toJson_KustomizationV1Beta1Props(resolved)
1181
+ }
1182
+ }
1183
+ }
1184
+
1185
+ /**
1186
+ * Kustomization is the Schema for the kustomizations API.
1187
+ *
1188
+ * @schema KustomizationV1Beta1
1189
+ */
1190
+ export interface KustomizationV1Beta1Props {
1191
+ /** @schema KustomizationV1Beta1#metadata */
1192
+ metadata?: ApiObjectMetadata
1193
+
1194
+ /**
1195
+ * KustomizationSpec defines the desired state of a kustomization.
1196
+ *
1197
+ * @schema KustomizationV1Beta1#spec
1198
+ */
1199
+ spec?: KustomizationV1Beta1Spec
1200
+ }
1201
+
1202
+ /** Converts an object of type 'KustomizationV1Beta1Props' to JSON representation. */
1203
+ /* eslint-disable max-len, quote-props */
1204
+ export function toJson_KustomizationV1Beta1Props(
1205
+ obj: KustomizationV1Beta1Props | undefined
1206
+ ): Record<string, any> | undefined {
1207
+ if (obj === undefined) {
1208
+ return undefined
1209
+ }
1210
+ const result = {
1211
+ metadata: obj.metadata,
1212
+ spec: toJson_KustomizationV1Beta1Spec(obj.spec)
1213
+ }
1214
+ // filter undefined values
1215
+ return Object.entries(result).reduce(
1216
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1217
+ {}
1218
+ )
1219
+ }
1220
+ /* eslint-enable max-len, quote-props */
1221
+
1222
+ /**
1223
+ * KustomizationSpec defines the desired state of a kustomization.
1224
+ *
1225
+ * @schema KustomizationV1Beta1Spec
1226
+ */
1227
+ export interface KustomizationV1Beta1Spec {
1228
+ /**
1229
+ * Decrypt Kubernetes secrets before applying them on the cluster.
1230
+ *
1231
+ * @schema KustomizationV1Beta1Spec#decryption
1232
+ */
1233
+ decryption?: KustomizationV1Beta1SpecDecryption
1234
+
1235
+ /**
1236
+ * DependsOn may contain a meta.NamespacedObjectReference slice with references to Kustomization
1237
+ * resources that must be ready before this Kustomization can be reconciled.
1238
+ *
1239
+ * @schema KustomizationV1Beta1Spec#dependsOn
1240
+ */
1241
+ dependsOn?: KustomizationV1Beta1SpecDependsOn[]
1242
+
1243
+ /**
1244
+ * Force instructs the controller to recreate resources when patching fails due to an immutable
1245
+ * field change.
1246
+ *
1247
+ * @schema KustomizationV1Beta1Spec#force
1248
+ */
1249
+ force?: boolean
1250
+
1251
+ /**
1252
+ * A list of resources to be included in the health assessment.
1253
+ *
1254
+ * @schema KustomizationV1Beta1Spec#healthChecks
1255
+ */
1256
+ healthChecks?: KustomizationV1Beta1SpecHealthChecks[]
1257
+
1258
+ /**
1259
+ * Images is a list of (image name, new name, new tag or digest) for changing image names, tags
1260
+ * or digests. This can also be achieved with a patch, but this operator is simpler to specify.
1261
+ *
1262
+ * @schema KustomizationV1Beta1Spec#images
1263
+ */
1264
+ images?: KustomizationV1Beta1SpecImages[]
1265
+
1266
+ /**
1267
+ * The interval at which to reconcile the Kustomization.
1268
+ *
1269
+ * @schema KustomizationV1Beta1Spec#interval
1270
+ */
1271
+ interval: string
1272
+
1273
+ /**
1274
+ * The KubeConfig for reconciling the Kustomization on a remote cluster. When specified,
1275
+ * KubeConfig takes precedence over ServiceAccountName.
1276
+ *
1277
+ * @schema KustomizationV1Beta1Spec#kubeConfig
1278
+ */
1279
+ kubeConfig?: KustomizationV1Beta1SpecKubeConfig
1280
+
1281
+ /**
1282
+ * Strategic merge and JSON patches, defined as inline YAML objects, capable of targeting
1283
+ * objects based on kind, label and annotation selectors.
1284
+ *
1285
+ * @schema KustomizationV1Beta1Spec#patches
1286
+ */
1287
+ patches?: KustomizationV1Beta1SpecPatches[]
1288
+
1289
+ /**
1290
+ * JSON 6902 patches, defined as inline YAML objects.
1291
+ *
1292
+ * @schema KustomizationV1Beta1Spec#patchesJson6902
1293
+ */
1294
+ patchesJson6902?: KustomizationV1Beta1SpecPatchesJson6902[]
1295
+
1296
+ /**
1297
+ * Strategic merge patches, defined as inline YAML objects.
1298
+ *
1299
+ * @schema KustomizationV1Beta1Spec#patchesStrategicMerge
1300
+ */
1301
+ patchesStrategicMerge?: any[]
1302
+
1303
+ /**
1304
+ * Path to the directory containing the kustomization.yaml file, or the set of plain YAMLs a
1305
+ * kustomization.yaml should be generated for. Defaults to 'None', which translates to the root
1306
+ * path of the SourceRef.
1307
+ *
1308
+ * @default None', which translates to the root path of the SourceRef.
1309
+ * @schema KustomizationV1Beta1Spec#path
1310
+ */
1311
+ path?: string
1312
+
1313
+ /**
1314
+ * PostBuild describes which actions to perform on the YAML manifest generated by building the
1315
+ * kustomize overlay.
1316
+ *
1317
+ * @schema KustomizationV1Beta1Spec#postBuild
1318
+ */
1319
+ postBuild?: KustomizationV1Beta1SpecPostBuild
1320
+
1321
+ /**
1322
+ * Prune enables garbage collection.
1323
+ *
1324
+ * @schema KustomizationV1Beta1Spec#prune
1325
+ */
1326
+ prune: boolean
1327
+
1328
+ /**
1329
+ * The interval at which to retry a previously failed reconciliation. When not specified, the
1330
+ * controller uses the KustomizationSpec.Interval value to retry failures.
1331
+ *
1332
+ * @schema KustomizationV1Beta1Spec#retryInterval
1333
+ */
1334
+ retryInterval?: string
1335
+
1336
+ /**
1337
+ * The name of the Kubernetes service account to impersonate when reconciling this
1338
+ * Kustomization.
1339
+ *
1340
+ * @schema KustomizationV1Beta1Spec#serviceAccountName
1341
+ */
1342
+ serviceAccountName?: string
1343
+
1344
+ /**
1345
+ * Reference of the source where the kustomization file is.
1346
+ *
1347
+ * @schema KustomizationV1Beta1Spec#sourceRef
1348
+ */
1349
+ sourceRef: KustomizationV1Beta1SpecSourceRef
1350
+
1351
+ /**
1352
+ * This flag tells the controller to suspend subsequent kustomize executions, it does not apply
1353
+ * to already started executions. Defaults to false.
1354
+ *
1355
+ * @default false.
1356
+ * @schema KustomizationV1Beta1Spec#suspend
1357
+ */
1358
+ suspend?: boolean
1359
+
1360
+ /**
1361
+ * TargetNamespace sets or overrides the namespace in the kustomization.yaml file.
1362
+ *
1363
+ * @schema KustomizationV1Beta1Spec#targetNamespace
1364
+ */
1365
+ targetNamespace?: string
1366
+
1367
+ /**
1368
+ * Timeout for validation, apply and health checking operations. Defaults to 'Interval'
1369
+ * duration.
1370
+ *
1371
+ * @default Interval' duration.
1372
+ * @schema KustomizationV1Beta1Spec#timeout
1373
+ */
1374
+ timeout?: string
1375
+
1376
+ /**
1377
+ * Validate the Kubernetes objects before applying them on the cluster. The validation strategy
1378
+ * can be 'client' (local dry-run), 'server' (APIServer dry-run) or 'none'. When 'Force' is
1379
+ * 'true', validation will fallback to 'client' if set to 'server' because server-side
1380
+ * validation is not supported in this scenario.
1381
+ *
1382
+ * @schema KustomizationV1Beta1Spec#validation
1383
+ */
1384
+ validation?: KustomizationV1Beta1SpecValidation
1385
+ }
1386
+
1387
+ /** Converts an object of type 'KustomizationV1Beta1Spec' to JSON representation. */
1388
+ /* eslint-disable max-len, quote-props */
1389
+ export function toJson_KustomizationV1Beta1Spec(
1390
+ obj: KustomizationV1Beta1Spec | undefined
1391
+ ): Record<string, any> | undefined {
1392
+ if (obj === undefined) {
1393
+ return undefined
1394
+ }
1395
+ const result = {
1396
+ decryption: toJson_KustomizationV1Beta1SpecDecryption(obj.decryption),
1397
+ dependsOn: obj.dependsOn?.map(y => toJson_KustomizationV1Beta1SpecDependsOn(y)),
1398
+ force: obj.force,
1399
+ healthChecks: obj.healthChecks?.map(y => toJson_KustomizationV1Beta1SpecHealthChecks(y)),
1400
+ images: obj.images?.map(y => toJson_KustomizationV1Beta1SpecImages(y)),
1401
+ interval: obj.interval,
1402
+ kubeConfig: toJson_KustomizationV1Beta1SpecKubeConfig(obj.kubeConfig),
1403
+ patches: obj.patches?.map(y => toJson_KustomizationV1Beta1SpecPatches(y)),
1404
+ patchesJson6902: obj.patchesJson6902?.map(y =>
1405
+ toJson_KustomizationV1Beta1SpecPatchesJson6902(y)
1406
+ ),
1407
+ patchesStrategicMerge: obj.patchesStrategicMerge?.map(y => y),
1408
+ path: obj.path,
1409
+ postBuild: toJson_KustomizationV1Beta1SpecPostBuild(obj.postBuild),
1410
+ prune: obj.prune,
1411
+ retryInterval: obj.retryInterval,
1412
+ serviceAccountName: obj.serviceAccountName,
1413
+ sourceRef: toJson_KustomizationV1Beta1SpecSourceRef(obj.sourceRef),
1414
+ suspend: obj.suspend,
1415
+ targetNamespace: obj.targetNamespace,
1416
+ timeout: obj.timeout,
1417
+ validation: obj.validation
1418
+ }
1419
+ // filter undefined values
1420
+ return Object.entries(result).reduce(
1421
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1422
+ {}
1423
+ )
1424
+ }
1425
+ /* eslint-enable max-len, quote-props */
1426
+
1427
+ /**
1428
+ * Decrypt Kubernetes secrets before applying them on the cluster.
1429
+ *
1430
+ * @schema KustomizationV1Beta1SpecDecryption
1431
+ */
1432
+ export interface KustomizationV1Beta1SpecDecryption {
1433
+ /**
1434
+ * Provider is the name of the decryption engine.
1435
+ *
1436
+ * @schema KustomizationV1Beta1SpecDecryption#provider
1437
+ */
1438
+ provider: KustomizationV1Beta1SpecDecryptionProvider
1439
+
1440
+ /**
1441
+ * The secret name containing the private OpenPGP keys used for decryption.
1442
+ *
1443
+ * @schema KustomizationV1Beta1SpecDecryption#secretRef
1444
+ */
1445
+ secretRef?: KustomizationV1Beta1SpecDecryptionSecretRef
1446
+ }
1447
+
1448
+ /** Converts an object of type 'KustomizationV1Beta1SpecDecryption' to JSON representation. */
1449
+ /* eslint-disable max-len, quote-props */
1450
+ export function toJson_KustomizationV1Beta1SpecDecryption(
1451
+ obj: KustomizationV1Beta1SpecDecryption | undefined
1452
+ ): Record<string, any> | undefined {
1453
+ if (obj === undefined) {
1454
+ return undefined
1455
+ }
1456
+ const result = {
1457
+ provider: obj.provider,
1458
+ secretRef: toJson_KustomizationV1Beta1SpecDecryptionSecretRef(obj.secretRef)
1459
+ }
1460
+ // filter undefined values
1461
+ return Object.entries(result).reduce(
1462
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1463
+ {}
1464
+ )
1465
+ }
1466
+ /* eslint-enable max-len, quote-props */
1467
+
1468
+ /**
1469
+ * NamespacedObjectReference contains enough information to locate the referenced Kubernetes
1470
+ * resource object in any namespace.
1471
+ *
1472
+ * @schema KustomizationV1Beta1SpecDependsOn
1473
+ */
1474
+ export interface KustomizationV1Beta1SpecDependsOn {
1475
+ /**
1476
+ * Name of the referent.
1477
+ *
1478
+ * @schema KustomizationV1Beta1SpecDependsOn#name
1479
+ */
1480
+ name: string
1481
+
1482
+ /**
1483
+ * Namespace of the referent, when not specified it acts as LocalObjectReference.
1484
+ *
1485
+ * @schema KustomizationV1Beta1SpecDependsOn#namespace
1486
+ */
1487
+ namespace?: string
1488
+ }
1489
+
1490
+ /** Converts an object of type 'KustomizationV1Beta1SpecDependsOn' to JSON representation. */
1491
+ /* eslint-disable max-len, quote-props */
1492
+ export function toJson_KustomizationV1Beta1SpecDependsOn(
1493
+ obj: KustomizationV1Beta1SpecDependsOn | undefined
1494
+ ): Record<string, any> | undefined {
1495
+ if (obj === undefined) {
1496
+ return undefined
1497
+ }
1498
+ const result = {
1499
+ name: obj.name,
1500
+ namespace: obj.namespace
1501
+ }
1502
+ // filter undefined values
1503
+ return Object.entries(result).reduce(
1504
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1505
+ {}
1506
+ )
1507
+ }
1508
+ /* eslint-enable max-len, quote-props */
1509
+
1510
+ /**
1511
+ * NamespacedObjectKindReference contains enough information to locate the typed referenced
1512
+ * Kubernetes resource object in any namespace.
1513
+ *
1514
+ * @schema KustomizationV1Beta1SpecHealthChecks
1515
+ */
1516
+ export interface KustomizationV1Beta1SpecHealthChecks {
1517
+ /**
1518
+ * API version of the referent, if not specified the Kubernetes preferred version will be used.
1519
+ *
1520
+ * @schema KustomizationV1Beta1SpecHealthChecks#apiVersion
1521
+ */
1522
+ apiVersion?: string
1523
+
1524
+ /**
1525
+ * Kind of the referent.
1526
+ *
1527
+ * @schema KustomizationV1Beta1SpecHealthChecks#kind
1528
+ */
1529
+ kind: string
1530
+
1531
+ /**
1532
+ * Name of the referent.
1533
+ *
1534
+ * @schema KustomizationV1Beta1SpecHealthChecks#name
1535
+ */
1536
+ name: string
1537
+
1538
+ /**
1539
+ * Namespace of the referent, when not specified it acts as LocalObjectReference.
1540
+ *
1541
+ * @schema KustomizationV1Beta1SpecHealthChecks#namespace
1542
+ */
1543
+ namespace?: string
1544
+ }
1545
+
1546
+ /** Converts an object of type 'KustomizationV1Beta1SpecHealthChecks' to JSON representation. */
1547
+ /* eslint-disable max-len, quote-props */
1548
+ export function toJson_KustomizationV1Beta1SpecHealthChecks(
1549
+ obj: KustomizationV1Beta1SpecHealthChecks | undefined
1550
+ ): Record<string, any> | undefined {
1551
+ if (obj === undefined) {
1552
+ return undefined
1553
+ }
1554
+ const result = {
1555
+ apiVersion: obj.apiVersion,
1556
+ kind: obj.kind,
1557
+ name: obj.name,
1558
+ namespace: obj.namespace
1559
+ }
1560
+ // filter undefined values
1561
+ return Object.entries(result).reduce(
1562
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1563
+ {}
1564
+ )
1565
+ }
1566
+ /* eslint-enable max-len, quote-props */
1567
+
1568
+ /**
1569
+ * Image contains an image name, a new name, a new tag or digest, which will replace the original
1570
+ * name and tag.
1571
+ *
1572
+ * @schema KustomizationV1Beta1SpecImages
1573
+ */
1574
+ export interface KustomizationV1Beta1SpecImages {
1575
+ /**
1576
+ * Digest is the value used to replace the original image tag. If digest is present NewTag value
1577
+ * is ignored.
1578
+ *
1579
+ * @schema KustomizationV1Beta1SpecImages#digest
1580
+ */
1581
+ digest?: string
1582
+
1583
+ /**
1584
+ * Name is a tag-less image name.
1585
+ *
1586
+ * @schema KustomizationV1Beta1SpecImages#name
1587
+ */
1588
+ name: string
1589
+
1590
+ /**
1591
+ * NewName is the value used to replace the original name.
1592
+ *
1593
+ * @schema KustomizationV1Beta1SpecImages#newName
1594
+ */
1595
+ newName?: string
1596
+
1597
+ /**
1598
+ * NewTag is the value used to replace the original tag.
1599
+ *
1600
+ * @schema KustomizationV1Beta1SpecImages#newTag
1601
+ */
1602
+ newTag?: string
1603
+ }
1604
+
1605
+ /** Converts an object of type 'KustomizationV1Beta1SpecImages' to JSON representation. */
1606
+ /* eslint-disable max-len, quote-props */
1607
+ export function toJson_KustomizationV1Beta1SpecImages(
1608
+ obj: KustomizationV1Beta1SpecImages | undefined
1609
+ ): Record<string, any> | undefined {
1610
+ if (obj === undefined) {
1611
+ return undefined
1612
+ }
1613
+ const result = {
1614
+ digest: obj.digest,
1615
+ name: obj.name,
1616
+ newName: obj.newName,
1617
+ newTag: obj.newTag
1618
+ }
1619
+ // filter undefined values
1620
+ return Object.entries(result).reduce(
1621
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1622
+ {}
1623
+ )
1624
+ }
1625
+ /* eslint-enable max-len, quote-props */
1626
+
1627
+ /**
1628
+ * The KubeConfig for reconciling the Kustomization on a remote cluster. When specified, KubeConfig
1629
+ * takes precedence over ServiceAccountName.
1630
+ *
1631
+ * @schema KustomizationV1Beta1SpecKubeConfig
1632
+ */
1633
+ export interface KustomizationV1Beta1SpecKubeConfig {
1634
+ /**
1635
+ * SecretRef holds the name to a secret that contains a 'value' key with the kubeconfig file as
1636
+ * the value. It must be in the same namespace as the Kustomization. It is recommended that the
1637
+ * kubeconfig is self-contained, and the secret is regularly updated if credentials such as a
1638
+ * cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without
1639
+ * adding binaries and credentials to the Pod that is responsible for reconciling the
1640
+ * Kustomization.
1641
+ *
1642
+ * @schema KustomizationV1Beta1SpecKubeConfig#secretRef
1643
+ */
1644
+ secretRef: KustomizationV1Beta1SpecKubeConfigSecretRef
1645
+ }
1646
+
1647
+ /** Converts an object of type 'KustomizationV1Beta1SpecKubeConfig' to JSON representation. */
1648
+ /* eslint-disable max-len, quote-props */
1649
+ export function toJson_KustomizationV1Beta1SpecKubeConfig(
1650
+ obj: KustomizationV1Beta1SpecKubeConfig | undefined
1651
+ ): Record<string, any> | undefined {
1652
+ if (obj === undefined) {
1653
+ return undefined
1654
+ }
1655
+ const result = {
1656
+ secretRef: toJson_KustomizationV1Beta1SpecKubeConfigSecretRef(obj.secretRef)
1657
+ }
1658
+ // filter undefined values
1659
+ return Object.entries(result).reduce(
1660
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1661
+ {}
1662
+ )
1663
+ }
1664
+ /* eslint-enable max-len, quote-props */
1665
+
1666
+ /**
1667
+ * Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should be
1668
+ * applied to.
1669
+ *
1670
+ * @schema KustomizationV1Beta1SpecPatches
1671
+ */
1672
+ export interface KustomizationV1Beta1SpecPatches {
1673
+ /**
1674
+ * Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with an array of
1675
+ * operation objects.
1676
+ *
1677
+ * @schema KustomizationV1Beta1SpecPatches#patch
1678
+ */
1679
+ patch: string
1680
+
1681
+ /**
1682
+ * Target points to the resources that the patch document should be applied to.
1683
+ *
1684
+ * @schema KustomizationV1Beta1SpecPatches#target
1685
+ */
1686
+ target?: KustomizationV1Beta1SpecPatchesTarget
1687
+ }
1688
+
1689
+ /** Converts an object of type 'KustomizationV1Beta1SpecPatches' to JSON representation. */
1690
+ /* eslint-disable max-len, quote-props */
1691
+ export function toJson_KustomizationV1Beta1SpecPatches(
1692
+ obj: KustomizationV1Beta1SpecPatches | undefined
1693
+ ): Record<string, any> | undefined {
1694
+ if (obj === undefined) {
1695
+ return undefined
1696
+ }
1697
+ const result = {
1698
+ patch: obj.patch,
1699
+ target: toJson_KustomizationV1Beta1SpecPatchesTarget(obj.target)
1700
+ }
1701
+ // filter undefined values
1702
+ return Object.entries(result).reduce(
1703
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1704
+ {}
1705
+ )
1706
+ }
1707
+ /* eslint-enable max-len, quote-props */
1708
+
1709
+ /**
1710
+ * JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to.
1711
+ *
1712
+ * @schema KustomizationV1Beta1SpecPatchesJson6902
1713
+ */
1714
+ export interface KustomizationV1Beta1SpecPatchesJson6902 {
1715
+ /**
1716
+ * Patch contains the JSON6902 patch document with an array of operation objects.
1717
+ *
1718
+ * @schema KustomizationV1Beta1SpecPatchesJson6902#patch
1719
+ */
1720
+ patch: KustomizationV1Beta1SpecPatchesJson6902Patch[]
1721
+
1722
+ /**
1723
+ * Target points to the resources that the patch document should be applied to.
1724
+ *
1725
+ * @schema KustomizationV1Beta1SpecPatchesJson6902#target
1726
+ */
1727
+ target: KustomizationV1Beta1SpecPatchesJson6902Target
1728
+ }
1729
+
1730
+ /** Converts an object of type 'KustomizationV1Beta1SpecPatchesJson6902' to JSON representation. */
1731
+ /* eslint-disable max-len, quote-props */
1732
+ export function toJson_KustomizationV1Beta1SpecPatchesJson6902(
1733
+ obj: KustomizationV1Beta1SpecPatchesJson6902 | undefined
1734
+ ): Record<string, any> | undefined {
1735
+ if (obj === undefined) {
1736
+ return undefined
1737
+ }
1738
+ const result = {
1739
+ patch: obj.patch?.map(y => toJson_KustomizationV1Beta1SpecPatchesJson6902Patch(y)),
1740
+ target: toJson_KustomizationV1Beta1SpecPatchesJson6902Target(obj.target)
1741
+ }
1742
+ // filter undefined values
1743
+ return Object.entries(result).reduce(
1744
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1745
+ {}
1746
+ )
1747
+ }
1748
+ /* eslint-enable max-len, quote-props */
1749
+
1750
+ /**
1751
+ * PostBuild describes which actions to perform on the YAML manifest generated by building the
1752
+ * kustomize overlay.
1753
+ *
1754
+ * @schema KustomizationV1Beta1SpecPostBuild
1755
+ */
1756
+ export interface KustomizationV1Beta1SpecPostBuild {
1757
+ /**
1758
+ * Substitute holds a map of key/value pairs. The variables defined in your YAML manifests that
1759
+ * match any of the keys defined in the map will be substituted with the set value. Includes
1760
+ * support for bash string replacement functions e.g. ${var:=default}, ${var:position} and
1761
+ * ${var/substring/replacement}.
1762
+ *
1763
+ * @schema KustomizationV1Beta1SpecPostBuild#substitute
1764
+ */
1765
+ substitute?: { [key: string]: string }
1766
+
1767
+ /**
1768
+ * SubstituteFrom holds references to ConfigMaps and Secrets containing the variables and their
1769
+ * values to be substituted in the YAML manifests. The ConfigMap and the Secret data keys
1770
+ * represent the var names and they must match the vars declared in the manifests for the
1771
+ * substitution to happen.
1772
+ *
1773
+ * @schema KustomizationV1Beta1SpecPostBuild#substituteFrom
1774
+ */
1775
+ substituteFrom?: KustomizationV1Beta1SpecPostBuildSubstituteFrom[]
1776
+ }
1777
+
1778
+ /** Converts an object of type 'KustomizationV1Beta1SpecPostBuild' to JSON representation. */
1779
+ /* eslint-disable max-len, quote-props */
1780
+ export function toJson_KustomizationV1Beta1SpecPostBuild(
1781
+ obj: KustomizationV1Beta1SpecPostBuild | undefined
1782
+ ): Record<string, any> | undefined {
1783
+ if (obj === undefined) {
1784
+ return undefined
1785
+ }
1786
+ const result = {
1787
+ substitute:
1788
+ obj.substitute === undefined
1789
+ ? undefined
1790
+ : Object.entries(obj.substitute).reduce(
1791
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1792
+ {}
1793
+ ),
1794
+ substituteFrom: obj.substituteFrom?.map(y =>
1795
+ toJson_KustomizationV1Beta1SpecPostBuildSubstituteFrom(y)
1796
+ )
1797
+ }
1798
+ // filter undefined values
1799
+ return Object.entries(result).reduce(
1800
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1801
+ {}
1802
+ )
1803
+ }
1804
+ /* eslint-enable max-len, quote-props */
1805
+
1806
+ /**
1807
+ * Reference of the source where the kustomization file is.
1808
+ *
1809
+ * @schema KustomizationV1Beta1SpecSourceRef
1810
+ */
1811
+ export interface KustomizationV1Beta1SpecSourceRef {
1812
+ /**
1813
+ * API version of the referent
1814
+ *
1815
+ * @schema KustomizationV1Beta1SpecSourceRef#apiVersion
1816
+ */
1817
+ apiVersion?: string
1818
+
1819
+ /**
1820
+ * Kind of the referent
1821
+ *
1822
+ * @schema KustomizationV1Beta1SpecSourceRef#kind
1823
+ */
1824
+ kind: KustomizationV1Beta1SpecSourceRefKind
1825
+
1826
+ /**
1827
+ * Name of the referent
1828
+ *
1829
+ * @schema KustomizationV1Beta1SpecSourceRef#name
1830
+ */
1831
+ name: string
1832
+
1833
+ /**
1834
+ * Namespace of the referent, defaults to the Kustomization namespace
1835
+ *
1836
+ * @schema KustomizationV1Beta1SpecSourceRef#namespace
1837
+ */
1838
+ namespace?: string
1839
+ }
1840
+
1841
+ /** Converts an object of type 'KustomizationV1Beta1SpecSourceRef' to JSON representation. */
1842
+ /* eslint-disable max-len, quote-props */
1843
+ export function toJson_KustomizationV1Beta1SpecSourceRef(
1844
+ obj: KustomizationV1Beta1SpecSourceRef | undefined
1845
+ ): Record<string, any> | undefined {
1846
+ if (obj === undefined) {
1847
+ return undefined
1848
+ }
1849
+ const result = {
1850
+ apiVersion: obj.apiVersion,
1851
+ kind: obj.kind,
1852
+ name: obj.name,
1853
+ namespace: obj.namespace
1854
+ }
1855
+ // filter undefined values
1856
+ return Object.entries(result).reduce(
1857
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1858
+ {}
1859
+ )
1860
+ }
1861
+ /* eslint-enable max-len, quote-props */
1862
+
1863
+ /**
1864
+ * Validate the Kubernetes objects before applying them on the cluster. The validation strategy can
1865
+ * be 'client' (local dry-run), 'server' (APIServer dry-run) or 'none'. When 'Force' is 'true',
1866
+ * validation will fallback to 'client' if set to 'server' because server-side validation is not
1867
+ * supported in this scenario.
1868
+ *
1869
+ * @schema KustomizationV1Beta1SpecValidation
1870
+ */
1871
+ export enum KustomizationV1Beta1SpecValidation {
1872
+ /** None */
1873
+ NONE = "none",
1874
+ /** Client */
1875
+ CLIENT = "client",
1876
+ /** Server */
1877
+ SERVER = "server"
1878
+ }
1879
+
1880
+ /**
1881
+ * Provider is the name of the decryption engine.
1882
+ *
1883
+ * @schema KustomizationV1Beta1SpecDecryptionProvider
1884
+ */
1885
+ export enum KustomizationV1Beta1SpecDecryptionProvider {
1886
+ /** Sops */
1887
+ SOPS = "sops"
1888
+ }
1889
+
1890
+ /**
1891
+ * The secret name containing the private OpenPGP keys used for decryption.
1892
+ *
1893
+ * @schema KustomizationV1Beta1SpecDecryptionSecretRef
1894
+ */
1895
+ export interface KustomizationV1Beta1SpecDecryptionSecretRef {
1896
+ /**
1897
+ * Name of the referent.
1898
+ *
1899
+ * @schema KustomizationV1Beta1SpecDecryptionSecretRef#name
1900
+ */
1901
+ name: string
1902
+ }
1903
+
1904
+ /** Converts an object of type 'KustomizationV1Beta1SpecDecryptionSecretRef' to JSON representation. */
1905
+ /* eslint-disable max-len, quote-props */
1906
+ export function toJson_KustomizationV1Beta1SpecDecryptionSecretRef(
1907
+ obj: KustomizationV1Beta1SpecDecryptionSecretRef | undefined
1908
+ ): Record<string, any> | undefined {
1909
+ if (obj === undefined) {
1910
+ return undefined
1911
+ }
1912
+ const result = {
1913
+ name: obj.name
1914
+ }
1915
+ // filter undefined values
1916
+ return Object.entries(result).reduce(
1917
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1918
+ {}
1919
+ )
1920
+ }
1921
+ /* eslint-enable max-len, quote-props */
1922
+
1923
+ /**
1924
+ * SecretRef holds the name to a secret that contains a 'value' key with the kubeconfig file as the
1925
+ * value. It must be in the same namespace as the Kustomization. It is recommended that the
1926
+ * kubeconfig is self-contained, and the secret is regularly updated if credentials such as a
1927
+ * cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without
1928
+ * adding binaries and credentials to the Pod that is responsible for reconciling the
1929
+ * Kustomization.
1930
+ *
1931
+ * @schema KustomizationV1Beta1SpecKubeConfigSecretRef
1932
+ */
1933
+ export interface KustomizationV1Beta1SpecKubeConfigSecretRef {
1934
+ /**
1935
+ * Name of the referent.
1936
+ *
1937
+ * @schema KustomizationV1Beta1SpecKubeConfigSecretRef#name
1938
+ */
1939
+ name: string
1940
+ }
1941
+
1942
+ /** Converts an object of type 'KustomizationV1Beta1SpecKubeConfigSecretRef' to JSON representation. */
1943
+ /* eslint-disable max-len, quote-props */
1944
+ export function toJson_KustomizationV1Beta1SpecKubeConfigSecretRef(
1945
+ obj: KustomizationV1Beta1SpecKubeConfigSecretRef | undefined
1946
+ ): Record<string, any> | undefined {
1947
+ if (obj === undefined) {
1948
+ return undefined
1949
+ }
1950
+ const result = {
1951
+ name: obj.name
1952
+ }
1953
+ // filter undefined values
1954
+ return Object.entries(result).reduce(
1955
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
1956
+ {}
1957
+ )
1958
+ }
1959
+ /* eslint-enable max-len, quote-props */
1960
+
1961
+ /**
1962
+ * Target points to the resources that the patch document should be applied to.
1963
+ *
1964
+ * @schema KustomizationV1Beta1SpecPatchesTarget
1965
+ */
1966
+ export interface KustomizationV1Beta1SpecPatchesTarget {
1967
+ /**
1968
+ * AnnotationSelector is a string that follows the label selection expression
1969
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
1970
+ * the resource annotations.
1971
+ *
1972
+ * @schema KustomizationV1Beta1SpecPatchesTarget#annotationSelector
1973
+ */
1974
+ annotationSelector?: string
1975
+
1976
+ /**
1977
+ * Group is the API group to select resources from. Together with Version and Kind it is capable
1978
+ * of unambiguously identifying and/or selecting resources.
1979
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
1980
+ *
1981
+ * @schema KustomizationV1Beta1SpecPatchesTarget#group
1982
+ */
1983
+ group?: string
1984
+
1985
+ /**
1986
+ * Kind of the API Group to select resources from. Together with Group and Version it is capable
1987
+ * of unambiguously identifying and/or selecting resources.
1988
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
1989
+ *
1990
+ * @schema KustomizationV1Beta1SpecPatchesTarget#kind
1991
+ */
1992
+ kind?: string
1993
+
1994
+ /**
1995
+ * LabelSelector is a string that follows the label selection expression
1996
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
1997
+ * the resource labels.
1998
+ *
1999
+ * @schema KustomizationV1Beta1SpecPatchesTarget#labelSelector
2000
+ */
2001
+ labelSelector?: string
2002
+
2003
+ /**
2004
+ * Name to match resources with.
2005
+ *
2006
+ * @schema KustomizationV1Beta1SpecPatchesTarget#name
2007
+ */
2008
+ name?: string
2009
+
2010
+ /**
2011
+ * Namespace to select resources from.
2012
+ *
2013
+ * @schema KustomizationV1Beta1SpecPatchesTarget#namespace
2014
+ */
2015
+ namespace?: string
2016
+
2017
+ /**
2018
+ * Version of the API Group to select resources from. Together with Group and Kind it is capable
2019
+ * of unambiguously identifying and/or selecting resources.
2020
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
2021
+ *
2022
+ * @schema KustomizationV1Beta1SpecPatchesTarget#version
2023
+ */
2024
+ version?: string
2025
+ }
2026
+
2027
+ /** Converts an object of type 'KustomizationV1Beta1SpecPatchesTarget' to JSON representation. */
2028
+ /* eslint-disable max-len, quote-props */
2029
+ export function toJson_KustomizationV1Beta1SpecPatchesTarget(
2030
+ obj: KustomizationV1Beta1SpecPatchesTarget | undefined
2031
+ ): Record<string, any> | undefined {
2032
+ if (obj === undefined) {
2033
+ return undefined
2034
+ }
2035
+ const result = {
2036
+ annotationSelector: obj.annotationSelector,
2037
+ group: obj.group,
2038
+ kind: obj.kind,
2039
+ labelSelector: obj.labelSelector,
2040
+ name: obj.name,
2041
+ namespace: obj.namespace,
2042
+ version: obj.version
2043
+ }
2044
+ // filter undefined values
2045
+ return Object.entries(result).reduce(
2046
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2047
+ {}
2048
+ )
2049
+ }
2050
+ /* eslint-enable max-len, quote-props */
2051
+
2052
+ /**
2053
+ * JSON6902 is a JSON6902 operation object. https://datatracker.ietf.org/doc/html/rfc6902#section-4
2054
+ *
2055
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Patch
2056
+ */
2057
+ export interface KustomizationV1Beta1SpecPatchesJson6902Patch {
2058
+ /**
2059
+ * From contains a JSON-pointer value that references a location within the target document
2060
+ * where the operation is performed. The meaning of the value depends on the value of Op, and is
2061
+ * NOT taken into account by all operations.
2062
+ *
2063
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Patch#from
2064
+ */
2065
+ from?: string
2066
+
2067
+ /**
2068
+ * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace",
2069
+ * "move", "copy", or "test". https://datatracker.ietf.org/doc/html/rfc6902#section-4
2070
+ *
2071
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Patch#op
2072
+ */
2073
+ op: KustomizationV1Beta1SpecPatchesJson6902PatchOp
2074
+
2075
+ /**
2076
+ * Path contains the JSON-pointer value that references a location within the target document
2077
+ * where the operation is performed. The meaning of the value depends on the value of Op.
2078
+ *
2079
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Patch#path
2080
+ */
2081
+ path: string
2082
+
2083
+ /**
2084
+ * Value contains a valid JSON structure. The meaning of the value depends on the value of Op,
2085
+ * and is NOT taken into account by all operations.
2086
+ *
2087
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Patch#value
2088
+ */
2089
+ value?: any
2090
+ }
2091
+
2092
+ /** Converts an object of type 'KustomizationV1Beta1SpecPatchesJson6902Patch' to JSON representation. */
2093
+ /* eslint-disable max-len, quote-props */
2094
+ export function toJson_KustomizationV1Beta1SpecPatchesJson6902Patch(
2095
+ obj: KustomizationV1Beta1SpecPatchesJson6902Patch | undefined
2096
+ ): Record<string, any> | undefined {
2097
+ if (obj === undefined) {
2098
+ return undefined
2099
+ }
2100
+ const result = {
2101
+ from: obj.from,
2102
+ op: obj.op,
2103
+ path: obj.path,
2104
+ value: obj.value
2105
+ }
2106
+ // filter undefined values
2107
+ return Object.entries(result).reduce(
2108
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2109
+ {}
2110
+ )
2111
+ }
2112
+ /* eslint-enable max-len, quote-props */
2113
+
2114
+ /**
2115
+ * Target points to the resources that the patch document should be applied to.
2116
+ *
2117
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target
2118
+ */
2119
+ export interface KustomizationV1Beta1SpecPatchesJson6902Target {
2120
+ /**
2121
+ * AnnotationSelector is a string that follows the label selection expression
2122
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
2123
+ * the resource annotations.
2124
+ *
2125
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target#annotationSelector
2126
+ */
2127
+ annotationSelector?: string
2128
+
2129
+ /**
2130
+ * Group is the API group to select resources from. Together with Version and Kind it is capable
2131
+ * of unambiguously identifying and/or selecting resources.
2132
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
2133
+ *
2134
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target#group
2135
+ */
2136
+ group?: string
2137
+
2138
+ /**
2139
+ * Kind of the API Group to select resources from. Together with Group and Version it is capable
2140
+ * of unambiguously identifying and/or selecting resources.
2141
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
2142
+ *
2143
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target#kind
2144
+ */
2145
+ kind?: string
2146
+
2147
+ /**
2148
+ * LabelSelector is a string that follows the label selection expression
2149
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
2150
+ * the resource labels.
2151
+ *
2152
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target#labelSelector
2153
+ */
2154
+ labelSelector?: string
2155
+
2156
+ /**
2157
+ * Name to match resources with.
2158
+ *
2159
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target#name
2160
+ */
2161
+ name?: string
2162
+
2163
+ /**
2164
+ * Namespace to select resources from.
2165
+ *
2166
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target#namespace
2167
+ */
2168
+ namespace?: string
2169
+
2170
+ /**
2171
+ * Version of the API Group to select resources from. Together with Group and Kind it is capable
2172
+ * of unambiguously identifying and/or selecting resources.
2173
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
2174
+ *
2175
+ * @schema KustomizationV1Beta1SpecPatchesJson6902Target#version
2176
+ */
2177
+ version?: string
2178
+ }
2179
+
2180
+ /**
2181
+ * Converts an object of type 'KustomizationV1Beta1SpecPatchesJson6902Target' to JSON
2182
+ * representation.
2183
+ */
2184
+ /* eslint-disable max-len, quote-props */
2185
+ export function toJson_KustomizationV1Beta1SpecPatchesJson6902Target(
2186
+ obj: KustomizationV1Beta1SpecPatchesJson6902Target | undefined
2187
+ ): Record<string, any> | undefined {
2188
+ if (obj === undefined) {
2189
+ return undefined
2190
+ }
2191
+ const result = {
2192
+ annotationSelector: obj.annotationSelector,
2193
+ group: obj.group,
2194
+ kind: obj.kind,
2195
+ labelSelector: obj.labelSelector,
2196
+ name: obj.name,
2197
+ namespace: obj.namespace,
2198
+ version: obj.version
2199
+ }
2200
+ // filter undefined values
2201
+ return Object.entries(result).reduce(
2202
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2203
+ {}
2204
+ )
2205
+ }
2206
+ /* eslint-enable max-len, quote-props */
2207
+
2208
+ /**
2209
+ * SubstituteReference contains a reference to a resource containing the variables name and value.
2210
+ *
2211
+ * @schema KustomizationV1Beta1SpecPostBuildSubstituteFrom
2212
+ */
2213
+ export interface KustomizationV1Beta1SpecPostBuildSubstituteFrom {
2214
+ /**
2215
+ * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
2216
+ *
2217
+ * @schema KustomizationV1Beta1SpecPostBuildSubstituteFrom#kind
2218
+ */
2219
+ kind: KustomizationV1Beta1SpecPostBuildSubstituteFromKind
2220
+
2221
+ /**
2222
+ * Name of the values referent. Should reside in the same namespace as the referring resource.
2223
+ *
2224
+ * @schema KustomizationV1Beta1SpecPostBuildSubstituteFrom#name
2225
+ */
2226
+ name: string
2227
+ }
2228
+
2229
+ /**
2230
+ * Converts an object of type 'KustomizationV1Beta1SpecPostBuildSubstituteFrom' to JSON
2231
+ * representation.
2232
+ */
2233
+ /* eslint-disable max-len, quote-props */
2234
+ export function toJson_KustomizationV1Beta1SpecPostBuildSubstituteFrom(
2235
+ obj: KustomizationV1Beta1SpecPostBuildSubstituteFrom | undefined
2236
+ ): Record<string, any> | undefined {
2237
+ if (obj === undefined) {
2238
+ return undefined
2239
+ }
2240
+ const result = {
2241
+ kind: obj.kind,
2242
+ name: obj.name
2243
+ }
2244
+ // filter undefined values
2245
+ return Object.entries(result).reduce(
2246
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2247
+ {}
2248
+ )
2249
+ }
2250
+ /* eslint-enable max-len, quote-props */
2251
+
2252
+ /**
2253
+ * Kind of the referent
2254
+ *
2255
+ * @schema KustomizationV1Beta1SpecSourceRefKind
2256
+ */
2257
+ export enum KustomizationV1Beta1SpecSourceRefKind {
2258
+ /** GitRepository */
2259
+ GIT_REPOSITORY = "GitRepository",
2260
+ /** Bucket */
2261
+ BUCKET = "Bucket"
2262
+ }
2263
+
2264
+ /**
2265
+ * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace",
2266
+ * "move", "copy", or "test". https://datatracker.ietf.org/doc/html/rfc6902#section-4
2267
+ *
2268
+ * @schema KustomizationV1Beta1SpecPatchesJson6902PatchOp
2269
+ */
2270
+ export enum KustomizationV1Beta1SpecPatchesJson6902PatchOp {
2271
+ /** Test */
2272
+ TEST = "test",
2273
+ /** Remove */
2274
+ REMOVE = "remove",
2275
+ /** Add */
2276
+ ADD = "add",
2277
+ /** Replace */
2278
+ REPLACE = "replace",
2279
+ /** Move */
2280
+ MOVE = "move",
2281
+ /** Copy */
2282
+ COPY = "copy"
2283
+ }
2284
+
2285
+ /**
2286
+ * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
2287
+ *
2288
+ * @schema KustomizationV1Beta1SpecPostBuildSubstituteFromKind
2289
+ */
2290
+ export enum KustomizationV1Beta1SpecPostBuildSubstituteFromKind {
2291
+ /** Secret */
2292
+ SECRET = "Secret",
2293
+ /** ConfigMap */
2294
+ CONFIG_MAP = "ConfigMap"
2295
+ }
2296
+
2297
+ /**
2298
+ * Kustomization is the Schema for the kustomizations API.
2299
+ *
2300
+ * @schema KustomizationV1Beta2
2301
+ */
2302
+ export class KustomizationV1Beta2 extends ApiObject {
2303
+ /** Returns the apiVersion and kind for "KustomizationV1Beta2" */
2304
+ public static GVK: GroupVersionKind = {
2305
+ apiVersion: "kustomize.toolkit.fluxcd.io/v1beta2",
2306
+ kind: "Kustomization"
2307
+ }
2308
+
2309
+ /**
2310
+ * Renders a Kubernetes manifest for "KustomizationV1Beta2".
2311
+ *
2312
+ * This can be used to inline resource manifests inside other objects (e.g. as templates).
2313
+ *
2314
+ * @param props Initialization props
2315
+ */
2316
+ public static manifest(props: KustomizationV1Beta2Props = {}): any {
2317
+ return {
2318
+ ...KustomizationV1Beta2.GVK,
2319
+ ...toJson_KustomizationV1Beta2Props(props)
2320
+ }
2321
+ }
2322
+
2323
+ /**
2324
+ * Defines a "KustomizationV1Beta2" API object
2325
+ *
2326
+ * @param scope The scope in which to define this object
2327
+ * @param id A scope-local name for the object
2328
+ * @param props Initialization props
2329
+ */
2330
+ public constructor(scope: Construct, id: string, props: KustomizationV1Beta2Props = {}) {
2331
+ super(scope, id, {
2332
+ ...KustomizationV1Beta2.GVK,
2333
+ ...props
2334
+ })
2335
+ }
2336
+
2337
+ /** Renders the object to Kubernetes JSON. */
2338
+ public toJson(): any {
2339
+ const resolved = super.toJson()
2340
+
2341
+ return {
2342
+ ...KustomizationV1Beta2.GVK,
2343
+ ...toJson_KustomizationV1Beta2Props(resolved)
2344
+ }
2345
+ }
2346
+ }
2347
+
2348
+ /**
2349
+ * Kustomization is the Schema for the kustomizations API.
2350
+ *
2351
+ * @schema KustomizationV1Beta2
2352
+ */
2353
+ export interface KustomizationV1Beta2Props {
2354
+ /** @schema KustomizationV1Beta2#metadata */
2355
+ metadata?: ApiObjectMetadata
2356
+
2357
+ /**
2358
+ * KustomizationSpec defines the configuration to calculate the desired state from a Source
2359
+ * using Kustomize.
2360
+ *
2361
+ * @schema KustomizationV1Beta2#spec
2362
+ */
2363
+ spec?: KustomizationV1Beta2Spec
2364
+ }
2365
+
2366
+ /** Converts an object of type 'KustomizationV1Beta2Props' to JSON representation. */
2367
+ /* eslint-disable max-len, quote-props */
2368
+ export function toJson_KustomizationV1Beta2Props(
2369
+ obj: KustomizationV1Beta2Props | undefined
2370
+ ): Record<string, any> | undefined {
2371
+ if (obj === undefined) {
2372
+ return undefined
2373
+ }
2374
+ const result = {
2375
+ metadata: obj.metadata,
2376
+ spec: toJson_KustomizationV1Beta2Spec(obj.spec)
2377
+ }
2378
+ // filter undefined values
2379
+ return Object.entries(result).reduce(
2380
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2381
+ {}
2382
+ )
2383
+ }
2384
+ /* eslint-enable max-len, quote-props */
2385
+
2386
+ /**
2387
+ * KustomizationSpec defines the configuration to calculate the desired state from a Source using
2388
+ * Kustomize.
2389
+ *
2390
+ * @schema KustomizationV1Beta2Spec
2391
+ */
2392
+ export interface KustomizationV1Beta2Spec {
2393
+ /**
2394
+ * CommonMetadata specifies the common labels and annotations that are applied to all resources.
2395
+ * Any existing label or annotation will be overridden if its key matches a common one.
2396
+ *
2397
+ * @schema KustomizationV1Beta2Spec#commonMetadata
2398
+ */
2399
+ commonMetadata?: KustomizationV1Beta2SpecCommonMetadata
2400
+
2401
+ /**
2402
+ * Components specifies relative paths to specifications of other Components.
2403
+ *
2404
+ * @schema KustomizationV1Beta2Spec#components
2405
+ */
2406
+ components?: string[]
2407
+
2408
+ /**
2409
+ * Decrypt Kubernetes secrets before applying them on the cluster.
2410
+ *
2411
+ * @schema KustomizationV1Beta2Spec#decryption
2412
+ */
2413
+ decryption?: KustomizationV1Beta2SpecDecryption
2414
+
2415
+ /**
2416
+ * DependsOn may contain a meta.NamespacedObjectReference slice with references to Kustomization
2417
+ * resources that must be ready before this Kustomization can be reconciled.
2418
+ *
2419
+ * @schema KustomizationV1Beta2Spec#dependsOn
2420
+ */
2421
+ dependsOn?: KustomizationV1Beta2SpecDependsOn[]
2422
+
2423
+ /**
2424
+ * Force instructs the controller to recreate resources when patching fails due to an immutable
2425
+ * field change.
2426
+ *
2427
+ * @schema KustomizationV1Beta2Spec#force
2428
+ */
2429
+ force?: boolean
2430
+
2431
+ /**
2432
+ * A list of resources to be included in the health assessment.
2433
+ *
2434
+ * @schema KustomizationV1Beta2Spec#healthChecks
2435
+ */
2436
+ healthChecks?: KustomizationV1Beta2SpecHealthChecks[]
2437
+
2438
+ /**
2439
+ * Images is a list of (image name, new name, new tag or digest) for changing image names, tags
2440
+ * or digests. This can also be achieved with a patch, but this operator is simpler to specify.
2441
+ *
2442
+ * @schema KustomizationV1Beta2Spec#images
2443
+ */
2444
+ images?: KustomizationV1Beta2SpecImages[]
2445
+
2446
+ /**
2447
+ * The interval at which to reconcile the Kustomization.
2448
+ *
2449
+ * @schema KustomizationV1Beta2Spec#interval
2450
+ */
2451
+ interval: string
2452
+
2453
+ /**
2454
+ * The KubeConfig for reconciling the Kustomization on a remote cluster. When used in
2455
+ * combination with KustomizationSpec.ServiceAccountName, forces the controller to act on behalf
2456
+ * of that Service Account at the target cluster. If the --default-service-account flag is set,
2457
+ * its value will be used as a controller level fallback for when
2458
+ * KustomizationSpec.ServiceAccountName is empty.
2459
+ *
2460
+ * @schema KustomizationV1Beta2Spec#kubeConfig
2461
+ */
2462
+ kubeConfig?: KustomizationV1Beta2SpecKubeConfig
2463
+
2464
+ /**
2465
+ * Strategic merge and JSON patches, defined as inline YAML objects, capable of targeting
2466
+ * objects based on kind, label and annotation selectors.
2467
+ *
2468
+ * @schema KustomizationV1Beta2Spec#patches
2469
+ */
2470
+ patches?: KustomizationV1Beta2SpecPatches[]
2471
+
2472
+ /**
2473
+ * JSON 6902 patches, defined as inline YAML objects. Deprecated: Use Patches instead.
2474
+ *
2475
+ * @schema KustomizationV1Beta2Spec#patchesJson6902
2476
+ */
2477
+ patchesJson6902?: KustomizationV1Beta2SpecPatchesJson6902[]
2478
+
2479
+ /**
2480
+ * Strategic merge patches, defined as inline YAML objects. Deprecated: Use Patches instead.
2481
+ *
2482
+ * @schema KustomizationV1Beta2Spec#patchesStrategicMerge
2483
+ */
2484
+ patchesStrategicMerge?: any[]
2485
+
2486
+ /**
2487
+ * Path to the directory containing the kustomization.yaml file, or the set of plain YAMLs a
2488
+ * kustomization.yaml should be generated for. Defaults to 'None', which translates to the root
2489
+ * path of the SourceRef.
2490
+ *
2491
+ * @default None', which translates to the root path of the SourceRef.
2492
+ * @schema KustomizationV1Beta2Spec#path
2493
+ */
2494
+ path?: string
2495
+
2496
+ /**
2497
+ * PostBuild describes which actions to perform on the YAML manifest generated by building the
2498
+ * kustomize overlay.
2499
+ *
2500
+ * @schema KustomizationV1Beta2Spec#postBuild
2501
+ */
2502
+ postBuild?: KustomizationV1Beta2SpecPostBuild
2503
+
2504
+ /**
2505
+ * Prune enables garbage collection.
2506
+ *
2507
+ * @schema KustomizationV1Beta2Spec#prune
2508
+ */
2509
+ prune: boolean
2510
+
2511
+ /**
2512
+ * The interval at which to retry a previously failed reconciliation. When not specified, the
2513
+ * controller uses the KustomizationSpec.Interval value to retry failures.
2514
+ *
2515
+ * @schema KustomizationV1Beta2Spec#retryInterval
2516
+ */
2517
+ retryInterval?: string
2518
+
2519
+ /**
2520
+ * The name of the Kubernetes service account to impersonate when reconciling this
2521
+ * Kustomization.
2522
+ *
2523
+ * @schema KustomizationV1Beta2Spec#serviceAccountName
2524
+ */
2525
+ serviceAccountName?: string
2526
+
2527
+ /**
2528
+ * Reference of the source where the kustomization file is.
2529
+ *
2530
+ * @schema KustomizationV1Beta2Spec#sourceRef
2531
+ */
2532
+ sourceRef: KustomizationV1Beta2SpecSourceRef
2533
+
2534
+ /**
2535
+ * This flag tells the controller to suspend subsequent kustomize executions, it does not apply
2536
+ * to already started executions. Defaults to false.
2537
+ *
2538
+ * @default false.
2539
+ * @schema KustomizationV1Beta2Spec#suspend
2540
+ */
2541
+ suspend?: boolean
2542
+
2543
+ /**
2544
+ * TargetNamespace sets or overrides the namespace in the kustomization.yaml file.
2545
+ *
2546
+ * @schema KustomizationV1Beta2Spec#targetNamespace
2547
+ */
2548
+ targetNamespace?: string
2549
+
2550
+ /**
2551
+ * Timeout for validation, apply and health checking operations. Defaults to 'Interval'
2552
+ * duration.
2553
+ *
2554
+ * @default Interval' duration.
2555
+ * @schema KustomizationV1Beta2Spec#timeout
2556
+ */
2557
+ timeout?: string
2558
+
2559
+ /**
2560
+ * Deprecated: Not used in v1beta2.
2561
+ *
2562
+ * @schema KustomizationV1Beta2Spec#validation
2563
+ */
2564
+ validation?: KustomizationV1Beta2SpecValidation
2565
+
2566
+ /**
2567
+ * Wait instructs the controller to check the health of all the reconciled resources. When
2568
+ * enabled, the HealthChecks are ignored. Defaults to false.
2569
+ *
2570
+ * @default false.
2571
+ * @schema KustomizationV1Beta2Spec#wait
2572
+ */
2573
+ wait?: boolean
2574
+ }
2575
+
2576
+ /** Converts an object of type 'KustomizationV1Beta2Spec' to JSON representation. */
2577
+ /* eslint-disable max-len, quote-props */
2578
+ export function toJson_KustomizationV1Beta2Spec(
2579
+ obj: KustomizationV1Beta2Spec | undefined
2580
+ ): Record<string, any> | undefined {
2581
+ if (obj === undefined) {
2582
+ return undefined
2583
+ }
2584
+ const result = {
2585
+ commonMetadata: toJson_KustomizationV1Beta2SpecCommonMetadata(obj.commonMetadata),
2586
+ components: obj.components?.map(y => y),
2587
+ decryption: toJson_KustomizationV1Beta2SpecDecryption(obj.decryption),
2588
+ dependsOn: obj.dependsOn?.map(y => toJson_KustomizationV1Beta2SpecDependsOn(y)),
2589
+ force: obj.force,
2590
+ healthChecks: obj.healthChecks?.map(y => toJson_KustomizationV1Beta2SpecHealthChecks(y)),
2591
+ images: obj.images?.map(y => toJson_KustomizationV1Beta2SpecImages(y)),
2592
+ interval: obj.interval,
2593
+ kubeConfig: toJson_KustomizationV1Beta2SpecKubeConfig(obj.kubeConfig),
2594
+ patches: obj.patches?.map(y => toJson_KustomizationV1Beta2SpecPatches(y)),
2595
+ patchesJson6902: obj.patchesJson6902?.map(y =>
2596
+ toJson_KustomizationV1Beta2SpecPatchesJson6902(y)
2597
+ ),
2598
+ patchesStrategicMerge: obj.patchesStrategicMerge?.map(y => y),
2599
+ path: obj.path,
2600
+ postBuild: toJson_KustomizationV1Beta2SpecPostBuild(obj.postBuild),
2601
+ prune: obj.prune,
2602
+ retryInterval: obj.retryInterval,
2603
+ serviceAccountName: obj.serviceAccountName,
2604
+ sourceRef: toJson_KustomizationV1Beta2SpecSourceRef(obj.sourceRef),
2605
+ suspend: obj.suspend,
2606
+ targetNamespace: obj.targetNamespace,
2607
+ timeout: obj.timeout,
2608
+ validation: obj.validation,
2609
+ wait: obj.wait
2610
+ }
2611
+ // filter undefined values
2612
+ return Object.entries(result).reduce(
2613
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2614
+ {}
2615
+ )
2616
+ }
2617
+ /* eslint-enable max-len, quote-props */
2618
+
2619
+ /**
2620
+ * CommonMetadata specifies the common labels and annotations that are applied to all resources. Any
2621
+ * existing label or annotation will be overridden if its key matches a common one.
2622
+ *
2623
+ * @schema KustomizationV1Beta2SpecCommonMetadata
2624
+ */
2625
+ export interface KustomizationV1Beta2SpecCommonMetadata {
2626
+ /**
2627
+ * Annotations to be added to the object's metadata.
2628
+ *
2629
+ * @schema KustomizationV1Beta2SpecCommonMetadata#annotations
2630
+ */
2631
+ annotations?: { [key: string]: string }
2632
+
2633
+ /**
2634
+ * Labels to be added to the object's metadata.
2635
+ *
2636
+ * @schema KustomizationV1Beta2SpecCommonMetadata#labels
2637
+ */
2638
+ labels?: { [key: string]: string }
2639
+ }
2640
+
2641
+ /** Converts an object of type 'KustomizationV1Beta2SpecCommonMetadata' to JSON representation. */
2642
+ /* eslint-disable max-len, quote-props */
2643
+ export function toJson_KustomizationV1Beta2SpecCommonMetadata(
2644
+ obj: KustomizationV1Beta2SpecCommonMetadata | undefined
2645
+ ): Record<string, any> | undefined {
2646
+ if (obj === undefined) {
2647
+ return undefined
2648
+ }
2649
+ const result = {
2650
+ annotations:
2651
+ obj.annotations === undefined
2652
+ ? undefined
2653
+ : Object.entries(obj.annotations).reduce(
2654
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2655
+ {}
2656
+ ),
2657
+ labels:
2658
+ obj.labels === undefined
2659
+ ? undefined
2660
+ : Object.entries(obj.labels).reduce(
2661
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2662
+ {}
2663
+ )
2664
+ }
2665
+ // filter undefined values
2666
+ return Object.entries(result).reduce(
2667
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2668
+ {}
2669
+ )
2670
+ }
2671
+ /* eslint-enable max-len, quote-props */
2672
+
2673
+ /**
2674
+ * Decrypt Kubernetes secrets before applying them on the cluster.
2675
+ *
2676
+ * @schema KustomizationV1Beta2SpecDecryption
2677
+ */
2678
+ export interface KustomizationV1Beta2SpecDecryption {
2679
+ /**
2680
+ * Provider is the name of the decryption engine.
2681
+ *
2682
+ * @schema KustomizationV1Beta2SpecDecryption#provider
2683
+ */
2684
+ provider: KustomizationV1Beta2SpecDecryptionProvider
2685
+
2686
+ /**
2687
+ * The secret name containing the private OpenPGP keys used for decryption.
2688
+ *
2689
+ * @schema KustomizationV1Beta2SpecDecryption#secretRef
2690
+ */
2691
+ secretRef?: KustomizationV1Beta2SpecDecryptionSecretRef
2692
+ }
2693
+
2694
+ /** Converts an object of type 'KustomizationV1Beta2SpecDecryption' to JSON representation. */
2695
+ /* eslint-disable max-len, quote-props */
2696
+ export function toJson_KustomizationV1Beta2SpecDecryption(
2697
+ obj: KustomizationV1Beta2SpecDecryption | undefined
2698
+ ): Record<string, any> | undefined {
2699
+ if (obj === undefined) {
2700
+ return undefined
2701
+ }
2702
+ const result = {
2703
+ provider: obj.provider,
2704
+ secretRef: toJson_KustomizationV1Beta2SpecDecryptionSecretRef(obj.secretRef)
2705
+ }
2706
+ // filter undefined values
2707
+ return Object.entries(result).reduce(
2708
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2709
+ {}
2710
+ )
2711
+ }
2712
+ /* eslint-enable max-len, quote-props */
2713
+
2714
+ /**
2715
+ * NamespacedObjectReference contains enough information to locate the referenced Kubernetes
2716
+ * resource object in any namespace.
2717
+ *
2718
+ * @schema KustomizationV1Beta2SpecDependsOn
2719
+ */
2720
+ export interface KustomizationV1Beta2SpecDependsOn {
2721
+ /**
2722
+ * Name of the referent.
2723
+ *
2724
+ * @schema KustomizationV1Beta2SpecDependsOn#name
2725
+ */
2726
+ name: string
2727
+
2728
+ /**
2729
+ * Namespace of the referent, when not specified it acts as LocalObjectReference.
2730
+ *
2731
+ * @schema KustomizationV1Beta2SpecDependsOn#namespace
2732
+ */
2733
+ namespace?: string
2734
+ }
2735
+
2736
+ /** Converts an object of type 'KustomizationV1Beta2SpecDependsOn' to JSON representation. */
2737
+ /* eslint-disable max-len, quote-props */
2738
+ export function toJson_KustomizationV1Beta2SpecDependsOn(
2739
+ obj: KustomizationV1Beta2SpecDependsOn | undefined
2740
+ ): Record<string, any> | undefined {
2741
+ if (obj === undefined) {
2742
+ return undefined
2743
+ }
2744
+ const result = {
2745
+ name: obj.name,
2746
+ namespace: obj.namespace
2747
+ }
2748
+ // filter undefined values
2749
+ return Object.entries(result).reduce(
2750
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2751
+ {}
2752
+ )
2753
+ }
2754
+ /* eslint-enable max-len, quote-props */
2755
+
2756
+ /**
2757
+ * NamespacedObjectKindReference contains enough information to locate the typed referenced
2758
+ * Kubernetes resource object in any namespace.
2759
+ *
2760
+ * @schema KustomizationV1Beta2SpecHealthChecks
2761
+ */
2762
+ export interface KustomizationV1Beta2SpecHealthChecks {
2763
+ /**
2764
+ * API version of the referent, if not specified the Kubernetes preferred version will be used.
2765
+ *
2766
+ * @schema KustomizationV1Beta2SpecHealthChecks#apiVersion
2767
+ */
2768
+ apiVersion?: string
2769
+
2770
+ /**
2771
+ * Kind of the referent.
2772
+ *
2773
+ * @schema KustomizationV1Beta2SpecHealthChecks#kind
2774
+ */
2775
+ kind: string
2776
+
2777
+ /**
2778
+ * Name of the referent.
2779
+ *
2780
+ * @schema KustomizationV1Beta2SpecHealthChecks#name
2781
+ */
2782
+ name: string
2783
+
2784
+ /**
2785
+ * Namespace of the referent, when not specified it acts as LocalObjectReference.
2786
+ *
2787
+ * @schema KustomizationV1Beta2SpecHealthChecks#namespace
2788
+ */
2789
+ namespace?: string
2790
+ }
2791
+
2792
+ /** Converts an object of type 'KustomizationV1Beta2SpecHealthChecks' to JSON representation. */
2793
+ /* eslint-disable max-len, quote-props */
2794
+ export function toJson_KustomizationV1Beta2SpecHealthChecks(
2795
+ obj: KustomizationV1Beta2SpecHealthChecks | undefined
2796
+ ): Record<string, any> | undefined {
2797
+ if (obj === undefined) {
2798
+ return undefined
2799
+ }
2800
+ const result = {
2801
+ apiVersion: obj.apiVersion,
2802
+ kind: obj.kind,
2803
+ name: obj.name,
2804
+ namespace: obj.namespace
2805
+ }
2806
+ // filter undefined values
2807
+ return Object.entries(result).reduce(
2808
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2809
+ {}
2810
+ )
2811
+ }
2812
+ /* eslint-enable max-len, quote-props */
2813
+
2814
+ /**
2815
+ * Image contains an image name, a new name, a new tag or digest, which will replace the original
2816
+ * name and tag.
2817
+ *
2818
+ * @schema KustomizationV1Beta2SpecImages
2819
+ */
2820
+ export interface KustomizationV1Beta2SpecImages {
2821
+ /**
2822
+ * Digest is the value used to replace the original image tag. If digest is present NewTag value
2823
+ * is ignored.
2824
+ *
2825
+ * @schema KustomizationV1Beta2SpecImages#digest
2826
+ */
2827
+ digest?: string
2828
+
2829
+ /**
2830
+ * Name is a tag-less image name.
2831
+ *
2832
+ * @schema KustomizationV1Beta2SpecImages#name
2833
+ */
2834
+ name: string
2835
+
2836
+ /**
2837
+ * NewName is the value used to replace the original name.
2838
+ *
2839
+ * @schema KustomizationV1Beta2SpecImages#newName
2840
+ */
2841
+ newName?: string
2842
+
2843
+ /**
2844
+ * NewTag is the value used to replace the original tag.
2845
+ *
2846
+ * @schema KustomizationV1Beta2SpecImages#newTag
2847
+ */
2848
+ newTag?: string
2849
+ }
2850
+
2851
+ /** Converts an object of type 'KustomizationV1Beta2SpecImages' to JSON representation. */
2852
+ /* eslint-disable max-len, quote-props */
2853
+ export function toJson_KustomizationV1Beta2SpecImages(
2854
+ obj: KustomizationV1Beta2SpecImages | undefined
2855
+ ): Record<string, any> | undefined {
2856
+ if (obj === undefined) {
2857
+ return undefined
2858
+ }
2859
+ const result = {
2860
+ digest: obj.digest,
2861
+ name: obj.name,
2862
+ newName: obj.newName,
2863
+ newTag: obj.newTag
2864
+ }
2865
+ // filter undefined values
2866
+ return Object.entries(result).reduce(
2867
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2868
+ {}
2869
+ )
2870
+ }
2871
+ /* eslint-enable max-len, quote-props */
2872
+
2873
+ /**
2874
+ * The KubeConfig for reconciling the Kustomization on a remote cluster. When used in combination
2875
+ * with KustomizationSpec.ServiceAccountName, forces the controller to act on behalf of that Service
2876
+ * Account at the target cluster. If the --default-service-account flag is set, its value will be
2877
+ * used as a controller level fallback for when KustomizationSpec.ServiceAccountName is empty.
2878
+ *
2879
+ * @schema KustomizationV1Beta2SpecKubeConfig
2880
+ */
2881
+ export interface KustomizationV1Beta2SpecKubeConfig {
2882
+ /**
2883
+ * SecretRef holds the name of a secret that contains a key with the kubeconfig file as the
2884
+ * value. If no key is set, the key will default to 'value'. It is recommended that the
2885
+ * kubeconfig is self-contained, and the secret is regularly updated if credentials such as a
2886
+ * cloud-access-token expire. Cloud specific `cmd-path` auth helpers will not function without
2887
+ * adding binaries and credentials to the Pod that is responsible for reconciling Kubernetes
2888
+ * resources.
2889
+ *
2890
+ * @schema KustomizationV1Beta2SpecKubeConfig#secretRef
2891
+ */
2892
+ secretRef: KustomizationV1Beta2SpecKubeConfigSecretRef
2893
+ }
2894
+
2895
+ /** Converts an object of type 'KustomizationV1Beta2SpecKubeConfig' to JSON representation. */
2896
+ /* eslint-disable max-len, quote-props */
2897
+ export function toJson_KustomizationV1Beta2SpecKubeConfig(
2898
+ obj: KustomizationV1Beta2SpecKubeConfig | undefined
2899
+ ): Record<string, any> | undefined {
2900
+ if (obj === undefined) {
2901
+ return undefined
2902
+ }
2903
+ const result = {
2904
+ secretRef: toJson_KustomizationV1Beta2SpecKubeConfigSecretRef(obj.secretRef)
2905
+ }
2906
+ // filter undefined values
2907
+ return Object.entries(result).reduce(
2908
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2909
+ {}
2910
+ )
2911
+ }
2912
+ /* eslint-enable max-len, quote-props */
2913
+
2914
+ /**
2915
+ * Patch contains an inline StrategicMerge or JSON6902 patch, and the target the patch should be
2916
+ * applied to.
2917
+ *
2918
+ * @schema KustomizationV1Beta2SpecPatches
2919
+ */
2920
+ export interface KustomizationV1Beta2SpecPatches {
2921
+ /**
2922
+ * Patch contains an inline StrategicMerge patch or an inline JSON6902 patch with an array of
2923
+ * operation objects.
2924
+ *
2925
+ * @schema KustomizationV1Beta2SpecPatches#patch
2926
+ */
2927
+ patch: string
2928
+
2929
+ /**
2930
+ * Target points to the resources that the patch document should be applied to.
2931
+ *
2932
+ * @schema KustomizationV1Beta2SpecPatches#target
2933
+ */
2934
+ target?: KustomizationV1Beta2SpecPatchesTarget
2935
+ }
2936
+
2937
+ /** Converts an object of type 'KustomizationV1Beta2SpecPatches' to JSON representation. */
2938
+ /* eslint-disable max-len, quote-props */
2939
+ export function toJson_KustomizationV1Beta2SpecPatches(
2940
+ obj: KustomizationV1Beta2SpecPatches | undefined
2941
+ ): Record<string, any> | undefined {
2942
+ if (obj === undefined) {
2943
+ return undefined
2944
+ }
2945
+ const result = {
2946
+ patch: obj.patch,
2947
+ target: toJson_KustomizationV1Beta2SpecPatchesTarget(obj.target)
2948
+ }
2949
+ // filter undefined values
2950
+ return Object.entries(result).reduce(
2951
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2952
+ {}
2953
+ )
2954
+ }
2955
+ /* eslint-enable max-len, quote-props */
2956
+
2957
+ /**
2958
+ * JSON6902Patch contains a JSON6902 patch and the target the patch should be applied to.
2959
+ *
2960
+ * @schema KustomizationV1Beta2SpecPatchesJson6902
2961
+ */
2962
+ export interface KustomizationV1Beta2SpecPatchesJson6902 {
2963
+ /**
2964
+ * Patch contains the JSON6902 patch document with an array of operation objects.
2965
+ *
2966
+ * @schema KustomizationV1Beta2SpecPatchesJson6902#patch
2967
+ */
2968
+ patch: KustomizationV1Beta2SpecPatchesJson6902Patch[]
2969
+
2970
+ /**
2971
+ * Target points to the resources that the patch document should be applied to.
2972
+ *
2973
+ * @schema KustomizationV1Beta2SpecPatchesJson6902#target
2974
+ */
2975
+ target: KustomizationV1Beta2SpecPatchesJson6902Target
2976
+ }
2977
+
2978
+ /** Converts an object of type 'KustomizationV1Beta2SpecPatchesJson6902' to JSON representation. */
2979
+ /* eslint-disable max-len, quote-props */
2980
+ export function toJson_KustomizationV1Beta2SpecPatchesJson6902(
2981
+ obj: KustomizationV1Beta2SpecPatchesJson6902 | undefined
2982
+ ): Record<string, any> | undefined {
2983
+ if (obj === undefined) {
2984
+ return undefined
2985
+ }
2986
+ const result = {
2987
+ patch: obj.patch?.map(y => toJson_KustomizationV1Beta2SpecPatchesJson6902Patch(y)),
2988
+ target: toJson_KustomizationV1Beta2SpecPatchesJson6902Target(obj.target)
2989
+ }
2990
+ // filter undefined values
2991
+ return Object.entries(result).reduce(
2992
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
2993
+ {}
2994
+ )
2995
+ }
2996
+ /* eslint-enable max-len, quote-props */
2997
+
2998
+ /**
2999
+ * PostBuild describes which actions to perform on the YAML manifest generated by building the
3000
+ * kustomize overlay.
3001
+ *
3002
+ * @schema KustomizationV1Beta2SpecPostBuild
3003
+ */
3004
+ export interface KustomizationV1Beta2SpecPostBuild {
3005
+ /**
3006
+ * Substitute holds a map of key/value pairs. The variables defined in your YAML manifests that
3007
+ * match any of the keys defined in the map will be substituted with the set value. Includes
3008
+ * support for bash string replacement functions e.g. ${var:=default}, ${var:position} and
3009
+ * ${var/substring/replacement}.
3010
+ *
3011
+ * @schema KustomizationV1Beta2SpecPostBuild#substitute
3012
+ */
3013
+ substitute?: { [key: string]: string }
3014
+
3015
+ /**
3016
+ * SubstituteFrom holds references to ConfigMaps and Secrets containing the variables and their
3017
+ * values to be substituted in the YAML manifests. The ConfigMap and the Secret data keys
3018
+ * represent the var names and they must match the vars declared in the manifests for the
3019
+ * substitution to happen.
3020
+ *
3021
+ * @schema KustomizationV1Beta2SpecPostBuild#substituteFrom
3022
+ */
3023
+ substituteFrom?: KustomizationV1Beta2SpecPostBuildSubstituteFrom[]
3024
+ }
3025
+
3026
+ /** Converts an object of type 'KustomizationV1Beta2SpecPostBuild' to JSON representation. */
3027
+ /* eslint-disable max-len, quote-props */
3028
+ export function toJson_KustomizationV1Beta2SpecPostBuild(
3029
+ obj: KustomizationV1Beta2SpecPostBuild | undefined
3030
+ ): Record<string, any> | undefined {
3031
+ if (obj === undefined) {
3032
+ return undefined
3033
+ }
3034
+ const result = {
3035
+ substitute:
3036
+ obj.substitute === undefined
3037
+ ? undefined
3038
+ : Object.entries(obj.substitute).reduce(
3039
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3040
+ {}
3041
+ ),
3042
+ substituteFrom: obj.substituteFrom?.map(y =>
3043
+ toJson_KustomizationV1Beta2SpecPostBuildSubstituteFrom(y)
3044
+ )
3045
+ }
3046
+ // filter undefined values
3047
+ return Object.entries(result).reduce(
3048
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3049
+ {}
3050
+ )
3051
+ }
3052
+ /* eslint-enable max-len, quote-props */
3053
+
3054
+ /**
3055
+ * Reference of the source where the kustomization file is.
3056
+ *
3057
+ * @schema KustomizationV1Beta2SpecSourceRef
3058
+ */
3059
+ export interface KustomizationV1Beta2SpecSourceRef {
3060
+ /**
3061
+ * API version of the referent.
3062
+ *
3063
+ * @schema KustomizationV1Beta2SpecSourceRef#apiVersion
3064
+ */
3065
+ apiVersion?: string
3066
+
3067
+ /**
3068
+ * Kind of the referent.
3069
+ *
3070
+ * @schema KustomizationV1Beta2SpecSourceRef#kind
3071
+ */
3072
+ kind: KustomizationV1Beta2SpecSourceRefKind
3073
+
3074
+ /**
3075
+ * Name of the referent.
3076
+ *
3077
+ * @schema KustomizationV1Beta2SpecSourceRef#name
3078
+ */
3079
+ name: string
3080
+
3081
+ /**
3082
+ * Namespace of the referent, defaults to the namespace of the Kubernetes resource object that
3083
+ * contains the reference.
3084
+ *
3085
+ * @schema KustomizationV1Beta2SpecSourceRef#namespace
3086
+ */
3087
+ namespace?: string
3088
+ }
3089
+
3090
+ /** Converts an object of type 'KustomizationV1Beta2SpecSourceRef' to JSON representation. */
3091
+ /* eslint-disable max-len, quote-props */
3092
+ export function toJson_KustomizationV1Beta2SpecSourceRef(
3093
+ obj: KustomizationV1Beta2SpecSourceRef | undefined
3094
+ ): Record<string, any> | undefined {
3095
+ if (obj === undefined) {
3096
+ return undefined
3097
+ }
3098
+ const result = {
3099
+ apiVersion: obj.apiVersion,
3100
+ kind: obj.kind,
3101
+ name: obj.name,
3102
+ namespace: obj.namespace
3103
+ }
3104
+ // filter undefined values
3105
+ return Object.entries(result).reduce(
3106
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3107
+ {}
3108
+ )
3109
+ }
3110
+ /* eslint-enable max-len, quote-props */
3111
+
3112
+ /**
3113
+ * Deprecated: Not used in v1beta2.
3114
+ *
3115
+ * @schema KustomizationV1Beta2SpecValidation
3116
+ */
3117
+ export enum KustomizationV1Beta2SpecValidation {
3118
+ /** None */
3119
+ NONE = "none",
3120
+ /** Client */
3121
+ CLIENT = "client",
3122
+ /** Server */
3123
+ SERVER = "server"
3124
+ }
3125
+
3126
+ /**
3127
+ * Provider is the name of the decryption engine.
3128
+ *
3129
+ * @schema KustomizationV1Beta2SpecDecryptionProvider
3130
+ */
3131
+ export enum KustomizationV1Beta2SpecDecryptionProvider {
3132
+ /** Sops */
3133
+ SOPS = "sops"
3134
+ }
3135
+
3136
+ /**
3137
+ * The secret name containing the private OpenPGP keys used for decryption.
3138
+ *
3139
+ * @schema KustomizationV1Beta2SpecDecryptionSecretRef
3140
+ */
3141
+ export interface KustomizationV1Beta2SpecDecryptionSecretRef {
3142
+ /**
3143
+ * Name of the referent.
3144
+ *
3145
+ * @schema KustomizationV1Beta2SpecDecryptionSecretRef#name
3146
+ */
3147
+ name: string
3148
+ }
3149
+
3150
+ /** Converts an object of type 'KustomizationV1Beta2SpecDecryptionSecretRef' to JSON representation. */
3151
+ /* eslint-disable max-len, quote-props */
3152
+ export function toJson_KustomizationV1Beta2SpecDecryptionSecretRef(
3153
+ obj: KustomizationV1Beta2SpecDecryptionSecretRef | undefined
3154
+ ): Record<string, any> | undefined {
3155
+ if (obj === undefined) {
3156
+ return undefined
3157
+ }
3158
+ const result = {
3159
+ name: obj.name
3160
+ }
3161
+ // filter undefined values
3162
+ return Object.entries(result).reduce(
3163
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3164
+ {}
3165
+ )
3166
+ }
3167
+ /* eslint-enable max-len, quote-props */
3168
+
3169
+ /**
3170
+ * SecretRef holds the name of a secret that contains a key with the kubeconfig file as the value.
3171
+ * If no key is set, the key will default to 'value'. It is recommended that the kubeconfig is
3172
+ * self-contained, and the secret is regularly updated if credentials such as a cloud-access-token
3173
+ * expire. Cloud specific `cmd-path` auth helpers will not function without adding binaries and
3174
+ * credentials to the Pod that is responsible for reconciling Kubernetes resources.
3175
+ *
3176
+ * @schema KustomizationV1Beta2SpecKubeConfigSecretRef
3177
+ */
3178
+ export interface KustomizationV1Beta2SpecKubeConfigSecretRef {
3179
+ /**
3180
+ * Key in the Secret, when not specified an implementation-specific default key is used.
3181
+ *
3182
+ * @schema KustomizationV1Beta2SpecKubeConfigSecretRef#key
3183
+ */
3184
+ key?: string
3185
+
3186
+ /**
3187
+ * Name of the Secret.
3188
+ *
3189
+ * @schema KustomizationV1Beta2SpecKubeConfigSecretRef#name
3190
+ */
3191
+ name: string
3192
+ }
3193
+
3194
+ /** Converts an object of type 'KustomizationV1Beta2SpecKubeConfigSecretRef' to JSON representation. */
3195
+ /* eslint-disable max-len, quote-props */
3196
+ export function toJson_KustomizationV1Beta2SpecKubeConfigSecretRef(
3197
+ obj: KustomizationV1Beta2SpecKubeConfigSecretRef | undefined
3198
+ ): Record<string, any> | undefined {
3199
+ if (obj === undefined) {
3200
+ return undefined
3201
+ }
3202
+ const result = {
3203
+ key: obj.key,
3204
+ name: obj.name
3205
+ }
3206
+ // filter undefined values
3207
+ return Object.entries(result).reduce(
3208
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3209
+ {}
3210
+ )
3211
+ }
3212
+ /* eslint-enable max-len, quote-props */
3213
+
3214
+ /**
3215
+ * Target points to the resources that the patch document should be applied to.
3216
+ *
3217
+ * @schema KustomizationV1Beta2SpecPatchesTarget
3218
+ */
3219
+ export interface KustomizationV1Beta2SpecPatchesTarget {
3220
+ /**
3221
+ * AnnotationSelector is a string that follows the label selection expression
3222
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
3223
+ * the resource annotations.
3224
+ *
3225
+ * @schema KustomizationV1Beta2SpecPatchesTarget#annotationSelector
3226
+ */
3227
+ annotationSelector?: string
3228
+
3229
+ /**
3230
+ * Group is the API group to select resources from. Together with Version and Kind it is capable
3231
+ * of unambiguously identifying and/or selecting resources.
3232
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
3233
+ *
3234
+ * @schema KustomizationV1Beta2SpecPatchesTarget#group
3235
+ */
3236
+ group?: string
3237
+
3238
+ /**
3239
+ * Kind of the API Group to select resources from. Together with Group and Version it is capable
3240
+ * of unambiguously identifying and/or selecting resources.
3241
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
3242
+ *
3243
+ * @schema KustomizationV1Beta2SpecPatchesTarget#kind
3244
+ */
3245
+ kind?: string
3246
+
3247
+ /**
3248
+ * LabelSelector is a string that follows the label selection expression
3249
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
3250
+ * the resource labels.
3251
+ *
3252
+ * @schema KustomizationV1Beta2SpecPatchesTarget#labelSelector
3253
+ */
3254
+ labelSelector?: string
3255
+
3256
+ /**
3257
+ * Name to match resources with.
3258
+ *
3259
+ * @schema KustomizationV1Beta2SpecPatchesTarget#name
3260
+ */
3261
+ name?: string
3262
+
3263
+ /**
3264
+ * Namespace to select resources from.
3265
+ *
3266
+ * @schema KustomizationV1Beta2SpecPatchesTarget#namespace
3267
+ */
3268
+ namespace?: string
3269
+
3270
+ /**
3271
+ * Version of the API Group to select resources from. Together with Group and Kind it is capable
3272
+ * of unambiguously identifying and/or selecting resources.
3273
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
3274
+ *
3275
+ * @schema KustomizationV1Beta2SpecPatchesTarget#version
3276
+ */
3277
+ version?: string
3278
+ }
3279
+
3280
+ /** Converts an object of type 'KustomizationV1Beta2SpecPatchesTarget' to JSON representation. */
3281
+ /* eslint-disable max-len, quote-props */
3282
+ export function toJson_KustomizationV1Beta2SpecPatchesTarget(
3283
+ obj: KustomizationV1Beta2SpecPatchesTarget | undefined
3284
+ ): Record<string, any> | undefined {
3285
+ if (obj === undefined) {
3286
+ return undefined
3287
+ }
3288
+ const result = {
3289
+ annotationSelector: obj.annotationSelector,
3290
+ group: obj.group,
3291
+ kind: obj.kind,
3292
+ labelSelector: obj.labelSelector,
3293
+ name: obj.name,
3294
+ namespace: obj.namespace,
3295
+ version: obj.version
3296
+ }
3297
+ // filter undefined values
3298
+ return Object.entries(result).reduce(
3299
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3300
+ {}
3301
+ )
3302
+ }
3303
+ /* eslint-enable max-len, quote-props */
3304
+
3305
+ /**
3306
+ * JSON6902 is a JSON6902 operation object. https://datatracker.ietf.org/doc/html/rfc6902#section-4
3307
+ *
3308
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Patch
3309
+ */
3310
+ export interface KustomizationV1Beta2SpecPatchesJson6902Patch {
3311
+ /**
3312
+ * From contains a JSON-pointer value that references a location within the target document
3313
+ * where the operation is performed. The meaning of the value depends on the value of Op, and is
3314
+ * NOT taken into account by all operations.
3315
+ *
3316
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Patch#from
3317
+ */
3318
+ from?: string
3319
+
3320
+ /**
3321
+ * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace",
3322
+ * "move", "copy", or "test". https://datatracker.ietf.org/doc/html/rfc6902#section-4
3323
+ *
3324
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Patch#op
3325
+ */
3326
+ op: KustomizationV1Beta2SpecPatchesJson6902PatchOp
3327
+
3328
+ /**
3329
+ * Path contains the JSON-pointer value that references a location within the target document
3330
+ * where the operation is performed. The meaning of the value depends on the value of Op.
3331
+ *
3332
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Patch#path
3333
+ */
3334
+ path: string
3335
+
3336
+ /**
3337
+ * Value contains a valid JSON structure. The meaning of the value depends on the value of Op,
3338
+ * and is NOT taken into account by all operations.
3339
+ *
3340
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Patch#value
3341
+ */
3342
+ value?: any
3343
+ }
3344
+
3345
+ /** Converts an object of type 'KustomizationV1Beta2SpecPatchesJson6902Patch' to JSON representation. */
3346
+ /* eslint-disable max-len, quote-props */
3347
+ export function toJson_KustomizationV1Beta2SpecPatchesJson6902Patch(
3348
+ obj: KustomizationV1Beta2SpecPatchesJson6902Patch | undefined
3349
+ ): Record<string, any> | undefined {
3350
+ if (obj === undefined) {
3351
+ return undefined
3352
+ }
3353
+ const result = {
3354
+ from: obj.from,
3355
+ op: obj.op,
3356
+ path: obj.path,
3357
+ value: obj.value
3358
+ }
3359
+ // filter undefined values
3360
+ return Object.entries(result).reduce(
3361
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3362
+ {}
3363
+ )
3364
+ }
3365
+ /* eslint-enable max-len, quote-props */
3366
+
3367
+ /**
3368
+ * Target points to the resources that the patch document should be applied to.
3369
+ *
3370
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target
3371
+ */
3372
+ export interface KustomizationV1Beta2SpecPatchesJson6902Target {
3373
+ /**
3374
+ * AnnotationSelector is a string that follows the label selection expression
3375
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
3376
+ * the resource annotations.
3377
+ *
3378
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target#annotationSelector
3379
+ */
3380
+ annotationSelector?: string
3381
+
3382
+ /**
3383
+ * Group is the API group to select resources from. Together with Version and Kind it is capable
3384
+ * of unambiguously identifying and/or selecting resources.
3385
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
3386
+ *
3387
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target#group
3388
+ */
3389
+ group?: string
3390
+
3391
+ /**
3392
+ * Kind of the API Group to select resources from. Together with Group and Version it is capable
3393
+ * of unambiguously identifying and/or selecting resources.
3394
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
3395
+ *
3396
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target#kind
3397
+ */
3398
+ kind?: string
3399
+
3400
+ /**
3401
+ * LabelSelector is a string that follows the label selection expression
3402
+ * https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api It matches with
3403
+ * the resource labels.
3404
+ *
3405
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target#labelSelector
3406
+ */
3407
+ labelSelector?: string
3408
+
3409
+ /**
3410
+ * Name to match resources with.
3411
+ *
3412
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target#name
3413
+ */
3414
+ name?: string
3415
+
3416
+ /**
3417
+ * Namespace to select resources from.
3418
+ *
3419
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target#namespace
3420
+ */
3421
+ namespace?: string
3422
+
3423
+ /**
3424
+ * Version of the API Group to select resources from. Together with Group and Kind it is capable
3425
+ * of unambiguously identifying and/or selecting resources.
3426
+ * https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
3427
+ *
3428
+ * @schema KustomizationV1Beta2SpecPatchesJson6902Target#version
3429
+ */
3430
+ version?: string
3431
+ }
3432
+
3433
+ /**
3434
+ * Converts an object of type 'KustomizationV1Beta2SpecPatchesJson6902Target' to JSON
3435
+ * representation.
3436
+ */
3437
+ /* eslint-disable max-len, quote-props */
3438
+ export function toJson_KustomizationV1Beta2SpecPatchesJson6902Target(
3439
+ obj: KustomizationV1Beta2SpecPatchesJson6902Target | undefined
3440
+ ): Record<string, any> | undefined {
3441
+ if (obj === undefined) {
3442
+ return undefined
3443
+ }
3444
+ const result = {
3445
+ annotationSelector: obj.annotationSelector,
3446
+ group: obj.group,
3447
+ kind: obj.kind,
3448
+ labelSelector: obj.labelSelector,
3449
+ name: obj.name,
3450
+ namespace: obj.namespace,
3451
+ version: obj.version
3452
+ }
3453
+ // filter undefined values
3454
+ return Object.entries(result).reduce(
3455
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3456
+ {}
3457
+ )
3458
+ }
3459
+ /* eslint-enable max-len, quote-props */
3460
+
3461
+ /**
3462
+ * SubstituteReference contains a reference to a resource containing the variables name and value.
3463
+ *
3464
+ * @schema KustomizationV1Beta2SpecPostBuildSubstituteFrom
3465
+ */
3466
+ export interface KustomizationV1Beta2SpecPostBuildSubstituteFrom {
3467
+ /**
3468
+ * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
3469
+ *
3470
+ * @schema KustomizationV1Beta2SpecPostBuildSubstituteFrom#kind
3471
+ */
3472
+ kind: KustomizationV1Beta2SpecPostBuildSubstituteFromKind
3473
+
3474
+ /**
3475
+ * Name of the values referent. Should reside in the same namespace as the referring resource.
3476
+ *
3477
+ * @schema KustomizationV1Beta2SpecPostBuildSubstituteFrom#name
3478
+ */
3479
+ name: string
3480
+
3481
+ /**
3482
+ * Optional indicates whether the referenced resource must exist, or whether to tolerate its
3483
+ * absence. If true and the referenced resource is absent, proceed as if the resource was
3484
+ * present but empty, without any variables defined.
3485
+ *
3486
+ * @schema KustomizationV1Beta2SpecPostBuildSubstituteFrom#optional
3487
+ */
3488
+ optional?: boolean
3489
+ }
3490
+
3491
+ /**
3492
+ * Converts an object of type 'KustomizationV1Beta2SpecPostBuildSubstituteFrom' to JSON
3493
+ * representation.
3494
+ */
3495
+ /* eslint-disable max-len, quote-props */
3496
+ export function toJson_KustomizationV1Beta2SpecPostBuildSubstituteFrom(
3497
+ obj: KustomizationV1Beta2SpecPostBuildSubstituteFrom | undefined
3498
+ ): Record<string, any> | undefined {
3499
+ if (obj === undefined) {
3500
+ return undefined
3501
+ }
3502
+ const result = {
3503
+ kind: obj.kind,
3504
+ name: obj.name,
3505
+ optional: obj.optional
3506
+ }
3507
+ // filter undefined values
3508
+ return Object.entries(result).reduce(
3509
+ (r, i) => (i[1] === undefined ? r : { ...r, [i[0]]: i[1] }),
3510
+ {}
3511
+ )
3512
+ }
3513
+ /* eslint-enable max-len, quote-props */
3514
+
3515
+ /**
3516
+ * Kind of the referent.
3517
+ *
3518
+ * @schema KustomizationV1Beta2SpecSourceRefKind
3519
+ */
3520
+ export enum KustomizationV1Beta2SpecSourceRefKind {
3521
+ /** OCIRepository */
3522
+ OCI_REPOSITORY = "OCIRepository",
3523
+ /** GitRepository */
3524
+ GIT_REPOSITORY = "GitRepository",
3525
+ /** Bucket */
3526
+ BUCKET = "Bucket"
3527
+ }
3528
+
3529
+ /**
3530
+ * Op indicates the operation to perform. Its value MUST be one of "add", "remove", "replace",
3531
+ * "move", "copy", or "test". https://datatracker.ietf.org/doc/html/rfc6902#section-4
3532
+ *
3533
+ * @schema KustomizationV1Beta2SpecPatchesJson6902PatchOp
3534
+ */
3535
+ export enum KustomizationV1Beta2SpecPatchesJson6902PatchOp {
3536
+ /** Test */
3537
+ TEST = "test",
3538
+ /** Remove */
3539
+ REMOVE = "remove",
3540
+ /** Add */
3541
+ ADD = "add",
3542
+ /** Replace */
3543
+ REPLACE = "replace",
3544
+ /** Move */
3545
+ MOVE = "move",
3546
+ /** Copy */
3547
+ COPY = "copy"
3548
+ }
3549
+
3550
+ /**
3551
+ * Kind of the values referent, valid values are ('Secret', 'ConfigMap').
3552
+ *
3553
+ * @schema KustomizationV1Beta2SpecPostBuildSubstituteFromKind
3554
+ */
3555
+ export enum KustomizationV1Beta2SpecPostBuildSubstituteFromKind {
3556
+ /** Secret */
3557
+ SECRET = "Secret",
3558
+ /** ConfigMap */
3559
+ CONFIG_MAP = "ConfigMap"
3560
+ }