@r8s/crds 0.1.0

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 (91) hide show
  1. package/crds/certmanager-certificate.yaml +794 -0
  2. package/crds/certmanager-clusterissuer.yaml +3739 -0
  3. package/crds/clickhouse-installation.yaml +1847 -0
  4. package/crds/cnpg-cluster.yaml +6794 -0
  5. package/crds/cnpg-pooler.yaml +9311 -0
  6. package/crds/cnpg-scheduledbackup.yaml +191 -0
  7. package/crds/envoy-backendtrafficpolicy.yaml +1 -0
  8. package/crds/envoy-clienttrafficpolicy.yaml +1 -0
  9. package/crds/envoy-envoyproxy.yaml +1 -0
  10. package/crds/envoy-proxy.yaml +16626 -0
  11. package/crds/envoy-securitypolicy.yaml +1 -0
  12. package/crds/externaldns-endpoint.yaml +94 -0
  13. package/crds/gatewayapi-gateway.yaml +2253 -0
  14. package/crds/gatewayapi-httproute.yaml +5643 -0
  15. package/crds/keycloak-keycloak.yaml +3192 -0
  16. package/crds/keycloak-realmimport.yaml +2878 -0
  17. package/crds/logging-flow.yaml +1768 -0
  18. package/crds/logging-logging.yaml +16770 -0
  19. package/crds/logging-output.yaml +14658 -0
  20. package/crds/loki-lokistack.yaml +5390 -0
  21. package/crds/prometheus-alertmanager.yaml +10013 -0
  22. package/crds/prometheus-podmonitor.yaml +741 -0
  23. package/crds/prometheus-prometheus.yaml +13928 -0
  24. package/crds/prometheus-prometheusrule.yaml +267 -0
  25. package/crds/prometheus-scrapeconfig.yaml +12938 -0
  26. package/crds/prometheus-servicemonitor.yaml +764 -0
  27. package/crds/prometheus-thanosruler.yaml +9795 -0
  28. package/crds/redis-cluster.yaml +7862 -0
  29. package/crds/redis-failover.yaml +1 -0
  30. package/crds/redis-replication.yaml +5593 -0
  31. package/crds/velero-backups.yaml +630 -0
  32. package/crds/velero-backupstoragelocations.yaml +174 -0
  33. package/crds/velero-schedules.yaml +584 -0
  34. package/dist/generated/cert-manager.d.ts +873 -0
  35. package/dist/generated/cert-manager.d.ts.map +1 -0
  36. package/dist/generated/cert-manager.js +24 -0
  37. package/dist/generated/cert-manager.js.map +1 -0
  38. package/dist/generated/clickhouse.d.ts +692 -0
  39. package/dist/generated/clickhouse.d.ts.map +1 -0
  40. package/dist/generated/clickhouse.js +14 -0
  41. package/dist/generated/clickhouse.js.map +1 -0
  42. package/dist/generated/externaldns.d.ts +47 -0
  43. package/dist/generated/externaldns.d.ts.map +1 -0
  44. package/dist/generated/externaldns.js +14 -0
  45. package/dist/generated/externaldns.js.map +1 -0
  46. package/dist/generated/gateway.d.ts +2396 -0
  47. package/dist/generated/gateway.d.ts.map +1 -0
  48. package/dist/generated/gateway.js +34 -0
  49. package/dist/generated/gateway.js.map +1 -0
  50. package/dist/generated/index.d.ts +24 -0
  51. package/dist/generated/index.d.ts.map +1 -0
  52. package/dist/generated/index.js +61 -0
  53. package/dist/generated/index.js.map +1 -0
  54. package/dist/generated/keycloak.d.ts +1607 -0
  55. package/dist/generated/keycloak.d.ts.map +1 -0
  56. package/dist/generated/keycloak.js +24 -0
  57. package/dist/generated/keycloak.js.map +1 -0
  58. package/dist/generated/logging.d.ts +3487 -0
  59. package/dist/generated/logging.d.ts.map +1 -0
  60. package/dist/generated/logging.js +34 -0
  61. package/dist/generated/logging.js.map +1 -0
  62. package/dist/generated/loki.d.ts +578 -0
  63. package/dist/generated/loki.d.ts.map +1 -0
  64. package/dist/generated/loki.js +14 -0
  65. package/dist/generated/loki.js.map +1 -0
  66. package/dist/generated/monitoring.d.ts +4230 -0
  67. package/dist/generated/monitoring.d.ts.map +1 -0
  68. package/dist/generated/monitoring.js +74 -0
  69. package/dist/generated/monitoring.js.map +1 -0
  70. package/dist/generated/operators.d.ts +18 -0
  71. package/dist/generated/operators.d.ts.map +1 -0
  72. package/dist/generated/operators.js +191 -0
  73. package/dist/generated/operators.js.map +1 -0
  74. package/dist/generated/postgresql.d.ts +2820 -0
  75. package/dist/generated/postgresql.d.ts.map +1 -0
  76. package/dist/generated/postgresql.js +34 -0
  77. package/dist/generated/postgresql.js.map +1 -0
  78. package/dist/generated/redis.d.ts +1253 -0
  79. package/dist/generated/redis.d.ts.map +1 -0
  80. package/dist/generated/redis.js +24 -0
  81. package/dist/generated/redis.js.map +1 -0
  82. package/dist/generated/velero.d.ts +351 -0
  83. package/dist/generated/velero.d.ts.map +1 -0
  84. package/dist/generated/velero.js +34 -0
  85. package/dist/generated/velero.js.map +1 -0
  86. package/dist/index.d.ts +18 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +34 -0
  89. package/dist/index.js.map +1 -0
  90. package/operators.yaml +196 -0
  91. package/package.json +49 -0
@@ -0,0 +1,3739 @@
1
+ # START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
2
+ apiVersion: apiextensions.k8s.io/v1
3
+ kind: CustomResourceDefinition
4
+ metadata:
5
+ name: clusterissuers.cert-manager.io
6
+ # START annotations {{- if .Values.crds.keep }}
7
+ annotations:
8
+ helm.sh/resource-policy: keep
9
+ # END annotations {{- end }}
10
+ labels:
11
+ app: '{{ template "cert-manager.name" . }}'
12
+ app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
13
+ app.kubernetes.io/instance: '{{ .Release.Name }}'
14
+ # Generated labels {{- include "labels" . | nindent 4 }}
15
+ spec:
16
+ group: cert-manager.io
17
+ names:
18
+ kind: ClusterIssuer
19
+ listKind: ClusterIssuerList
20
+ plural: clusterissuers
21
+ shortNames:
22
+ - ciss
23
+ singular: clusterissuer
24
+ categories:
25
+ - cert-manager
26
+ scope: Cluster
27
+ versions:
28
+ - name: v1
29
+ subresources:
30
+ status: {}
31
+ additionalPrinterColumns:
32
+ - jsonPath: .status.conditions[?(@.type=="Ready")].status
33
+ name: Ready
34
+ type: string
35
+ - jsonPath: .status.conditions[?(@.type=="Ready")].message
36
+ name: Status
37
+ priority: 1
38
+ type: string
39
+ - jsonPath: .metadata.creationTimestamp
40
+ description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
41
+ name: Age
42
+ type: date
43
+ schema:
44
+ openAPIV3Schema:
45
+ description: |-
46
+ A ClusterIssuer represents a certificate issuing authority which can be
47
+ referenced as part of `issuerRef` fields.
48
+ It is similar to an Issuer, however it is cluster-scoped and therefore can
49
+ be referenced by resources that exist in *any* namespace, not just the same
50
+ namespace as the referent.
51
+ type: object
52
+ required:
53
+ - spec
54
+ properties:
55
+ apiVersion:
56
+ description: |-
57
+ APIVersion defines the versioned schema of this representation of an object.
58
+ Servers should convert recognized schemas to the latest internal value, and
59
+ may reject unrecognized values.
60
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
61
+ type: string
62
+ kind:
63
+ description: |-
64
+ Kind is a string value representing the REST resource this object represents.
65
+ Servers may infer this from the endpoint the client submits requests to.
66
+ Cannot be updated.
67
+ In CamelCase.
68
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
69
+ type: string
70
+ metadata:
71
+ type: object
72
+ spec:
73
+ description: Desired state of the ClusterIssuer resource.
74
+ type: object
75
+ properties:
76
+ acme:
77
+ description: |-
78
+ ACME configures this issuer to communicate with a RFC8555 (ACME) server
79
+ to obtain signed x509 certificates.
80
+ type: object
81
+ required:
82
+ - privateKeySecretRef
83
+ - server
84
+ properties:
85
+ caBundle:
86
+ description: |-
87
+ Base64-encoded bundle of PEM CAs which can be used to validate the certificate
88
+ chain presented by the ACME server.
89
+ Mutually exclusive with SkipTLSVerify; prefer using CABundle to prevent various
90
+ kinds of security vulnerabilities.
91
+ If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
92
+ the container is used to validate the TLS connection.
93
+ type: string
94
+ format: byte
95
+ disableAccountKeyGeneration:
96
+ description: |-
97
+ Enables or disables generating a new ACME account key.
98
+ If true, the Issuer resource will *not* request a new account but will expect
99
+ the account key to be supplied via an existing secret.
100
+ If false, the cert-manager system will generate a new ACME account key
101
+ for the Issuer.
102
+ Defaults to false.
103
+ type: boolean
104
+ email:
105
+ description: |-
106
+ Email is the email address to be associated with the ACME account.
107
+ This field is optional, but it is strongly recommended to be set.
108
+ It will be used to contact you in case of issues with your account or
109
+ certificates, including expiry notification emails.
110
+ This field may be updated after the account is initially registered.
111
+ type: string
112
+ enableDurationFeature:
113
+ description: |-
114
+ Enables requesting a Not After date on certificates that matches the
115
+ duration of the certificate. This is not supported by all ACME servers
116
+ like Let's Encrypt. If set to true when the ACME server does not support
117
+ it, it will create an error on the Order.
118
+ Defaults to false.
119
+ type: boolean
120
+ externalAccountBinding:
121
+ description: |-
122
+ ExternalAccountBinding is a reference to a CA external account of the ACME
123
+ server.
124
+ If set, upon registration cert-manager will attempt to associate the given
125
+ external account credentials with the registered ACME account.
126
+ type: object
127
+ required:
128
+ - keyID
129
+ - keySecretRef
130
+ properties:
131
+ keyAlgorithm:
132
+ description: |-
133
+ Deprecated: keyAlgorithm field exists for historical compatibility
134
+ reasons and should not be used. The algorithm is now hardcoded to HS256
135
+ in golang/x/crypto/acme.
136
+ type: string
137
+ enum:
138
+ - HS256
139
+ - HS384
140
+ - HS512
141
+ keyID:
142
+ description: keyID is the ID of the CA key that the External Account is bound to.
143
+ type: string
144
+ keySecretRef:
145
+ description: |-
146
+ keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes
147
+ Secret which holds the symmetric MAC key of the External Account Binding.
148
+ The `key` is the index string that is paired with the key data in the
149
+ Secret and should not be confused with the key data itself, or indeed with
150
+ the External Account Binding keyID above.
151
+ The secret key stored in the Secret **must** be un-padded, base64 URL
152
+ encoded data.
153
+ type: object
154
+ required:
155
+ - name
156
+ properties:
157
+ key:
158
+ description: |-
159
+ The key of the entry in the Secret resource's `data` field to be used.
160
+ Some instances of this field may be defaulted, in others it may be
161
+ required.
162
+ type: string
163
+ name:
164
+ description: |-
165
+ Name of the resource being referred to.
166
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
167
+ type: string
168
+ preferredChain:
169
+ description: |-
170
+ PreferredChain is the chain to use if the ACME server outputs multiple.
171
+ PreferredChain is no guarantee that this one gets delivered by the ACME
172
+ endpoint.
173
+ For example, for Let's Encrypt's DST cross-sign you would use:
174
+ "DST Root CA X3" or "ISRG Root X1" for the newer Let's Encrypt root CA.
175
+ This value picks the first certificate bundle in the combined set of
176
+ ACME default and alternative chains that has a root-most certificate with
177
+ this value as its issuer's commonname.
178
+ type: string
179
+ maxLength: 64
180
+ privateKeySecretRef:
181
+ description: |-
182
+ PrivateKey is the name of a Kubernetes Secret resource that will be used to
183
+ store the automatically generated ACME account private key.
184
+ Optionally, a `key` may be specified to select a specific entry within
185
+ the named Secret resource.
186
+ If `key` is not specified, a default of `tls.key` will be used.
187
+ type: object
188
+ required:
189
+ - name
190
+ properties:
191
+ key:
192
+ description: |-
193
+ The key of the entry in the Secret resource's `data` field to be used.
194
+ Some instances of this field may be defaulted, in others it may be
195
+ required.
196
+ type: string
197
+ name:
198
+ description: |-
199
+ Name of the resource being referred to.
200
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
201
+ type: string
202
+ profile:
203
+ description: |-
204
+ Profile allows requesting a certificate profile from the ACME server.
205
+ Supported profiles are listed by the server's ACME directory URL.
206
+ type: string
207
+ server:
208
+ description: |-
209
+ Server is the URL used to access the ACME server's 'directory' endpoint.
210
+ For example, for Let's Encrypt's staging endpoint, you would use:
211
+ "https://acme-staging-v02.api.letsencrypt.org/directory".
212
+ Only ACME v2 endpoints (i.e. RFC 8555) are supported.
213
+ type: string
214
+ skipTLSVerify:
215
+ description: |-
216
+ INSECURE: Enables or disables validation of the ACME server TLS certificate.
217
+ If true, requests to the ACME server will not have the TLS certificate chain
218
+ validated.
219
+ Mutually exclusive with CABundle; prefer using CABundle to prevent various
220
+ kinds of security vulnerabilities.
221
+ Only enable this option in development environments.
222
+ If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
223
+ the container is used to validate the TLS connection.
224
+ Defaults to false.
225
+ type: boolean
226
+ solvers:
227
+ description: |-
228
+ Solvers is a list of challenge solvers that will be used to solve
229
+ ACME challenges for the matching domains.
230
+ Solver configurations must be provided in order to obtain certificates
231
+ from an ACME server.
232
+ For more information, see: https://cert-manager.io/docs/configuration/acme/
233
+ type: array
234
+ items:
235
+ description: |-
236
+ An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of.
237
+ A selector may be provided to use different solving strategies for different DNS names.
238
+ Only one of HTTP01 or DNS01 must be provided.
239
+ type: object
240
+ properties:
241
+ dns01:
242
+ description: |-
243
+ Configures cert-manager to attempt to complete authorizations by
244
+ performing the DNS01 challenge flow.
245
+ type: object
246
+ properties:
247
+ acmeDNS:
248
+ description: |-
249
+ Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage
250
+ DNS01 challenge records.
251
+ type: object
252
+ required:
253
+ - accountSecretRef
254
+ - host
255
+ properties:
256
+ accountSecretRef:
257
+ description: |-
258
+ A reference to a specific 'key' within a Secret resource.
259
+ In some instances, `key` is a required field.
260
+ type: object
261
+ required:
262
+ - name
263
+ properties:
264
+ key:
265
+ description: |-
266
+ The key of the entry in the Secret resource's `data` field to be used.
267
+ Some instances of this field may be defaulted, in others it may be
268
+ required.
269
+ type: string
270
+ name:
271
+ description: |-
272
+ Name of the resource being referred to.
273
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
274
+ type: string
275
+ host:
276
+ type: string
277
+ akamai:
278
+ description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
279
+ type: object
280
+ required:
281
+ - accessTokenSecretRef
282
+ - clientSecretSecretRef
283
+ - clientTokenSecretRef
284
+ - serviceConsumerDomain
285
+ properties:
286
+ accessTokenSecretRef:
287
+ description: |-
288
+ A reference to a specific 'key' within a Secret resource.
289
+ In some instances, `key` is a required field.
290
+ type: object
291
+ required:
292
+ - name
293
+ properties:
294
+ key:
295
+ description: |-
296
+ The key of the entry in the Secret resource's `data` field to be used.
297
+ Some instances of this field may be defaulted, in others it may be
298
+ required.
299
+ type: string
300
+ name:
301
+ description: |-
302
+ Name of the resource being referred to.
303
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
304
+ type: string
305
+ clientSecretSecretRef:
306
+ description: |-
307
+ A reference to a specific 'key' within a Secret resource.
308
+ In some instances, `key` is a required field.
309
+ type: object
310
+ required:
311
+ - name
312
+ properties:
313
+ key:
314
+ description: |-
315
+ The key of the entry in the Secret resource's `data` field to be used.
316
+ Some instances of this field may be defaulted, in others it may be
317
+ required.
318
+ type: string
319
+ name:
320
+ description: |-
321
+ Name of the resource being referred to.
322
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
323
+ type: string
324
+ clientTokenSecretRef:
325
+ description: |-
326
+ A reference to a specific 'key' within a Secret resource.
327
+ In some instances, `key` is a required field.
328
+ type: object
329
+ required:
330
+ - name
331
+ properties:
332
+ key:
333
+ description: |-
334
+ The key of the entry in the Secret resource's `data` field to be used.
335
+ Some instances of this field may be defaulted, in others it may be
336
+ required.
337
+ type: string
338
+ name:
339
+ description: |-
340
+ Name of the resource being referred to.
341
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
342
+ type: string
343
+ serviceConsumerDomain:
344
+ type: string
345
+ azureDNS:
346
+ description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
347
+ type: object
348
+ required:
349
+ - resourceGroupName
350
+ - subscriptionID
351
+ properties:
352
+ clientID:
353
+ description: |-
354
+ Auth: Azure Service Principal:
355
+ The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
356
+ If set, ClientSecret and TenantID must also be set.
357
+ type: string
358
+ clientSecretSecretRef:
359
+ description: |-
360
+ Auth: Azure Service Principal:
361
+ A reference to a Secret containing the password associated with the Service Principal.
362
+ If set, ClientID and TenantID must also be set.
363
+ type: object
364
+ required:
365
+ - name
366
+ properties:
367
+ key:
368
+ description: |-
369
+ The key of the entry in the Secret resource's `data` field to be used.
370
+ Some instances of this field may be defaulted, in others it may be
371
+ required.
372
+ type: string
373
+ name:
374
+ description: |-
375
+ Name of the resource being referred to.
376
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
377
+ type: string
378
+ environment:
379
+ description: name of the Azure environment (default AzurePublicCloud)
380
+ type: string
381
+ enum:
382
+ - AzurePublicCloud
383
+ - AzureChinaCloud
384
+ - AzureGermanCloud
385
+ - AzureUSGovernmentCloud
386
+ hostedZoneName:
387
+ description: name of the DNS zone that should be used
388
+ type: string
389
+ managedIdentity:
390
+ description: |-
391
+ Auth: Azure Workload Identity or Azure Managed Service Identity:
392
+ Settings to enable Azure Workload Identity or Azure Managed Service Identity
393
+ If set, ClientID, ClientSecret and TenantID must not be set.
394
+ type: object
395
+ properties:
396
+ clientID:
397
+ description: client ID of the managed identity, cannot be used at the same time as resourceID
398
+ type: string
399
+ resourceID:
400
+ description: |-
401
+ resource ID of the managed identity, cannot be used at the same time as clientID
402
+ Cannot be used for Azure Managed Service Identity
403
+ type: string
404
+ tenantID:
405
+ description: tenant ID of the managed identity, cannot be used at the same time as resourceID
406
+ type: string
407
+ resourceGroupName:
408
+ description: resource group the DNS zone is located in
409
+ type: string
410
+ subscriptionID:
411
+ description: ID of the Azure subscription
412
+ type: string
413
+ tenantID:
414
+ description: |-
415
+ Auth: Azure Service Principal:
416
+ The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
417
+ If set, ClientID and ClientSecret must also be set.
418
+ type: string
419
+ cloudDNS:
420
+ description: Use the Google Cloud DNS API to manage DNS01 challenge records.
421
+ type: object
422
+ required:
423
+ - project
424
+ properties:
425
+ hostedZoneName:
426
+ description: |-
427
+ HostedZoneName is an optional field that tells cert-manager in which
428
+ Cloud DNS zone the challenge record has to be created.
429
+ If left empty cert-manager will automatically choose a zone.
430
+ type: string
431
+ project:
432
+ type: string
433
+ serviceAccountSecretRef:
434
+ description: |-
435
+ A reference to a specific 'key' within a Secret resource.
436
+ In some instances, `key` is a required field.
437
+ type: object
438
+ required:
439
+ - name
440
+ properties:
441
+ key:
442
+ description: |-
443
+ The key of the entry in the Secret resource's `data` field to be used.
444
+ Some instances of this field may be defaulted, in others it may be
445
+ required.
446
+ type: string
447
+ name:
448
+ description: |-
449
+ Name of the resource being referred to.
450
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
451
+ type: string
452
+ cloudflare:
453
+ description: Use the Cloudflare API to manage DNS01 challenge records.
454
+ type: object
455
+ properties:
456
+ apiKeySecretRef:
457
+ description: |-
458
+ API key to use to authenticate with Cloudflare.
459
+ Note: using an API token to authenticate is now the recommended method
460
+ as it allows greater control of permissions.
461
+ type: object
462
+ required:
463
+ - name
464
+ properties:
465
+ key:
466
+ description: |-
467
+ The key of the entry in the Secret resource's `data` field to be used.
468
+ Some instances of this field may be defaulted, in others it may be
469
+ required.
470
+ type: string
471
+ name:
472
+ description: |-
473
+ Name of the resource being referred to.
474
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
475
+ type: string
476
+ apiTokenSecretRef:
477
+ description: API token used to authenticate with Cloudflare.
478
+ type: object
479
+ required:
480
+ - name
481
+ properties:
482
+ key:
483
+ description: |-
484
+ The key of the entry in the Secret resource's `data` field to be used.
485
+ Some instances of this field may be defaulted, in others it may be
486
+ required.
487
+ type: string
488
+ name:
489
+ description: |-
490
+ Name of the resource being referred to.
491
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
492
+ type: string
493
+ email:
494
+ description: Email of the account, only required when using API key based authentication.
495
+ type: string
496
+ cnameStrategy:
497
+ description: |-
498
+ CNAMEStrategy configures how the DNS01 provider should handle CNAME
499
+ records when found in DNS zones.
500
+ type: string
501
+ enum:
502
+ - None
503
+ - Follow
504
+ digitalocean:
505
+ description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
506
+ type: object
507
+ required:
508
+ - tokenSecretRef
509
+ properties:
510
+ tokenSecretRef:
511
+ description: |-
512
+ A reference to a specific 'key' within a Secret resource.
513
+ In some instances, `key` is a required field.
514
+ type: object
515
+ required:
516
+ - name
517
+ properties:
518
+ key:
519
+ description: |-
520
+ The key of the entry in the Secret resource's `data` field to be used.
521
+ Some instances of this field may be defaulted, in others it may be
522
+ required.
523
+ type: string
524
+ name:
525
+ description: |-
526
+ Name of the resource being referred to.
527
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
528
+ type: string
529
+ rfc2136:
530
+ description: |-
531
+ Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/)
532
+ to manage DNS01 challenge records.
533
+ type: object
534
+ required:
535
+ - nameserver
536
+ properties:
537
+ nameserver:
538
+ description: |-
539
+ The IP address or hostname of an authoritative DNS server supporting
540
+ RFC2136 in the form host:port. If the host is an IPv6 address it must be
541
+ enclosed in square brackets (e.g [2001:db8::1]) ; port is optional.
542
+ This field is required.
543
+ type: string
544
+ tsigAlgorithm:
545
+ description: |-
546
+ The TSIG Algorithm configured in the DNS supporting RFC2136. Used only
547
+ when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined.
548
+ Supported values are (case-insensitive): ``HMACMD5`` (default),
549
+ ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.
550
+ type: string
551
+ tsigKeyName:
552
+ description: |-
553
+ The TSIG Key name configured in the DNS.
554
+ If ``tsigSecretSecretRef`` is defined, this field is required.
555
+ type: string
556
+ tsigSecretSecretRef:
557
+ description: |-
558
+ The name of the secret containing the TSIG value.
559
+ If ``tsigKeyName`` is defined, this field is required.
560
+ type: object
561
+ required:
562
+ - name
563
+ properties:
564
+ key:
565
+ description: |-
566
+ The key of the entry in the Secret resource's `data` field to be used.
567
+ Some instances of this field may be defaulted, in others it may be
568
+ required.
569
+ type: string
570
+ name:
571
+ description: |-
572
+ Name of the resource being referred to.
573
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
574
+ type: string
575
+ route53:
576
+ description: Use the AWS Route53 API to manage DNS01 challenge records.
577
+ type: object
578
+ properties:
579
+ accessKeyID:
580
+ description: |-
581
+ The AccessKeyID is used for authentication.
582
+ Cannot be set when SecretAccessKeyID is set.
583
+ If neither the Access Key nor Key ID are set, we fall-back to using env
584
+ vars, shared credentials file or AWS Instance metadata,
585
+ see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
586
+ type: string
587
+ accessKeyIDSecretRef:
588
+ description: |-
589
+ The SecretAccessKey is used for authentication. If set, pull the AWS
590
+ access key ID from a key within a Kubernetes Secret.
591
+ Cannot be set when AccessKeyID is set.
592
+ If neither the Access Key nor Key ID are set, we fall-back to using env
593
+ vars, shared credentials file or AWS Instance metadata,
594
+ see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
595
+ type: object
596
+ required:
597
+ - name
598
+ properties:
599
+ key:
600
+ description: |-
601
+ The key of the entry in the Secret resource's `data` field to be used.
602
+ Some instances of this field may be defaulted, in others it may be
603
+ required.
604
+ type: string
605
+ name:
606
+ description: |-
607
+ Name of the resource being referred to.
608
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
609
+ type: string
610
+ auth:
611
+ description: Auth configures how cert-manager authenticates.
612
+ type: object
613
+ required:
614
+ - kubernetes
615
+ properties:
616
+ kubernetes:
617
+ description: |-
618
+ Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
619
+ by passing a bound ServiceAccount token.
620
+ type: object
621
+ required:
622
+ - serviceAccountRef
623
+ properties:
624
+ serviceAccountRef:
625
+ description: |-
626
+ A reference to a service account that will be used to request a bound
627
+ token (also known as "projected token"). To use this field, you must
628
+ configure an RBAC rule to let cert-manager request a token.
629
+ type: object
630
+ required:
631
+ - name
632
+ properties:
633
+ audiences:
634
+ description: |-
635
+ TokenAudiences is an optional list of audiences to include in the
636
+ token passed to AWS. The default token consisting of the issuer's namespace
637
+ and name is always included.
638
+ If unset the audience defaults to `sts.amazonaws.com`.
639
+ type: array
640
+ items:
641
+ type: string
642
+ name:
643
+ description: Name of the ServiceAccount used to request a token.
644
+ type: string
645
+ hostedZoneID:
646
+ description: If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.
647
+ type: string
648
+ region:
649
+ description: |-
650
+ Override the AWS region.
651
+
652
+ Route53 is a global service and does not have regional endpoints but the
653
+ region specified here (or via environment variables) is used as a hint to
654
+ help compute the correct AWS credential scope and partition when it
655
+ connects to Route53. See:
656
+ - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html)
657
+ - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html)
658
+
659
+ If you omit this region field, cert-manager will use the region from
660
+ AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set
661
+ in the cert-manager controller Pod.
662
+
663
+ The `region` field is not needed if you use [IAM Roles for Service Accounts (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).
664
+ Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
665
+ [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook).
666
+ In this case this `region` field value is ignored.
667
+
668
+ The `region` field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
669
+ Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
670
+ [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent),
671
+ In this case this `region` field value is ignored.
672
+ type: string
673
+ role:
674
+ description: |-
675
+ Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
676
+ or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
677
+ type: string
678
+ secretAccessKeySecretRef:
679
+ description: |-
680
+ The SecretAccessKey is used for authentication.
681
+ If neither the Access Key nor Key ID are set, we fall-back to using env
682
+ vars, shared credentials file or AWS Instance metadata,
683
+ see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
684
+ type: object
685
+ required:
686
+ - name
687
+ properties:
688
+ key:
689
+ description: |-
690
+ The key of the entry in the Secret resource's `data` field to be used.
691
+ Some instances of this field may be defaulted, in others it may be
692
+ required.
693
+ type: string
694
+ name:
695
+ description: |-
696
+ Name of the resource being referred to.
697
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
698
+ type: string
699
+ webhook:
700
+ description: |-
701
+ Configure an external webhook based DNS01 challenge solver to manage
702
+ DNS01 challenge records.
703
+ type: object
704
+ required:
705
+ - groupName
706
+ - solverName
707
+ properties:
708
+ config:
709
+ description: |-
710
+ Additional configuration that should be passed to the webhook apiserver
711
+ when challenges are processed.
712
+ This can contain arbitrary JSON data.
713
+ Secret values should not be specified in this stanza.
714
+ If secret values are needed (e.g., credentials for a DNS service), you
715
+ should use a SecretKeySelector to reference a Secret resource.
716
+ For details on the schema of this field, consult the webhook provider
717
+ implementation's documentation.
718
+ x-kubernetes-preserve-unknown-fields: true
719
+ groupName:
720
+ description: |-
721
+ The API group name that should be used when POSTing ChallengePayload
722
+ resources to the webhook apiserver.
723
+ This should be the same as the GroupName specified in the webhook
724
+ provider implementation.
725
+ type: string
726
+ solverName:
727
+ description: |-
728
+ The name of the solver to use, as defined in the webhook provider
729
+ implementation.
730
+ This will typically be the name of the provider, e.g., 'cloudflare'.
731
+ type: string
732
+ http01:
733
+ description: |-
734
+ Configures cert-manager to attempt to complete authorizations by
735
+ performing the HTTP01 challenge flow.
736
+ It is not possible to obtain certificates for wildcard domain names
737
+ (e.g., `*.example.com`) using the HTTP01 challenge mechanism.
738
+ type: object
739
+ properties:
740
+ gatewayHTTPRoute:
741
+ description: |-
742
+ The Gateway API is a sig-network community API that models service networking
743
+ in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will
744
+ create HTTPRoutes with the specified labels in the same namespace as the challenge.
745
+ This solver is experimental, and fields / behaviour may change in the future.
746
+ type: object
747
+ properties:
748
+ labels:
749
+ description: |-
750
+ Custom labels that will be applied to HTTPRoutes created by cert-manager
751
+ while solving HTTP-01 challenges.
752
+ type: object
753
+ additionalProperties:
754
+ type: string
755
+ parentRefs:
756
+ description: |-
757
+ When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute.
758
+ cert-manager needs to know which parentRefs should be used when creating
759
+ the HTTPRoute. Usually, the parentRef references a Gateway. See:
760
+ https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways
761
+ type: array
762
+ items:
763
+ description: |-
764
+ ParentReference identifies an API object (usually a Gateway) that can be considered
765
+ a parent of this resource (usually a route). There are two kinds of parent resources
766
+ with "Core" support:
767
+
768
+ * Gateway (Gateway conformance profile)
769
+ * Service (Mesh conformance profile, ClusterIP Services only)
770
+
771
+ This API may be extended in the future to support additional kinds of parent
772
+ resources.
773
+
774
+ The API object must be valid in the cluster; the Group and Kind must
775
+ be registered in the cluster for this reference to be valid.
776
+ type: object
777
+ required:
778
+ - name
779
+ properties:
780
+ group:
781
+ description: |-
782
+ Group is the group of the referent.
783
+ When unspecified, "gateway.networking.k8s.io" is inferred.
784
+ To set the core API group (such as for a "Service" kind referent),
785
+ Group must be explicitly set to "" (empty string).
786
+
787
+ Support: Core
788
+ type: string
789
+ default: gateway.networking.k8s.io
790
+ maxLength: 253
791
+ pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
792
+ kind:
793
+ description: |-
794
+ Kind is kind of the referent.
795
+
796
+ There are two kinds of parent resources with "Core" support:
797
+
798
+ * Gateway (Gateway conformance profile)
799
+ * Service (Mesh conformance profile, ClusterIP Services only)
800
+
801
+ Support for other resources is Implementation-Specific.
802
+ type: string
803
+ default: Gateway
804
+ maxLength: 63
805
+ minLength: 1
806
+ pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
807
+ name:
808
+ description: |-
809
+ Name is the name of the referent.
810
+
811
+ Support: Core
812
+ type: string
813
+ maxLength: 253
814
+ minLength: 1
815
+ namespace:
816
+ description: |-
817
+ Namespace is the namespace of the referent. When unspecified, this refers
818
+ to the local namespace of the Route.
819
+
820
+ Note that there are specific rules for ParentRefs which cross namespace
821
+ boundaries. Cross-namespace references are only valid if they are explicitly
822
+ allowed by something in the namespace they are referring to. For example:
823
+ Gateway has the AllowedRoutes field, and ReferenceGrant provides a
824
+ generic way to enable any other kind of cross-namespace reference.
825
+
826
+ <gateway:experimental:description>
827
+ ParentRefs from a Route to a Service in the same namespace are "producer"
828
+ routes, which apply default routing rules to inbound connections from
829
+ any namespace to the Service.
830
+
831
+ ParentRefs from a Route to a Service in a different namespace are
832
+ "consumer" routes, and these routing rules are only applied to outbound
833
+ connections originating from the same namespace as the Route, for which
834
+ the intended destination of the connections are a Service targeted as a
835
+ ParentRef of the Route.
836
+ </gateway:experimental:description>
837
+
838
+ Support: Core
839
+ type: string
840
+ maxLength: 63
841
+ minLength: 1
842
+ pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
843
+ port:
844
+ description: |-
845
+ Port is the network port this Route targets. It can be interpreted
846
+ differently based on the type of parent resource.
847
+
848
+ When the parent resource is a Gateway, this targets all listeners
849
+ listening on the specified port that also support this kind of Route(and
850
+ select this Route). It's not recommended to set `Port` unless the
851
+ networking behaviors specified in a Route must apply to a specific port
852
+ as opposed to a listener(s) whose port(s) may be changed. When both Port
853
+ and SectionName are specified, the name and port of the selected listener
854
+ must match both specified values.
855
+
856
+ <gateway:experimental:description>
857
+ When the parent resource is a Service, this targets a specific port in the
858
+ Service spec. When both Port (experimental) and SectionName are specified,
859
+ the name and port of the selected port must match both specified values.
860
+ </gateway:experimental:description>
861
+
862
+ Implementations MAY choose to support other parent resources.
863
+ Implementations supporting other types of parent resources MUST clearly
864
+ document how/if Port is interpreted.
865
+
866
+ For the purpose of status, an attachment is considered successful as
867
+ long as the parent resource accepts it partially. For example, Gateway
868
+ listeners can restrict which Routes can attach to them by Route kind,
869
+ namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
870
+ from the referencing Route, the Route MUST be considered successfully
871
+ attached. If no Gateway listeners accept attachment from this Route,
872
+ the Route MUST be considered detached from the Gateway.
873
+
874
+ Support: Extended
875
+ type: integer
876
+ format: int32
877
+ maximum: 65535
878
+ minimum: 1
879
+ sectionName:
880
+ description: |-
881
+ SectionName is the name of a section within the target resource. In the
882
+ following resources, SectionName is interpreted as the following:
883
+
884
+ * Gateway: Listener name. When both Port (experimental) and SectionName
885
+ are specified, the name and port of the selected listener must match
886
+ both specified values.
887
+ * Service: Port name. When both Port (experimental) and SectionName
888
+ are specified, the name and port of the selected listener must match
889
+ both specified values.
890
+
891
+ Implementations MAY choose to support attaching Routes to other resources.
892
+ If that is the case, they MUST clearly document how SectionName is
893
+ interpreted.
894
+
895
+ When unspecified (empty string), this will reference the entire resource.
896
+ For the purpose of status, an attachment is considered successful if at
897
+ least one section in the parent resource accepts it. For example, Gateway
898
+ listeners can restrict which Routes can attach to them by Route kind,
899
+ namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
900
+ the referencing Route, the Route MUST be considered successfully
901
+ attached. If no Gateway listeners accept attachment from this Route, the
902
+ Route MUST be considered detached from the Gateway.
903
+
904
+ Support: Core
905
+ type: string
906
+ maxLength: 253
907
+ minLength: 1
908
+ pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
909
+ podTemplate:
910
+ description: |-
911
+ Optional pod template used to configure the ACME challenge solver pods
912
+ used for HTTP01 challenges.
913
+ type: object
914
+ properties:
915
+ metadata:
916
+ description: |-
917
+ ObjectMeta overrides for the pod used to solve HTTP01 challenges.
918
+ Only the 'labels' and 'annotations' fields may be set.
919
+ If labels or annotations overlap with in-built values, the values here
920
+ will override the in-built values.
921
+ type: object
922
+ properties:
923
+ annotations:
924
+ description: Annotations that should be added to the created ACME HTTP01 solver pods.
925
+ type: object
926
+ additionalProperties:
927
+ type: string
928
+ labels:
929
+ description: Labels that should be added to the created ACME HTTP01 solver pods.
930
+ type: object
931
+ additionalProperties:
932
+ type: string
933
+ spec:
934
+ description: |-
935
+ PodSpec defines overrides for the HTTP01 challenge solver pod.
936
+ Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
937
+ All other fields will be ignored.
938
+ type: object
939
+ properties:
940
+ affinity:
941
+ description: If specified, the pod's scheduling constraints
942
+ type: object
943
+ properties:
944
+ nodeAffinity:
945
+ description: Describes node affinity scheduling rules for the pod.
946
+ type: object
947
+ properties:
948
+ preferredDuringSchedulingIgnoredDuringExecution:
949
+ description: |-
950
+ The scheduler will prefer to schedule pods to nodes that satisfy
951
+ the affinity expressions specified by this field, but it may choose
952
+ a node that violates one or more of the expressions. The node that is
953
+ most preferred is the one with the greatest sum of weights, i.e.
954
+ for each node that meets all of the scheduling requirements (resource
955
+ request, requiredDuringScheduling affinity expressions, etc.),
956
+ compute a sum by iterating through the elements of this field and adding
957
+ "weight" to the sum if the node matches the corresponding matchExpressions; the
958
+ node(s) with the highest sum are the most preferred.
959
+ type: array
960
+ items:
961
+ description: |-
962
+ An empty preferred scheduling term matches all objects with implicit weight 0
963
+ (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
964
+ type: object
965
+ required:
966
+ - preference
967
+ - weight
968
+ properties:
969
+ preference:
970
+ description: A node selector term, associated with the corresponding weight.
971
+ type: object
972
+ properties:
973
+ matchExpressions:
974
+ description: A list of node selector requirements by node's labels.
975
+ type: array
976
+ items:
977
+ description: |-
978
+ A node selector requirement is a selector that contains values, a key, and an operator
979
+ that relates the key and values.
980
+ type: object
981
+ required:
982
+ - key
983
+ - operator
984
+ properties:
985
+ key:
986
+ description: The label key that the selector applies to.
987
+ type: string
988
+ operator:
989
+ description: |-
990
+ Represents a key's relationship to a set of values.
991
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
992
+ type: string
993
+ values:
994
+ description: |-
995
+ An array of string values. If the operator is In or NotIn,
996
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
997
+ the values array must be empty. If the operator is Gt or Lt, the values
998
+ array must have a single element, which will be interpreted as an integer.
999
+ This array is replaced during a strategic merge patch.
1000
+ type: array
1001
+ items:
1002
+ type: string
1003
+ x-kubernetes-list-type: atomic
1004
+ x-kubernetes-list-type: atomic
1005
+ matchFields:
1006
+ description: A list of node selector requirements by node's fields.
1007
+ type: array
1008
+ items:
1009
+ description: |-
1010
+ A node selector requirement is a selector that contains values, a key, and an operator
1011
+ that relates the key and values.
1012
+ type: object
1013
+ required:
1014
+ - key
1015
+ - operator
1016
+ properties:
1017
+ key:
1018
+ description: The label key that the selector applies to.
1019
+ type: string
1020
+ operator:
1021
+ description: |-
1022
+ Represents a key's relationship to a set of values.
1023
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1024
+ type: string
1025
+ values:
1026
+ description: |-
1027
+ An array of string values. If the operator is In or NotIn,
1028
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1029
+ the values array must be empty. If the operator is Gt or Lt, the values
1030
+ array must have a single element, which will be interpreted as an integer.
1031
+ This array is replaced during a strategic merge patch.
1032
+ type: array
1033
+ items:
1034
+ type: string
1035
+ x-kubernetes-list-type: atomic
1036
+ x-kubernetes-list-type: atomic
1037
+ x-kubernetes-map-type: atomic
1038
+ weight:
1039
+ description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
1040
+ type: integer
1041
+ format: int32
1042
+ x-kubernetes-list-type: atomic
1043
+ requiredDuringSchedulingIgnoredDuringExecution:
1044
+ description: |-
1045
+ If the affinity requirements specified by this field are not met at
1046
+ scheduling time, the pod will not be scheduled onto the node.
1047
+ If the affinity requirements specified by this field cease to be met
1048
+ at some point during pod execution (e.g. due to an update), the system
1049
+ may or may not try to eventually evict the pod from its node.
1050
+ type: object
1051
+ required:
1052
+ - nodeSelectorTerms
1053
+ properties:
1054
+ nodeSelectorTerms:
1055
+ description: Required. A list of node selector terms. The terms are ORed.
1056
+ type: array
1057
+ items:
1058
+ description: |-
1059
+ A null or empty node selector term matches no objects. The requirements of
1060
+ them are ANDed.
1061
+ The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
1062
+ type: object
1063
+ properties:
1064
+ matchExpressions:
1065
+ description: A list of node selector requirements by node's labels.
1066
+ type: array
1067
+ items:
1068
+ description: |-
1069
+ A node selector requirement is a selector that contains values, a key, and an operator
1070
+ that relates the key and values.
1071
+ type: object
1072
+ required:
1073
+ - key
1074
+ - operator
1075
+ properties:
1076
+ key:
1077
+ description: The label key that the selector applies to.
1078
+ type: string
1079
+ operator:
1080
+ description: |-
1081
+ Represents a key's relationship to a set of values.
1082
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1083
+ type: string
1084
+ values:
1085
+ description: |-
1086
+ An array of string values. If the operator is In or NotIn,
1087
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1088
+ the values array must be empty. If the operator is Gt or Lt, the values
1089
+ array must have a single element, which will be interpreted as an integer.
1090
+ This array is replaced during a strategic merge patch.
1091
+ type: array
1092
+ items:
1093
+ type: string
1094
+ x-kubernetes-list-type: atomic
1095
+ x-kubernetes-list-type: atomic
1096
+ matchFields:
1097
+ description: A list of node selector requirements by node's fields.
1098
+ type: array
1099
+ items:
1100
+ description: |-
1101
+ A node selector requirement is a selector that contains values, a key, and an operator
1102
+ that relates the key and values.
1103
+ type: object
1104
+ required:
1105
+ - key
1106
+ - operator
1107
+ properties:
1108
+ key:
1109
+ description: The label key that the selector applies to.
1110
+ type: string
1111
+ operator:
1112
+ description: |-
1113
+ Represents a key's relationship to a set of values.
1114
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1115
+ type: string
1116
+ values:
1117
+ description: |-
1118
+ An array of string values. If the operator is In or NotIn,
1119
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1120
+ the values array must be empty. If the operator is Gt or Lt, the values
1121
+ array must have a single element, which will be interpreted as an integer.
1122
+ This array is replaced during a strategic merge patch.
1123
+ type: array
1124
+ items:
1125
+ type: string
1126
+ x-kubernetes-list-type: atomic
1127
+ x-kubernetes-list-type: atomic
1128
+ x-kubernetes-map-type: atomic
1129
+ x-kubernetes-list-type: atomic
1130
+ x-kubernetes-map-type: atomic
1131
+ podAffinity:
1132
+ description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
1133
+ type: object
1134
+ properties:
1135
+ preferredDuringSchedulingIgnoredDuringExecution:
1136
+ description: |-
1137
+ The scheduler will prefer to schedule pods to nodes that satisfy
1138
+ the affinity expressions specified by this field, but it may choose
1139
+ a node that violates one or more of the expressions. The node that is
1140
+ most preferred is the one with the greatest sum of weights, i.e.
1141
+ for each node that meets all of the scheduling requirements (resource
1142
+ request, requiredDuringScheduling affinity expressions, etc.),
1143
+ compute a sum by iterating through the elements of this field and adding
1144
+ "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
1145
+ node(s) with the highest sum are the most preferred.
1146
+ type: array
1147
+ items:
1148
+ description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
1149
+ type: object
1150
+ required:
1151
+ - podAffinityTerm
1152
+ - weight
1153
+ properties:
1154
+ podAffinityTerm:
1155
+ description: Required. A pod affinity term, associated with the corresponding weight.
1156
+ type: object
1157
+ required:
1158
+ - topologyKey
1159
+ properties:
1160
+ labelSelector:
1161
+ description: |-
1162
+ A label query over a set of resources, in this case pods.
1163
+ If it's null, this PodAffinityTerm matches with no Pods.
1164
+ type: object
1165
+ properties:
1166
+ matchExpressions:
1167
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1168
+ type: array
1169
+ items:
1170
+ description: |-
1171
+ A label selector requirement is a selector that contains values, a key, and an operator that
1172
+ relates the key and values.
1173
+ type: object
1174
+ required:
1175
+ - key
1176
+ - operator
1177
+ properties:
1178
+ key:
1179
+ description: key is the label key that the selector applies to.
1180
+ type: string
1181
+ operator:
1182
+ description: |-
1183
+ operator represents a key's relationship to a set of values.
1184
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1185
+ type: string
1186
+ values:
1187
+ description: |-
1188
+ values is an array of string values. If the operator is In or NotIn,
1189
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1190
+ the values array must be empty. This array is replaced during a strategic
1191
+ merge patch.
1192
+ type: array
1193
+ items:
1194
+ type: string
1195
+ x-kubernetes-list-type: atomic
1196
+ x-kubernetes-list-type: atomic
1197
+ matchLabels:
1198
+ description: |-
1199
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1200
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1201
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1202
+ type: object
1203
+ additionalProperties:
1204
+ type: string
1205
+ x-kubernetes-map-type: atomic
1206
+ matchLabelKeys:
1207
+ description: |-
1208
+ MatchLabelKeys is a set of pod label keys to select which pods will
1209
+ be taken into consideration. The keys are used to lookup values from the
1210
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
1211
+ to select the group of existing pods which pods will be taken into consideration
1212
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1213
+ pod labels will be ignored. The default value is empty.
1214
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1215
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
1216
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1217
+ type: array
1218
+ items:
1219
+ type: string
1220
+ x-kubernetes-list-type: atomic
1221
+ mismatchLabelKeys:
1222
+ description: |-
1223
+ MismatchLabelKeys is a set of pod label keys to select which pods will
1224
+ be taken into consideration. The keys are used to lookup values from the
1225
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
1226
+ to select the group of existing pods which pods will be taken into consideration
1227
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1228
+ pod labels will be ignored. The default value is empty.
1229
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1230
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1231
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1232
+ type: array
1233
+ items:
1234
+ type: string
1235
+ x-kubernetes-list-type: atomic
1236
+ namespaceSelector:
1237
+ description: |-
1238
+ A label query over the set of namespaces that the term applies to.
1239
+ The term is applied to the union of the namespaces selected by this field
1240
+ and the ones listed in the namespaces field.
1241
+ null selector and null or empty namespaces list means "this pod's namespace".
1242
+ An empty selector ({}) matches all namespaces.
1243
+ type: object
1244
+ properties:
1245
+ matchExpressions:
1246
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1247
+ type: array
1248
+ items:
1249
+ description: |-
1250
+ A label selector requirement is a selector that contains values, a key, and an operator that
1251
+ relates the key and values.
1252
+ type: object
1253
+ required:
1254
+ - key
1255
+ - operator
1256
+ properties:
1257
+ key:
1258
+ description: key is the label key that the selector applies to.
1259
+ type: string
1260
+ operator:
1261
+ description: |-
1262
+ operator represents a key's relationship to a set of values.
1263
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1264
+ type: string
1265
+ values:
1266
+ description: |-
1267
+ values is an array of string values. If the operator is In or NotIn,
1268
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1269
+ the values array must be empty. This array is replaced during a strategic
1270
+ merge patch.
1271
+ type: array
1272
+ items:
1273
+ type: string
1274
+ x-kubernetes-list-type: atomic
1275
+ x-kubernetes-list-type: atomic
1276
+ matchLabels:
1277
+ description: |-
1278
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1279
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1280
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1281
+ type: object
1282
+ additionalProperties:
1283
+ type: string
1284
+ x-kubernetes-map-type: atomic
1285
+ namespaces:
1286
+ description: |-
1287
+ namespaces specifies a static list of namespace names that the term applies to.
1288
+ The term is applied to the union of the namespaces listed in this field
1289
+ and the ones selected by namespaceSelector.
1290
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
1291
+ type: array
1292
+ items:
1293
+ type: string
1294
+ x-kubernetes-list-type: atomic
1295
+ topologyKey:
1296
+ description: |-
1297
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
1298
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
1299
+ whose value of the label with key topologyKey matches that of any node on which any of the
1300
+ selected pods is running.
1301
+ Empty topologyKey is not allowed.
1302
+ type: string
1303
+ weight:
1304
+ description: |-
1305
+ weight associated with matching the corresponding podAffinityTerm,
1306
+ in the range 1-100.
1307
+ type: integer
1308
+ format: int32
1309
+ x-kubernetes-list-type: atomic
1310
+ requiredDuringSchedulingIgnoredDuringExecution:
1311
+ description: |-
1312
+ If the affinity requirements specified by this field are not met at
1313
+ scheduling time, the pod will not be scheduled onto the node.
1314
+ If the affinity requirements specified by this field cease to be met
1315
+ at some point during pod execution (e.g. due to a pod label update), the
1316
+ system may or may not try to eventually evict the pod from its node.
1317
+ When there are multiple elements, the lists of nodes corresponding to each
1318
+ podAffinityTerm are intersected, i.e. all terms must be satisfied.
1319
+ type: array
1320
+ items:
1321
+ description: |-
1322
+ Defines a set of pods (namely those matching the labelSelector
1323
+ relative to the given namespace(s)) that this pod should be
1324
+ co-located (affinity) or not co-located (anti-affinity) with,
1325
+ where co-located is defined as running on a node whose value of
1326
+ the label with key <topologyKey> matches that of any node on which
1327
+ a pod of the set of pods is running
1328
+ type: object
1329
+ required:
1330
+ - topologyKey
1331
+ properties:
1332
+ labelSelector:
1333
+ description: |-
1334
+ A label query over a set of resources, in this case pods.
1335
+ If it's null, this PodAffinityTerm matches with no Pods.
1336
+ type: object
1337
+ properties:
1338
+ matchExpressions:
1339
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1340
+ type: array
1341
+ items:
1342
+ description: |-
1343
+ A label selector requirement is a selector that contains values, a key, and an operator that
1344
+ relates the key and values.
1345
+ type: object
1346
+ required:
1347
+ - key
1348
+ - operator
1349
+ properties:
1350
+ key:
1351
+ description: key is the label key that the selector applies to.
1352
+ type: string
1353
+ operator:
1354
+ description: |-
1355
+ operator represents a key's relationship to a set of values.
1356
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1357
+ type: string
1358
+ values:
1359
+ description: |-
1360
+ values is an array of string values. If the operator is In or NotIn,
1361
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1362
+ the values array must be empty. This array is replaced during a strategic
1363
+ merge patch.
1364
+ type: array
1365
+ items:
1366
+ type: string
1367
+ x-kubernetes-list-type: atomic
1368
+ x-kubernetes-list-type: atomic
1369
+ matchLabels:
1370
+ description: |-
1371
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1372
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1373
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1374
+ type: object
1375
+ additionalProperties:
1376
+ type: string
1377
+ x-kubernetes-map-type: atomic
1378
+ matchLabelKeys:
1379
+ description: |-
1380
+ MatchLabelKeys is a set of pod label keys to select which pods will
1381
+ be taken into consideration. The keys are used to lookup values from the
1382
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
1383
+ to select the group of existing pods which pods will be taken into consideration
1384
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1385
+ pod labels will be ignored. The default value is empty.
1386
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1387
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
1388
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1389
+ type: array
1390
+ items:
1391
+ type: string
1392
+ x-kubernetes-list-type: atomic
1393
+ mismatchLabelKeys:
1394
+ description: |-
1395
+ MismatchLabelKeys is a set of pod label keys to select which pods will
1396
+ be taken into consideration. The keys are used to lookup values from the
1397
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
1398
+ to select the group of existing pods which pods will be taken into consideration
1399
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1400
+ pod labels will be ignored. The default value is empty.
1401
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1402
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1403
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1404
+ type: array
1405
+ items:
1406
+ type: string
1407
+ x-kubernetes-list-type: atomic
1408
+ namespaceSelector:
1409
+ description: |-
1410
+ A label query over the set of namespaces that the term applies to.
1411
+ The term is applied to the union of the namespaces selected by this field
1412
+ and the ones listed in the namespaces field.
1413
+ null selector and null or empty namespaces list means "this pod's namespace".
1414
+ An empty selector ({}) matches all namespaces.
1415
+ type: object
1416
+ properties:
1417
+ matchExpressions:
1418
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1419
+ type: array
1420
+ items:
1421
+ description: |-
1422
+ A label selector requirement is a selector that contains values, a key, and an operator that
1423
+ relates the key and values.
1424
+ type: object
1425
+ required:
1426
+ - key
1427
+ - operator
1428
+ properties:
1429
+ key:
1430
+ description: key is the label key that the selector applies to.
1431
+ type: string
1432
+ operator:
1433
+ description: |-
1434
+ operator represents a key's relationship to a set of values.
1435
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1436
+ type: string
1437
+ values:
1438
+ description: |-
1439
+ values is an array of string values. If the operator is In or NotIn,
1440
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1441
+ the values array must be empty. This array is replaced during a strategic
1442
+ merge patch.
1443
+ type: array
1444
+ items:
1445
+ type: string
1446
+ x-kubernetes-list-type: atomic
1447
+ x-kubernetes-list-type: atomic
1448
+ matchLabels:
1449
+ description: |-
1450
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1451
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1452
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1453
+ type: object
1454
+ additionalProperties:
1455
+ type: string
1456
+ x-kubernetes-map-type: atomic
1457
+ namespaces:
1458
+ description: |-
1459
+ namespaces specifies a static list of namespace names that the term applies to.
1460
+ The term is applied to the union of the namespaces listed in this field
1461
+ and the ones selected by namespaceSelector.
1462
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
1463
+ type: array
1464
+ items:
1465
+ type: string
1466
+ x-kubernetes-list-type: atomic
1467
+ topologyKey:
1468
+ description: |-
1469
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
1470
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
1471
+ whose value of the label with key topologyKey matches that of any node on which any of the
1472
+ selected pods is running.
1473
+ Empty topologyKey is not allowed.
1474
+ type: string
1475
+ x-kubernetes-list-type: atomic
1476
+ podAntiAffinity:
1477
+ description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
1478
+ type: object
1479
+ properties:
1480
+ preferredDuringSchedulingIgnoredDuringExecution:
1481
+ description: |-
1482
+ The scheduler will prefer to schedule pods to nodes that satisfy
1483
+ the anti-affinity expressions specified by this field, but it may choose
1484
+ a node that violates one or more of the expressions. The node that is
1485
+ most preferred is the one with the greatest sum of weights, i.e.
1486
+ for each node that meets all of the scheduling requirements (resource
1487
+ request, requiredDuringScheduling anti-affinity expressions, etc.),
1488
+ compute a sum by iterating through the elements of this field and adding
1489
+ "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
1490
+ node(s) with the highest sum are the most preferred.
1491
+ type: array
1492
+ items:
1493
+ description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
1494
+ type: object
1495
+ required:
1496
+ - podAffinityTerm
1497
+ - weight
1498
+ properties:
1499
+ podAffinityTerm:
1500
+ description: Required. A pod affinity term, associated with the corresponding weight.
1501
+ type: object
1502
+ required:
1503
+ - topologyKey
1504
+ properties:
1505
+ labelSelector:
1506
+ description: |-
1507
+ A label query over a set of resources, in this case pods.
1508
+ If it's null, this PodAffinityTerm matches with no Pods.
1509
+ type: object
1510
+ properties:
1511
+ matchExpressions:
1512
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1513
+ type: array
1514
+ items:
1515
+ description: |-
1516
+ A label selector requirement is a selector that contains values, a key, and an operator that
1517
+ relates the key and values.
1518
+ type: object
1519
+ required:
1520
+ - key
1521
+ - operator
1522
+ properties:
1523
+ key:
1524
+ description: key is the label key that the selector applies to.
1525
+ type: string
1526
+ operator:
1527
+ description: |-
1528
+ operator represents a key's relationship to a set of values.
1529
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1530
+ type: string
1531
+ values:
1532
+ description: |-
1533
+ values is an array of string values. If the operator is In or NotIn,
1534
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1535
+ the values array must be empty. This array is replaced during a strategic
1536
+ merge patch.
1537
+ type: array
1538
+ items:
1539
+ type: string
1540
+ x-kubernetes-list-type: atomic
1541
+ x-kubernetes-list-type: atomic
1542
+ matchLabels:
1543
+ description: |-
1544
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1545
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1546
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1547
+ type: object
1548
+ additionalProperties:
1549
+ type: string
1550
+ x-kubernetes-map-type: atomic
1551
+ matchLabelKeys:
1552
+ description: |-
1553
+ MatchLabelKeys is a set of pod label keys to select which pods will
1554
+ be taken into consideration. The keys are used to lookup values from the
1555
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
1556
+ to select the group of existing pods which pods will be taken into consideration
1557
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1558
+ pod labels will be ignored. The default value is empty.
1559
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1560
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
1561
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1562
+ type: array
1563
+ items:
1564
+ type: string
1565
+ x-kubernetes-list-type: atomic
1566
+ mismatchLabelKeys:
1567
+ description: |-
1568
+ MismatchLabelKeys is a set of pod label keys to select which pods will
1569
+ be taken into consideration. The keys are used to lookup values from the
1570
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
1571
+ to select the group of existing pods which pods will be taken into consideration
1572
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1573
+ pod labels will be ignored. The default value is empty.
1574
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1575
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1576
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1577
+ type: array
1578
+ items:
1579
+ type: string
1580
+ x-kubernetes-list-type: atomic
1581
+ namespaceSelector:
1582
+ description: |-
1583
+ A label query over the set of namespaces that the term applies to.
1584
+ The term is applied to the union of the namespaces selected by this field
1585
+ and the ones listed in the namespaces field.
1586
+ null selector and null or empty namespaces list means "this pod's namespace".
1587
+ An empty selector ({}) matches all namespaces.
1588
+ type: object
1589
+ properties:
1590
+ matchExpressions:
1591
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1592
+ type: array
1593
+ items:
1594
+ description: |-
1595
+ A label selector requirement is a selector that contains values, a key, and an operator that
1596
+ relates the key and values.
1597
+ type: object
1598
+ required:
1599
+ - key
1600
+ - operator
1601
+ properties:
1602
+ key:
1603
+ description: key is the label key that the selector applies to.
1604
+ type: string
1605
+ operator:
1606
+ description: |-
1607
+ operator represents a key's relationship to a set of values.
1608
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1609
+ type: string
1610
+ values:
1611
+ description: |-
1612
+ values is an array of string values. If the operator is In or NotIn,
1613
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1614
+ the values array must be empty. This array is replaced during a strategic
1615
+ merge patch.
1616
+ type: array
1617
+ items:
1618
+ type: string
1619
+ x-kubernetes-list-type: atomic
1620
+ x-kubernetes-list-type: atomic
1621
+ matchLabels:
1622
+ description: |-
1623
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1624
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1625
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1626
+ type: object
1627
+ additionalProperties:
1628
+ type: string
1629
+ x-kubernetes-map-type: atomic
1630
+ namespaces:
1631
+ description: |-
1632
+ namespaces specifies a static list of namespace names that the term applies to.
1633
+ The term is applied to the union of the namespaces listed in this field
1634
+ and the ones selected by namespaceSelector.
1635
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
1636
+ type: array
1637
+ items:
1638
+ type: string
1639
+ x-kubernetes-list-type: atomic
1640
+ topologyKey:
1641
+ description: |-
1642
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
1643
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
1644
+ whose value of the label with key topologyKey matches that of any node on which any of the
1645
+ selected pods is running.
1646
+ Empty topologyKey is not allowed.
1647
+ type: string
1648
+ weight:
1649
+ description: |-
1650
+ weight associated with matching the corresponding podAffinityTerm,
1651
+ in the range 1-100.
1652
+ type: integer
1653
+ format: int32
1654
+ x-kubernetes-list-type: atomic
1655
+ requiredDuringSchedulingIgnoredDuringExecution:
1656
+ description: |-
1657
+ If the anti-affinity requirements specified by this field are not met at
1658
+ scheduling time, the pod will not be scheduled onto the node.
1659
+ If the anti-affinity requirements specified by this field cease to be met
1660
+ at some point during pod execution (e.g. due to a pod label update), the
1661
+ system may or may not try to eventually evict the pod from its node.
1662
+ When there are multiple elements, the lists of nodes corresponding to each
1663
+ podAffinityTerm are intersected, i.e. all terms must be satisfied.
1664
+ type: array
1665
+ items:
1666
+ description: |-
1667
+ Defines a set of pods (namely those matching the labelSelector
1668
+ relative to the given namespace(s)) that this pod should be
1669
+ co-located (affinity) or not co-located (anti-affinity) with,
1670
+ where co-located is defined as running on a node whose value of
1671
+ the label with key <topologyKey> matches that of any node on which
1672
+ a pod of the set of pods is running
1673
+ type: object
1674
+ required:
1675
+ - topologyKey
1676
+ properties:
1677
+ labelSelector:
1678
+ description: |-
1679
+ A label query over a set of resources, in this case pods.
1680
+ If it's null, this PodAffinityTerm matches with no Pods.
1681
+ type: object
1682
+ properties:
1683
+ matchExpressions:
1684
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1685
+ type: array
1686
+ items:
1687
+ description: |-
1688
+ A label selector requirement is a selector that contains values, a key, and an operator that
1689
+ relates the key and values.
1690
+ type: object
1691
+ required:
1692
+ - key
1693
+ - operator
1694
+ properties:
1695
+ key:
1696
+ description: key is the label key that the selector applies to.
1697
+ type: string
1698
+ operator:
1699
+ description: |-
1700
+ operator represents a key's relationship to a set of values.
1701
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1702
+ type: string
1703
+ values:
1704
+ description: |-
1705
+ values is an array of string values. If the operator is In or NotIn,
1706
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1707
+ the values array must be empty. This array is replaced during a strategic
1708
+ merge patch.
1709
+ type: array
1710
+ items:
1711
+ type: string
1712
+ x-kubernetes-list-type: atomic
1713
+ x-kubernetes-list-type: atomic
1714
+ matchLabels:
1715
+ description: |-
1716
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1717
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1718
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1719
+ type: object
1720
+ additionalProperties:
1721
+ type: string
1722
+ x-kubernetes-map-type: atomic
1723
+ matchLabelKeys:
1724
+ description: |-
1725
+ MatchLabelKeys is a set of pod label keys to select which pods will
1726
+ be taken into consideration. The keys are used to lookup values from the
1727
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
1728
+ to select the group of existing pods which pods will be taken into consideration
1729
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1730
+ pod labels will be ignored. The default value is empty.
1731
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
1732
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
1733
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1734
+ type: array
1735
+ items:
1736
+ type: string
1737
+ x-kubernetes-list-type: atomic
1738
+ mismatchLabelKeys:
1739
+ description: |-
1740
+ MismatchLabelKeys is a set of pod label keys to select which pods will
1741
+ be taken into consideration. The keys are used to lookup values from the
1742
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
1743
+ to select the group of existing pods which pods will be taken into consideration
1744
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
1745
+ pod labels will be ignored. The default value is empty.
1746
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
1747
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
1748
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
1749
+ type: array
1750
+ items:
1751
+ type: string
1752
+ x-kubernetes-list-type: atomic
1753
+ namespaceSelector:
1754
+ description: |-
1755
+ A label query over the set of namespaces that the term applies to.
1756
+ The term is applied to the union of the namespaces selected by this field
1757
+ and the ones listed in the namespaces field.
1758
+ null selector and null or empty namespaces list means "this pod's namespace".
1759
+ An empty selector ({}) matches all namespaces.
1760
+ type: object
1761
+ properties:
1762
+ matchExpressions:
1763
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
1764
+ type: array
1765
+ items:
1766
+ description: |-
1767
+ A label selector requirement is a selector that contains values, a key, and an operator that
1768
+ relates the key and values.
1769
+ type: object
1770
+ required:
1771
+ - key
1772
+ - operator
1773
+ properties:
1774
+ key:
1775
+ description: key is the label key that the selector applies to.
1776
+ type: string
1777
+ operator:
1778
+ description: |-
1779
+ operator represents a key's relationship to a set of values.
1780
+ Valid operators are In, NotIn, Exists and DoesNotExist.
1781
+ type: string
1782
+ values:
1783
+ description: |-
1784
+ values is an array of string values. If the operator is In or NotIn,
1785
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
1786
+ the values array must be empty. This array is replaced during a strategic
1787
+ merge patch.
1788
+ type: array
1789
+ items:
1790
+ type: string
1791
+ x-kubernetes-list-type: atomic
1792
+ x-kubernetes-list-type: atomic
1793
+ matchLabels:
1794
+ description: |-
1795
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
1796
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
1797
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
1798
+ type: object
1799
+ additionalProperties:
1800
+ type: string
1801
+ x-kubernetes-map-type: atomic
1802
+ namespaces:
1803
+ description: |-
1804
+ namespaces specifies a static list of namespace names that the term applies to.
1805
+ The term is applied to the union of the namespaces listed in this field
1806
+ and the ones selected by namespaceSelector.
1807
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
1808
+ type: array
1809
+ items:
1810
+ type: string
1811
+ x-kubernetes-list-type: atomic
1812
+ topologyKey:
1813
+ description: |-
1814
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
1815
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
1816
+ whose value of the label with key topologyKey matches that of any node on which any of the
1817
+ selected pods is running.
1818
+ Empty topologyKey is not allowed.
1819
+ type: string
1820
+ x-kubernetes-list-type: atomic
1821
+ imagePullSecrets:
1822
+ description: If specified, the pod's imagePullSecrets
1823
+ type: array
1824
+ items:
1825
+ description: |-
1826
+ LocalObjectReference contains enough information to let you locate the
1827
+ referenced object inside the same namespace.
1828
+ type: object
1829
+ properties:
1830
+ name:
1831
+ description: |-
1832
+ Name of the referent.
1833
+ This field is effectively required, but due to backwards compatibility is
1834
+ allowed to be empty. Instances of this type with an empty value here are
1835
+ almost certainly wrong.
1836
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1837
+ type: string
1838
+ default: ""
1839
+ x-kubernetes-map-type: atomic
1840
+ nodeSelector:
1841
+ description: |-
1842
+ NodeSelector is a selector which must be true for the pod to fit on a node.
1843
+ Selector which must match a node's labels for the pod to be scheduled on that node.
1844
+ More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
1845
+ type: object
1846
+ additionalProperties:
1847
+ type: string
1848
+ priorityClassName:
1849
+ description: If specified, the pod's priorityClassName.
1850
+ type: string
1851
+ securityContext:
1852
+ description: If specified, the pod's security context
1853
+ type: object
1854
+ properties:
1855
+ fsGroup:
1856
+ description: |-
1857
+ A special supplemental group that applies to all containers in a pod.
1858
+ Some volume types allow the Kubelet to change the ownership of that volume
1859
+ to be owned by the pod:
1860
+
1861
+ 1. The owning GID will be the FSGroup
1862
+ 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
1863
+ 3. The permission bits are OR'd with rw-rw----
1864
+
1865
+ If unset, the Kubelet will not modify the ownership and permissions of any volume.
1866
+ Note that this field cannot be set when spec.os.name is windows.
1867
+ type: integer
1868
+ format: int64
1869
+ fsGroupChangePolicy:
1870
+ description: |-
1871
+ fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
1872
+ before being exposed inside Pod. This field will only apply to
1873
+ volume types which support fsGroup based ownership(and permissions).
1874
+ It will have no effect on ephemeral volume types such as: secret, configmaps
1875
+ and emptydir.
1876
+ Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
1877
+ Note that this field cannot be set when spec.os.name is windows.
1878
+ type: string
1879
+ runAsGroup:
1880
+ description: |-
1881
+ The GID to run the entrypoint of the container process.
1882
+ Uses runtime default if unset.
1883
+ May also be set in SecurityContext. If set in both SecurityContext and
1884
+ PodSecurityContext, the value specified in SecurityContext takes precedence
1885
+ for that container.
1886
+ Note that this field cannot be set when spec.os.name is windows.
1887
+ type: integer
1888
+ format: int64
1889
+ runAsNonRoot:
1890
+ description: |-
1891
+ Indicates that the container must run as a non-root user.
1892
+ If true, the Kubelet will validate the image at runtime to ensure that it
1893
+ does not run as UID 0 (root) and fail to start the container if it does.
1894
+ If unset or false, no such validation will be performed.
1895
+ May also be set in SecurityContext. If set in both SecurityContext and
1896
+ PodSecurityContext, the value specified in SecurityContext takes precedence.
1897
+ type: boolean
1898
+ runAsUser:
1899
+ description: |-
1900
+ The UID to run the entrypoint of the container process.
1901
+ Defaults to user specified in image metadata if unspecified.
1902
+ May also be set in SecurityContext. If set in both SecurityContext and
1903
+ PodSecurityContext, the value specified in SecurityContext takes precedence
1904
+ for that container.
1905
+ Note that this field cannot be set when spec.os.name is windows.
1906
+ type: integer
1907
+ format: int64
1908
+ seLinuxOptions:
1909
+ description: |-
1910
+ The SELinux context to be applied to all containers.
1911
+ If unspecified, the container runtime will allocate a random SELinux context for each
1912
+ container. May also be set in SecurityContext. If set in
1913
+ both SecurityContext and PodSecurityContext, the value specified in SecurityContext
1914
+ takes precedence for that container.
1915
+ Note that this field cannot be set when spec.os.name is windows.
1916
+ type: object
1917
+ properties:
1918
+ level:
1919
+ description: Level is SELinux level label that applies to the container.
1920
+ type: string
1921
+ role:
1922
+ description: Role is a SELinux role label that applies to the container.
1923
+ type: string
1924
+ type:
1925
+ description: Type is a SELinux type label that applies to the container.
1926
+ type: string
1927
+ user:
1928
+ description: User is a SELinux user label that applies to the container.
1929
+ type: string
1930
+ seccompProfile:
1931
+ description: |-
1932
+ The seccomp options to use by the containers in this pod.
1933
+ Note that this field cannot be set when spec.os.name is windows.
1934
+ type: object
1935
+ required:
1936
+ - type
1937
+ properties:
1938
+ localhostProfile:
1939
+ description: |-
1940
+ localhostProfile indicates a profile defined in a file on the node should be used.
1941
+ The profile must be preconfigured on the node to work.
1942
+ Must be a descending path, relative to the kubelet's configured seccomp profile location.
1943
+ Must be set if type is "Localhost". Must NOT be set for any other type.
1944
+ type: string
1945
+ type:
1946
+ description: |-
1947
+ type indicates which kind of seccomp profile will be applied.
1948
+ Valid options are:
1949
+
1950
+ Localhost - a profile defined in a file on the node should be used.
1951
+ RuntimeDefault - the container runtime default profile should be used.
1952
+ Unconfined - no profile should be applied.
1953
+ type: string
1954
+ supplementalGroups:
1955
+ description: |-
1956
+ A list of groups applied to the first process run in each container, in addition
1957
+ to the container's primary GID, the fsGroup (if specified), and group memberships
1958
+ defined in the container image for the uid of the container process. If unspecified,
1959
+ no additional groups are added to any container. Note that group memberships
1960
+ defined in the container image for the uid of the container process are still effective,
1961
+ even if they are not included in this list.
1962
+ Note that this field cannot be set when spec.os.name is windows.
1963
+ type: array
1964
+ items:
1965
+ type: integer
1966
+ format: int64
1967
+ sysctls:
1968
+ description: |-
1969
+ Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
1970
+ sysctls (by the container runtime) might fail to launch.
1971
+ Note that this field cannot be set when spec.os.name is windows.
1972
+ type: array
1973
+ items:
1974
+ description: Sysctl defines a kernel parameter to be set
1975
+ type: object
1976
+ required:
1977
+ - name
1978
+ - value
1979
+ properties:
1980
+ name:
1981
+ description: Name of a property to set
1982
+ type: string
1983
+ value:
1984
+ description: Value of a property to set
1985
+ type: string
1986
+ serviceAccountName:
1987
+ description: If specified, the pod's service account
1988
+ type: string
1989
+ tolerations:
1990
+ description: If specified, the pod's tolerations.
1991
+ type: array
1992
+ items:
1993
+ description: |-
1994
+ The pod this Toleration is attached to tolerates any taint that matches
1995
+ the triple <key,value,effect> using the matching operator <operator>.
1996
+ type: object
1997
+ properties:
1998
+ effect:
1999
+ description: |-
2000
+ Effect indicates the taint effect to match. Empty means match all taint effects.
2001
+ When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
2002
+ type: string
2003
+ key:
2004
+ description: |-
2005
+ Key is the taint key that the toleration applies to. Empty means match all taint keys.
2006
+ If the key is empty, operator must be Exists; this combination means to match all values and all keys.
2007
+ type: string
2008
+ operator:
2009
+ description: |-
2010
+ Operator represents a key's relationship to the value.
2011
+ Valid operators are Exists and Equal. Defaults to Equal.
2012
+ Exists is equivalent to wildcard for value, so that a pod can
2013
+ tolerate all taints of a particular category.
2014
+ type: string
2015
+ tolerationSeconds:
2016
+ description: |-
2017
+ TolerationSeconds represents the period of time the toleration (which must be
2018
+ of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
2019
+ it is not set, which means tolerate the taint forever (do not evict). Zero and
2020
+ negative values will be treated as 0 (evict immediately) by the system.
2021
+ type: integer
2022
+ format: int64
2023
+ value:
2024
+ description: |-
2025
+ Value is the taint value the toleration matches to.
2026
+ If the operator is Exists, the value should be empty, otherwise just a regular string.
2027
+ type: string
2028
+ serviceType:
2029
+ description: |-
2030
+ Optional service type for Kubernetes solver service. Supported values
2031
+ are NodePort or ClusterIP. If unset, defaults to NodePort.
2032
+ type: string
2033
+ ingress:
2034
+ description: |-
2035
+ The ingress based HTTP01 challenge solver will solve challenges by
2036
+ creating or modifying Ingress resources in order to route requests for
2037
+ '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are
2038
+ provisioned by cert-manager for each Challenge to be completed.
2039
+ type: object
2040
+ properties:
2041
+ class:
2042
+ description: |-
2043
+ This field configures the annotation `kubernetes.io/ingress.class` when
2044
+ creating Ingress resources to solve ACME challenges that use this
2045
+ challenge solver. Only one of `class`, `name` or `ingressClassName` may
2046
+ be specified.
2047
+ type: string
2048
+ ingressClassName:
2049
+ description: |-
2050
+ This field configures the field `ingressClassName` on the created Ingress
2051
+ resources used to solve ACME challenges that use this challenge solver.
2052
+ This is the recommended way of configuring the ingress class. Only one of
2053
+ `class`, `name` or `ingressClassName` may be specified.
2054
+ type: string
2055
+ ingressTemplate:
2056
+ description: |-
2057
+ Optional ingress template used to configure the ACME challenge solver
2058
+ ingress used for HTTP01 challenges.
2059
+ type: object
2060
+ properties:
2061
+ metadata:
2062
+ description: |-
2063
+ ObjectMeta overrides for the ingress used to solve HTTP01 challenges.
2064
+ Only the 'labels' and 'annotations' fields may be set.
2065
+ If labels or annotations overlap with in-built values, the values here
2066
+ will override the in-built values.
2067
+ type: object
2068
+ properties:
2069
+ annotations:
2070
+ description: Annotations that should be added to the created ACME HTTP01 solver ingress.
2071
+ type: object
2072
+ additionalProperties:
2073
+ type: string
2074
+ labels:
2075
+ description: Labels that should be added to the created ACME HTTP01 solver ingress.
2076
+ type: object
2077
+ additionalProperties:
2078
+ type: string
2079
+ name:
2080
+ description: |-
2081
+ The name of the ingress resource that should have ACME challenge solving
2082
+ routes inserted into it in order to solve HTTP01 challenges.
2083
+ This is typically used in conjunction with ingress controllers like
2084
+ ingress-gce, which maintains a 1:1 mapping between external IPs and
2085
+ ingress resources. Only one of `class`, `name` or `ingressClassName` may
2086
+ be specified.
2087
+ type: string
2088
+ podTemplate:
2089
+ description: |-
2090
+ Optional pod template used to configure the ACME challenge solver pods
2091
+ used for HTTP01 challenges.
2092
+ type: object
2093
+ properties:
2094
+ metadata:
2095
+ description: |-
2096
+ ObjectMeta overrides for the pod used to solve HTTP01 challenges.
2097
+ Only the 'labels' and 'annotations' fields may be set.
2098
+ If labels or annotations overlap with in-built values, the values here
2099
+ will override the in-built values.
2100
+ type: object
2101
+ properties:
2102
+ annotations:
2103
+ description: Annotations that should be added to the created ACME HTTP01 solver pods.
2104
+ type: object
2105
+ additionalProperties:
2106
+ type: string
2107
+ labels:
2108
+ description: Labels that should be added to the created ACME HTTP01 solver pods.
2109
+ type: object
2110
+ additionalProperties:
2111
+ type: string
2112
+ spec:
2113
+ description: |-
2114
+ PodSpec defines overrides for the HTTP01 challenge solver pod.
2115
+ Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
2116
+ All other fields will be ignored.
2117
+ type: object
2118
+ properties:
2119
+ affinity:
2120
+ description: If specified, the pod's scheduling constraints
2121
+ type: object
2122
+ properties:
2123
+ nodeAffinity:
2124
+ description: Describes node affinity scheduling rules for the pod.
2125
+ type: object
2126
+ properties:
2127
+ preferredDuringSchedulingIgnoredDuringExecution:
2128
+ description: |-
2129
+ The scheduler will prefer to schedule pods to nodes that satisfy
2130
+ the affinity expressions specified by this field, but it may choose
2131
+ a node that violates one or more of the expressions. The node that is
2132
+ most preferred is the one with the greatest sum of weights, i.e.
2133
+ for each node that meets all of the scheduling requirements (resource
2134
+ request, requiredDuringScheduling affinity expressions, etc.),
2135
+ compute a sum by iterating through the elements of this field and adding
2136
+ "weight" to the sum if the node matches the corresponding matchExpressions; the
2137
+ node(s) with the highest sum are the most preferred.
2138
+ type: array
2139
+ items:
2140
+ description: |-
2141
+ An empty preferred scheduling term matches all objects with implicit weight 0
2142
+ (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
2143
+ type: object
2144
+ required:
2145
+ - preference
2146
+ - weight
2147
+ properties:
2148
+ preference:
2149
+ description: A node selector term, associated with the corresponding weight.
2150
+ type: object
2151
+ properties:
2152
+ matchExpressions:
2153
+ description: A list of node selector requirements by node's labels.
2154
+ type: array
2155
+ items:
2156
+ description: |-
2157
+ A node selector requirement is a selector that contains values, a key, and an operator
2158
+ that relates the key and values.
2159
+ type: object
2160
+ required:
2161
+ - key
2162
+ - operator
2163
+ properties:
2164
+ key:
2165
+ description: The label key that the selector applies to.
2166
+ type: string
2167
+ operator:
2168
+ description: |-
2169
+ Represents a key's relationship to a set of values.
2170
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2171
+ type: string
2172
+ values:
2173
+ description: |-
2174
+ An array of string values. If the operator is In or NotIn,
2175
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2176
+ the values array must be empty. If the operator is Gt or Lt, the values
2177
+ array must have a single element, which will be interpreted as an integer.
2178
+ This array is replaced during a strategic merge patch.
2179
+ type: array
2180
+ items:
2181
+ type: string
2182
+ x-kubernetes-list-type: atomic
2183
+ x-kubernetes-list-type: atomic
2184
+ matchFields:
2185
+ description: A list of node selector requirements by node's fields.
2186
+ type: array
2187
+ items:
2188
+ description: |-
2189
+ A node selector requirement is a selector that contains values, a key, and an operator
2190
+ that relates the key and values.
2191
+ type: object
2192
+ required:
2193
+ - key
2194
+ - operator
2195
+ properties:
2196
+ key:
2197
+ description: The label key that the selector applies to.
2198
+ type: string
2199
+ operator:
2200
+ description: |-
2201
+ Represents a key's relationship to a set of values.
2202
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2203
+ type: string
2204
+ values:
2205
+ description: |-
2206
+ An array of string values. If the operator is In or NotIn,
2207
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2208
+ the values array must be empty. If the operator is Gt or Lt, the values
2209
+ array must have a single element, which will be interpreted as an integer.
2210
+ This array is replaced during a strategic merge patch.
2211
+ type: array
2212
+ items:
2213
+ type: string
2214
+ x-kubernetes-list-type: atomic
2215
+ x-kubernetes-list-type: atomic
2216
+ x-kubernetes-map-type: atomic
2217
+ weight:
2218
+ description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
2219
+ type: integer
2220
+ format: int32
2221
+ x-kubernetes-list-type: atomic
2222
+ requiredDuringSchedulingIgnoredDuringExecution:
2223
+ description: |-
2224
+ If the affinity requirements specified by this field are not met at
2225
+ scheduling time, the pod will not be scheduled onto the node.
2226
+ If the affinity requirements specified by this field cease to be met
2227
+ at some point during pod execution (e.g. due to an update), the system
2228
+ may or may not try to eventually evict the pod from its node.
2229
+ type: object
2230
+ required:
2231
+ - nodeSelectorTerms
2232
+ properties:
2233
+ nodeSelectorTerms:
2234
+ description: Required. A list of node selector terms. The terms are ORed.
2235
+ type: array
2236
+ items:
2237
+ description: |-
2238
+ A null or empty node selector term matches no objects. The requirements of
2239
+ them are ANDed.
2240
+ The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
2241
+ type: object
2242
+ properties:
2243
+ matchExpressions:
2244
+ description: A list of node selector requirements by node's labels.
2245
+ type: array
2246
+ items:
2247
+ description: |-
2248
+ A node selector requirement is a selector that contains values, a key, and an operator
2249
+ that relates the key and values.
2250
+ type: object
2251
+ required:
2252
+ - key
2253
+ - operator
2254
+ properties:
2255
+ key:
2256
+ description: The label key that the selector applies to.
2257
+ type: string
2258
+ operator:
2259
+ description: |-
2260
+ Represents a key's relationship to a set of values.
2261
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2262
+ type: string
2263
+ values:
2264
+ description: |-
2265
+ An array of string values. If the operator is In or NotIn,
2266
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2267
+ the values array must be empty. If the operator is Gt or Lt, the values
2268
+ array must have a single element, which will be interpreted as an integer.
2269
+ This array is replaced during a strategic merge patch.
2270
+ type: array
2271
+ items:
2272
+ type: string
2273
+ x-kubernetes-list-type: atomic
2274
+ x-kubernetes-list-type: atomic
2275
+ matchFields:
2276
+ description: A list of node selector requirements by node's fields.
2277
+ type: array
2278
+ items:
2279
+ description: |-
2280
+ A node selector requirement is a selector that contains values, a key, and an operator
2281
+ that relates the key and values.
2282
+ type: object
2283
+ required:
2284
+ - key
2285
+ - operator
2286
+ properties:
2287
+ key:
2288
+ description: The label key that the selector applies to.
2289
+ type: string
2290
+ operator:
2291
+ description: |-
2292
+ Represents a key's relationship to a set of values.
2293
+ Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2294
+ type: string
2295
+ values:
2296
+ description: |-
2297
+ An array of string values. If the operator is In or NotIn,
2298
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2299
+ the values array must be empty. If the operator is Gt or Lt, the values
2300
+ array must have a single element, which will be interpreted as an integer.
2301
+ This array is replaced during a strategic merge patch.
2302
+ type: array
2303
+ items:
2304
+ type: string
2305
+ x-kubernetes-list-type: atomic
2306
+ x-kubernetes-list-type: atomic
2307
+ x-kubernetes-map-type: atomic
2308
+ x-kubernetes-list-type: atomic
2309
+ x-kubernetes-map-type: atomic
2310
+ podAffinity:
2311
+ description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
2312
+ type: object
2313
+ properties:
2314
+ preferredDuringSchedulingIgnoredDuringExecution:
2315
+ description: |-
2316
+ The scheduler will prefer to schedule pods to nodes that satisfy
2317
+ the affinity expressions specified by this field, but it may choose
2318
+ a node that violates one or more of the expressions. The node that is
2319
+ most preferred is the one with the greatest sum of weights, i.e.
2320
+ for each node that meets all of the scheduling requirements (resource
2321
+ request, requiredDuringScheduling affinity expressions, etc.),
2322
+ compute a sum by iterating through the elements of this field and adding
2323
+ "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2324
+ node(s) with the highest sum are the most preferred.
2325
+ type: array
2326
+ items:
2327
+ description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2328
+ type: object
2329
+ required:
2330
+ - podAffinityTerm
2331
+ - weight
2332
+ properties:
2333
+ podAffinityTerm:
2334
+ description: Required. A pod affinity term, associated with the corresponding weight.
2335
+ type: object
2336
+ required:
2337
+ - topologyKey
2338
+ properties:
2339
+ labelSelector:
2340
+ description: |-
2341
+ A label query over a set of resources, in this case pods.
2342
+ If it's null, this PodAffinityTerm matches with no Pods.
2343
+ type: object
2344
+ properties:
2345
+ matchExpressions:
2346
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2347
+ type: array
2348
+ items:
2349
+ description: |-
2350
+ A label selector requirement is a selector that contains values, a key, and an operator that
2351
+ relates the key and values.
2352
+ type: object
2353
+ required:
2354
+ - key
2355
+ - operator
2356
+ properties:
2357
+ key:
2358
+ description: key is the label key that the selector applies to.
2359
+ type: string
2360
+ operator:
2361
+ description: |-
2362
+ operator represents a key's relationship to a set of values.
2363
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2364
+ type: string
2365
+ values:
2366
+ description: |-
2367
+ values is an array of string values. If the operator is In or NotIn,
2368
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2369
+ the values array must be empty. This array is replaced during a strategic
2370
+ merge patch.
2371
+ type: array
2372
+ items:
2373
+ type: string
2374
+ x-kubernetes-list-type: atomic
2375
+ x-kubernetes-list-type: atomic
2376
+ matchLabels:
2377
+ description: |-
2378
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2379
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2380
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2381
+ type: object
2382
+ additionalProperties:
2383
+ type: string
2384
+ x-kubernetes-map-type: atomic
2385
+ matchLabelKeys:
2386
+ description: |-
2387
+ MatchLabelKeys is a set of pod label keys to select which pods will
2388
+ be taken into consideration. The keys are used to lookup values from the
2389
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2390
+ to select the group of existing pods which pods will be taken into consideration
2391
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2392
+ pod labels will be ignored. The default value is empty.
2393
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2394
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
2395
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2396
+ type: array
2397
+ items:
2398
+ type: string
2399
+ x-kubernetes-list-type: atomic
2400
+ mismatchLabelKeys:
2401
+ description: |-
2402
+ MismatchLabelKeys is a set of pod label keys to select which pods will
2403
+ be taken into consideration. The keys are used to lookup values from the
2404
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2405
+ to select the group of existing pods which pods will be taken into consideration
2406
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2407
+ pod labels will be ignored. The default value is empty.
2408
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2409
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2410
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2411
+ type: array
2412
+ items:
2413
+ type: string
2414
+ x-kubernetes-list-type: atomic
2415
+ namespaceSelector:
2416
+ description: |-
2417
+ A label query over the set of namespaces that the term applies to.
2418
+ The term is applied to the union of the namespaces selected by this field
2419
+ and the ones listed in the namespaces field.
2420
+ null selector and null or empty namespaces list means "this pod's namespace".
2421
+ An empty selector ({}) matches all namespaces.
2422
+ type: object
2423
+ properties:
2424
+ matchExpressions:
2425
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2426
+ type: array
2427
+ items:
2428
+ description: |-
2429
+ A label selector requirement is a selector that contains values, a key, and an operator that
2430
+ relates the key and values.
2431
+ type: object
2432
+ required:
2433
+ - key
2434
+ - operator
2435
+ properties:
2436
+ key:
2437
+ description: key is the label key that the selector applies to.
2438
+ type: string
2439
+ operator:
2440
+ description: |-
2441
+ operator represents a key's relationship to a set of values.
2442
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2443
+ type: string
2444
+ values:
2445
+ description: |-
2446
+ values is an array of string values. If the operator is In or NotIn,
2447
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2448
+ the values array must be empty. This array is replaced during a strategic
2449
+ merge patch.
2450
+ type: array
2451
+ items:
2452
+ type: string
2453
+ x-kubernetes-list-type: atomic
2454
+ x-kubernetes-list-type: atomic
2455
+ matchLabels:
2456
+ description: |-
2457
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2458
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2459
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2460
+ type: object
2461
+ additionalProperties:
2462
+ type: string
2463
+ x-kubernetes-map-type: atomic
2464
+ namespaces:
2465
+ description: |-
2466
+ namespaces specifies a static list of namespace names that the term applies to.
2467
+ The term is applied to the union of the namespaces listed in this field
2468
+ and the ones selected by namespaceSelector.
2469
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2470
+ type: array
2471
+ items:
2472
+ type: string
2473
+ x-kubernetes-list-type: atomic
2474
+ topologyKey:
2475
+ description: |-
2476
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2477
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
2478
+ whose value of the label with key topologyKey matches that of any node on which any of the
2479
+ selected pods is running.
2480
+ Empty topologyKey is not allowed.
2481
+ type: string
2482
+ weight:
2483
+ description: |-
2484
+ weight associated with matching the corresponding podAffinityTerm,
2485
+ in the range 1-100.
2486
+ type: integer
2487
+ format: int32
2488
+ x-kubernetes-list-type: atomic
2489
+ requiredDuringSchedulingIgnoredDuringExecution:
2490
+ description: |-
2491
+ If the affinity requirements specified by this field are not met at
2492
+ scheduling time, the pod will not be scheduled onto the node.
2493
+ If the affinity requirements specified by this field cease to be met
2494
+ at some point during pod execution (e.g. due to a pod label update), the
2495
+ system may or may not try to eventually evict the pod from its node.
2496
+ When there are multiple elements, the lists of nodes corresponding to each
2497
+ podAffinityTerm are intersected, i.e. all terms must be satisfied.
2498
+ type: array
2499
+ items:
2500
+ description: |-
2501
+ Defines a set of pods (namely those matching the labelSelector
2502
+ relative to the given namespace(s)) that this pod should be
2503
+ co-located (affinity) or not co-located (anti-affinity) with,
2504
+ where co-located is defined as running on a node whose value of
2505
+ the label with key <topologyKey> matches that of any node on which
2506
+ a pod of the set of pods is running
2507
+ type: object
2508
+ required:
2509
+ - topologyKey
2510
+ properties:
2511
+ labelSelector:
2512
+ description: |-
2513
+ A label query over a set of resources, in this case pods.
2514
+ If it's null, this PodAffinityTerm matches with no Pods.
2515
+ type: object
2516
+ properties:
2517
+ matchExpressions:
2518
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2519
+ type: array
2520
+ items:
2521
+ description: |-
2522
+ A label selector requirement is a selector that contains values, a key, and an operator that
2523
+ relates the key and values.
2524
+ type: object
2525
+ required:
2526
+ - key
2527
+ - operator
2528
+ properties:
2529
+ key:
2530
+ description: key is the label key that the selector applies to.
2531
+ type: string
2532
+ operator:
2533
+ description: |-
2534
+ operator represents a key's relationship to a set of values.
2535
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2536
+ type: string
2537
+ values:
2538
+ description: |-
2539
+ values is an array of string values. If the operator is In or NotIn,
2540
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2541
+ the values array must be empty. This array is replaced during a strategic
2542
+ merge patch.
2543
+ type: array
2544
+ items:
2545
+ type: string
2546
+ x-kubernetes-list-type: atomic
2547
+ x-kubernetes-list-type: atomic
2548
+ matchLabels:
2549
+ description: |-
2550
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2551
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2552
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2553
+ type: object
2554
+ additionalProperties:
2555
+ type: string
2556
+ x-kubernetes-map-type: atomic
2557
+ matchLabelKeys:
2558
+ description: |-
2559
+ MatchLabelKeys is a set of pod label keys to select which pods will
2560
+ be taken into consideration. The keys are used to lookup values from the
2561
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2562
+ to select the group of existing pods which pods will be taken into consideration
2563
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2564
+ pod labels will be ignored. The default value is empty.
2565
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2566
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
2567
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2568
+ type: array
2569
+ items:
2570
+ type: string
2571
+ x-kubernetes-list-type: atomic
2572
+ mismatchLabelKeys:
2573
+ description: |-
2574
+ MismatchLabelKeys is a set of pod label keys to select which pods will
2575
+ be taken into consideration. The keys are used to lookup values from the
2576
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2577
+ to select the group of existing pods which pods will be taken into consideration
2578
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2579
+ pod labels will be ignored. The default value is empty.
2580
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2581
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2582
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2583
+ type: array
2584
+ items:
2585
+ type: string
2586
+ x-kubernetes-list-type: atomic
2587
+ namespaceSelector:
2588
+ description: |-
2589
+ A label query over the set of namespaces that the term applies to.
2590
+ The term is applied to the union of the namespaces selected by this field
2591
+ and the ones listed in the namespaces field.
2592
+ null selector and null or empty namespaces list means "this pod's namespace".
2593
+ An empty selector ({}) matches all namespaces.
2594
+ type: object
2595
+ properties:
2596
+ matchExpressions:
2597
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2598
+ type: array
2599
+ items:
2600
+ description: |-
2601
+ A label selector requirement is a selector that contains values, a key, and an operator that
2602
+ relates the key and values.
2603
+ type: object
2604
+ required:
2605
+ - key
2606
+ - operator
2607
+ properties:
2608
+ key:
2609
+ description: key is the label key that the selector applies to.
2610
+ type: string
2611
+ operator:
2612
+ description: |-
2613
+ operator represents a key's relationship to a set of values.
2614
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2615
+ type: string
2616
+ values:
2617
+ description: |-
2618
+ values is an array of string values. If the operator is In or NotIn,
2619
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2620
+ the values array must be empty. This array is replaced during a strategic
2621
+ merge patch.
2622
+ type: array
2623
+ items:
2624
+ type: string
2625
+ x-kubernetes-list-type: atomic
2626
+ x-kubernetes-list-type: atomic
2627
+ matchLabels:
2628
+ description: |-
2629
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2630
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2631
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2632
+ type: object
2633
+ additionalProperties:
2634
+ type: string
2635
+ x-kubernetes-map-type: atomic
2636
+ namespaces:
2637
+ description: |-
2638
+ namespaces specifies a static list of namespace names that the term applies to.
2639
+ The term is applied to the union of the namespaces listed in this field
2640
+ and the ones selected by namespaceSelector.
2641
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2642
+ type: array
2643
+ items:
2644
+ type: string
2645
+ x-kubernetes-list-type: atomic
2646
+ topologyKey:
2647
+ description: |-
2648
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2649
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
2650
+ whose value of the label with key topologyKey matches that of any node on which any of the
2651
+ selected pods is running.
2652
+ Empty topologyKey is not allowed.
2653
+ type: string
2654
+ x-kubernetes-list-type: atomic
2655
+ podAntiAffinity:
2656
+ description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
2657
+ type: object
2658
+ properties:
2659
+ preferredDuringSchedulingIgnoredDuringExecution:
2660
+ description: |-
2661
+ The scheduler will prefer to schedule pods to nodes that satisfy
2662
+ the anti-affinity expressions specified by this field, but it may choose
2663
+ a node that violates one or more of the expressions. The node that is
2664
+ most preferred is the one with the greatest sum of weights, i.e.
2665
+ for each node that meets all of the scheduling requirements (resource
2666
+ request, requiredDuringScheduling anti-affinity expressions, etc.),
2667
+ compute a sum by iterating through the elements of this field and adding
2668
+ "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2669
+ node(s) with the highest sum are the most preferred.
2670
+ type: array
2671
+ items:
2672
+ description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2673
+ type: object
2674
+ required:
2675
+ - podAffinityTerm
2676
+ - weight
2677
+ properties:
2678
+ podAffinityTerm:
2679
+ description: Required. A pod affinity term, associated with the corresponding weight.
2680
+ type: object
2681
+ required:
2682
+ - topologyKey
2683
+ properties:
2684
+ labelSelector:
2685
+ description: |-
2686
+ A label query over a set of resources, in this case pods.
2687
+ If it's null, this PodAffinityTerm matches with no Pods.
2688
+ type: object
2689
+ properties:
2690
+ matchExpressions:
2691
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2692
+ type: array
2693
+ items:
2694
+ description: |-
2695
+ A label selector requirement is a selector that contains values, a key, and an operator that
2696
+ relates the key and values.
2697
+ type: object
2698
+ required:
2699
+ - key
2700
+ - operator
2701
+ properties:
2702
+ key:
2703
+ description: key is the label key that the selector applies to.
2704
+ type: string
2705
+ operator:
2706
+ description: |-
2707
+ operator represents a key's relationship to a set of values.
2708
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2709
+ type: string
2710
+ values:
2711
+ description: |-
2712
+ values is an array of string values. If the operator is In or NotIn,
2713
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2714
+ the values array must be empty. This array is replaced during a strategic
2715
+ merge patch.
2716
+ type: array
2717
+ items:
2718
+ type: string
2719
+ x-kubernetes-list-type: atomic
2720
+ x-kubernetes-list-type: atomic
2721
+ matchLabels:
2722
+ description: |-
2723
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2724
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2725
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2726
+ type: object
2727
+ additionalProperties:
2728
+ type: string
2729
+ x-kubernetes-map-type: atomic
2730
+ matchLabelKeys:
2731
+ description: |-
2732
+ MatchLabelKeys is a set of pod label keys to select which pods will
2733
+ be taken into consideration. The keys are used to lookup values from the
2734
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2735
+ to select the group of existing pods which pods will be taken into consideration
2736
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2737
+ pod labels will be ignored. The default value is empty.
2738
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2739
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
2740
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2741
+ type: array
2742
+ items:
2743
+ type: string
2744
+ x-kubernetes-list-type: atomic
2745
+ mismatchLabelKeys:
2746
+ description: |-
2747
+ MismatchLabelKeys is a set of pod label keys to select which pods will
2748
+ be taken into consideration. The keys are used to lookup values from the
2749
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2750
+ to select the group of existing pods which pods will be taken into consideration
2751
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2752
+ pod labels will be ignored. The default value is empty.
2753
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2754
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2755
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2756
+ type: array
2757
+ items:
2758
+ type: string
2759
+ x-kubernetes-list-type: atomic
2760
+ namespaceSelector:
2761
+ description: |-
2762
+ A label query over the set of namespaces that the term applies to.
2763
+ The term is applied to the union of the namespaces selected by this field
2764
+ and the ones listed in the namespaces field.
2765
+ null selector and null or empty namespaces list means "this pod's namespace".
2766
+ An empty selector ({}) matches all namespaces.
2767
+ type: object
2768
+ properties:
2769
+ matchExpressions:
2770
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2771
+ type: array
2772
+ items:
2773
+ description: |-
2774
+ A label selector requirement is a selector that contains values, a key, and an operator that
2775
+ relates the key and values.
2776
+ type: object
2777
+ required:
2778
+ - key
2779
+ - operator
2780
+ properties:
2781
+ key:
2782
+ description: key is the label key that the selector applies to.
2783
+ type: string
2784
+ operator:
2785
+ description: |-
2786
+ operator represents a key's relationship to a set of values.
2787
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2788
+ type: string
2789
+ values:
2790
+ description: |-
2791
+ values is an array of string values. If the operator is In or NotIn,
2792
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2793
+ the values array must be empty. This array is replaced during a strategic
2794
+ merge patch.
2795
+ type: array
2796
+ items:
2797
+ type: string
2798
+ x-kubernetes-list-type: atomic
2799
+ x-kubernetes-list-type: atomic
2800
+ matchLabels:
2801
+ description: |-
2802
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2803
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2804
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2805
+ type: object
2806
+ additionalProperties:
2807
+ type: string
2808
+ x-kubernetes-map-type: atomic
2809
+ namespaces:
2810
+ description: |-
2811
+ namespaces specifies a static list of namespace names that the term applies to.
2812
+ The term is applied to the union of the namespaces listed in this field
2813
+ and the ones selected by namespaceSelector.
2814
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2815
+ type: array
2816
+ items:
2817
+ type: string
2818
+ x-kubernetes-list-type: atomic
2819
+ topologyKey:
2820
+ description: |-
2821
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2822
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
2823
+ whose value of the label with key topologyKey matches that of any node on which any of the
2824
+ selected pods is running.
2825
+ Empty topologyKey is not allowed.
2826
+ type: string
2827
+ weight:
2828
+ description: |-
2829
+ weight associated with matching the corresponding podAffinityTerm,
2830
+ in the range 1-100.
2831
+ type: integer
2832
+ format: int32
2833
+ x-kubernetes-list-type: atomic
2834
+ requiredDuringSchedulingIgnoredDuringExecution:
2835
+ description: |-
2836
+ If the anti-affinity requirements specified by this field are not met at
2837
+ scheduling time, the pod will not be scheduled onto the node.
2838
+ If the anti-affinity requirements specified by this field cease to be met
2839
+ at some point during pod execution (e.g. due to a pod label update), the
2840
+ system may or may not try to eventually evict the pod from its node.
2841
+ When there are multiple elements, the lists of nodes corresponding to each
2842
+ podAffinityTerm are intersected, i.e. all terms must be satisfied.
2843
+ type: array
2844
+ items:
2845
+ description: |-
2846
+ Defines a set of pods (namely those matching the labelSelector
2847
+ relative to the given namespace(s)) that this pod should be
2848
+ co-located (affinity) or not co-located (anti-affinity) with,
2849
+ where co-located is defined as running on a node whose value of
2850
+ the label with key <topologyKey> matches that of any node on which
2851
+ a pod of the set of pods is running
2852
+ type: object
2853
+ required:
2854
+ - topologyKey
2855
+ properties:
2856
+ labelSelector:
2857
+ description: |-
2858
+ A label query over a set of resources, in this case pods.
2859
+ If it's null, this PodAffinityTerm matches with no Pods.
2860
+ type: object
2861
+ properties:
2862
+ matchExpressions:
2863
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2864
+ type: array
2865
+ items:
2866
+ description: |-
2867
+ A label selector requirement is a selector that contains values, a key, and an operator that
2868
+ relates the key and values.
2869
+ type: object
2870
+ required:
2871
+ - key
2872
+ - operator
2873
+ properties:
2874
+ key:
2875
+ description: key is the label key that the selector applies to.
2876
+ type: string
2877
+ operator:
2878
+ description: |-
2879
+ operator represents a key's relationship to a set of values.
2880
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2881
+ type: string
2882
+ values:
2883
+ description: |-
2884
+ values is an array of string values. If the operator is In or NotIn,
2885
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2886
+ the values array must be empty. This array is replaced during a strategic
2887
+ merge patch.
2888
+ type: array
2889
+ items:
2890
+ type: string
2891
+ x-kubernetes-list-type: atomic
2892
+ x-kubernetes-list-type: atomic
2893
+ matchLabels:
2894
+ description: |-
2895
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2896
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2897
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2898
+ type: object
2899
+ additionalProperties:
2900
+ type: string
2901
+ x-kubernetes-map-type: atomic
2902
+ matchLabelKeys:
2903
+ description: |-
2904
+ MatchLabelKeys is a set of pod label keys to select which pods will
2905
+ be taken into consideration. The keys are used to lookup values from the
2906
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2907
+ to select the group of existing pods which pods will be taken into consideration
2908
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2909
+ pod labels will be ignored. The default value is empty.
2910
+ The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2911
+ Also, matchLabelKeys cannot be set when labelSelector isn't set.
2912
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2913
+ type: array
2914
+ items:
2915
+ type: string
2916
+ x-kubernetes-list-type: atomic
2917
+ mismatchLabelKeys:
2918
+ description: |-
2919
+ MismatchLabelKeys is a set of pod label keys to select which pods will
2920
+ be taken into consideration. The keys are used to lookup values from the
2921
+ incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2922
+ to select the group of existing pods which pods will be taken into consideration
2923
+ for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2924
+ pod labels will be ignored. The default value is empty.
2925
+ The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2926
+ Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2927
+ This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2928
+ type: array
2929
+ items:
2930
+ type: string
2931
+ x-kubernetes-list-type: atomic
2932
+ namespaceSelector:
2933
+ description: |-
2934
+ A label query over the set of namespaces that the term applies to.
2935
+ The term is applied to the union of the namespaces selected by this field
2936
+ and the ones listed in the namespaces field.
2937
+ null selector and null or empty namespaces list means "this pod's namespace".
2938
+ An empty selector ({}) matches all namespaces.
2939
+ type: object
2940
+ properties:
2941
+ matchExpressions:
2942
+ description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2943
+ type: array
2944
+ items:
2945
+ description: |-
2946
+ A label selector requirement is a selector that contains values, a key, and an operator that
2947
+ relates the key and values.
2948
+ type: object
2949
+ required:
2950
+ - key
2951
+ - operator
2952
+ properties:
2953
+ key:
2954
+ description: key is the label key that the selector applies to.
2955
+ type: string
2956
+ operator:
2957
+ description: |-
2958
+ operator represents a key's relationship to a set of values.
2959
+ Valid operators are In, NotIn, Exists and DoesNotExist.
2960
+ type: string
2961
+ values:
2962
+ description: |-
2963
+ values is an array of string values. If the operator is In or NotIn,
2964
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
2965
+ the values array must be empty. This array is replaced during a strategic
2966
+ merge patch.
2967
+ type: array
2968
+ items:
2969
+ type: string
2970
+ x-kubernetes-list-type: atomic
2971
+ x-kubernetes-list-type: atomic
2972
+ matchLabels:
2973
+ description: |-
2974
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2975
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
2976
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
2977
+ type: object
2978
+ additionalProperties:
2979
+ type: string
2980
+ x-kubernetes-map-type: atomic
2981
+ namespaces:
2982
+ description: |-
2983
+ namespaces specifies a static list of namespace names that the term applies to.
2984
+ The term is applied to the union of the namespaces listed in this field
2985
+ and the ones selected by namespaceSelector.
2986
+ null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2987
+ type: array
2988
+ items:
2989
+ type: string
2990
+ x-kubernetes-list-type: atomic
2991
+ topologyKey:
2992
+ description: |-
2993
+ This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2994
+ the labelSelector in the specified namespaces, where co-located is defined as running on a node
2995
+ whose value of the label with key topologyKey matches that of any node on which any of the
2996
+ selected pods is running.
2997
+ Empty topologyKey is not allowed.
2998
+ type: string
2999
+ x-kubernetes-list-type: atomic
3000
+ imagePullSecrets:
3001
+ description: If specified, the pod's imagePullSecrets
3002
+ type: array
3003
+ items:
3004
+ description: |-
3005
+ LocalObjectReference contains enough information to let you locate the
3006
+ referenced object inside the same namespace.
3007
+ type: object
3008
+ properties:
3009
+ name:
3010
+ description: |-
3011
+ Name of the referent.
3012
+ This field is effectively required, but due to backwards compatibility is
3013
+ allowed to be empty. Instances of this type with an empty value here are
3014
+ almost certainly wrong.
3015
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3016
+ type: string
3017
+ default: ""
3018
+ x-kubernetes-map-type: atomic
3019
+ nodeSelector:
3020
+ description: |-
3021
+ NodeSelector is a selector which must be true for the pod to fit on a node.
3022
+ Selector which must match a node's labels for the pod to be scheduled on that node.
3023
+ More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
3024
+ type: object
3025
+ additionalProperties:
3026
+ type: string
3027
+ priorityClassName:
3028
+ description: If specified, the pod's priorityClassName.
3029
+ type: string
3030
+ securityContext:
3031
+ description: If specified, the pod's security context
3032
+ type: object
3033
+ properties:
3034
+ fsGroup:
3035
+ description: |-
3036
+ A special supplemental group that applies to all containers in a pod.
3037
+ Some volume types allow the Kubelet to change the ownership of that volume
3038
+ to be owned by the pod:
3039
+
3040
+ 1. The owning GID will be the FSGroup
3041
+ 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
3042
+ 3. The permission bits are OR'd with rw-rw----
3043
+
3044
+ If unset, the Kubelet will not modify the ownership and permissions of any volume.
3045
+ Note that this field cannot be set when spec.os.name is windows.
3046
+ type: integer
3047
+ format: int64
3048
+ fsGroupChangePolicy:
3049
+ description: |-
3050
+ fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
3051
+ before being exposed inside Pod. This field will only apply to
3052
+ volume types which support fsGroup based ownership(and permissions).
3053
+ It will have no effect on ephemeral volume types such as: secret, configmaps
3054
+ and emptydir.
3055
+ Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
3056
+ Note that this field cannot be set when spec.os.name is windows.
3057
+ type: string
3058
+ runAsGroup:
3059
+ description: |-
3060
+ The GID to run the entrypoint of the container process.
3061
+ Uses runtime default if unset.
3062
+ May also be set in SecurityContext. If set in both SecurityContext and
3063
+ PodSecurityContext, the value specified in SecurityContext takes precedence
3064
+ for that container.
3065
+ Note that this field cannot be set when spec.os.name is windows.
3066
+ type: integer
3067
+ format: int64
3068
+ runAsNonRoot:
3069
+ description: |-
3070
+ Indicates that the container must run as a non-root user.
3071
+ If true, the Kubelet will validate the image at runtime to ensure that it
3072
+ does not run as UID 0 (root) and fail to start the container if it does.
3073
+ If unset or false, no such validation will be performed.
3074
+ May also be set in SecurityContext. If set in both SecurityContext and
3075
+ PodSecurityContext, the value specified in SecurityContext takes precedence.
3076
+ type: boolean
3077
+ runAsUser:
3078
+ description: |-
3079
+ The UID to run the entrypoint of the container process.
3080
+ Defaults to user specified in image metadata if unspecified.
3081
+ May also be set in SecurityContext. If set in both SecurityContext and
3082
+ PodSecurityContext, the value specified in SecurityContext takes precedence
3083
+ for that container.
3084
+ Note that this field cannot be set when spec.os.name is windows.
3085
+ type: integer
3086
+ format: int64
3087
+ seLinuxOptions:
3088
+ description: |-
3089
+ The SELinux context to be applied to all containers.
3090
+ If unspecified, the container runtime will allocate a random SELinux context for each
3091
+ container. May also be set in SecurityContext. If set in
3092
+ both SecurityContext and PodSecurityContext, the value specified in SecurityContext
3093
+ takes precedence for that container.
3094
+ Note that this field cannot be set when spec.os.name is windows.
3095
+ type: object
3096
+ properties:
3097
+ level:
3098
+ description: Level is SELinux level label that applies to the container.
3099
+ type: string
3100
+ role:
3101
+ description: Role is a SELinux role label that applies to the container.
3102
+ type: string
3103
+ type:
3104
+ description: Type is a SELinux type label that applies to the container.
3105
+ type: string
3106
+ user:
3107
+ description: User is a SELinux user label that applies to the container.
3108
+ type: string
3109
+ seccompProfile:
3110
+ description: |-
3111
+ The seccomp options to use by the containers in this pod.
3112
+ Note that this field cannot be set when spec.os.name is windows.
3113
+ type: object
3114
+ required:
3115
+ - type
3116
+ properties:
3117
+ localhostProfile:
3118
+ description: |-
3119
+ localhostProfile indicates a profile defined in a file on the node should be used.
3120
+ The profile must be preconfigured on the node to work.
3121
+ Must be a descending path, relative to the kubelet's configured seccomp profile location.
3122
+ Must be set if type is "Localhost". Must NOT be set for any other type.
3123
+ type: string
3124
+ type:
3125
+ description: |-
3126
+ type indicates which kind of seccomp profile will be applied.
3127
+ Valid options are:
3128
+
3129
+ Localhost - a profile defined in a file on the node should be used.
3130
+ RuntimeDefault - the container runtime default profile should be used.
3131
+ Unconfined - no profile should be applied.
3132
+ type: string
3133
+ supplementalGroups:
3134
+ description: |-
3135
+ A list of groups applied to the first process run in each container, in addition
3136
+ to the container's primary GID, the fsGroup (if specified), and group memberships
3137
+ defined in the container image for the uid of the container process. If unspecified,
3138
+ no additional groups are added to any container. Note that group memberships
3139
+ defined in the container image for the uid of the container process are still effective,
3140
+ even if they are not included in this list.
3141
+ Note that this field cannot be set when spec.os.name is windows.
3142
+ type: array
3143
+ items:
3144
+ type: integer
3145
+ format: int64
3146
+ sysctls:
3147
+ description: |-
3148
+ Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
3149
+ sysctls (by the container runtime) might fail to launch.
3150
+ Note that this field cannot be set when spec.os.name is windows.
3151
+ type: array
3152
+ items:
3153
+ description: Sysctl defines a kernel parameter to be set
3154
+ type: object
3155
+ required:
3156
+ - name
3157
+ - value
3158
+ properties:
3159
+ name:
3160
+ description: Name of a property to set
3161
+ type: string
3162
+ value:
3163
+ description: Value of a property to set
3164
+ type: string
3165
+ serviceAccountName:
3166
+ description: If specified, the pod's service account
3167
+ type: string
3168
+ tolerations:
3169
+ description: If specified, the pod's tolerations.
3170
+ type: array
3171
+ items:
3172
+ description: |-
3173
+ The pod this Toleration is attached to tolerates any taint that matches
3174
+ the triple <key,value,effect> using the matching operator <operator>.
3175
+ type: object
3176
+ properties:
3177
+ effect:
3178
+ description: |-
3179
+ Effect indicates the taint effect to match. Empty means match all taint effects.
3180
+ When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
3181
+ type: string
3182
+ key:
3183
+ description: |-
3184
+ Key is the taint key that the toleration applies to. Empty means match all taint keys.
3185
+ If the key is empty, operator must be Exists; this combination means to match all values and all keys.
3186
+ type: string
3187
+ operator:
3188
+ description: |-
3189
+ Operator represents a key's relationship to the value.
3190
+ Valid operators are Exists and Equal. Defaults to Equal.
3191
+ Exists is equivalent to wildcard for value, so that a pod can
3192
+ tolerate all taints of a particular category.
3193
+ type: string
3194
+ tolerationSeconds:
3195
+ description: |-
3196
+ TolerationSeconds represents the period of time the toleration (which must be
3197
+ of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
3198
+ it is not set, which means tolerate the taint forever (do not evict). Zero and
3199
+ negative values will be treated as 0 (evict immediately) by the system.
3200
+ type: integer
3201
+ format: int64
3202
+ value:
3203
+ description: |-
3204
+ Value is the taint value the toleration matches to.
3205
+ If the operator is Exists, the value should be empty, otherwise just a regular string.
3206
+ type: string
3207
+ serviceType:
3208
+ description: |-
3209
+ Optional service type for Kubernetes solver service. Supported values
3210
+ are NodePort or ClusterIP. If unset, defaults to NodePort.
3211
+ type: string
3212
+ selector:
3213
+ description: |-
3214
+ Selector selects a set of DNSNames on the Certificate resource that
3215
+ should be solved using this challenge solver.
3216
+ If not specified, the solver will be treated as the 'default' solver
3217
+ with the lowest priority, i.e. if any other solver has a more specific
3218
+ match, it will be used instead.
3219
+ type: object
3220
+ properties:
3221
+ dnsNames:
3222
+ description: |-
3223
+ List of DNSNames that this solver will be used to solve.
3224
+ If specified and a match is found, a dnsNames selector will take
3225
+ precedence over a dnsZones selector.
3226
+ If multiple solvers match with the same dnsNames value, the solver
3227
+ with the most matching labels in matchLabels will be selected.
3228
+ If neither has more matches, the solver defined earlier in the list
3229
+ will be selected.
3230
+ type: array
3231
+ items:
3232
+ type: string
3233
+ dnsZones:
3234
+ description: |-
3235
+ List of DNSZones that this solver will be used to solve.
3236
+ The most specific DNS zone match specified here will take precedence
3237
+ over other DNS zone matches, so a solver specifying sys.example.com
3238
+ will be selected over one specifying example.com for the domain
3239
+ www.sys.example.com.
3240
+ If multiple solvers match with the same dnsZones value, the solver
3241
+ with the most matching labels in matchLabels will be selected.
3242
+ If neither has more matches, the solver defined earlier in the list
3243
+ will be selected.
3244
+ type: array
3245
+ items:
3246
+ type: string
3247
+ matchLabels:
3248
+ description: |-
3249
+ A label selector that is used to refine the set of certificate's that
3250
+ this challenge solver will apply to.
3251
+ type: object
3252
+ additionalProperties:
3253
+ type: string
3254
+ ca:
3255
+ description: |-
3256
+ CA configures this issuer to sign certificates using a signing CA keypair
3257
+ stored in a Secret resource.
3258
+ This is used to build internal PKIs that are managed by cert-manager.
3259
+ type: object
3260
+ required:
3261
+ - secretName
3262
+ properties:
3263
+ crlDistributionPoints:
3264
+ description: |-
3265
+ The CRL distribution points is an X.509 v3 certificate extension which identifies
3266
+ the location of the CRL from which the revocation of this certificate can be checked.
3267
+ If not set, certificates will be issued without distribution points set.
3268
+ type: array
3269
+ items:
3270
+ type: string
3271
+ issuingCertificateURLs:
3272
+ description: |-
3273
+ IssuingCertificateURLs is a list of URLs which this issuer should embed into certificates
3274
+ it creates. See https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1 for more details.
3275
+ As an example, such a URL might be "http://ca.domain.com/ca.crt".
3276
+ type: array
3277
+ items:
3278
+ type: string
3279
+ ocspServers:
3280
+ description: |-
3281
+ The OCSP server list is an X.509 v3 extension that defines a list of
3282
+ URLs of OCSP responders. The OCSP responders can be queried for the
3283
+ revocation status of an issued certificate. If not set, the
3284
+ certificate will be issued with no OCSP servers set. For example, an
3285
+ OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
3286
+ type: array
3287
+ items:
3288
+ type: string
3289
+ secretName:
3290
+ description: |-
3291
+ SecretName is the name of the secret used to sign Certificates issued
3292
+ by this Issuer.
3293
+ type: string
3294
+ selfSigned:
3295
+ description: |-
3296
+ SelfSigned configures this issuer to 'self sign' certificates using the
3297
+ private key used to create the CertificateRequest object.
3298
+ type: object
3299
+ properties:
3300
+ crlDistributionPoints:
3301
+ description: |-
3302
+ The CRL distribution points is an X.509 v3 certificate extension which identifies
3303
+ the location of the CRL from which the revocation of this certificate can be checked.
3304
+ If not set certificate will be issued without CDP. Values are strings.
3305
+ type: array
3306
+ items:
3307
+ type: string
3308
+ vault:
3309
+ description: |-
3310
+ Vault configures this issuer to sign certificates using a HashiCorp Vault
3311
+ PKI backend.
3312
+ type: object
3313
+ required:
3314
+ - auth
3315
+ - path
3316
+ - server
3317
+ properties:
3318
+ auth:
3319
+ description: Auth configures how cert-manager authenticates with the Vault server.
3320
+ type: object
3321
+ properties:
3322
+ appRole:
3323
+ description: |-
3324
+ AppRole authenticates with Vault using the App Role auth mechanism,
3325
+ with the role and secret stored in a Kubernetes Secret resource.
3326
+ type: object
3327
+ required:
3328
+ - path
3329
+ - roleId
3330
+ - secretRef
3331
+ properties:
3332
+ path:
3333
+ description: |-
3334
+ Path where the App Role authentication backend is mounted in Vault, e.g:
3335
+ "approle"
3336
+ type: string
3337
+ roleId:
3338
+ description: |-
3339
+ RoleID configured in the App Role authentication backend when setting
3340
+ up the authentication backend in Vault.
3341
+ type: string
3342
+ secretRef:
3343
+ description: |-
3344
+ Reference to a key in a Secret that contains the App Role secret used
3345
+ to authenticate with Vault.
3346
+ The `key` field must be specified and denotes which entry within the Secret
3347
+ resource is used as the app role secret.
3348
+ type: object
3349
+ required:
3350
+ - name
3351
+ properties:
3352
+ key:
3353
+ description: |-
3354
+ The key of the entry in the Secret resource's `data` field to be used.
3355
+ Some instances of this field may be defaulted, in others it may be
3356
+ required.
3357
+ type: string
3358
+ name:
3359
+ description: |-
3360
+ Name of the resource being referred to.
3361
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3362
+ type: string
3363
+ clientCertificate:
3364
+ description: |-
3365
+ ClientCertificate authenticates with Vault by presenting a client
3366
+ certificate during the request's TLS handshake.
3367
+ Works only when using HTTPS protocol.
3368
+ type: object
3369
+ properties:
3370
+ mountPath:
3371
+ description: |-
3372
+ The Vault mountPath here is the mount path to use when authenticating with
3373
+ Vault. For example, setting a value to `/v1/auth/foo`, will use the path
3374
+ `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
3375
+ default value "/v1/auth/cert" will be used.
3376
+ type: string
3377
+ name:
3378
+ description: |-
3379
+ Name of the certificate role to authenticate against.
3380
+ If not set, matching any certificate role, if available.
3381
+ type: string
3382
+ secretName:
3383
+ description: |-
3384
+ Reference to Kubernetes Secret of type "kubernetes.io/tls" (hence containing
3385
+ tls.crt and tls.key) used to authenticate to Vault using TLS client
3386
+ authentication.
3387
+ type: string
3388
+ kubernetes:
3389
+ description: |-
3390
+ Kubernetes authenticates with Vault by passing the ServiceAccount
3391
+ token stored in the named Secret resource to the Vault server.
3392
+ type: object
3393
+ required:
3394
+ - role
3395
+ properties:
3396
+ mountPath:
3397
+ description: |-
3398
+ The Vault mountPath here is the mount path to use when authenticating with
3399
+ Vault. For example, setting a value to `/v1/auth/foo`, will use the path
3400
+ `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
3401
+ default value "/v1/auth/kubernetes" will be used.
3402
+ type: string
3403
+ role:
3404
+ description: |-
3405
+ A required field containing the Vault Role to assume. A Role binds a
3406
+ Kubernetes ServiceAccount with a set of Vault policies.
3407
+ type: string
3408
+ secretRef:
3409
+ description: |-
3410
+ The required Secret field containing a Kubernetes ServiceAccount JWT used
3411
+ for authenticating with Vault. Use of 'ambient credentials' is not
3412
+ supported.
3413
+ type: object
3414
+ required:
3415
+ - name
3416
+ properties:
3417
+ key:
3418
+ description: |-
3419
+ The key of the entry in the Secret resource's `data` field to be used.
3420
+ Some instances of this field may be defaulted, in others it may be
3421
+ required.
3422
+ type: string
3423
+ name:
3424
+ description: |-
3425
+ Name of the resource being referred to.
3426
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3427
+ type: string
3428
+ serviceAccountRef:
3429
+ description: |-
3430
+ A reference to a service account that will be used to request a bound
3431
+ token (also known as "projected token"). Compared to using "secretRef",
3432
+ using this field means that you don't rely on statically bound tokens. To
3433
+ use this field, you must configure an RBAC rule to let cert-manager
3434
+ request a token.
3435
+ type: object
3436
+ required:
3437
+ - name
3438
+ properties:
3439
+ audiences:
3440
+ description: |-
3441
+ TokenAudiences is an optional list of extra audiences to include in the token passed to Vault. The default token
3442
+ consisting of the issuer's namespace and name is always included.
3443
+ type: array
3444
+ items:
3445
+ type: string
3446
+ name:
3447
+ description: Name of the ServiceAccount used to request a token.
3448
+ type: string
3449
+ tokenSecretRef:
3450
+ description: TokenSecretRef authenticates with Vault by presenting a token.
3451
+ type: object
3452
+ required:
3453
+ - name
3454
+ properties:
3455
+ key:
3456
+ description: |-
3457
+ The key of the entry in the Secret resource's `data` field to be used.
3458
+ Some instances of this field may be defaulted, in others it may be
3459
+ required.
3460
+ type: string
3461
+ name:
3462
+ description: |-
3463
+ Name of the resource being referred to.
3464
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3465
+ type: string
3466
+ caBundle:
3467
+ description: |-
3468
+ Base64-encoded bundle of PEM CAs which will be used to validate the certificate
3469
+ chain presented by Vault. Only used if using HTTPS to connect to Vault and
3470
+ ignored for HTTP connections.
3471
+ Mutually exclusive with CABundleSecretRef.
3472
+ If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
3473
+ the cert-manager controller container is used to validate the TLS connection.
3474
+ type: string
3475
+ format: byte
3476
+ caBundleSecretRef:
3477
+ description: |-
3478
+ Reference to a Secret containing a bundle of PEM-encoded CAs to use when
3479
+ verifying the certificate chain presented by Vault when using HTTPS.
3480
+ Mutually exclusive with CABundle.
3481
+ If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
3482
+ the cert-manager controller container is used to validate the TLS connection.
3483
+ If no key for the Secret is specified, cert-manager will default to 'ca.crt'.
3484
+ type: object
3485
+ required:
3486
+ - name
3487
+ properties:
3488
+ key:
3489
+ description: |-
3490
+ The key of the entry in the Secret resource's `data` field to be used.
3491
+ Some instances of this field may be defaulted, in others it may be
3492
+ required.
3493
+ type: string
3494
+ name:
3495
+ description: |-
3496
+ Name of the resource being referred to.
3497
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3498
+ type: string
3499
+ clientCertSecretRef:
3500
+ description: |-
3501
+ Reference to a Secret containing a PEM-encoded Client Certificate to use when the
3502
+ Vault server requires mTLS.
3503
+ type: object
3504
+ required:
3505
+ - name
3506
+ properties:
3507
+ key:
3508
+ description: |-
3509
+ The key of the entry in the Secret resource's `data` field to be used.
3510
+ Some instances of this field may be defaulted, in others it may be
3511
+ required.
3512
+ type: string
3513
+ name:
3514
+ description: |-
3515
+ Name of the resource being referred to.
3516
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3517
+ type: string
3518
+ clientKeySecretRef:
3519
+ description: |-
3520
+ Reference to a Secret containing a PEM-encoded Client Private Key to use when the
3521
+ Vault server requires mTLS.
3522
+ type: object
3523
+ required:
3524
+ - name
3525
+ properties:
3526
+ key:
3527
+ description: |-
3528
+ The key of the entry in the Secret resource's `data` field to be used.
3529
+ Some instances of this field may be defaulted, in others it may be
3530
+ required.
3531
+ type: string
3532
+ name:
3533
+ description: |-
3534
+ Name of the resource being referred to.
3535
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3536
+ type: string
3537
+ namespace:
3538
+ description: |-
3539
+ Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1"
3540
+ More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
3541
+ type: string
3542
+ path:
3543
+ description: |-
3544
+ Path is the mount path of the Vault PKI backend's `sign` endpoint, e.g:
3545
+ "my_pki_mount/sign/my-role-name".
3546
+ type: string
3547
+ server:
3548
+ description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
3549
+ type: string
3550
+ serverName:
3551
+ description: |-
3552
+ ServerName is used to verify the hostname on the returned certificates
3553
+ by the Vault server.
3554
+ type: string
3555
+ venafi:
3556
+ description: |-
3557
+ Venafi configures this issuer to sign certificates using a Venafi TPP
3558
+ or Venafi Cloud policy zone.
3559
+ type: object
3560
+ required:
3561
+ - zone
3562
+ properties:
3563
+ cloud:
3564
+ description: |-
3565
+ Cloud specifies the Venafi cloud configuration settings.
3566
+ Only one of TPP or Cloud may be specified.
3567
+ type: object
3568
+ required:
3569
+ - apiTokenSecretRef
3570
+ properties:
3571
+ apiTokenSecretRef:
3572
+ description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
3573
+ type: object
3574
+ required:
3575
+ - name
3576
+ properties:
3577
+ key:
3578
+ description: |-
3579
+ The key of the entry in the Secret resource's `data` field to be used.
3580
+ Some instances of this field may be defaulted, in others it may be
3581
+ required.
3582
+ type: string
3583
+ name:
3584
+ description: |-
3585
+ Name of the resource being referred to.
3586
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3587
+ type: string
3588
+ url:
3589
+ description: |-
3590
+ URL is the base URL for Venafi Cloud.
3591
+ Defaults to "https://api.venafi.cloud/".
3592
+ type: string
3593
+ tpp:
3594
+ description: |-
3595
+ TPP specifies Trust Protection Platform configuration settings.
3596
+ Only one of TPP or Cloud may be specified.
3597
+ type: object
3598
+ required:
3599
+ - credentialsRef
3600
+ - url
3601
+ properties:
3602
+ caBundle:
3603
+ description: |-
3604
+ Base64-encoded bundle of PEM CAs which will be used to validate the certificate
3605
+ chain presented by the TPP server. Only used if using HTTPS; ignored for HTTP.
3606
+ If undefined, the certificate bundle in the cert-manager controller container
3607
+ is used to validate the chain.
3608
+ type: string
3609
+ format: byte
3610
+ caBundleSecretRef:
3611
+ description: |-
3612
+ Reference to a Secret containing a base64-encoded bundle of PEM CAs
3613
+ which will be used to validate the certificate chain presented by the TPP server.
3614
+ Only used if using HTTPS; ignored for HTTP. Mutually exclusive with CABundle.
3615
+ If neither CABundle nor CABundleSecretRef is defined, the certificate bundle in
3616
+ the cert-manager controller container is used to validate the TLS connection.
3617
+ type: object
3618
+ required:
3619
+ - name
3620
+ properties:
3621
+ key:
3622
+ description: |-
3623
+ The key of the entry in the Secret resource's `data` field to be used.
3624
+ Some instances of this field may be defaulted, in others it may be
3625
+ required.
3626
+ type: string
3627
+ name:
3628
+ description: |-
3629
+ Name of the resource being referred to.
3630
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3631
+ type: string
3632
+ credentialsRef:
3633
+ description: |-
3634
+ CredentialsRef is a reference to a Secret containing the Venafi TPP API credentials.
3635
+ The secret must contain the key 'access-token' for the Access Token Authentication,
3636
+ or two keys, 'username' and 'password' for the API Keys Authentication.
3637
+ type: object
3638
+ required:
3639
+ - name
3640
+ properties:
3641
+ name:
3642
+ description: |-
3643
+ Name of the resource being referred to.
3644
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
3645
+ type: string
3646
+ url:
3647
+ description: |-
3648
+ URL is the base URL for the vedsdk endpoint of the Venafi TPP instance,
3649
+ for example: "https://tpp.example.com/vedsdk".
3650
+ type: string
3651
+ zone:
3652
+ description: |-
3653
+ Zone is the Venafi Policy Zone to use for this issuer.
3654
+ All requests made to the Venafi platform will be restricted by the named
3655
+ zone policy.
3656
+ This field is required.
3657
+ type: string
3658
+ status:
3659
+ description: Status of the ClusterIssuer. This is set and managed automatically.
3660
+ type: object
3661
+ properties:
3662
+ acme:
3663
+ description: |-
3664
+ ACME specific status options.
3665
+ This field should only be set if the Issuer is configured to use an ACME
3666
+ server to issue certificates.
3667
+ type: object
3668
+ properties:
3669
+ lastPrivateKeyHash:
3670
+ description: |-
3671
+ LastPrivateKeyHash is a hash of the private key associated with the latest
3672
+ registered ACME account, in order to track changes made to registered account
3673
+ associated with the Issuer
3674
+ type: string
3675
+ lastRegisteredEmail:
3676
+ description: |-
3677
+ LastRegisteredEmail is the email associated with the latest registered
3678
+ ACME account, in order to track changes made to registered account
3679
+ associated with the Issuer
3680
+ type: string
3681
+ uri:
3682
+ description: |-
3683
+ URI is the unique account identifier, which can also be used to retrieve
3684
+ account details from the CA
3685
+ type: string
3686
+ conditions:
3687
+ description: |-
3688
+ List of status conditions to indicate the status of a CertificateRequest.
3689
+ Known condition types are `Ready`.
3690
+ type: array
3691
+ items:
3692
+ description: IssuerCondition contains condition information for an Issuer.
3693
+ type: object
3694
+ required:
3695
+ - status
3696
+ - type
3697
+ properties:
3698
+ lastTransitionTime:
3699
+ description: |-
3700
+ LastTransitionTime is the timestamp corresponding to the last status
3701
+ change of this condition.
3702
+ type: string
3703
+ format: date-time
3704
+ message:
3705
+ description: |-
3706
+ Message is a human readable description of the details of the last
3707
+ transition, complementing reason.
3708
+ type: string
3709
+ observedGeneration:
3710
+ description: |-
3711
+ If set, this represents the .metadata.generation that the condition was
3712
+ set based upon.
3713
+ For instance, if .metadata.generation is currently 12, but the
3714
+ .status.condition[x].observedGeneration is 9, the condition is out of date
3715
+ with respect to the current state of the Issuer.
3716
+ type: integer
3717
+ format: int64
3718
+ reason:
3719
+ description: |-
3720
+ Reason is a brief machine readable explanation for the condition's last
3721
+ transition.
3722
+ type: string
3723
+ status:
3724
+ description: Status of the condition, one of (`True`, `False`, `Unknown`).
3725
+ type: string
3726
+ enum:
3727
+ - "True"
3728
+ - "False"
3729
+ - Unknown
3730
+ type:
3731
+ description: Type of the condition, known values are (`Ready`).
3732
+ type: string
3733
+ x-kubernetes-list-map-keys:
3734
+ - type
3735
+ x-kubernetes-list-type: map
3736
+ served: true
3737
+ storage: true
3738
+
3739
+ # END crd {{- end }}