blob: 7979a584507bdd7603739af19f0e7530f43be93f [file] [log] [blame]
Giorgi Lekveishviliea328da2026-07-29 12:15:15 +04001# {{- include "cert-manager.crd-check" . }}
2# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
3apiVersion: apiextensions.k8s.io/v1
4kind: CustomResourceDefinition
5metadata:
6 name: certificaterequests.cert-manager.io
7 # START annotations {{- if .Values.crds.keep }}
8 annotations:
9 helm.sh/resource-policy: keep
10 # END annotations {{- end }}
11 labels:
12 app: '{{ template "cert-manager.name" . }}'
13 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
14 app.kubernetes.io/instance: '{{ .Release.Name }}'
15 # Generated labels {{- include "labels" . | nindent 4 }}
16spec:
17 group: cert-manager.io
18 names:
19 kind: CertificateRequest
20 listKind: CertificateRequestList
21 plural: certificaterequests
22 shortNames:
23 - cr
24 - crs
25 singular: certificaterequest
26 categories:
27 - cert-manager
28 scope: Namespaced
29 versions:
30 - name: v1
31 subresources:
32 status: {}
33 additionalPrinterColumns:
34 - jsonPath: .status.conditions[?(@.type=="Approved")].status
35 name: Approved
36 type: string
37 - jsonPath: .status.conditions[?(@.type=="Denied")].status
38 name: Denied
39 type: string
40 - jsonPath: .status.conditions[?(@.type=="Ready")].status
41 name: Ready
42 type: string
43 - jsonPath: .spec.issuerRef.name
44 name: Issuer
45 type: string
46 - jsonPath: .spec.username
47 name: Requester
48 type: string
49 - jsonPath: .status.conditions[?(@.type=="Ready")].message
50 name: Status
51 priority: 1
52 type: string
53 - jsonPath: .metadata.creationTimestamp
54 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.
55 name: Age
56 type: date
57 schema:
58 openAPIV3Schema:
59 description: |-
60 A CertificateRequest is used to request a signed certificate from one of the
61 configured issuers.
62
63 All fields within the CertificateRequest's `spec` are immutable after creation.
64 A CertificateRequest will either succeed or fail, as denoted by its `Ready` status
65 condition and its `status.failureTime` field.
66
67 A CertificateRequest is a one-shot resource, meaning it represents a single
68 point in time request for a certificate and cannot be re-used.
69 type: object
70 properties:
71 apiVersion:
72 description: |-
73 APIVersion defines the versioned schema of this representation of an object.
74 Servers should convert recognized schemas to the latest internal value, and
75 may reject unrecognized values.
76 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
77 type: string
78 kind:
79 description: |-
80 Kind is a string value representing the REST resource this object represents.
81 Servers may infer this from the endpoint the client submits requests to.
82 Cannot be updated.
83 In CamelCase.
84 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
85 type: string
86 metadata:
87 type: object
88 spec:
89 description: |-
90 Specification of the desired state of the CertificateRequest resource.
91 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
92 type: object
93 required:
94 - issuerRef
95 - request
96 properties:
97 duration:
98 description: |-
99 Requested 'duration' (i.e. lifetime) of the Certificate. Note that the
100 issuer may choose to ignore the requested duration, just like any other
101 requested attribute.
102 type: string
103 extra:
104 description: |-
105 Extra contains extra attributes of the user that created the CertificateRequest.
106 Populated by the cert-manager webhook on creation and immutable.
107 type: object
108 additionalProperties:
109 type: array
110 items:
111 type: string
112 groups:
113 description: |-
114 Groups contains group membership of the user that created the CertificateRequest.
115 Populated by the cert-manager webhook on creation and immutable.
116 type: array
117 items:
118 type: string
119 x-kubernetes-list-type: atomic
120 isCA:
121 description: |-
122 Requested basic constraints isCA value. Note that the issuer may choose
123 to ignore the requested isCA value, just like any other requested attribute.
124
125 NOTE: If the CSR in the `Request` field has a BasicConstraints extension,
126 it must have the same isCA value as specified here.
127
128 If true, this will automatically add the `cert sign` usage to the list
129 of requested `usages`.
130 type: boolean
131 issuerRef:
132 description: |-
133 Reference to the issuer responsible for issuing the certificate.
134 If the issuer is namespace-scoped, it must be in the same namespace
135 as the Certificate. If the issuer is cluster-scoped, it can be used
136 from any namespace.
137
138 The `name` field of the reference must always be specified.
139 type: object
140 required:
141 - name
142 properties:
143 group:
144 description: Group of the resource being referred to.
145 type: string
146 kind:
147 description: Kind of the resource being referred to.
148 type: string
149 name:
150 description: Name of the resource being referred to.
151 type: string
152 request:
153 description: |-
154 The PEM-encoded X.509 certificate signing request to be submitted to the
155 issuer for signing.
156
157 If the CSR has a BasicConstraints extension, its isCA attribute must
158 match the `isCA` value of this CertificateRequest.
159 If the CSR has a KeyUsage extension, its key usages must match the
160 key usages in the `usages` field of this CertificateRequest.
161 If the CSR has a ExtKeyUsage extension, its extended key usages
162 must match the extended key usages in the `usages` field of this
163 CertificateRequest.
164 type: string
165 format: byte
166 uid:
167 description: |-
168 UID contains the uid of the user that created the CertificateRequest.
169 Populated by the cert-manager webhook on creation and immutable.
170 type: string
171 usages:
172 description: |-
173 Requested key usages and extended key usages.
174
175 NOTE: If the CSR in the `Request` field has uses the KeyUsage or
176 ExtKeyUsage extension, these extensions must have the same values
177 as specified here without any additional values.
178
179 If unset, defaults to `digital signature` and `key encipherment`.
180 type: array
181 items:
182 description: |-
183 KeyUsage specifies valid usage contexts for keys.
184 See:
185 https://tools.ietf.org/html/rfc5280#section-4.2.1.3
186 https://tools.ietf.org/html/rfc5280#section-4.2.1.12
187
188 Valid KeyUsage values are as follows:
189 "signing",
190 "digital signature",
191 "content commitment",
192 "key encipherment",
193 "key agreement",
194 "data encipherment",
195 "cert sign",
196 "crl sign",
197 "encipher only",
198 "decipher only",
199 "any",
200 "server auth",
201 "client auth",
202 "code signing",
203 "email protection",
204 "s/mime",
205 "ipsec end system",
206 "ipsec tunnel",
207 "ipsec user",
208 "timestamping",
209 "ocsp signing",
210 "microsoft sgc",
211 "netscape sgc"
212 type: string
213 enum:
214 - signing
215 - digital signature
216 - content commitment
217 - key encipherment
218 - key agreement
219 - data encipherment
220 - cert sign
221 - crl sign
222 - encipher only
223 - decipher only
224 - any
225 - server auth
226 - client auth
227 - code signing
228 - email protection
229 - s/mime
230 - ipsec end system
231 - ipsec tunnel
232 - ipsec user
233 - timestamping
234 - ocsp signing
235 - microsoft sgc
236 - netscape sgc
237 username:
238 description: |-
239 Username contains the name of the user that created the CertificateRequest.
240 Populated by the cert-manager webhook on creation and immutable.
241 type: string
242 status:
243 description: |-
244 Status of the CertificateRequest.
245 This is set and managed automatically.
246 Read-only.
247 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
248 type: object
249 properties:
250 ca:
251 description: |-
252 The PEM encoded X.509 certificate of the signer, also known as the CA
253 (Certificate Authority).
254 This is set on a best-effort basis by different issuers.
255 If not set, the CA is assumed to be unknown/not available.
256 type: string
257 format: byte
258 certificate:
259 description: |-
260 The PEM encoded X.509 certificate resulting from the certificate
261 signing request.
262 If not set, the CertificateRequest has either not been completed or has
263 failed. More information on failure can be found by checking the
264 `conditions` field.
265 type: string
266 format: byte
267 conditions:
268 description: |-
269 List of status conditions to indicate the status of a CertificateRequest.
270 Known condition types are `Ready`, `InvalidRequest`, `Approved` and `Denied`.
271 type: array
272 items:
273 description: CertificateRequestCondition contains condition information for a CertificateRequest.
274 type: object
275 required:
276 - status
277 - type
278 properties:
279 lastTransitionTime:
280 description: |-
281 LastTransitionTime is the timestamp corresponding to the last status
282 change of this condition.
283 type: string
284 format: date-time
285 message:
286 description: |-
287 Message is a human readable description of the details of the last
288 transition, complementing reason.
289 type: string
290 reason:
291 description: |-
292 Reason is a brief machine readable explanation for the condition's last
293 transition.
294 type: string
295 status:
296 description: Status of the condition, one of (`True`, `False`, `Unknown`).
297 type: string
298 enum:
299 - "True"
300 - "False"
301 - Unknown
302 type:
303 description: |-
304 Type of the condition, known values are (`Ready`, `InvalidRequest`,
305 `Approved`, `Denied`).
306 type: string
307 x-kubernetes-list-map-keys:
308 - type
309 x-kubernetes-list-type: map
310 failureTime:
311 description: |-
312 FailureTime stores the time that this CertificateRequest failed. This is
313 used to influence garbage collection and back-off.
314 type: string
315 format: date-time
316 served: true
317 storage: true
318
319# END crd {{- end }}
320
321---
322# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
323apiVersion: apiextensions.k8s.io/v1
324kind: CustomResourceDefinition
325metadata:
326 name: certificates.cert-manager.io
327 # START annotations {{- if .Values.crds.keep }}
328 annotations:
329 helm.sh/resource-policy: keep
330 # END annotations {{- end }}
331 labels:
332 app: '{{ template "cert-manager.name" . }}'
333 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
334 app.kubernetes.io/instance: '{{ .Release.Name }}'
335 # Generated labels {{- include "labels" . | nindent 4 }}
336spec:
337 group: cert-manager.io
338 names:
339 kind: Certificate
340 listKind: CertificateList
341 plural: certificates
342 shortNames:
343 - cert
344 - certs
345 singular: certificate
346 categories:
347 - cert-manager
348 scope: Namespaced
349 versions:
350 - name: v1
351 subresources:
352 status: {}
353 additionalPrinterColumns:
354 - jsonPath: .status.conditions[?(@.type=="Ready")].status
355 name: Ready
356 type: string
357 - jsonPath: .spec.secretName
358 name: Secret
359 type: string
360 - jsonPath: .spec.issuerRef.name
361 name: Issuer
362 priority: 1
363 type: string
364 - jsonPath: .status.conditions[?(@.type=="Ready")].message
365 name: Status
366 priority: 1
367 type: string
368 - jsonPath: .metadata.creationTimestamp
369 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.
370 name: Age
371 type: date
372 schema:
373 openAPIV3Schema:
374 description: |-
375 A Certificate resource should be created to ensure an up to date and signed
376 X.509 certificate is stored in the Kubernetes Secret resource named in `spec.secretName`.
377
378 The stored certificate will be renewed before it expires (as configured by `spec.renewBefore`).
379 type: object
380 properties:
381 apiVersion:
382 description: |-
383 APIVersion defines the versioned schema of this representation of an object.
384 Servers should convert recognized schemas to the latest internal value, and
385 may reject unrecognized values.
386 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
387 type: string
388 kind:
389 description: |-
390 Kind is a string value representing the REST resource this object represents.
391 Servers may infer this from the endpoint the client submits requests to.
392 Cannot be updated.
393 In CamelCase.
394 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
395 type: string
396 metadata:
397 type: object
398 spec:
399 description: |-
400 Specification of the desired state of the Certificate resource.
401 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
402 type: object
403 required:
404 - issuerRef
405 - secretName
406 properties:
407 additionalOutputFormats:
408 description: |-
409 Defines extra output formats of the private key and signed certificate chain
410 to be written to this Certificate's target Secret.
411 type: array
412 items:
413 description: |-
414 CertificateAdditionalOutputFormat defines an additional output format of a
415 Certificate resource. These contain supplementary data formats of the signed
416 certificate chain and paired private key.
417 type: object
418 required:
419 - type
420 properties:
421 type:
422 description: |-
423 Type is the name of the format type that should be written to the
424 Certificate's target Secret.
425 type: string
426 enum:
427 - DER
428 - CombinedPEM
429 commonName:
430 description: |-
431 Requested common name X509 certificate subject attribute.
432 More info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6
433 NOTE: TLS clients will ignore this value when any subject alternative name is
434 set (see https://tools.ietf.org/html/rfc6125#section-6.4.4).
435
436 Should have a length of 64 characters or fewer to avoid generating invalid CSRs.
437 Cannot be set if the `literalSubject` field is set.
438 type: string
439 dnsNames:
440 description: Requested DNS subject alternative names.
441 type: array
442 items:
443 type: string
444 duration:
445 description: |-
446 Requested 'duration' (i.e. lifetime) of the Certificate. Note that the
447 issuer may choose to ignore the requested duration, just like any other
448 requested attribute.
449
450 If unset, this defaults to 90 days.
451 Minimum accepted duration is 1 hour.
452 Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration.
453 type: string
454 emailAddresses:
455 description: Requested email subject alternative names.
456 type: array
457 items:
458 type: string
459 encodeUsagesInRequest:
460 description: |-
461 Whether the KeyUsage and ExtKeyUsage extensions should be set in the encoded CSR.
462
463 This option defaults to true, and should only be disabled if the target
464 issuer does not support CSRs with these X509 KeyUsage/ ExtKeyUsage extensions.
465 type: boolean
466 ipAddresses:
467 description: Requested IP address subject alternative names.
468 type: array
469 items:
470 type: string
471 isCA:
472 description: |-
473 Requested basic constraints isCA value.
474 The isCA value is used to set the `isCA` field on the created CertificateRequest
475 resources. Note that the issuer may choose to ignore the requested isCA value, just
476 like any other requested attribute.
477
478 If true, this will automatically add the `cert sign` usage to the list
479 of requested `usages`.
480 type: boolean
481 issuerRef:
482 description: |-
483 Reference to the issuer responsible for issuing the certificate.
484 If the issuer is namespace-scoped, it must be in the same namespace
485 as the Certificate. If the issuer is cluster-scoped, it can be used
486 from any namespace.
487
488 The `name` field of the reference must always be specified.
489 type: object
490 required:
491 - name
492 properties:
493 group:
494 description: Group of the resource being referred to.
495 type: string
496 kind:
497 description: Kind of the resource being referred to.
498 type: string
499 name:
500 description: Name of the resource being referred to.
501 type: string
502 keystores:
503 description: Additional keystore output formats to be stored in the Certificate's Secret.
504 type: object
505 properties:
506 jks:
507 description: |-
508 JKS configures options for storing a JKS keystore in the
509 `spec.secretName` Secret resource.
510 type: object
511 required:
512 - create
513 properties:
514 alias:
515 description: |-
516 Alias specifies the alias of the key in the keystore, required by the JKS format.
517 If not provided, the default alias `certificate` will be used.
518 type: string
519 create:
520 description: |-
521 Create enables JKS keystore creation for the Certificate.
522 If true, a file named `keystore.jks` will be created in the target
523 Secret resource, encrypted using the password stored in
524 `passwordSecretRef` or `password`.
525 The keystore file will be updated immediately.
526 If the issuer provided a CA certificate, a file named `truststore.jks`
527 will also be created in the target Secret resource, encrypted using the
528 password stored in `passwordSecretRef`
529 containing the issuing Certificate Authority
530 type: boolean
531 password:
532 description: |-
533 Password provides a literal password used to encrypt the JKS keystore.
534 Mutually exclusive with passwordSecretRef.
535 One of password or passwordSecretRef must provide a password with a non-zero length.
536 type: string
537 passwordSecretRef:
538 description: |-
539 PasswordSecretRef is a reference to a non-empty key in a Secret resource
540 containing the password used to encrypt the JKS keystore.
541 Mutually exclusive with password.
542 One of password or passwordSecretRef must provide a password with a non-zero length.
543 type: object
544 required:
545 - name
546 properties:
547 key:
548 description: |-
549 The key of the entry in the Secret resource's `data` field to be used.
550 Some instances of this field may be defaulted, in others it may be
551 required.
552 type: string
553 name:
554 description: |-
555 Name of the resource being referred to.
556 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
557 type: string
558 pkcs12:
559 description: |-
560 PKCS12 configures options for storing a PKCS12 keystore in the
561 `spec.secretName` Secret resource.
562 type: object
563 required:
564 - create
565 properties:
566 create:
567 description: |-
568 Create enables PKCS12 keystore creation for the Certificate.
569 If true, a file named `keystore.p12` will be created in the target
570 Secret resource, encrypted using the password stored in
571 `passwordSecretRef` or in `password`.
572 The keystore file will be updated immediately.
573 If the issuer provided a CA certificate, a file named `truststore.p12` will
574 also be created in the target Secret resource, encrypted using the
575 password stored in `passwordSecretRef` containing the issuing Certificate
576 Authority
577 type: boolean
578 password:
579 description: |-
580 Password provides a literal password used to encrypt the PKCS#12 keystore.
581 Mutually exclusive with passwordSecretRef.
582 One of password or passwordSecretRef must provide a password with a non-zero length.
583 type: string
584 passwordSecretRef:
585 description: |-
586 PasswordSecretRef is a reference to a non-empty key in a Secret resource
587 containing the password used to encrypt the PKCS#12 keystore.
588 Mutually exclusive with password.
589 One of password or passwordSecretRef must provide a password with a non-zero length.
590 type: object
591 required:
592 - name
593 properties:
594 key:
595 description: |-
596 The key of the entry in the Secret resource's `data` field to be used.
597 Some instances of this field may be defaulted, in others it may be
598 required.
599 type: string
600 name:
601 description: |-
602 Name of the resource being referred to.
603 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
604 type: string
605 profile:
606 description: |-
607 Profile specifies the key and certificate encryption algorithms and the HMAC algorithm
608 used to create the PKCS12 keystore. Default value is `LegacyRC2` for backward compatibility.
609
610 If provided, allowed values are:
611 `LegacyRC2`: Deprecated. Not supported by default in OpenSSL 3 or Java 20.
612 `LegacyDES`: Less secure algorithm. Use this option for maximal compatibility.
613 `Modern2023`: Secure algorithm. Use this option in case you have to always use secure algorithms
614 (e.g., because of company policy). Please note that the security of the algorithm is not that important
615 in reality, because the unencrypted certificate and private key are also stored in the Secret.
616 type: string
617 enum:
618 - LegacyRC2
619 - LegacyDES
620 - Modern2023
621 literalSubject:
622 description: |-
623 Requested X.509 certificate subject, represented using the LDAP "String
624 Representation of a Distinguished Name" [1].
625 Important: the LDAP string format also specifies the order of the attributes
626 in the subject, this is important when issuing certs for LDAP authentication.
627 Example: `CN=foo,DC=corp,DC=example,DC=com`
628 More info [1]: https://datatracker.ietf.org/doc/html/rfc4514
629 More info: https://github.com/cert-manager/cert-manager/issues/3203
630 More info: https://github.com/cert-manager/cert-manager/issues/4424
631
632 Cannot be set if the `subject` or `commonName` field is set.
633 type: string
634 nameConstraints:
635 description: |-
636 x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate.
637 More Info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10
638
639 This is an Alpha Feature and is only enabled with the
640 `--feature-gates=NameConstraints=true` option set on both
641 the controller and webhook components.
642 type: object
643 properties:
644 critical:
645 description: if true then the name constraints are marked critical.
646 type: boolean
647 excluded:
648 description: |-
649 Excluded contains the constraints which must be disallowed. Any name matching a
650 restriction in the excluded field is invalid regardless
651 of information appearing in the permitted
652 type: object
653 properties:
654 dnsDomains:
655 description: DNSDomains is a list of DNS domains that are permitted or excluded.
656 type: array
657 items:
658 type: string
659 emailAddresses:
660 description: EmailAddresses is a list of Email Addresses that are permitted or excluded.
661 type: array
662 items:
663 type: string
664 ipRanges:
665 description: |-
666 IPRanges is a list of IP Ranges that are permitted or excluded.
667 This should be a valid CIDR notation.
668 type: array
669 items:
670 type: string
671 uriDomains:
672 description: URIDomains is a list of URI domains that are permitted or excluded.
673 type: array
674 items:
675 type: string
676 permitted:
677 description: Permitted contains the constraints in which the names must be located.
678 type: object
679 properties:
680 dnsDomains:
681 description: DNSDomains is a list of DNS domains that are permitted or excluded.
682 type: array
683 items:
684 type: string
685 emailAddresses:
686 description: EmailAddresses is a list of Email Addresses that are permitted or excluded.
687 type: array
688 items:
689 type: string
690 ipRanges:
691 description: |-
692 IPRanges is a list of IP Ranges that are permitted or excluded.
693 This should be a valid CIDR notation.
694 type: array
695 items:
696 type: string
697 uriDomains:
698 description: URIDomains is a list of URI domains that are permitted or excluded.
699 type: array
700 items:
701 type: string
702 otherNames:
703 description: |-
704 `otherNames` is an escape hatch for SAN that allows any type. We currently restrict the support to string like otherNames, cf RFC 5280 p 37
705 Any UTF8 String valued otherName can be passed with by setting the keys oid: x.x.x.x and UTF8Value: somevalue for `otherName`.
706 Most commonly this would be UPN set with oid: 1.3.6.1.4.1.311.20.2.3
707 You should ensure that any OID passed is valid for the UTF8String type as we do not explicitly validate this.
708 type: array
709 items:
710 type: object
711 properties:
712 oid:
713 description: |-
714 OID is the object identifier for the otherName SAN.
715 The object identifier must be expressed as a dotted string, for
716 example, "1.2.840.113556.1.4.221".
717 type: string
718 utf8Value:
719 description: |-
720 utf8Value is the string value of the otherName SAN.
721 The utf8Value accepts any valid UTF8 string to set as value for the otherName SAN.
722 type: string
723 privateKey:
724 description: |-
725 Private key options. These include the key algorithm and size, the used
726 encoding and the rotation policy.
727 type: object
728 properties:
729 algorithm:
730 description: |-
731 Algorithm is the private key algorithm of the corresponding private key
732 for this certificate.
733
734 If provided, allowed values are either `RSA`, `ECDSA` or `Ed25519`.
735 If `algorithm` is specified and `size` is not provided,
736 key size of 2048 will be used for `RSA` key algorithm and
737 key size of 256 will be used for `ECDSA` key algorithm.
738 key size is ignored when using the `Ed25519` key algorithm.
739 type: string
740 enum:
741 - RSA
742 - ECDSA
743 - Ed25519
744 encoding:
745 description: |-
746 The private key cryptography standards (PKCS) encoding for this
747 certificate's private key to be encoded in.
748
749 If provided, allowed values are `PKCS1` and `PKCS8` standing for PKCS#1
750 and PKCS#8, respectively.
751 Defaults to `PKCS1` if not specified.
752 type: string
753 enum:
754 - PKCS1
755 - PKCS8
756 rotationPolicy:
757 description: |-
758 RotationPolicy controls how private keys should be regenerated when a
759 re-issuance is being processed.
760
761 If set to `Never`, a private key will only be generated if one does not
762 already exist in the target `spec.secretName`. If one does exist but it
763 does not have the correct algorithm or size, a warning will be raised
764 to await user intervention.
765 If set to `Always`, a private key matching the specified requirements
766 will be generated whenever a re-issuance occurs.
767 Default is `Always`.
768 The default was changed from `Never` to `Always` in cert-manager >=v1.18.0.
769 The new default can be disabled by setting the
770 `--feature-gates=DefaultPrivateKeyRotationPolicyAlways=false` option on
771 the controller component.
772 type: string
773 enum:
774 - Never
775 - Always
776 size:
777 description: |-
778 Size is the key bit size of the corresponding private key for this certificate.
779
780 If `algorithm` is set to `RSA`, valid values are `2048`, `4096` or `8192`,
781 and will default to `2048` if not specified.
782 If `algorithm` is set to `ECDSA`, valid values are `256`, `384` or `521`,
783 and will default to `256` if not specified.
784 If `algorithm` is set to `Ed25519`, Size is ignored.
785 No other values are allowed.
786 type: integer
787 renewBefore:
788 description: |-
789 How long before the currently issued certificate's expiry cert-manager should
790 renew the certificate. For example, if a certificate is valid for 60 minutes,
791 and `renewBefore=10m`, cert-manager will begin to attempt to renew the certificate
792 50 minutes after it was issued (i.e. when there are 10 minutes remaining until
793 the certificate is no longer valid).
794
795 NOTE: The actual lifetime of the issued certificate is used to determine the
796 renewal time. If an issuer returns a certificate with a different lifetime than
797 the one requested, cert-manager will use the lifetime of the issued certificate.
798
799 If unset, this defaults to 1/3 of the issued certificate's lifetime.
800 Minimum accepted value is 5 minutes.
801 Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration.
802 Cannot be set if the `renewBeforePercentage` field is set.
803 type: string
804 renewBeforePercentage:
805 description: |-
806 `renewBeforePercentage` is like `renewBefore`, except it is a relative percentage
807 rather than an absolute duration. For example, if a certificate is valid for 60
808 minutes, and `renewBeforePercentage=25`, cert-manager will begin to attempt to
809 renew the certificate 45 minutes after it was issued (i.e. when there are 15
810 minutes (25%) remaining until the certificate is no longer valid).
811
812 NOTE: The actual lifetime of the issued certificate is used to determine the
813 renewal time. If an issuer returns a certificate with a different lifetime than
814 the one requested, cert-manager will use the lifetime of the issued certificate.
815
816 Value must be an integer in the range (0,100). The minimum effective
817 `renewBefore` derived from the `renewBeforePercentage` and `duration` fields is 5
818 minutes.
819 Cannot be set if the `renewBefore` field is set.
820 type: integer
821 format: int32
822 revisionHistoryLimit:
823 description: |-
824 The maximum number of CertificateRequest revisions that are maintained in
825 the Certificate's history. Each revision represents a single `CertificateRequest`
826 created by this Certificate, either when it was created, renewed, or Spec
827 was changed. Revisions will be removed by oldest first if the number of
828 revisions exceeds this number.
829
830 If set, revisionHistoryLimit must be a value of `1` or greater.
831 Default value is `1`.
832 type: integer
833 format: int32
834 secretName:
835 description: |-
836 Name of the Secret resource that will be automatically created and
837 managed by this Certificate resource. It will be populated with a
838 private key and certificate, signed by the denoted issuer. The Secret
839 resource lives in the same namespace as the Certificate resource.
840 type: string
841 secretTemplate:
842 description: |-
843 Defines annotations and labels to be copied to the Certificate's Secret.
844 Labels and annotations on the Secret will be changed as they appear on the
845 SecretTemplate when added or removed. SecretTemplate annotations are added
846 in conjunction with, and cannot overwrite, the base set of annotations
847 cert-manager sets on the Certificate's Secret.
848 type: object
849 properties:
850 annotations:
851 description: Annotations is a key value map to be copied to the target Kubernetes Secret.
852 type: object
853 additionalProperties:
854 type: string
855 labels:
856 description: Labels is a key value map to be copied to the target Kubernetes Secret.
857 type: object
858 additionalProperties:
859 type: string
860 signatureAlgorithm:
861 description: |-
862 Signature algorithm to use.
863 Allowed values for RSA keys: SHA256WithRSA, SHA384WithRSA, SHA512WithRSA.
864 Allowed values for ECDSA keys: ECDSAWithSHA256, ECDSAWithSHA384, ECDSAWithSHA512.
865 Allowed values for Ed25519 keys: PureEd25519.
866 type: string
867 enum:
868 - SHA256WithRSA
869 - SHA384WithRSA
870 - SHA512WithRSA
871 - ECDSAWithSHA256
872 - ECDSAWithSHA384
873 - ECDSAWithSHA512
874 - PureEd25519
875 subject:
876 description: |-
877 Requested set of X509 certificate subject attributes.
878 More info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6
879
880 The common name attribute is specified separately in the `commonName` field.
881 Cannot be set if the `literalSubject` field is set.
882 type: object
883 properties:
884 countries:
885 description: Countries to be used on the Certificate.
886 type: array
887 items:
888 type: string
889 localities:
890 description: Cities to be used on the Certificate.
891 type: array
892 items:
893 type: string
894 organizationalUnits:
895 description: Organizational Units to be used on the Certificate.
896 type: array
897 items:
898 type: string
899 organizations:
900 description: Organizations to be used on the Certificate.
901 type: array
902 items:
903 type: string
904 postalCodes:
905 description: Postal codes to be used on the Certificate.
906 type: array
907 items:
908 type: string
909 provinces:
910 description: State/Provinces to be used on the Certificate.
911 type: array
912 items:
913 type: string
914 serialNumber:
915 description: Serial number to be used on the Certificate.
916 type: string
917 streetAddresses:
918 description: Street addresses to be used on the Certificate.
919 type: array
920 items:
921 type: string
922 uris:
923 description: Requested URI subject alternative names.
924 type: array
925 items:
926 type: string
927 usages:
928 description: |-
929 Requested key usages and extended key usages.
930 These usages are used to set the `usages` field on the created CertificateRequest
931 resources. If `encodeUsagesInRequest` is unset or set to `true`, the usages
932 will additionally be encoded in the `request` field which contains the CSR blob.
933
934 If unset, defaults to `digital signature` and `key encipherment`.
935 type: array
936 items:
937 description: |-
938 KeyUsage specifies valid usage contexts for keys.
939 See:
940 https://tools.ietf.org/html/rfc5280#section-4.2.1.3
941 https://tools.ietf.org/html/rfc5280#section-4.2.1.12
942
943 Valid KeyUsage values are as follows:
944 "signing",
945 "digital signature",
946 "content commitment",
947 "key encipherment",
948 "key agreement",
949 "data encipherment",
950 "cert sign",
951 "crl sign",
952 "encipher only",
953 "decipher only",
954 "any",
955 "server auth",
956 "client auth",
957 "code signing",
958 "email protection",
959 "s/mime",
960 "ipsec end system",
961 "ipsec tunnel",
962 "ipsec user",
963 "timestamping",
964 "ocsp signing",
965 "microsoft sgc",
966 "netscape sgc"
967 type: string
968 enum:
969 - signing
970 - digital signature
971 - content commitment
972 - key encipherment
973 - key agreement
974 - data encipherment
975 - cert sign
976 - crl sign
977 - encipher only
978 - decipher only
979 - any
980 - server auth
981 - client auth
982 - code signing
983 - email protection
984 - s/mime
985 - ipsec end system
986 - ipsec tunnel
987 - ipsec user
988 - timestamping
989 - ocsp signing
990 - microsoft sgc
991 - netscape sgc
992 status:
993 description: |-
994 Status of the Certificate.
995 This is set and managed automatically.
996 Read-only.
997 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
998 type: object
999 properties:
1000 conditions:
1001 description: |-
1002 List of status conditions to indicate the status of certificates.
1003 Known condition types are `Ready` and `Issuing`.
1004 type: array
1005 items:
1006 description: CertificateCondition contains condition information for a Certificate.
1007 type: object
1008 required:
1009 - status
1010 - type
1011 properties:
1012 lastTransitionTime:
1013 description: |-
1014 LastTransitionTime is the timestamp corresponding to the last status
1015 change of this condition.
1016 type: string
1017 format: date-time
1018 message:
1019 description: |-
1020 Message is a human readable description of the details of the last
1021 transition, complementing reason.
1022 type: string
1023 observedGeneration:
1024 description: |-
1025 If set, this represents the .metadata.generation that the condition was
1026 set based upon.
1027 For instance, if .metadata.generation is currently 12, but the
1028 .status.condition[x].observedGeneration is 9, the condition is out of date
1029 with respect to the current state of the Certificate.
1030 type: integer
1031 format: int64
1032 reason:
1033 description: |-
1034 Reason is a brief machine readable explanation for the condition's last
1035 transition.
1036 type: string
1037 status:
1038 description: Status of the condition, one of (`True`, `False`, `Unknown`).
1039 type: string
1040 enum:
1041 - "True"
1042 - "False"
1043 - Unknown
1044 type:
1045 description: Type of the condition, known values are (`Ready`, `Issuing`).
1046 type: string
1047 x-kubernetes-list-map-keys:
1048 - type
1049 x-kubernetes-list-type: map
1050 failedIssuanceAttempts:
1051 description: |-
1052 The number of continuous failed issuance attempts up till now. This
1053 field gets removed (if set) on a successful issuance and gets set to
1054 1 if unset and an issuance has failed. If an issuance has failed, the
1055 delay till the next issuance will be calculated using formula
1056 time.Hour * 2 ^ (failedIssuanceAttempts - 1).
1057 type: integer
1058 lastFailureTime:
1059 description: |-
1060 LastFailureTime is set only if the latest issuance for this
1061 Certificate failed and contains the time of the failure. If an
1062 issuance has failed, the delay till the next issuance will be
1063 calculated using formula time.Hour * 2 ^ (failedIssuanceAttempts -
1064 1). If the latest issuance has succeeded this field will be unset.
1065 type: string
1066 format: date-time
1067 nextPrivateKeySecretName:
1068 description: |-
1069 The name of the Secret resource containing the private key to be used
1070 for the next certificate iteration.
1071 The keymanager controller will automatically set this field if the
1072 `Issuing` condition is set to `True`.
1073 It will automatically unset this field when the Issuing condition is
1074 not set or False.
1075 type: string
1076 notAfter:
1077 description: |-
1078 The expiration time of the certificate stored in the secret named
1079 by this resource in `spec.secretName`.
1080 type: string
1081 format: date-time
1082 notBefore:
1083 description: |-
1084 The time after which the certificate stored in the secret named
1085 by this resource in `spec.secretName` is valid.
1086 type: string
1087 format: date-time
1088 renewalTime:
1089 description: |-
1090 RenewalTime is the time at which the certificate will be next
1091 renewed.
1092 If not set, no upcoming renewal is scheduled.
1093 type: string
1094 format: date-time
1095 revision:
1096 description: |-
1097 The current 'revision' of the certificate as issued.
1098
1099 When a CertificateRequest resource is created, it will have the
1100 `cert-manager.io/certificate-revision` set to one greater than the
1101 current value of this field.
1102
1103 Upon issuance, this field will be set to the value of the annotation
1104 on the CertificateRequest resource used to issue the certificate.
1105
1106 Persisting the value on the CertificateRequest resource allows the
1107 certificates controller to know whether a request is part of an old
1108 issuance or if it is part of the ongoing revision's issuance by
1109 checking if the revision value in the annotation is greater than this
1110 field.
1111 type: integer
1112 served: true
1113 storage: true
1114
1115# END crd {{- end }}
1116
1117---
1118# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
1119apiVersion: apiextensions.k8s.io/v1
1120kind: CustomResourceDefinition
1121metadata:
1122 name: challenges.acme.cert-manager.io
1123 # START annotations {{- if .Values.crds.keep }}
1124 annotations:
1125 helm.sh/resource-policy: keep
1126 # END annotations {{- end }}
1127 labels:
1128 app: '{{ template "cert-manager.name" . }}'
1129 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
1130 app.kubernetes.io/instance: '{{ .Release.Name }}'
1131 # Generated labels {{- include "labels" . | nindent 4 }}
1132spec:
1133 group: acme.cert-manager.io
1134 names:
1135 kind: Challenge
1136 listKind: ChallengeList
1137 plural: challenges
1138 singular: challenge
1139 categories:
1140 - cert-manager
1141 - cert-manager-acme
1142 scope: Namespaced
1143 versions:
1144 - additionalPrinterColumns:
1145 - jsonPath: .status.state
1146 name: State
1147 type: string
1148 - jsonPath: .spec.dnsName
1149 name: Domain
1150 type: string
1151 - jsonPath: .status.reason
1152 name: Reason
1153 priority: 1
1154 type: string
1155 - 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.
1156 jsonPath: .metadata.creationTimestamp
1157 name: Age
1158 type: date
1159 name: v1
1160 schema:
1161 openAPIV3Schema:
1162 description: Challenge is a type to represent a Challenge request with an ACME server
1163 type: object
1164 required:
1165 - metadata
1166 - spec
1167 properties:
1168 apiVersion:
1169 description: |-
1170 APIVersion defines the versioned schema of this representation of an object.
1171 Servers should convert recognized schemas to the latest internal value, and
1172 may reject unrecognized values.
1173 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1174 type: string
1175 kind:
1176 description: |-
1177 Kind is a string value representing the REST resource this object represents.
1178 Servers may infer this from the endpoint the client submits requests to.
1179 Cannot be updated.
1180 In CamelCase.
1181 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1182 type: string
1183 metadata:
1184 type: object
1185 spec:
1186 type: object
1187 required:
1188 - authorizationURL
1189 - dnsName
1190 - issuerRef
1191 - key
1192 - solver
1193 - token
1194 - type
1195 - url
1196 properties:
1197 authorizationURL:
1198 description: |-
1199 The URL to the ACME Authorization resource that this
1200 challenge is a part of.
1201 type: string
1202 dnsName:
1203 description: |-
1204 dnsName is the identifier that this challenge is for, e.g., example.com.
1205 If the requested DNSName is a 'wildcard', this field MUST be set to the
1206 non-wildcard domain, e.g., for `*.example.com`, it must be `example.com`.
1207 type: string
1208 issuerRef:
1209 description: |-
1210 References a properly configured ACME-type Issuer which should
1211 be used to create this Challenge.
1212 If the Issuer does not exist, processing will be retried.
1213 If the Issuer is not an 'ACME' Issuer, an error will be returned and the
1214 Challenge will be marked as failed.
1215 type: object
1216 required:
1217 - name
1218 properties:
1219 group:
1220 description: Group of the resource being referred to.
1221 type: string
1222 kind:
1223 description: Kind of the resource being referred to.
1224 type: string
1225 name:
1226 description: Name of the resource being referred to.
1227 type: string
1228 key:
1229 description: |-
1230 The ACME challenge key for this challenge
1231 For HTTP01 challenges, this is the value that must be responded with to
1232 complete the HTTP01 challenge in the format:
1233 `<private key JWK thumbprint>.<key from acme server for challenge>`.
1234 For DNS01 challenges, this is the base64 encoded SHA256 sum of the
1235 `<private key JWK thumbprint>.<key from acme server for challenge>`
1236 text that must be set as the TXT record content.
1237 type: string
1238 solver:
1239 description: |-
1240 Contains the domain solving configuration that should be used to
1241 solve this challenge resource.
1242 type: object
1243 properties:
1244 dns01:
1245 description: |-
1246 Configures cert-manager to attempt to complete authorizations by
1247 performing the DNS01 challenge flow.
1248 type: object
1249 properties:
1250 acmeDNS:
1251 description: |-
1252 Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage
1253 DNS01 challenge records.
1254 type: object
1255 required:
1256 - accountSecretRef
1257 - host
1258 properties:
1259 accountSecretRef:
1260 description: |-
1261 A reference to a specific 'key' within a Secret resource.
1262 In some instances, `key` is a required field.
1263 type: object
1264 required:
1265 - name
1266 properties:
1267 key:
1268 description: |-
1269 The key of the entry in the Secret resource's `data` field to be used.
1270 Some instances of this field may be defaulted, in others it may be
1271 required.
1272 type: string
1273 name:
1274 description: |-
1275 Name of the resource being referred to.
1276 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1277 type: string
1278 host:
1279 type: string
1280 akamai:
1281 description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
1282 type: object
1283 required:
1284 - accessTokenSecretRef
1285 - clientSecretSecretRef
1286 - clientTokenSecretRef
1287 - serviceConsumerDomain
1288 properties:
1289 accessTokenSecretRef:
1290 description: |-
1291 A reference to a specific 'key' within a Secret resource.
1292 In some instances, `key` is a required field.
1293 type: object
1294 required:
1295 - name
1296 properties:
1297 key:
1298 description: |-
1299 The key of the entry in the Secret resource's `data` field to be used.
1300 Some instances of this field may be defaulted, in others it may be
1301 required.
1302 type: string
1303 name:
1304 description: |-
1305 Name of the resource being referred to.
1306 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1307 type: string
1308 clientSecretSecretRef:
1309 description: |-
1310 A reference to a specific 'key' within a Secret resource.
1311 In some instances, `key` is a required field.
1312 type: object
1313 required:
1314 - name
1315 properties:
1316 key:
1317 description: |-
1318 The key of the entry in the Secret resource's `data` field to be used.
1319 Some instances of this field may be defaulted, in others it may be
1320 required.
1321 type: string
1322 name:
1323 description: |-
1324 Name of the resource being referred to.
1325 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1326 type: string
1327 clientTokenSecretRef:
1328 description: |-
1329 A reference to a specific 'key' within a Secret resource.
1330 In some instances, `key` is a required field.
1331 type: object
1332 required:
1333 - name
1334 properties:
1335 key:
1336 description: |-
1337 The key of the entry in the Secret resource's `data` field to be used.
1338 Some instances of this field may be defaulted, in others it may be
1339 required.
1340 type: string
1341 name:
1342 description: |-
1343 Name of the resource being referred to.
1344 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1345 type: string
1346 serviceConsumerDomain:
1347 type: string
1348 azureDNS:
1349 description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
1350 type: object
1351 required:
1352 - resourceGroupName
1353 - subscriptionID
1354 properties:
1355 clientID:
1356 description: |-
1357 Auth: Azure Service Principal:
1358 The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
1359 If set, ClientSecret and TenantID must also be set.
1360 type: string
1361 clientSecretSecretRef:
1362 description: |-
1363 Auth: Azure Service Principal:
1364 A reference to a Secret containing the password associated with the Service Principal.
1365 If set, ClientID and TenantID must also be set.
1366 type: object
1367 required:
1368 - name
1369 properties:
1370 key:
1371 description: |-
1372 The key of the entry in the Secret resource's `data` field to be used.
1373 Some instances of this field may be defaulted, in others it may be
1374 required.
1375 type: string
1376 name:
1377 description: |-
1378 Name of the resource being referred to.
1379 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1380 type: string
1381 environment:
1382 description: name of the Azure environment (default AzurePublicCloud)
1383 type: string
1384 enum:
1385 - AzurePublicCloud
1386 - AzureChinaCloud
1387 - AzureGermanCloud
1388 - AzureUSGovernmentCloud
1389 hostedZoneName:
1390 description: name of the DNS zone that should be used
1391 type: string
1392 managedIdentity:
1393 description: |-
1394 Auth: Azure Workload Identity or Azure Managed Service Identity:
1395 Settings to enable Azure Workload Identity or Azure Managed Service Identity
1396 If set, ClientID, ClientSecret and TenantID must not be set.
1397 type: object
1398 properties:
1399 clientID:
1400 description: client ID of the managed identity, cannot be used at the same time as resourceID
1401 type: string
1402 resourceID:
1403 description: |-
1404 resource ID of the managed identity, cannot be used at the same time as clientID
1405 Cannot be used for Azure Managed Service Identity
1406 type: string
1407 tenantID:
1408 description: tenant ID of the managed identity, cannot be used at the same time as resourceID
1409 type: string
1410 resourceGroupName:
1411 description: resource group the DNS zone is located in
1412 type: string
1413 subscriptionID:
1414 description: ID of the Azure subscription
1415 type: string
1416 tenantID:
1417 description: |-
1418 Auth: Azure Service Principal:
1419 The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
1420 If set, ClientID and ClientSecret must also be set.
1421 type: string
1422 cloudDNS:
1423 description: Use the Google Cloud DNS API to manage DNS01 challenge records.
1424 type: object
1425 required:
1426 - project
1427 properties:
1428 hostedZoneName:
1429 description: |-
1430 HostedZoneName is an optional field that tells cert-manager in which
1431 Cloud DNS zone the challenge record has to be created.
1432 If left empty cert-manager will automatically choose a zone.
1433 type: string
1434 project:
1435 type: string
1436 serviceAccountSecretRef:
1437 description: |-
1438 A reference to a specific 'key' within a Secret resource.
1439 In some instances, `key` is a required field.
1440 type: object
1441 required:
1442 - name
1443 properties:
1444 key:
1445 description: |-
1446 The key of the entry in the Secret resource's `data` field to be used.
1447 Some instances of this field may be defaulted, in others it may be
1448 required.
1449 type: string
1450 name:
1451 description: |-
1452 Name of the resource being referred to.
1453 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1454 type: string
1455 cloudflare:
1456 description: Use the Cloudflare API to manage DNS01 challenge records.
1457 type: object
1458 properties:
1459 apiKeySecretRef:
1460 description: |-
1461 API key to use to authenticate with Cloudflare.
1462 Note: using an API token to authenticate is now the recommended method
1463 as it allows greater control of permissions.
1464 type: object
1465 required:
1466 - name
1467 properties:
1468 key:
1469 description: |-
1470 The key of the entry in the Secret resource's `data` field to be used.
1471 Some instances of this field may be defaulted, in others it may be
1472 required.
1473 type: string
1474 name:
1475 description: |-
1476 Name of the resource being referred to.
1477 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1478 type: string
1479 apiTokenSecretRef:
1480 description: API token used to authenticate with Cloudflare.
1481 type: object
1482 required:
1483 - name
1484 properties:
1485 key:
1486 description: |-
1487 The key of the entry in the Secret resource's `data` field to be used.
1488 Some instances of this field may be defaulted, in others it may be
1489 required.
1490 type: string
1491 name:
1492 description: |-
1493 Name of the resource being referred to.
1494 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1495 type: string
1496 email:
1497 description: Email of the account, only required when using API key based authentication.
1498 type: string
1499 cnameStrategy:
1500 description: |-
1501 CNAMEStrategy configures how the DNS01 provider should handle CNAME
1502 records when found in DNS zones.
1503 type: string
1504 enum:
1505 - None
1506 - Follow
1507 digitalocean:
1508 description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
1509 type: object
1510 required:
1511 - tokenSecretRef
1512 properties:
1513 tokenSecretRef:
1514 description: |-
1515 A reference to a specific 'key' within a Secret resource.
1516 In some instances, `key` is a required field.
1517 type: object
1518 required:
1519 - name
1520 properties:
1521 key:
1522 description: |-
1523 The key of the entry in the Secret resource's `data` field to be used.
1524 Some instances of this field may be defaulted, in others it may be
1525 required.
1526 type: string
1527 name:
1528 description: |-
1529 Name of the resource being referred to.
1530 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1531 type: string
1532 rfc2136:
1533 description: |-
1534 Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/)
1535 to manage DNS01 challenge records.
1536 type: object
1537 required:
1538 - nameserver
1539 properties:
1540 nameserver:
1541 description: |-
1542 The IP address or hostname of an authoritative DNS server supporting
1543 RFC2136 in the form host:port. If the host is an IPv6 address it must be
1544 enclosed in square brackets (e.g [2001:db8::1]) ; port is optional.
1545 This field is required.
1546 type: string
1547 tsigAlgorithm:
1548 description: |-
1549 The TSIG Algorithm configured in the DNS supporting RFC2136. Used only
1550 when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined.
1551 Supported values are (case-insensitive): ``HMACMD5`` (default),
1552 ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.
1553 type: string
1554 tsigKeyName:
1555 description: |-
1556 The TSIG Key name configured in the DNS.
1557 If ``tsigSecretSecretRef`` is defined, this field is required.
1558 type: string
1559 tsigSecretSecretRef:
1560 description: |-
1561 The name of the secret containing the TSIG value.
1562 If ``tsigKeyName`` is defined, this field is required.
1563 type: object
1564 required:
1565 - name
1566 properties:
1567 key:
1568 description: |-
1569 The key of the entry in the Secret resource's `data` field to be used.
1570 Some instances of this field may be defaulted, in others it may be
1571 required.
1572 type: string
1573 name:
1574 description: |-
1575 Name of the resource being referred to.
1576 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1577 type: string
1578 route53:
1579 description: Use the AWS Route53 API to manage DNS01 challenge records.
1580 type: object
1581 properties:
1582 accessKeyID:
1583 description: |-
1584 The AccessKeyID is used for authentication.
1585 Cannot be set when SecretAccessKeyID is set.
1586 If neither the Access Key nor Key ID are set, we fall-back to using env
1587 vars, shared credentials file or AWS Instance metadata,
1588 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
1589 type: string
1590 accessKeyIDSecretRef:
1591 description: |-
1592 The SecretAccessKey is used for authentication. If set, pull the AWS
1593 access key ID from a key within a Kubernetes Secret.
1594 Cannot be set when AccessKeyID is set.
1595 If neither the Access Key nor Key ID are set, we fall-back to using env
1596 vars, shared credentials file or AWS Instance metadata,
1597 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
1598 type: object
1599 required:
1600 - name
1601 properties:
1602 key:
1603 description: |-
1604 The key of the entry in the Secret resource's `data` field to be used.
1605 Some instances of this field may be defaulted, in others it may be
1606 required.
1607 type: string
1608 name:
1609 description: |-
1610 Name of the resource being referred to.
1611 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1612 type: string
1613 auth:
1614 description: Auth configures how cert-manager authenticates.
1615 type: object
1616 required:
1617 - kubernetes
1618 properties:
1619 kubernetes:
1620 description: |-
1621 Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
1622 by passing a bound ServiceAccount token.
1623 type: object
1624 required:
1625 - serviceAccountRef
1626 properties:
1627 serviceAccountRef:
1628 description: |-
1629 A reference to a service account that will be used to request a bound
1630 token (also known as "projected token"). To use this field, you must
1631 configure an RBAC rule to let cert-manager request a token.
1632 type: object
1633 required:
1634 - name
1635 properties:
1636 audiences:
1637 description: |-
1638 TokenAudiences is an optional list of audiences to include in the
1639 token passed to AWS. The default token consisting of the issuer's namespace
1640 and name is always included.
1641 If unset the audience defaults to `sts.amazonaws.com`.
1642 type: array
1643 items:
1644 type: string
1645 name:
1646 description: Name of the ServiceAccount used to request a token.
1647 type: string
1648 hostedZoneID:
1649 description: If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.
1650 type: string
1651 region:
1652 description: |-
1653 Override the AWS region.
1654
1655 Route53 is a global service and does not have regional endpoints but the
1656 region specified here (or via environment variables) is used as a hint to
1657 help compute the correct AWS credential scope and partition when it
1658 connects to Route53. See:
1659 - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html)
1660 - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html)
1661
1662 If you omit this region field, cert-manager will use the region from
1663 AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set
1664 in the cert-manager controller Pod.
1665
1666 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).
1667 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
1668 [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook).
1669 In this case this `region` field value is ignored.
1670
1671 The `region` field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
1672 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
1673 [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent),
1674 In this case this `region` field value is ignored.
1675 type: string
1676 role:
1677 description: |-
1678 Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
1679 or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
1680 type: string
1681 secretAccessKeySecretRef:
1682 description: |-
1683 The SecretAccessKey is used for authentication.
1684 If neither the Access Key nor Key ID are set, we fall-back to using env
1685 vars, shared credentials file or AWS Instance metadata,
1686 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
1687 type: object
1688 required:
1689 - name
1690 properties:
1691 key:
1692 description: |-
1693 The key of the entry in the Secret resource's `data` field to be used.
1694 Some instances of this field may be defaulted, in others it may be
1695 required.
1696 type: string
1697 name:
1698 description: |-
1699 Name of the resource being referred to.
1700 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1701 type: string
1702 webhook:
1703 description: |-
1704 Configure an external webhook based DNS01 challenge solver to manage
1705 DNS01 challenge records.
1706 type: object
1707 required:
1708 - groupName
1709 - solverName
1710 properties:
1711 config:
1712 description: |-
1713 Additional configuration that should be passed to the webhook apiserver
1714 when challenges are processed.
1715 This can contain arbitrary JSON data.
1716 Secret values should not be specified in this stanza.
1717 If secret values are needed (e.g., credentials for a DNS service), you
1718 should use a SecretKeySelector to reference a Secret resource.
1719 For details on the schema of this field, consult the webhook provider
1720 implementation's documentation.
1721 x-kubernetes-preserve-unknown-fields: true
1722 groupName:
1723 description: |-
1724 The API group name that should be used when POSTing ChallengePayload
1725 resources to the webhook apiserver.
1726 This should be the same as the GroupName specified in the webhook
1727 provider implementation.
1728 type: string
1729 solverName:
1730 description: |-
1731 The name of the solver to use, as defined in the webhook provider
1732 implementation.
1733 This will typically be the name of the provider, e.g., 'cloudflare'.
1734 type: string
1735 http01:
1736 description: |-
1737 Configures cert-manager to attempt to complete authorizations by
1738 performing the HTTP01 challenge flow.
1739 It is not possible to obtain certificates for wildcard domain names
1740 (e.g., `*.example.com`) using the HTTP01 challenge mechanism.
1741 type: object
1742 properties:
1743 gatewayHTTPRoute:
1744 description: |-
1745 The Gateway API is a sig-network community API that models service networking
1746 in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will
1747 create HTTPRoutes with the specified labels in the same namespace as the challenge.
1748 This solver is experimental, and fields / behaviour may change in the future.
1749 type: object
1750 properties:
1751 labels:
1752 description: |-
1753 Custom labels that will be applied to HTTPRoutes created by cert-manager
1754 while solving HTTP-01 challenges.
1755 type: object
1756 additionalProperties:
1757 type: string
1758 parentRefs:
1759 description: |-
1760 When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute.
1761 cert-manager needs to know which parentRefs should be used when creating
1762 the HTTPRoute. Usually, the parentRef references a Gateway. See:
1763 https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways
1764 type: array
1765 items:
1766 description: |-
1767 ParentReference identifies an API object (usually a Gateway) that can be considered
1768 a parent of this resource (usually a route). There are two kinds of parent resources
1769 with "Core" support:
1770
1771 * Gateway (Gateway conformance profile)
1772 * Service (Mesh conformance profile, ClusterIP Services only)
1773
1774 This API may be extended in the future to support additional kinds of parent
1775 resources.
1776
1777 The API object must be valid in the cluster; the Group and Kind must
1778 be registered in the cluster for this reference to be valid.
1779 type: object
1780 required:
1781 - name
1782 properties:
1783 group:
1784 description: |-
1785 Group is the group of the referent.
1786 When unspecified, "gateway.networking.k8s.io" is inferred.
1787 To set the core API group (such as for a "Service" kind referent),
1788 Group must be explicitly set to "" (empty string).
1789
1790 Support: Core
1791 type: string
1792 default: gateway.networking.k8s.io
1793 maxLength: 253
1794 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
1795 kind:
1796 description: |-
1797 Kind is kind of the referent.
1798
1799 There are two kinds of parent resources with "Core" support:
1800
1801 * Gateway (Gateway conformance profile)
1802 * Service (Mesh conformance profile, ClusterIP Services only)
1803
1804 Support for other resources is Implementation-Specific.
1805 type: string
1806 default: Gateway
1807 maxLength: 63
1808 minLength: 1
1809 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
1810 name:
1811 description: |-
1812 Name is the name of the referent.
1813
1814 Support: Core
1815 type: string
1816 maxLength: 253
1817 minLength: 1
1818 namespace:
1819 description: |-
1820 Namespace is the namespace of the referent. When unspecified, this refers
1821 to the local namespace of the Route.
1822
1823 Note that there are specific rules for ParentRefs which cross namespace
1824 boundaries. Cross-namespace references are only valid if they are explicitly
1825 allowed by something in the namespace they are referring to. For example:
1826 Gateway has the AllowedRoutes field, and ReferenceGrant provides a
1827 generic way to enable any other kind of cross-namespace reference.
1828
1829 <gateway:experimental:description>
1830 ParentRefs from a Route to a Service in the same namespace are "producer"
1831 routes, which apply default routing rules to inbound connections from
1832 any namespace to the Service.
1833
1834 ParentRefs from a Route to a Service in a different namespace are
1835 "consumer" routes, and these routing rules are only applied to outbound
1836 connections originating from the same namespace as the Route, for which
1837 the intended destination of the connections are a Service targeted as a
1838 ParentRef of the Route.
1839 </gateway:experimental:description>
1840
1841 Support: Core
1842 type: string
1843 maxLength: 63
1844 minLength: 1
1845 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
1846 port:
1847 description: |-
1848 Port is the network port this Route targets. It can be interpreted
1849 differently based on the type of parent resource.
1850
1851 When the parent resource is a Gateway, this targets all listeners
1852 listening on the specified port that also support this kind of Route(and
1853 select this Route). It's not recommended to set `Port` unless the
1854 networking behaviors specified in a Route must apply to a specific port
1855 as opposed to a listener(s) whose port(s) may be changed. When both Port
1856 and SectionName are specified, the name and port of the selected listener
1857 must match both specified values.
1858
1859 <gateway:experimental:description>
1860 When the parent resource is a Service, this targets a specific port in the
1861 Service spec. When both Port (experimental) and SectionName are specified,
1862 the name and port of the selected port must match both specified values.
1863 </gateway:experimental:description>
1864
1865 Implementations MAY choose to support other parent resources.
1866 Implementations supporting other types of parent resources MUST clearly
1867 document how/if Port is interpreted.
1868
1869 For the purpose of status, an attachment is considered successful as
1870 long as the parent resource accepts it partially. For example, Gateway
1871 listeners can restrict which Routes can attach to them by Route kind,
1872 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
1873 from the referencing Route, the Route MUST be considered successfully
1874 attached. If no Gateway listeners accept attachment from this Route,
1875 the Route MUST be considered detached from the Gateway.
1876
1877 Support: Extended
1878 type: integer
1879 format: int32
1880 maximum: 65535
1881 minimum: 1
1882 sectionName:
1883 description: |-
1884 SectionName is the name of a section within the target resource. In the
1885 following resources, SectionName is interpreted as the following:
1886
1887 * Gateway: Listener name. When both Port (experimental) and SectionName
1888 are specified, the name and port of the selected listener must match
1889 both specified values.
1890 * Service: Port name. When both Port (experimental) and SectionName
1891 are specified, the name and port of the selected listener must match
1892 both specified values.
1893
1894 Implementations MAY choose to support attaching Routes to other resources.
1895 If that is the case, they MUST clearly document how SectionName is
1896 interpreted.
1897
1898 When unspecified (empty string), this will reference the entire resource.
1899 For the purpose of status, an attachment is considered successful if at
1900 least one section in the parent resource accepts it. For example, Gateway
1901 listeners can restrict which Routes can attach to them by Route kind,
1902 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
1903 the referencing Route, the Route MUST be considered successfully
1904 attached. If no Gateway listeners accept attachment from this Route, the
1905 Route MUST be considered detached from the Gateway.
1906
1907 Support: Core
1908 type: string
1909 maxLength: 253
1910 minLength: 1
1911 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
1912 podTemplate:
1913 description: |-
1914 Optional pod template used to configure the ACME challenge solver pods
1915 used for HTTP01 challenges.
1916 type: object
1917 properties:
1918 metadata:
1919 description: |-
1920 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
1921 Only the 'labels' and 'annotations' fields may be set.
1922 If labels or annotations overlap with in-built values, the values here
1923 will override the in-built values.
1924 type: object
1925 properties:
1926 annotations:
1927 description: Annotations that should be added to the created ACME HTTP01 solver pods.
1928 type: object
1929 additionalProperties:
1930 type: string
1931 labels:
1932 description: Labels that should be added to the created ACME HTTP01 solver pods.
1933 type: object
1934 additionalProperties:
1935 type: string
1936 spec:
1937 description: |-
1938 PodSpec defines overrides for the HTTP01 challenge solver pod.
1939 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
1940 All other fields will be ignored.
1941 type: object
1942 properties:
1943 affinity:
1944 description: If specified, the pod's scheduling constraints
1945 type: object
1946 properties:
1947 nodeAffinity:
1948 description: Describes node affinity scheduling rules for the pod.
1949 type: object
1950 properties:
1951 preferredDuringSchedulingIgnoredDuringExecution:
1952 description: |-
1953 The scheduler will prefer to schedule pods to nodes that satisfy
1954 the affinity expressions specified by this field, but it may choose
1955 a node that violates one or more of the expressions. The node that is
1956 most preferred is the one with the greatest sum of weights, i.e.
1957 for each node that meets all of the scheduling requirements (resource
1958 request, requiredDuringScheduling affinity expressions, etc.),
1959 compute a sum by iterating through the elements of this field and adding
1960 "weight" to the sum if the node matches the corresponding matchExpressions; the
1961 node(s) with the highest sum are the most preferred.
1962 type: array
1963 items:
1964 description: |-
1965 An empty preferred scheduling term matches all objects with implicit weight 0
1966 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
1967 type: object
1968 required:
1969 - preference
1970 - weight
1971 properties:
1972 preference:
1973 description: A node selector term, associated with the corresponding weight.
1974 type: object
1975 properties:
1976 matchExpressions:
1977 description: A list of node selector requirements by node's labels.
1978 type: array
1979 items:
1980 description: |-
1981 A node selector requirement is a selector that contains values, a key, and an operator
1982 that relates the key and values.
1983 type: object
1984 required:
1985 - key
1986 - operator
1987 properties:
1988 key:
1989 description: The label key that the selector applies to.
1990 type: string
1991 operator:
1992 description: |-
1993 Represents a key's relationship to a set of values.
1994 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1995 type: string
1996 values:
1997 description: |-
1998 An array of string values. If the operator is In or NotIn,
1999 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2000 the values array must be empty. If the operator is Gt or Lt, the values
2001 array must have a single element, which will be interpreted as an integer.
2002 This array is replaced during a strategic merge patch.
2003 type: array
2004 items:
2005 type: string
2006 x-kubernetes-list-type: atomic
2007 x-kubernetes-list-type: atomic
2008 matchFields:
2009 description: A list of node selector requirements by node's fields.
2010 type: array
2011 items:
2012 description: |-
2013 A node selector requirement is a selector that contains values, a key, and an operator
2014 that relates the key and values.
2015 type: object
2016 required:
2017 - key
2018 - operator
2019 properties:
2020 key:
2021 description: The label key that the selector applies to.
2022 type: string
2023 operator:
2024 description: |-
2025 Represents a key's relationship to a set of values.
2026 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2027 type: string
2028 values:
2029 description: |-
2030 An array of string values. If the operator is In or NotIn,
2031 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2032 the values array must be empty. If the operator is Gt or Lt, the values
2033 array must have a single element, which will be interpreted as an integer.
2034 This array is replaced during a strategic merge patch.
2035 type: array
2036 items:
2037 type: string
2038 x-kubernetes-list-type: atomic
2039 x-kubernetes-list-type: atomic
2040 x-kubernetes-map-type: atomic
2041 weight:
2042 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
2043 type: integer
2044 format: int32
2045 x-kubernetes-list-type: atomic
2046 requiredDuringSchedulingIgnoredDuringExecution:
2047 description: |-
2048 If the affinity requirements specified by this field are not met at
2049 scheduling time, the pod will not be scheduled onto the node.
2050 If the affinity requirements specified by this field cease to be met
2051 at some point during pod execution (e.g. due to an update), the system
2052 may or may not try to eventually evict the pod from its node.
2053 type: object
2054 required:
2055 - nodeSelectorTerms
2056 properties:
2057 nodeSelectorTerms:
2058 description: Required. A list of node selector terms. The terms are ORed.
2059 type: array
2060 items:
2061 description: |-
2062 A null or empty node selector term matches no objects. The requirements of
2063 them are ANDed.
2064 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
2065 type: object
2066 properties:
2067 matchExpressions:
2068 description: A list of node selector requirements by node's labels.
2069 type: array
2070 items:
2071 description: |-
2072 A node selector requirement is a selector that contains values, a key, and an operator
2073 that relates the key and values.
2074 type: object
2075 required:
2076 - key
2077 - operator
2078 properties:
2079 key:
2080 description: The label key that the selector applies to.
2081 type: string
2082 operator:
2083 description: |-
2084 Represents a key's relationship to a set of values.
2085 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2086 type: string
2087 values:
2088 description: |-
2089 An array of string values. If the operator is In or NotIn,
2090 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2091 the values array must be empty. If the operator is Gt or Lt, the values
2092 array must have a single element, which will be interpreted as an integer.
2093 This array is replaced during a strategic merge patch.
2094 type: array
2095 items:
2096 type: string
2097 x-kubernetes-list-type: atomic
2098 x-kubernetes-list-type: atomic
2099 matchFields:
2100 description: A list of node selector requirements by node's fields.
2101 type: array
2102 items:
2103 description: |-
2104 A node selector requirement is a selector that contains values, a key, and an operator
2105 that relates the key and values.
2106 type: object
2107 required:
2108 - key
2109 - operator
2110 properties:
2111 key:
2112 description: The label key that the selector applies to.
2113 type: string
2114 operator:
2115 description: |-
2116 Represents a key's relationship to a set of values.
2117 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2118 type: string
2119 values:
2120 description: |-
2121 An array of string values. If the operator is In or NotIn,
2122 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2123 the values array must be empty. If the operator is Gt or Lt, the values
2124 array must have a single element, which will be interpreted as an integer.
2125 This array is replaced during a strategic merge patch.
2126 type: array
2127 items:
2128 type: string
2129 x-kubernetes-list-type: atomic
2130 x-kubernetes-list-type: atomic
2131 x-kubernetes-map-type: atomic
2132 x-kubernetes-list-type: atomic
2133 x-kubernetes-map-type: atomic
2134 podAffinity:
2135 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
2136 type: object
2137 properties:
2138 preferredDuringSchedulingIgnoredDuringExecution:
2139 description: |-
2140 The scheduler will prefer to schedule pods to nodes that satisfy
2141 the affinity expressions specified by this field, but it may choose
2142 a node that violates one or more of the expressions. The node that is
2143 most preferred is the one with the greatest sum of weights, i.e.
2144 for each node that meets all of the scheduling requirements (resource
2145 request, requiredDuringScheduling affinity expressions, etc.),
2146 compute a sum by iterating through the elements of this field and adding
2147 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2148 node(s) with the highest sum are the most preferred.
2149 type: array
2150 items:
2151 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2152 type: object
2153 required:
2154 - podAffinityTerm
2155 - weight
2156 properties:
2157 podAffinityTerm:
2158 description: Required. A pod affinity term, associated with the corresponding weight.
2159 type: object
2160 required:
2161 - topologyKey
2162 properties:
2163 labelSelector:
2164 description: |-
2165 A label query over a set of resources, in this case pods.
2166 If it's null, this PodAffinityTerm matches with no Pods.
2167 type: object
2168 properties:
2169 matchExpressions:
2170 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2171 type: array
2172 items:
2173 description: |-
2174 A label selector requirement is a selector that contains values, a key, and an operator that
2175 relates the key and values.
2176 type: object
2177 required:
2178 - key
2179 - operator
2180 properties:
2181 key:
2182 description: key is the label key that the selector applies to.
2183 type: string
2184 operator:
2185 description: |-
2186 operator represents a key's relationship to a set of values.
2187 Valid operators are In, NotIn, Exists and DoesNotExist.
2188 type: string
2189 values:
2190 description: |-
2191 values is an array of string values. If the operator is In or NotIn,
2192 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2193 the values array must be empty. This array is replaced during a strategic
2194 merge patch.
2195 type: array
2196 items:
2197 type: string
2198 x-kubernetes-list-type: atomic
2199 x-kubernetes-list-type: atomic
2200 matchLabels:
2201 description: |-
2202 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2203 map is equivalent to an element of matchExpressions, whose key field is "key", the
2204 operator is "In", and the values array contains only "value". The requirements are ANDed.
2205 type: object
2206 additionalProperties:
2207 type: string
2208 x-kubernetes-map-type: atomic
2209 matchLabelKeys:
2210 description: |-
2211 MatchLabelKeys is a set of pod label keys to select which pods will
2212 be taken into consideration. The keys are used to lookup values from the
2213 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2214 to select the group of existing pods which pods will be taken into consideration
2215 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2216 pod labels will be ignored. The default value is empty.
2217 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2218 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2219 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2220 type: array
2221 items:
2222 type: string
2223 x-kubernetes-list-type: atomic
2224 mismatchLabelKeys:
2225 description: |-
2226 MismatchLabelKeys is a set of pod label keys to select which pods will
2227 be taken into consideration. The keys are used to lookup values from the
2228 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2229 to select the group of existing pods which pods will be taken into consideration
2230 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2231 pod labels will be ignored. The default value is empty.
2232 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2233 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2234 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2235 type: array
2236 items:
2237 type: string
2238 x-kubernetes-list-type: atomic
2239 namespaceSelector:
2240 description: |-
2241 A label query over the set of namespaces that the term applies to.
2242 The term is applied to the union of the namespaces selected by this field
2243 and the ones listed in the namespaces field.
2244 null selector and null or empty namespaces list means "this pod's namespace".
2245 An empty selector ({}) matches all namespaces.
2246 type: object
2247 properties:
2248 matchExpressions:
2249 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2250 type: array
2251 items:
2252 description: |-
2253 A label selector requirement is a selector that contains values, a key, and an operator that
2254 relates the key and values.
2255 type: object
2256 required:
2257 - key
2258 - operator
2259 properties:
2260 key:
2261 description: key is the label key that the selector applies to.
2262 type: string
2263 operator:
2264 description: |-
2265 operator represents a key's relationship to a set of values.
2266 Valid operators are In, NotIn, Exists and DoesNotExist.
2267 type: string
2268 values:
2269 description: |-
2270 values is an array of string values. If the operator is In or NotIn,
2271 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2272 the values array must be empty. This array is replaced during a strategic
2273 merge patch.
2274 type: array
2275 items:
2276 type: string
2277 x-kubernetes-list-type: atomic
2278 x-kubernetes-list-type: atomic
2279 matchLabels:
2280 description: |-
2281 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2282 map is equivalent to an element of matchExpressions, whose key field is "key", the
2283 operator is "In", and the values array contains only "value". The requirements are ANDed.
2284 type: object
2285 additionalProperties:
2286 type: string
2287 x-kubernetes-map-type: atomic
2288 namespaces:
2289 description: |-
2290 namespaces specifies a static list of namespace names that the term applies to.
2291 The term is applied to the union of the namespaces listed in this field
2292 and the ones selected by namespaceSelector.
2293 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2294 type: array
2295 items:
2296 type: string
2297 x-kubernetes-list-type: atomic
2298 topologyKey:
2299 description: |-
2300 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2301 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2302 whose value of the label with key topologyKey matches that of any node on which any of the
2303 selected pods is running.
2304 Empty topologyKey is not allowed.
2305 type: string
2306 weight:
2307 description: |-
2308 weight associated with matching the corresponding podAffinityTerm,
2309 in the range 1-100.
2310 type: integer
2311 format: int32
2312 x-kubernetes-list-type: atomic
2313 requiredDuringSchedulingIgnoredDuringExecution:
2314 description: |-
2315 If the affinity requirements specified by this field are not met at
2316 scheduling time, the pod will not be scheduled onto the node.
2317 If the affinity requirements specified by this field cease to be met
2318 at some point during pod execution (e.g. due to a pod label update), the
2319 system may or may not try to eventually evict the pod from its node.
2320 When there are multiple elements, the lists of nodes corresponding to each
2321 podAffinityTerm are intersected, i.e. all terms must be satisfied.
2322 type: array
2323 items:
2324 description: |-
2325 Defines a set of pods (namely those matching the labelSelector
2326 relative to the given namespace(s)) that this pod should be
2327 co-located (affinity) or not co-located (anti-affinity) with,
2328 where co-located is defined as running on a node whose value of
2329 the label with key <topologyKey> matches that of any node on which
2330 a pod of the set of pods is running
2331 type: object
2332 required:
2333 - topologyKey
2334 properties:
2335 labelSelector:
2336 description: |-
2337 A label query over a set of resources, in this case pods.
2338 If it's null, this PodAffinityTerm matches with no Pods.
2339 type: object
2340 properties:
2341 matchExpressions:
2342 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2343 type: array
2344 items:
2345 description: |-
2346 A label selector requirement is a selector that contains values, a key, and an operator that
2347 relates the key and values.
2348 type: object
2349 required:
2350 - key
2351 - operator
2352 properties:
2353 key:
2354 description: key is the label key that the selector applies to.
2355 type: string
2356 operator:
2357 description: |-
2358 operator represents a key's relationship to a set of values.
2359 Valid operators are In, NotIn, Exists and DoesNotExist.
2360 type: string
2361 values:
2362 description: |-
2363 values is an array of string values. If the operator is In or NotIn,
2364 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2365 the values array must be empty. This array is replaced during a strategic
2366 merge patch.
2367 type: array
2368 items:
2369 type: string
2370 x-kubernetes-list-type: atomic
2371 x-kubernetes-list-type: atomic
2372 matchLabels:
2373 description: |-
2374 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2375 map is equivalent to an element of matchExpressions, whose key field is "key", the
2376 operator is "In", and the values array contains only "value". The requirements are ANDed.
2377 type: object
2378 additionalProperties:
2379 type: string
2380 x-kubernetes-map-type: atomic
2381 matchLabelKeys:
2382 description: |-
2383 MatchLabelKeys is a set of pod label keys to select which pods will
2384 be taken into consideration. The keys are used to lookup values from the
2385 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2386 to select the group of existing pods which pods will be taken into consideration
2387 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2388 pod labels will be ignored. The default value is empty.
2389 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2390 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2391 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2392 type: array
2393 items:
2394 type: string
2395 x-kubernetes-list-type: atomic
2396 mismatchLabelKeys:
2397 description: |-
2398 MismatchLabelKeys is a set of pod label keys to select which pods will
2399 be taken into consideration. The keys are used to lookup values from the
2400 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2401 to select the group of existing pods which pods will be taken into consideration
2402 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2403 pod labels will be ignored. The default value is empty.
2404 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2405 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2406 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2407 type: array
2408 items:
2409 type: string
2410 x-kubernetes-list-type: atomic
2411 namespaceSelector:
2412 description: |-
2413 A label query over the set of namespaces that the term applies to.
2414 The term is applied to the union of the namespaces selected by this field
2415 and the ones listed in the namespaces field.
2416 null selector and null or empty namespaces list means "this pod's namespace".
2417 An empty selector ({}) matches all namespaces.
2418 type: object
2419 properties:
2420 matchExpressions:
2421 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2422 type: array
2423 items:
2424 description: |-
2425 A label selector requirement is a selector that contains values, a key, and an operator that
2426 relates the key and values.
2427 type: object
2428 required:
2429 - key
2430 - operator
2431 properties:
2432 key:
2433 description: key is the label key that the selector applies to.
2434 type: string
2435 operator:
2436 description: |-
2437 operator represents a key's relationship to a set of values.
2438 Valid operators are In, NotIn, Exists and DoesNotExist.
2439 type: string
2440 values:
2441 description: |-
2442 values is an array of string values. If the operator is In or NotIn,
2443 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2444 the values array must be empty. This array is replaced during a strategic
2445 merge patch.
2446 type: array
2447 items:
2448 type: string
2449 x-kubernetes-list-type: atomic
2450 x-kubernetes-list-type: atomic
2451 matchLabels:
2452 description: |-
2453 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2454 map is equivalent to an element of matchExpressions, whose key field is "key", the
2455 operator is "In", and the values array contains only "value". The requirements are ANDed.
2456 type: object
2457 additionalProperties:
2458 type: string
2459 x-kubernetes-map-type: atomic
2460 namespaces:
2461 description: |-
2462 namespaces specifies a static list of namespace names that the term applies to.
2463 The term is applied to the union of the namespaces listed in this field
2464 and the ones selected by namespaceSelector.
2465 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2466 type: array
2467 items:
2468 type: string
2469 x-kubernetes-list-type: atomic
2470 topologyKey:
2471 description: |-
2472 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2473 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2474 whose value of the label with key topologyKey matches that of any node on which any of the
2475 selected pods is running.
2476 Empty topologyKey is not allowed.
2477 type: string
2478 x-kubernetes-list-type: atomic
2479 podAntiAffinity:
2480 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
2481 type: object
2482 properties:
2483 preferredDuringSchedulingIgnoredDuringExecution:
2484 description: |-
2485 The scheduler will prefer to schedule pods to nodes that satisfy
2486 the anti-affinity expressions specified by this field, but it may choose
2487 a node that violates one or more of the expressions. The node that is
2488 most preferred is the one with the greatest sum of weights, i.e.
2489 for each node that meets all of the scheduling requirements (resource
2490 request, requiredDuringScheduling anti-affinity expressions, etc.),
2491 compute a sum by iterating through the elements of this field and adding
2492 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2493 node(s) with the highest sum are the most preferred.
2494 type: array
2495 items:
2496 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2497 type: object
2498 required:
2499 - podAffinityTerm
2500 - weight
2501 properties:
2502 podAffinityTerm:
2503 description: Required. A pod affinity term, associated with the corresponding weight.
2504 type: object
2505 required:
2506 - topologyKey
2507 properties:
2508 labelSelector:
2509 description: |-
2510 A label query over a set of resources, in this case pods.
2511 If it's null, this PodAffinityTerm matches with no Pods.
2512 type: object
2513 properties:
2514 matchExpressions:
2515 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2516 type: array
2517 items:
2518 description: |-
2519 A label selector requirement is a selector that contains values, a key, and an operator that
2520 relates the key and values.
2521 type: object
2522 required:
2523 - key
2524 - operator
2525 properties:
2526 key:
2527 description: key is the label key that the selector applies to.
2528 type: string
2529 operator:
2530 description: |-
2531 operator represents a key's relationship to a set of values.
2532 Valid operators are In, NotIn, Exists and DoesNotExist.
2533 type: string
2534 values:
2535 description: |-
2536 values is an array of string values. If the operator is In or NotIn,
2537 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2538 the values array must be empty. This array is replaced during a strategic
2539 merge patch.
2540 type: array
2541 items:
2542 type: string
2543 x-kubernetes-list-type: atomic
2544 x-kubernetes-list-type: atomic
2545 matchLabels:
2546 description: |-
2547 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2548 map is equivalent to an element of matchExpressions, whose key field is "key", the
2549 operator is "In", and the values array contains only "value". The requirements are ANDed.
2550 type: object
2551 additionalProperties:
2552 type: string
2553 x-kubernetes-map-type: atomic
2554 matchLabelKeys:
2555 description: |-
2556 MatchLabelKeys is a set of pod label keys to select which pods will
2557 be taken into consideration. The keys are used to lookup values from the
2558 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2559 to select the group of existing pods which pods will be taken into consideration
2560 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2561 pod labels will be ignored. The default value is empty.
2562 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2563 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2564 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2565 type: array
2566 items:
2567 type: string
2568 x-kubernetes-list-type: atomic
2569 mismatchLabelKeys:
2570 description: |-
2571 MismatchLabelKeys is a set of pod label keys to select which pods will
2572 be taken into consideration. The keys are used to lookup values from the
2573 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2574 to select the group of existing pods which pods will be taken into consideration
2575 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2576 pod labels will be ignored. The default value is empty.
2577 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2578 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2579 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2580 type: array
2581 items:
2582 type: string
2583 x-kubernetes-list-type: atomic
2584 namespaceSelector:
2585 description: |-
2586 A label query over the set of namespaces that the term applies to.
2587 The term is applied to the union of the namespaces selected by this field
2588 and the ones listed in the namespaces field.
2589 null selector and null or empty namespaces list means "this pod's namespace".
2590 An empty selector ({}) matches all namespaces.
2591 type: object
2592 properties:
2593 matchExpressions:
2594 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2595 type: array
2596 items:
2597 description: |-
2598 A label selector requirement is a selector that contains values, a key, and an operator that
2599 relates the key and values.
2600 type: object
2601 required:
2602 - key
2603 - operator
2604 properties:
2605 key:
2606 description: key is the label key that the selector applies to.
2607 type: string
2608 operator:
2609 description: |-
2610 operator represents a key's relationship to a set of values.
2611 Valid operators are In, NotIn, Exists and DoesNotExist.
2612 type: string
2613 values:
2614 description: |-
2615 values is an array of string values. If the operator is In or NotIn,
2616 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2617 the values array must be empty. This array is replaced during a strategic
2618 merge patch.
2619 type: array
2620 items:
2621 type: string
2622 x-kubernetes-list-type: atomic
2623 x-kubernetes-list-type: atomic
2624 matchLabels:
2625 description: |-
2626 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2627 map is equivalent to an element of matchExpressions, whose key field is "key", the
2628 operator is "In", and the values array contains only "value". The requirements are ANDed.
2629 type: object
2630 additionalProperties:
2631 type: string
2632 x-kubernetes-map-type: atomic
2633 namespaces:
2634 description: |-
2635 namespaces specifies a static list of namespace names that the term applies to.
2636 The term is applied to the union of the namespaces listed in this field
2637 and the ones selected by namespaceSelector.
2638 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2639 type: array
2640 items:
2641 type: string
2642 x-kubernetes-list-type: atomic
2643 topologyKey:
2644 description: |-
2645 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2646 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2647 whose value of the label with key topologyKey matches that of any node on which any of the
2648 selected pods is running.
2649 Empty topologyKey is not allowed.
2650 type: string
2651 weight:
2652 description: |-
2653 weight associated with matching the corresponding podAffinityTerm,
2654 in the range 1-100.
2655 type: integer
2656 format: int32
2657 x-kubernetes-list-type: atomic
2658 requiredDuringSchedulingIgnoredDuringExecution:
2659 description: |-
2660 If the anti-affinity requirements specified by this field are not met at
2661 scheduling time, the pod will not be scheduled onto the node.
2662 If the anti-affinity requirements specified by this field cease to be met
2663 at some point during pod execution (e.g. due to a pod label update), the
2664 system may or may not try to eventually evict the pod from its node.
2665 When there are multiple elements, the lists of nodes corresponding to each
2666 podAffinityTerm are intersected, i.e. all terms must be satisfied.
2667 type: array
2668 items:
2669 description: |-
2670 Defines a set of pods (namely those matching the labelSelector
2671 relative to the given namespace(s)) that this pod should be
2672 co-located (affinity) or not co-located (anti-affinity) with,
2673 where co-located is defined as running on a node whose value of
2674 the label with key <topologyKey> matches that of any node on which
2675 a pod of the set of pods is running
2676 type: object
2677 required:
2678 - topologyKey
2679 properties:
2680 labelSelector:
2681 description: |-
2682 A label query over a set of resources, in this case pods.
2683 If it's null, this PodAffinityTerm matches with no Pods.
2684 type: object
2685 properties:
2686 matchExpressions:
2687 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2688 type: array
2689 items:
2690 description: |-
2691 A label selector requirement is a selector that contains values, a key, and an operator that
2692 relates the key and values.
2693 type: object
2694 required:
2695 - key
2696 - operator
2697 properties:
2698 key:
2699 description: key is the label key that the selector applies to.
2700 type: string
2701 operator:
2702 description: |-
2703 operator represents a key's relationship to a set of values.
2704 Valid operators are In, NotIn, Exists and DoesNotExist.
2705 type: string
2706 values:
2707 description: |-
2708 values is an array of string values. If the operator is In or NotIn,
2709 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2710 the values array must be empty. This array is replaced during a strategic
2711 merge patch.
2712 type: array
2713 items:
2714 type: string
2715 x-kubernetes-list-type: atomic
2716 x-kubernetes-list-type: atomic
2717 matchLabels:
2718 description: |-
2719 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2720 map is equivalent to an element of matchExpressions, whose key field is "key", the
2721 operator is "In", and the values array contains only "value". The requirements are ANDed.
2722 type: object
2723 additionalProperties:
2724 type: string
2725 x-kubernetes-map-type: atomic
2726 matchLabelKeys:
2727 description: |-
2728 MatchLabelKeys is a set of pod label keys to select which pods will
2729 be taken into consideration. The keys are used to lookup values from the
2730 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2731 to select the group of existing pods which pods will be taken into consideration
2732 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2733 pod labels will be ignored. The default value is empty.
2734 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2735 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2736 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2737 type: array
2738 items:
2739 type: string
2740 x-kubernetes-list-type: atomic
2741 mismatchLabelKeys:
2742 description: |-
2743 MismatchLabelKeys is a set of pod label keys to select which pods will
2744 be taken into consideration. The keys are used to lookup values from the
2745 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2746 to select the group of existing pods which pods will be taken into consideration
2747 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2748 pod labels will be ignored. The default value is empty.
2749 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2750 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2751 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2752 type: array
2753 items:
2754 type: string
2755 x-kubernetes-list-type: atomic
2756 namespaceSelector:
2757 description: |-
2758 A label query over the set of namespaces that the term applies to.
2759 The term is applied to the union of the namespaces selected by this field
2760 and the ones listed in the namespaces field.
2761 null selector and null or empty namespaces list means "this pod's namespace".
2762 An empty selector ({}) matches all namespaces.
2763 type: object
2764 properties:
2765 matchExpressions:
2766 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2767 type: array
2768 items:
2769 description: |-
2770 A label selector requirement is a selector that contains values, a key, and an operator that
2771 relates the key and values.
2772 type: object
2773 required:
2774 - key
2775 - operator
2776 properties:
2777 key:
2778 description: key is the label key that the selector applies to.
2779 type: string
2780 operator:
2781 description: |-
2782 operator represents a key's relationship to a set of values.
2783 Valid operators are In, NotIn, Exists and DoesNotExist.
2784 type: string
2785 values:
2786 description: |-
2787 values is an array of string values. If the operator is In or NotIn,
2788 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2789 the values array must be empty. This array is replaced during a strategic
2790 merge patch.
2791 type: array
2792 items:
2793 type: string
2794 x-kubernetes-list-type: atomic
2795 x-kubernetes-list-type: atomic
2796 matchLabels:
2797 description: |-
2798 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2799 map is equivalent to an element of matchExpressions, whose key field is "key", the
2800 operator is "In", and the values array contains only "value". The requirements are ANDed.
2801 type: object
2802 additionalProperties:
2803 type: string
2804 x-kubernetes-map-type: atomic
2805 namespaces:
2806 description: |-
2807 namespaces specifies a static list of namespace names that the term applies to.
2808 The term is applied to the union of the namespaces listed in this field
2809 and the ones selected by namespaceSelector.
2810 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2811 type: array
2812 items:
2813 type: string
2814 x-kubernetes-list-type: atomic
2815 topologyKey:
2816 description: |-
2817 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2818 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2819 whose value of the label with key topologyKey matches that of any node on which any of the
2820 selected pods is running.
2821 Empty topologyKey is not allowed.
2822 type: string
2823 x-kubernetes-list-type: atomic
2824 imagePullSecrets:
2825 description: If specified, the pod's imagePullSecrets
2826 type: array
2827 items:
2828 description: |-
2829 LocalObjectReference contains enough information to let you locate the
2830 referenced object inside the same namespace.
2831 type: object
2832 properties:
2833 name:
2834 description: |-
2835 Name of the referent.
2836 This field is effectively required, but due to backwards compatibility is
2837 allowed to be empty. Instances of this type with an empty value here are
2838 almost certainly wrong.
2839 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2840 type: string
2841 default: ""
2842 x-kubernetes-map-type: atomic
2843 nodeSelector:
2844 description: |-
2845 NodeSelector is a selector which must be true for the pod to fit on a node.
2846 Selector which must match a node's labels for the pod to be scheduled on that node.
2847 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2848 type: object
2849 additionalProperties:
2850 type: string
2851 priorityClassName:
2852 description: If specified, the pod's priorityClassName.
2853 type: string
2854 securityContext:
2855 description: If specified, the pod's security context
2856 type: object
2857 properties:
2858 fsGroup:
2859 description: |-
2860 A special supplemental group that applies to all containers in a pod.
2861 Some volume types allow the Kubelet to change the ownership of that volume
2862 to be owned by the pod:
2863
2864 1. The owning GID will be the FSGroup
2865 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
2866 3. The permission bits are OR'd with rw-rw----
2867
2868 If unset, the Kubelet will not modify the ownership and permissions of any volume.
2869 Note that this field cannot be set when spec.os.name is windows.
2870 type: integer
2871 format: int64
2872 fsGroupChangePolicy:
2873 description: |-
2874 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
2875 before being exposed inside Pod. This field will only apply to
2876 volume types which support fsGroup based ownership(and permissions).
2877 It will have no effect on ephemeral volume types such as: secret, configmaps
2878 and emptydir.
2879 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
2880 Note that this field cannot be set when spec.os.name is windows.
2881 type: string
2882 runAsGroup:
2883 description: |-
2884 The GID to run the entrypoint of the container process.
2885 Uses runtime default if unset.
2886 May also be set in SecurityContext. If set in both SecurityContext and
2887 PodSecurityContext, the value specified in SecurityContext takes precedence
2888 for that container.
2889 Note that this field cannot be set when spec.os.name is windows.
2890 type: integer
2891 format: int64
2892 runAsNonRoot:
2893 description: |-
2894 Indicates that the container must run as a non-root user.
2895 If true, the Kubelet will validate the image at runtime to ensure that it
2896 does not run as UID 0 (root) and fail to start the container if it does.
2897 If unset or false, no such validation will be performed.
2898 May also be set in SecurityContext. If set in both SecurityContext and
2899 PodSecurityContext, the value specified in SecurityContext takes precedence.
2900 type: boolean
2901 runAsUser:
2902 description: |-
2903 The UID to run the entrypoint of the container process.
2904 Defaults to user specified in image metadata if unspecified.
2905 May also be set in SecurityContext. If set in both SecurityContext and
2906 PodSecurityContext, the value specified in SecurityContext takes precedence
2907 for that container.
2908 Note that this field cannot be set when spec.os.name is windows.
2909 type: integer
2910 format: int64
2911 seLinuxOptions:
2912 description: |-
2913 The SELinux context to be applied to all containers.
2914 If unspecified, the container runtime will allocate a random SELinux context for each
2915 container. May also be set in SecurityContext. If set in
2916 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
2917 takes precedence for that container.
2918 Note that this field cannot be set when spec.os.name is windows.
2919 type: object
2920 properties:
2921 level:
2922 description: Level is SELinux level label that applies to the container.
2923 type: string
2924 role:
2925 description: Role is a SELinux role label that applies to the container.
2926 type: string
2927 type:
2928 description: Type is a SELinux type label that applies to the container.
2929 type: string
2930 user:
2931 description: User is a SELinux user label that applies to the container.
2932 type: string
2933 seccompProfile:
2934 description: |-
2935 The seccomp options to use by the containers in this pod.
2936 Note that this field cannot be set when spec.os.name is windows.
2937 type: object
2938 required:
2939 - type
2940 properties:
2941 localhostProfile:
2942 description: |-
2943 localhostProfile indicates a profile defined in a file on the node should be used.
2944 The profile must be preconfigured on the node to work.
2945 Must be a descending path, relative to the kubelet's configured seccomp profile location.
2946 Must be set if type is "Localhost". Must NOT be set for any other type.
2947 type: string
2948 type:
2949 description: |-
2950 type indicates which kind of seccomp profile will be applied.
2951 Valid options are:
2952
2953 Localhost - a profile defined in a file on the node should be used.
2954 RuntimeDefault - the container runtime default profile should be used.
2955 Unconfined - no profile should be applied.
2956 type: string
2957 supplementalGroups:
2958 description: |-
2959 A list of groups applied to the first process run in each container, in addition
2960 to the container's primary GID, the fsGroup (if specified), and group memberships
2961 defined in the container image for the uid of the container process. If unspecified,
2962 no additional groups are added to any container. Note that group memberships
2963 defined in the container image for the uid of the container process are still effective,
2964 even if they are not included in this list.
2965 Note that this field cannot be set when spec.os.name is windows.
2966 type: array
2967 items:
2968 type: integer
2969 format: int64
2970 sysctls:
2971 description: |-
2972 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
2973 sysctls (by the container runtime) might fail to launch.
2974 Note that this field cannot be set when spec.os.name is windows.
2975 type: array
2976 items:
2977 description: Sysctl defines a kernel parameter to be set
2978 type: object
2979 required:
2980 - name
2981 - value
2982 properties:
2983 name:
2984 description: Name of a property to set
2985 type: string
2986 value:
2987 description: Value of a property to set
2988 type: string
2989 serviceAccountName:
2990 description: If specified, the pod's service account
2991 type: string
2992 tolerations:
2993 description: If specified, the pod's tolerations.
2994 type: array
2995 items:
2996 description: |-
2997 The pod this Toleration is attached to tolerates any taint that matches
2998 the triple <key,value,effect> using the matching operator <operator>.
2999 type: object
3000 properties:
3001 effect:
3002 description: |-
3003 Effect indicates the taint effect to match. Empty means match all taint effects.
3004 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
3005 type: string
3006 key:
3007 description: |-
3008 Key is the taint key that the toleration applies to. Empty means match all taint keys.
3009 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
3010 type: string
3011 operator:
3012 description: |-
3013 Operator represents a key's relationship to the value.
3014 Valid operators are Exists and Equal. Defaults to Equal.
3015 Exists is equivalent to wildcard for value, so that a pod can
3016 tolerate all taints of a particular category.
3017 type: string
3018 tolerationSeconds:
3019 description: |-
3020 TolerationSeconds represents the period of time the toleration (which must be
3021 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
3022 it is not set, which means tolerate the taint forever (do not evict). Zero and
3023 negative values will be treated as 0 (evict immediately) by the system.
3024 type: integer
3025 format: int64
3026 value:
3027 description: |-
3028 Value is the taint value the toleration matches to.
3029 If the operator is Exists, the value should be empty, otherwise just a regular string.
3030 type: string
3031 serviceType:
3032 description: |-
3033 Optional service type for Kubernetes solver service. Supported values
3034 are NodePort or ClusterIP. If unset, defaults to NodePort.
3035 type: string
3036 ingress:
3037 description: |-
3038 The ingress based HTTP01 challenge solver will solve challenges by
3039 creating or modifying Ingress resources in order to route requests for
3040 '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are
3041 provisioned by cert-manager for each Challenge to be completed.
3042 type: object
3043 properties:
3044 class:
3045 description: |-
3046 This field configures the annotation `kubernetes.io/ingress.class` when
3047 creating Ingress resources to solve ACME challenges that use this
3048 challenge solver. Only one of `class`, `name` or `ingressClassName` may
3049 be specified.
3050 type: string
3051 ingressClassName:
3052 description: |-
3053 This field configures the field `ingressClassName` on the created Ingress
3054 resources used to solve ACME challenges that use this challenge solver.
3055 This is the recommended way of configuring the ingress class. Only one of
3056 `class`, `name` or `ingressClassName` may be specified.
3057 type: string
3058 ingressTemplate:
3059 description: |-
3060 Optional ingress template used to configure the ACME challenge solver
3061 ingress used for HTTP01 challenges.
3062 type: object
3063 properties:
3064 metadata:
3065 description: |-
3066 ObjectMeta overrides for the ingress used to solve HTTP01 challenges.
3067 Only the 'labels' and 'annotations' fields may be set.
3068 If labels or annotations overlap with in-built values, the values here
3069 will override the in-built values.
3070 type: object
3071 properties:
3072 annotations:
3073 description: Annotations that should be added to the created ACME HTTP01 solver ingress.
3074 type: object
3075 additionalProperties:
3076 type: string
3077 labels:
3078 description: Labels that should be added to the created ACME HTTP01 solver ingress.
3079 type: object
3080 additionalProperties:
3081 type: string
3082 name:
3083 description: |-
3084 The name of the ingress resource that should have ACME challenge solving
3085 routes inserted into it in order to solve HTTP01 challenges.
3086 This is typically used in conjunction with ingress controllers like
3087 ingress-gce, which maintains a 1:1 mapping between external IPs and
3088 ingress resources. Only one of `class`, `name` or `ingressClassName` may
3089 be specified.
3090 type: string
3091 podTemplate:
3092 description: |-
3093 Optional pod template used to configure the ACME challenge solver pods
3094 used for HTTP01 challenges.
3095 type: object
3096 properties:
3097 metadata:
3098 description: |-
3099 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
3100 Only the 'labels' and 'annotations' fields may be set.
3101 If labels or annotations overlap with in-built values, the values here
3102 will override the in-built values.
3103 type: object
3104 properties:
3105 annotations:
3106 description: Annotations that should be added to the created ACME HTTP01 solver pods.
3107 type: object
3108 additionalProperties:
3109 type: string
3110 labels:
3111 description: Labels that should be added to the created ACME HTTP01 solver pods.
3112 type: object
3113 additionalProperties:
3114 type: string
3115 spec:
3116 description: |-
3117 PodSpec defines overrides for the HTTP01 challenge solver pod.
3118 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
3119 All other fields will be ignored.
3120 type: object
3121 properties:
3122 affinity:
3123 description: If specified, the pod's scheduling constraints
3124 type: object
3125 properties:
3126 nodeAffinity:
3127 description: Describes node affinity scheduling rules for the pod.
3128 type: object
3129 properties:
3130 preferredDuringSchedulingIgnoredDuringExecution:
3131 description: |-
3132 The scheduler will prefer to schedule pods to nodes that satisfy
3133 the affinity expressions specified by this field, but it may choose
3134 a node that violates one or more of the expressions. The node that is
3135 most preferred is the one with the greatest sum of weights, i.e.
3136 for each node that meets all of the scheduling requirements (resource
3137 request, requiredDuringScheduling affinity expressions, etc.),
3138 compute a sum by iterating through the elements of this field and adding
3139 "weight" to the sum if the node matches the corresponding matchExpressions; the
3140 node(s) with the highest sum are the most preferred.
3141 type: array
3142 items:
3143 description: |-
3144 An empty preferred scheduling term matches all objects with implicit weight 0
3145 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
3146 type: object
3147 required:
3148 - preference
3149 - weight
3150 properties:
3151 preference:
3152 description: A node selector term, associated with the corresponding weight.
3153 type: object
3154 properties:
3155 matchExpressions:
3156 description: A list of node selector requirements by node's labels.
3157 type: array
3158 items:
3159 description: |-
3160 A node selector requirement is a selector that contains values, a key, and an operator
3161 that relates the key and values.
3162 type: object
3163 required:
3164 - key
3165 - operator
3166 properties:
3167 key:
3168 description: The label key that the selector applies to.
3169 type: string
3170 operator:
3171 description: |-
3172 Represents a key's relationship to a set of values.
3173 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3174 type: string
3175 values:
3176 description: |-
3177 An array of string values. If the operator is In or NotIn,
3178 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3179 the values array must be empty. If the operator is Gt or Lt, the values
3180 array must have a single element, which will be interpreted as an integer.
3181 This array is replaced during a strategic merge patch.
3182 type: array
3183 items:
3184 type: string
3185 x-kubernetes-list-type: atomic
3186 x-kubernetes-list-type: atomic
3187 matchFields:
3188 description: A list of node selector requirements by node's fields.
3189 type: array
3190 items:
3191 description: |-
3192 A node selector requirement is a selector that contains values, a key, and an operator
3193 that relates the key and values.
3194 type: object
3195 required:
3196 - key
3197 - operator
3198 properties:
3199 key:
3200 description: The label key that the selector applies to.
3201 type: string
3202 operator:
3203 description: |-
3204 Represents a key's relationship to a set of values.
3205 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3206 type: string
3207 values:
3208 description: |-
3209 An array of string values. If the operator is In or NotIn,
3210 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3211 the values array must be empty. If the operator is Gt or Lt, the values
3212 array must have a single element, which will be interpreted as an integer.
3213 This array is replaced during a strategic merge patch.
3214 type: array
3215 items:
3216 type: string
3217 x-kubernetes-list-type: atomic
3218 x-kubernetes-list-type: atomic
3219 x-kubernetes-map-type: atomic
3220 weight:
3221 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
3222 type: integer
3223 format: int32
3224 x-kubernetes-list-type: atomic
3225 requiredDuringSchedulingIgnoredDuringExecution:
3226 description: |-
3227 If the affinity requirements specified by this field are not met at
3228 scheduling time, the pod will not be scheduled onto the node.
3229 If the affinity requirements specified by this field cease to be met
3230 at some point during pod execution (e.g. due to an update), the system
3231 may or may not try to eventually evict the pod from its node.
3232 type: object
3233 required:
3234 - nodeSelectorTerms
3235 properties:
3236 nodeSelectorTerms:
3237 description: Required. A list of node selector terms. The terms are ORed.
3238 type: array
3239 items:
3240 description: |-
3241 A null or empty node selector term matches no objects. The requirements of
3242 them are ANDed.
3243 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
3244 type: object
3245 properties:
3246 matchExpressions:
3247 description: A list of node selector requirements by node's labels.
3248 type: array
3249 items:
3250 description: |-
3251 A node selector requirement is a selector that contains values, a key, and an operator
3252 that relates the key and values.
3253 type: object
3254 required:
3255 - key
3256 - operator
3257 properties:
3258 key:
3259 description: The label key that the selector applies to.
3260 type: string
3261 operator:
3262 description: |-
3263 Represents a key's relationship to a set of values.
3264 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3265 type: string
3266 values:
3267 description: |-
3268 An array of string values. If the operator is In or NotIn,
3269 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3270 the values array must be empty. If the operator is Gt or Lt, the values
3271 array must have a single element, which will be interpreted as an integer.
3272 This array is replaced during a strategic merge patch.
3273 type: array
3274 items:
3275 type: string
3276 x-kubernetes-list-type: atomic
3277 x-kubernetes-list-type: atomic
3278 matchFields:
3279 description: A list of node selector requirements by node's fields.
3280 type: array
3281 items:
3282 description: |-
3283 A node selector requirement is a selector that contains values, a key, and an operator
3284 that relates the key and values.
3285 type: object
3286 required:
3287 - key
3288 - operator
3289 properties:
3290 key:
3291 description: The label key that the selector applies to.
3292 type: string
3293 operator:
3294 description: |-
3295 Represents a key's relationship to a set of values.
3296 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3297 type: string
3298 values:
3299 description: |-
3300 An array of string values. If the operator is In or NotIn,
3301 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3302 the values array must be empty. If the operator is Gt or Lt, the values
3303 array must have a single element, which will be interpreted as an integer.
3304 This array is replaced during a strategic merge patch.
3305 type: array
3306 items:
3307 type: string
3308 x-kubernetes-list-type: atomic
3309 x-kubernetes-list-type: atomic
3310 x-kubernetes-map-type: atomic
3311 x-kubernetes-list-type: atomic
3312 x-kubernetes-map-type: atomic
3313 podAffinity:
3314 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
3315 type: object
3316 properties:
3317 preferredDuringSchedulingIgnoredDuringExecution:
3318 description: |-
3319 The scheduler will prefer to schedule pods to nodes that satisfy
3320 the affinity expressions specified by this field, but it may choose
3321 a node that violates one or more of the expressions. The node that is
3322 most preferred is the one with the greatest sum of weights, i.e.
3323 for each node that meets all of the scheduling requirements (resource
3324 request, requiredDuringScheduling affinity expressions, etc.),
3325 compute a sum by iterating through the elements of this field and adding
3326 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
3327 node(s) with the highest sum are the most preferred.
3328 type: array
3329 items:
3330 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
3331 type: object
3332 required:
3333 - podAffinityTerm
3334 - weight
3335 properties:
3336 podAffinityTerm:
3337 description: Required. A pod affinity term, associated with the corresponding weight.
3338 type: object
3339 required:
3340 - topologyKey
3341 properties:
3342 labelSelector:
3343 description: |-
3344 A label query over a set of resources, in this case pods.
3345 If it's null, this PodAffinityTerm matches with no Pods.
3346 type: object
3347 properties:
3348 matchExpressions:
3349 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3350 type: array
3351 items:
3352 description: |-
3353 A label selector requirement is a selector that contains values, a key, and an operator that
3354 relates the key and values.
3355 type: object
3356 required:
3357 - key
3358 - operator
3359 properties:
3360 key:
3361 description: key is the label key that the selector applies to.
3362 type: string
3363 operator:
3364 description: |-
3365 operator represents a key's relationship to a set of values.
3366 Valid operators are In, NotIn, Exists and DoesNotExist.
3367 type: string
3368 values:
3369 description: |-
3370 values is an array of string values. If the operator is In or NotIn,
3371 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3372 the values array must be empty. This array is replaced during a strategic
3373 merge patch.
3374 type: array
3375 items:
3376 type: string
3377 x-kubernetes-list-type: atomic
3378 x-kubernetes-list-type: atomic
3379 matchLabels:
3380 description: |-
3381 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3382 map is equivalent to an element of matchExpressions, whose key field is "key", the
3383 operator is "In", and the values array contains only "value". The requirements are ANDed.
3384 type: object
3385 additionalProperties:
3386 type: string
3387 x-kubernetes-map-type: atomic
3388 matchLabelKeys:
3389 description: |-
3390 MatchLabelKeys is a set of pod label keys to select which pods will
3391 be taken into consideration. The keys are used to lookup values from the
3392 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3393 to select the group of existing pods which pods will be taken into consideration
3394 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3395 pod labels will be ignored. The default value is empty.
3396 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3397 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3398 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3399 type: array
3400 items:
3401 type: string
3402 x-kubernetes-list-type: atomic
3403 mismatchLabelKeys:
3404 description: |-
3405 MismatchLabelKeys is a set of pod label keys to select which pods will
3406 be taken into consideration. The keys are used to lookup values from the
3407 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3408 to select the group of existing pods which pods will be taken into consideration
3409 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3410 pod labels will be ignored. The default value is empty.
3411 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3412 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3413 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3414 type: array
3415 items:
3416 type: string
3417 x-kubernetes-list-type: atomic
3418 namespaceSelector:
3419 description: |-
3420 A label query over the set of namespaces that the term applies to.
3421 The term is applied to the union of the namespaces selected by this field
3422 and the ones listed in the namespaces field.
3423 null selector and null or empty namespaces list means "this pod's namespace".
3424 An empty selector ({}) matches all namespaces.
3425 type: object
3426 properties:
3427 matchExpressions:
3428 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3429 type: array
3430 items:
3431 description: |-
3432 A label selector requirement is a selector that contains values, a key, and an operator that
3433 relates the key and values.
3434 type: object
3435 required:
3436 - key
3437 - operator
3438 properties:
3439 key:
3440 description: key is the label key that the selector applies to.
3441 type: string
3442 operator:
3443 description: |-
3444 operator represents a key's relationship to a set of values.
3445 Valid operators are In, NotIn, Exists and DoesNotExist.
3446 type: string
3447 values:
3448 description: |-
3449 values is an array of string values. If the operator is In or NotIn,
3450 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3451 the values array must be empty. This array is replaced during a strategic
3452 merge patch.
3453 type: array
3454 items:
3455 type: string
3456 x-kubernetes-list-type: atomic
3457 x-kubernetes-list-type: atomic
3458 matchLabels:
3459 description: |-
3460 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3461 map is equivalent to an element of matchExpressions, whose key field is "key", the
3462 operator is "In", and the values array contains only "value". The requirements are ANDed.
3463 type: object
3464 additionalProperties:
3465 type: string
3466 x-kubernetes-map-type: atomic
3467 namespaces:
3468 description: |-
3469 namespaces specifies a static list of namespace names that the term applies to.
3470 The term is applied to the union of the namespaces listed in this field
3471 and the ones selected by namespaceSelector.
3472 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3473 type: array
3474 items:
3475 type: string
3476 x-kubernetes-list-type: atomic
3477 topologyKey:
3478 description: |-
3479 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3480 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3481 whose value of the label with key topologyKey matches that of any node on which any of the
3482 selected pods is running.
3483 Empty topologyKey is not allowed.
3484 type: string
3485 weight:
3486 description: |-
3487 weight associated with matching the corresponding podAffinityTerm,
3488 in the range 1-100.
3489 type: integer
3490 format: int32
3491 x-kubernetes-list-type: atomic
3492 requiredDuringSchedulingIgnoredDuringExecution:
3493 description: |-
3494 If the affinity requirements specified by this field are not met at
3495 scheduling time, the pod will not be scheduled onto the node.
3496 If the affinity requirements specified by this field cease to be met
3497 at some point during pod execution (e.g. due to a pod label update), the
3498 system may or may not try to eventually evict the pod from its node.
3499 When there are multiple elements, the lists of nodes corresponding to each
3500 podAffinityTerm are intersected, i.e. all terms must be satisfied.
3501 type: array
3502 items:
3503 description: |-
3504 Defines a set of pods (namely those matching the labelSelector
3505 relative to the given namespace(s)) that this pod should be
3506 co-located (affinity) or not co-located (anti-affinity) with,
3507 where co-located is defined as running on a node whose value of
3508 the label with key <topologyKey> matches that of any node on which
3509 a pod of the set of pods is running
3510 type: object
3511 required:
3512 - topologyKey
3513 properties:
3514 labelSelector:
3515 description: |-
3516 A label query over a set of resources, in this case pods.
3517 If it's null, this PodAffinityTerm matches with no Pods.
3518 type: object
3519 properties:
3520 matchExpressions:
3521 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3522 type: array
3523 items:
3524 description: |-
3525 A label selector requirement is a selector that contains values, a key, and an operator that
3526 relates the key and values.
3527 type: object
3528 required:
3529 - key
3530 - operator
3531 properties:
3532 key:
3533 description: key is the label key that the selector applies to.
3534 type: string
3535 operator:
3536 description: |-
3537 operator represents a key's relationship to a set of values.
3538 Valid operators are In, NotIn, Exists and DoesNotExist.
3539 type: string
3540 values:
3541 description: |-
3542 values is an array of string values. If the operator is In or NotIn,
3543 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3544 the values array must be empty. This array is replaced during a strategic
3545 merge patch.
3546 type: array
3547 items:
3548 type: string
3549 x-kubernetes-list-type: atomic
3550 x-kubernetes-list-type: atomic
3551 matchLabels:
3552 description: |-
3553 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3554 map is equivalent to an element of matchExpressions, whose key field is "key", the
3555 operator is "In", and the values array contains only "value". The requirements are ANDed.
3556 type: object
3557 additionalProperties:
3558 type: string
3559 x-kubernetes-map-type: atomic
3560 matchLabelKeys:
3561 description: |-
3562 MatchLabelKeys is a set of pod label keys to select which pods will
3563 be taken into consideration. The keys are used to lookup values from the
3564 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3565 to select the group of existing pods which pods will be taken into consideration
3566 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3567 pod labels will be ignored. The default value is empty.
3568 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3569 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3570 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3571 type: array
3572 items:
3573 type: string
3574 x-kubernetes-list-type: atomic
3575 mismatchLabelKeys:
3576 description: |-
3577 MismatchLabelKeys is a set of pod label keys to select which pods will
3578 be taken into consideration. The keys are used to lookup values from the
3579 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3580 to select the group of existing pods which pods will be taken into consideration
3581 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3582 pod labels will be ignored. The default value is empty.
3583 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3584 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3585 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3586 type: array
3587 items:
3588 type: string
3589 x-kubernetes-list-type: atomic
3590 namespaceSelector:
3591 description: |-
3592 A label query over the set of namespaces that the term applies to.
3593 The term is applied to the union of the namespaces selected by this field
3594 and the ones listed in the namespaces field.
3595 null selector and null or empty namespaces list means "this pod's namespace".
3596 An empty selector ({}) matches all namespaces.
3597 type: object
3598 properties:
3599 matchExpressions:
3600 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3601 type: array
3602 items:
3603 description: |-
3604 A label selector requirement is a selector that contains values, a key, and an operator that
3605 relates the key and values.
3606 type: object
3607 required:
3608 - key
3609 - operator
3610 properties:
3611 key:
3612 description: key is the label key that the selector applies to.
3613 type: string
3614 operator:
3615 description: |-
3616 operator represents a key's relationship to a set of values.
3617 Valid operators are In, NotIn, Exists and DoesNotExist.
3618 type: string
3619 values:
3620 description: |-
3621 values is an array of string values. If the operator is In or NotIn,
3622 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3623 the values array must be empty. This array is replaced during a strategic
3624 merge patch.
3625 type: array
3626 items:
3627 type: string
3628 x-kubernetes-list-type: atomic
3629 x-kubernetes-list-type: atomic
3630 matchLabels:
3631 description: |-
3632 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3633 map is equivalent to an element of matchExpressions, whose key field is "key", the
3634 operator is "In", and the values array contains only "value". The requirements are ANDed.
3635 type: object
3636 additionalProperties:
3637 type: string
3638 x-kubernetes-map-type: atomic
3639 namespaces:
3640 description: |-
3641 namespaces specifies a static list of namespace names that the term applies to.
3642 The term is applied to the union of the namespaces listed in this field
3643 and the ones selected by namespaceSelector.
3644 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3645 type: array
3646 items:
3647 type: string
3648 x-kubernetes-list-type: atomic
3649 topologyKey:
3650 description: |-
3651 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3652 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3653 whose value of the label with key topologyKey matches that of any node on which any of the
3654 selected pods is running.
3655 Empty topologyKey is not allowed.
3656 type: string
3657 x-kubernetes-list-type: atomic
3658 podAntiAffinity:
3659 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
3660 type: object
3661 properties:
3662 preferredDuringSchedulingIgnoredDuringExecution:
3663 description: |-
3664 The scheduler will prefer to schedule pods to nodes that satisfy
3665 the anti-affinity expressions specified by this field, but it may choose
3666 a node that violates one or more of the expressions. The node that is
3667 most preferred is the one with the greatest sum of weights, i.e.
3668 for each node that meets all of the scheduling requirements (resource
3669 request, requiredDuringScheduling anti-affinity expressions, etc.),
3670 compute a sum by iterating through the elements of this field and adding
3671 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
3672 node(s) with the highest sum are the most preferred.
3673 type: array
3674 items:
3675 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
3676 type: object
3677 required:
3678 - podAffinityTerm
3679 - weight
3680 properties:
3681 podAffinityTerm:
3682 description: Required. A pod affinity term, associated with the corresponding weight.
3683 type: object
3684 required:
3685 - topologyKey
3686 properties:
3687 labelSelector:
3688 description: |-
3689 A label query over a set of resources, in this case pods.
3690 If it's null, this PodAffinityTerm matches with no Pods.
3691 type: object
3692 properties:
3693 matchExpressions:
3694 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3695 type: array
3696 items:
3697 description: |-
3698 A label selector requirement is a selector that contains values, a key, and an operator that
3699 relates the key and values.
3700 type: object
3701 required:
3702 - key
3703 - operator
3704 properties:
3705 key:
3706 description: key is the label key that the selector applies to.
3707 type: string
3708 operator:
3709 description: |-
3710 operator represents a key's relationship to a set of values.
3711 Valid operators are In, NotIn, Exists and DoesNotExist.
3712 type: string
3713 values:
3714 description: |-
3715 values is an array of string values. If the operator is In or NotIn,
3716 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3717 the values array must be empty. This array is replaced during a strategic
3718 merge patch.
3719 type: array
3720 items:
3721 type: string
3722 x-kubernetes-list-type: atomic
3723 x-kubernetes-list-type: atomic
3724 matchLabels:
3725 description: |-
3726 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3727 map is equivalent to an element of matchExpressions, whose key field is "key", the
3728 operator is "In", and the values array contains only "value". The requirements are ANDed.
3729 type: object
3730 additionalProperties:
3731 type: string
3732 x-kubernetes-map-type: atomic
3733 matchLabelKeys:
3734 description: |-
3735 MatchLabelKeys is a set of pod label keys to select which pods will
3736 be taken into consideration. The keys are used to lookup values from the
3737 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3738 to select the group of existing pods which pods will be taken into consideration
3739 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3740 pod labels will be ignored. The default value is empty.
3741 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3742 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3743 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3744 type: array
3745 items:
3746 type: string
3747 x-kubernetes-list-type: atomic
3748 mismatchLabelKeys:
3749 description: |-
3750 MismatchLabelKeys is a set of pod label keys to select which pods will
3751 be taken into consideration. The keys are used to lookup values from the
3752 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3753 to select the group of existing pods which pods will be taken into consideration
3754 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3755 pod labels will be ignored. The default value is empty.
3756 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3757 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3758 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3759 type: array
3760 items:
3761 type: string
3762 x-kubernetes-list-type: atomic
3763 namespaceSelector:
3764 description: |-
3765 A label query over the set of namespaces that the term applies to.
3766 The term is applied to the union of the namespaces selected by this field
3767 and the ones listed in the namespaces field.
3768 null selector and null or empty namespaces list means "this pod's namespace".
3769 An empty selector ({}) matches all namespaces.
3770 type: object
3771 properties:
3772 matchExpressions:
3773 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3774 type: array
3775 items:
3776 description: |-
3777 A label selector requirement is a selector that contains values, a key, and an operator that
3778 relates the key and values.
3779 type: object
3780 required:
3781 - key
3782 - operator
3783 properties:
3784 key:
3785 description: key is the label key that the selector applies to.
3786 type: string
3787 operator:
3788 description: |-
3789 operator represents a key's relationship to a set of values.
3790 Valid operators are In, NotIn, Exists and DoesNotExist.
3791 type: string
3792 values:
3793 description: |-
3794 values is an array of string values. If the operator is In or NotIn,
3795 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3796 the values array must be empty. This array is replaced during a strategic
3797 merge patch.
3798 type: array
3799 items:
3800 type: string
3801 x-kubernetes-list-type: atomic
3802 x-kubernetes-list-type: atomic
3803 matchLabels:
3804 description: |-
3805 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3806 map is equivalent to an element of matchExpressions, whose key field is "key", the
3807 operator is "In", and the values array contains only "value". The requirements are ANDed.
3808 type: object
3809 additionalProperties:
3810 type: string
3811 x-kubernetes-map-type: atomic
3812 namespaces:
3813 description: |-
3814 namespaces specifies a static list of namespace names that the term applies to.
3815 The term is applied to the union of the namespaces listed in this field
3816 and the ones selected by namespaceSelector.
3817 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3818 type: array
3819 items:
3820 type: string
3821 x-kubernetes-list-type: atomic
3822 topologyKey:
3823 description: |-
3824 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3825 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3826 whose value of the label with key topologyKey matches that of any node on which any of the
3827 selected pods is running.
3828 Empty topologyKey is not allowed.
3829 type: string
3830 weight:
3831 description: |-
3832 weight associated with matching the corresponding podAffinityTerm,
3833 in the range 1-100.
3834 type: integer
3835 format: int32
3836 x-kubernetes-list-type: atomic
3837 requiredDuringSchedulingIgnoredDuringExecution:
3838 description: |-
3839 If the anti-affinity requirements specified by this field are not met at
3840 scheduling time, the pod will not be scheduled onto the node.
3841 If the anti-affinity requirements specified by this field cease to be met
3842 at some point during pod execution (e.g. due to a pod label update), the
3843 system may or may not try to eventually evict the pod from its node.
3844 When there are multiple elements, the lists of nodes corresponding to each
3845 podAffinityTerm are intersected, i.e. all terms must be satisfied.
3846 type: array
3847 items:
3848 description: |-
3849 Defines a set of pods (namely those matching the labelSelector
3850 relative to the given namespace(s)) that this pod should be
3851 co-located (affinity) or not co-located (anti-affinity) with,
3852 where co-located is defined as running on a node whose value of
3853 the label with key <topologyKey> matches that of any node on which
3854 a pod of the set of pods is running
3855 type: object
3856 required:
3857 - topologyKey
3858 properties:
3859 labelSelector:
3860 description: |-
3861 A label query over a set of resources, in this case pods.
3862 If it's null, this PodAffinityTerm matches with no Pods.
3863 type: object
3864 properties:
3865 matchExpressions:
3866 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3867 type: array
3868 items:
3869 description: |-
3870 A label selector requirement is a selector that contains values, a key, and an operator that
3871 relates the key and values.
3872 type: object
3873 required:
3874 - key
3875 - operator
3876 properties:
3877 key:
3878 description: key is the label key that the selector applies to.
3879 type: string
3880 operator:
3881 description: |-
3882 operator represents a key's relationship to a set of values.
3883 Valid operators are In, NotIn, Exists and DoesNotExist.
3884 type: string
3885 values:
3886 description: |-
3887 values is an array of string values. If the operator is In or NotIn,
3888 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3889 the values array must be empty. This array is replaced during a strategic
3890 merge patch.
3891 type: array
3892 items:
3893 type: string
3894 x-kubernetes-list-type: atomic
3895 x-kubernetes-list-type: atomic
3896 matchLabels:
3897 description: |-
3898 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3899 map is equivalent to an element of matchExpressions, whose key field is "key", the
3900 operator is "In", and the values array contains only "value". The requirements are ANDed.
3901 type: object
3902 additionalProperties:
3903 type: string
3904 x-kubernetes-map-type: atomic
3905 matchLabelKeys:
3906 description: |-
3907 MatchLabelKeys is a set of pod label keys to select which pods will
3908 be taken into consideration. The keys are used to lookup values from the
3909 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3910 to select the group of existing pods which pods will be taken into consideration
3911 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3912 pod labels will be ignored. The default value is empty.
3913 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3914 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3915 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3916 type: array
3917 items:
3918 type: string
3919 x-kubernetes-list-type: atomic
3920 mismatchLabelKeys:
3921 description: |-
3922 MismatchLabelKeys is a set of pod label keys to select which pods will
3923 be taken into consideration. The keys are used to lookup values from the
3924 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3925 to select the group of existing pods which pods will be taken into consideration
3926 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3927 pod labels will be ignored. The default value is empty.
3928 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3929 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3930 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3931 type: array
3932 items:
3933 type: string
3934 x-kubernetes-list-type: atomic
3935 namespaceSelector:
3936 description: |-
3937 A label query over the set of namespaces that the term applies to.
3938 The term is applied to the union of the namespaces selected by this field
3939 and the ones listed in the namespaces field.
3940 null selector and null or empty namespaces list means "this pod's namespace".
3941 An empty selector ({}) matches all namespaces.
3942 type: object
3943 properties:
3944 matchExpressions:
3945 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3946 type: array
3947 items:
3948 description: |-
3949 A label selector requirement is a selector that contains values, a key, and an operator that
3950 relates the key and values.
3951 type: object
3952 required:
3953 - key
3954 - operator
3955 properties:
3956 key:
3957 description: key is the label key that the selector applies to.
3958 type: string
3959 operator:
3960 description: |-
3961 operator represents a key's relationship to a set of values.
3962 Valid operators are In, NotIn, Exists and DoesNotExist.
3963 type: string
3964 values:
3965 description: |-
3966 values is an array of string values. If the operator is In or NotIn,
3967 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3968 the values array must be empty. This array is replaced during a strategic
3969 merge patch.
3970 type: array
3971 items:
3972 type: string
3973 x-kubernetes-list-type: atomic
3974 x-kubernetes-list-type: atomic
3975 matchLabels:
3976 description: |-
3977 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3978 map is equivalent to an element of matchExpressions, whose key field is "key", the
3979 operator is "In", and the values array contains only "value". The requirements are ANDed.
3980 type: object
3981 additionalProperties:
3982 type: string
3983 x-kubernetes-map-type: atomic
3984 namespaces:
3985 description: |-
3986 namespaces specifies a static list of namespace names that the term applies to.
3987 The term is applied to the union of the namespaces listed in this field
3988 and the ones selected by namespaceSelector.
3989 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3990 type: array
3991 items:
3992 type: string
3993 x-kubernetes-list-type: atomic
3994 topologyKey:
3995 description: |-
3996 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3997 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3998 whose value of the label with key topologyKey matches that of any node on which any of the
3999 selected pods is running.
4000 Empty topologyKey is not allowed.
4001 type: string
4002 x-kubernetes-list-type: atomic
4003 imagePullSecrets:
4004 description: If specified, the pod's imagePullSecrets
4005 type: array
4006 items:
4007 description: |-
4008 LocalObjectReference contains enough information to let you locate the
4009 referenced object inside the same namespace.
4010 type: object
4011 properties:
4012 name:
4013 description: |-
4014 Name of the referent.
4015 This field is effectively required, but due to backwards compatibility is
4016 allowed to be empty. Instances of this type with an empty value here are
4017 almost certainly wrong.
4018 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4019 type: string
4020 default: ""
4021 x-kubernetes-map-type: atomic
4022 nodeSelector:
4023 description: |-
4024 NodeSelector is a selector which must be true for the pod to fit on a node.
4025 Selector which must match a node's labels for the pod to be scheduled on that node.
4026 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
4027 type: object
4028 additionalProperties:
4029 type: string
4030 priorityClassName:
4031 description: If specified, the pod's priorityClassName.
4032 type: string
4033 securityContext:
4034 description: If specified, the pod's security context
4035 type: object
4036 properties:
4037 fsGroup:
4038 description: |-
4039 A special supplemental group that applies to all containers in a pod.
4040 Some volume types allow the Kubelet to change the ownership of that volume
4041 to be owned by the pod:
4042
4043 1. The owning GID will be the FSGroup
4044 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
4045 3. The permission bits are OR'd with rw-rw----
4046
4047 If unset, the Kubelet will not modify the ownership and permissions of any volume.
4048 Note that this field cannot be set when spec.os.name is windows.
4049 type: integer
4050 format: int64
4051 fsGroupChangePolicy:
4052 description: |-
4053 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
4054 before being exposed inside Pod. This field will only apply to
4055 volume types which support fsGroup based ownership(and permissions).
4056 It will have no effect on ephemeral volume types such as: secret, configmaps
4057 and emptydir.
4058 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
4059 Note that this field cannot be set when spec.os.name is windows.
4060 type: string
4061 runAsGroup:
4062 description: |-
4063 The GID to run the entrypoint of the container process.
4064 Uses runtime default if unset.
4065 May also be set in SecurityContext. If set in both SecurityContext and
4066 PodSecurityContext, the value specified in SecurityContext takes precedence
4067 for that container.
4068 Note that this field cannot be set when spec.os.name is windows.
4069 type: integer
4070 format: int64
4071 runAsNonRoot:
4072 description: |-
4073 Indicates that the container must run as a non-root user.
4074 If true, the Kubelet will validate the image at runtime to ensure that it
4075 does not run as UID 0 (root) and fail to start the container if it does.
4076 If unset or false, no such validation will be performed.
4077 May also be set in SecurityContext. If set in both SecurityContext and
4078 PodSecurityContext, the value specified in SecurityContext takes precedence.
4079 type: boolean
4080 runAsUser:
4081 description: |-
4082 The UID to run the entrypoint of the container process.
4083 Defaults to user specified in image metadata if unspecified.
4084 May also be set in SecurityContext. If set in both SecurityContext and
4085 PodSecurityContext, the value specified in SecurityContext takes precedence
4086 for that container.
4087 Note that this field cannot be set when spec.os.name is windows.
4088 type: integer
4089 format: int64
4090 seLinuxOptions:
4091 description: |-
4092 The SELinux context to be applied to all containers.
4093 If unspecified, the container runtime will allocate a random SELinux context for each
4094 container. May also be set in SecurityContext. If set in
4095 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
4096 takes precedence for that container.
4097 Note that this field cannot be set when spec.os.name is windows.
4098 type: object
4099 properties:
4100 level:
4101 description: Level is SELinux level label that applies to the container.
4102 type: string
4103 role:
4104 description: Role is a SELinux role label that applies to the container.
4105 type: string
4106 type:
4107 description: Type is a SELinux type label that applies to the container.
4108 type: string
4109 user:
4110 description: User is a SELinux user label that applies to the container.
4111 type: string
4112 seccompProfile:
4113 description: |-
4114 The seccomp options to use by the containers in this pod.
4115 Note that this field cannot be set when spec.os.name is windows.
4116 type: object
4117 required:
4118 - type
4119 properties:
4120 localhostProfile:
4121 description: |-
4122 localhostProfile indicates a profile defined in a file on the node should be used.
4123 The profile must be preconfigured on the node to work.
4124 Must be a descending path, relative to the kubelet's configured seccomp profile location.
4125 Must be set if type is "Localhost". Must NOT be set for any other type.
4126 type: string
4127 type:
4128 description: |-
4129 type indicates which kind of seccomp profile will be applied.
4130 Valid options are:
4131
4132 Localhost - a profile defined in a file on the node should be used.
4133 RuntimeDefault - the container runtime default profile should be used.
4134 Unconfined - no profile should be applied.
4135 type: string
4136 supplementalGroups:
4137 description: |-
4138 A list of groups applied to the first process run in each container, in addition
4139 to the container's primary GID, the fsGroup (if specified), and group memberships
4140 defined in the container image for the uid of the container process. If unspecified,
4141 no additional groups are added to any container. Note that group memberships
4142 defined in the container image for the uid of the container process are still effective,
4143 even if they are not included in this list.
4144 Note that this field cannot be set when spec.os.name is windows.
4145 type: array
4146 items:
4147 type: integer
4148 format: int64
4149 sysctls:
4150 description: |-
4151 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
4152 sysctls (by the container runtime) might fail to launch.
4153 Note that this field cannot be set when spec.os.name is windows.
4154 type: array
4155 items:
4156 description: Sysctl defines a kernel parameter to be set
4157 type: object
4158 required:
4159 - name
4160 - value
4161 properties:
4162 name:
4163 description: Name of a property to set
4164 type: string
4165 value:
4166 description: Value of a property to set
4167 type: string
4168 serviceAccountName:
4169 description: If specified, the pod's service account
4170 type: string
4171 tolerations:
4172 description: If specified, the pod's tolerations.
4173 type: array
4174 items:
4175 description: |-
4176 The pod this Toleration is attached to tolerates any taint that matches
4177 the triple <key,value,effect> using the matching operator <operator>.
4178 type: object
4179 properties:
4180 effect:
4181 description: |-
4182 Effect indicates the taint effect to match. Empty means match all taint effects.
4183 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
4184 type: string
4185 key:
4186 description: |-
4187 Key is the taint key that the toleration applies to. Empty means match all taint keys.
4188 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
4189 type: string
4190 operator:
4191 description: |-
4192 Operator represents a key's relationship to the value.
4193 Valid operators are Exists and Equal. Defaults to Equal.
4194 Exists is equivalent to wildcard for value, so that a pod can
4195 tolerate all taints of a particular category.
4196 type: string
4197 tolerationSeconds:
4198 description: |-
4199 TolerationSeconds represents the period of time the toleration (which must be
4200 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
4201 it is not set, which means tolerate the taint forever (do not evict). Zero and
4202 negative values will be treated as 0 (evict immediately) by the system.
4203 type: integer
4204 format: int64
4205 value:
4206 description: |-
4207 Value is the taint value the toleration matches to.
4208 If the operator is Exists, the value should be empty, otherwise just a regular string.
4209 type: string
4210 serviceType:
4211 description: |-
4212 Optional service type for Kubernetes solver service. Supported values
4213 are NodePort or ClusterIP. If unset, defaults to NodePort.
4214 type: string
4215 selector:
4216 description: |-
4217 Selector selects a set of DNSNames on the Certificate resource that
4218 should be solved using this challenge solver.
4219 If not specified, the solver will be treated as the 'default' solver
4220 with the lowest priority, i.e. if any other solver has a more specific
4221 match, it will be used instead.
4222 type: object
4223 properties:
4224 dnsNames:
4225 description: |-
4226 List of DNSNames that this solver will be used to solve.
4227 If specified and a match is found, a dnsNames selector will take
4228 precedence over a dnsZones selector.
4229 If multiple solvers match with the same dnsNames value, the solver
4230 with the most matching labels in matchLabels will be selected.
4231 If neither has more matches, the solver defined earlier in the list
4232 will be selected.
4233 type: array
4234 items:
4235 type: string
4236 dnsZones:
4237 description: |-
4238 List of DNSZones that this solver will be used to solve.
4239 The most specific DNS zone match specified here will take precedence
4240 over other DNS zone matches, so a solver specifying sys.example.com
4241 will be selected over one specifying example.com for the domain
4242 www.sys.example.com.
4243 If multiple solvers match with the same dnsZones value, the solver
4244 with the most matching labels in matchLabels will be selected.
4245 If neither has more matches, the solver defined earlier in the list
4246 will be selected.
4247 type: array
4248 items:
4249 type: string
4250 matchLabels:
4251 description: |-
4252 A label selector that is used to refine the set of certificate's that
4253 this challenge solver will apply to.
4254 type: object
4255 additionalProperties:
4256 type: string
4257 token:
4258 description: |-
4259 The ACME challenge token for this challenge.
4260 This is the raw value returned from the ACME server.
4261 type: string
4262 type:
4263 description: |-
4264 The type of ACME challenge this resource represents.
4265 One of "HTTP-01" or "DNS-01".
4266 type: string
4267 enum:
4268 - HTTP-01
4269 - DNS-01
4270 url:
4271 description: |-
4272 The URL of the ACME Challenge resource for this challenge.
4273 This can be used to lookup details about the status of this challenge.
4274 type: string
4275 wildcard:
4276 description: |-
4277 wildcard will be true if this challenge is for a wildcard identifier,
4278 for example '*.example.com'.
4279 type: boolean
4280 status:
4281 type: object
4282 properties:
4283 presented:
4284 description: |-
4285 presented will be set to true if the challenge values for this challenge
4286 are currently 'presented'.
4287 This *does not* imply the self check is passing. Only that the values
4288 have been 'submitted' for the appropriate challenge mechanism (i.e. the
4289 DNS01 TXT record has been presented, or the HTTP01 configuration has been
4290 configured).
4291 type: boolean
4292 processing:
4293 description: |-
4294 Used to denote whether this challenge should be processed or not.
4295 This field will only be set to true by the 'scheduling' component.
4296 It will only be set to false by the 'challenges' controller, after the
4297 challenge has reached a final state or timed out.
4298 If this field is set to false, the challenge controller will not take
4299 any more action.
4300 type: boolean
4301 reason:
4302 description: |-
4303 Contains human readable information on why the Challenge is in the
4304 current state.
4305 type: string
4306 state:
4307 description: |-
4308 Contains the current 'state' of the challenge.
4309 If not set, the state of the challenge is unknown.
4310 type: string
4311 enum:
4312 - valid
4313 - ready
4314 - pending
4315 - processing
4316 - invalid
4317 - expired
4318 - errored
4319 served: true
4320 storage: true
4321 subresources:
4322 status: {}
4323
4324# END crd {{- end }}
4325
4326---
4327# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
4328apiVersion: apiextensions.k8s.io/v1
4329kind: CustomResourceDefinition
4330metadata:
4331 name: clusterissuers.cert-manager.io
4332 # START annotations {{- if .Values.crds.keep }}
4333 annotations:
4334 helm.sh/resource-policy: keep
4335 # END annotations {{- end }}
4336 labels:
4337 app: '{{ template "cert-manager.name" . }}'
4338 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
4339 app.kubernetes.io/instance: '{{ .Release.Name }}'
4340 # Generated labels {{- include "labels" . | nindent 4 }}
4341spec:
4342 group: cert-manager.io
4343 names:
4344 kind: ClusterIssuer
4345 listKind: ClusterIssuerList
4346 plural: clusterissuers
4347 shortNames:
4348 - ciss
4349 singular: clusterissuer
4350 categories:
4351 - cert-manager
4352 scope: Cluster
4353 versions:
4354 - name: v1
4355 subresources:
4356 status: {}
4357 additionalPrinterColumns:
4358 - jsonPath: .status.conditions[?(@.type=="Ready")].status
4359 name: Ready
4360 type: string
4361 - jsonPath: .status.conditions[?(@.type=="Ready")].message
4362 name: Status
4363 priority: 1
4364 type: string
4365 - jsonPath: .metadata.creationTimestamp
4366 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.
4367 name: Age
4368 type: date
4369 schema:
4370 openAPIV3Schema:
4371 description: |-
4372 A ClusterIssuer represents a certificate issuing authority which can be
4373 referenced as part of `issuerRef` fields.
4374 It is similar to an Issuer, however it is cluster-scoped and therefore can
4375 be referenced by resources that exist in *any* namespace, not just the same
4376 namespace as the referent.
4377 type: object
4378 required:
4379 - spec
4380 properties:
4381 apiVersion:
4382 description: |-
4383 APIVersion defines the versioned schema of this representation of an object.
4384 Servers should convert recognized schemas to the latest internal value, and
4385 may reject unrecognized values.
4386 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
4387 type: string
4388 kind:
4389 description: |-
4390 Kind is a string value representing the REST resource this object represents.
4391 Servers may infer this from the endpoint the client submits requests to.
4392 Cannot be updated.
4393 In CamelCase.
4394 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4395 type: string
4396 metadata:
4397 type: object
4398 spec:
4399 description: Desired state of the ClusterIssuer resource.
4400 type: object
4401 properties:
4402 acme:
4403 description: |-
4404 ACME configures this issuer to communicate with a RFC8555 (ACME) server
4405 to obtain signed x509 certificates.
4406 type: object
4407 required:
4408 - privateKeySecretRef
4409 - server
4410 properties:
4411 caBundle:
4412 description: |-
4413 Base64-encoded bundle of PEM CAs which can be used to validate the certificate
4414 chain presented by the ACME server.
4415 Mutually exclusive with SkipTLSVerify; prefer using CABundle to prevent various
4416 kinds of security vulnerabilities.
4417 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
4418 the container is used to validate the TLS connection.
4419 type: string
4420 format: byte
4421 disableAccountKeyGeneration:
4422 description: |-
4423 Enables or disables generating a new ACME account key.
4424 If true, the Issuer resource will *not* request a new account but will expect
4425 the account key to be supplied via an existing secret.
4426 If false, the cert-manager system will generate a new ACME account key
4427 for the Issuer.
4428 Defaults to false.
4429 type: boolean
4430 email:
4431 description: |-
4432 Email is the email address to be associated with the ACME account.
4433 This field is optional, but it is strongly recommended to be set.
4434 It will be used to contact you in case of issues with your account or
4435 certificates, including expiry notification emails.
4436 This field may be updated after the account is initially registered.
4437 type: string
4438 enableDurationFeature:
4439 description: |-
4440 Enables requesting a Not After date on certificates that matches the
4441 duration of the certificate. This is not supported by all ACME servers
4442 like Let's Encrypt. If set to true when the ACME server does not support
4443 it, it will create an error on the Order.
4444 Defaults to false.
4445 type: boolean
4446 externalAccountBinding:
4447 description: |-
4448 ExternalAccountBinding is a reference to a CA external account of the ACME
4449 server.
4450 If set, upon registration cert-manager will attempt to associate the given
4451 external account credentials with the registered ACME account.
4452 type: object
4453 required:
4454 - keyID
4455 - keySecretRef
4456 properties:
4457 keyAlgorithm:
4458 description: |-
4459 Deprecated: keyAlgorithm field exists for historical compatibility
4460 reasons and should not be used. The algorithm is now hardcoded to HS256
4461 in golang/x/crypto/acme.
4462 type: string
4463 enum:
4464 - HS256
4465 - HS384
4466 - HS512
4467 keyID:
4468 description: keyID is the ID of the CA key that the External Account is bound to.
4469 type: string
4470 keySecretRef:
4471 description: |-
4472 keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes
4473 Secret which holds the symmetric MAC key of the External Account Binding.
4474 The `key` is the index string that is paired with the key data in the
4475 Secret and should not be confused with the key data itself, or indeed with
4476 the External Account Binding keyID above.
4477 The secret key stored in the Secret **must** be un-padded, base64 URL
4478 encoded data.
4479 type: object
4480 required:
4481 - name
4482 properties:
4483 key:
4484 description: |-
4485 The key of the entry in the Secret resource's `data` field to be used.
4486 Some instances of this field may be defaulted, in others it may be
4487 required.
4488 type: string
4489 name:
4490 description: |-
4491 Name of the resource being referred to.
4492 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4493 type: string
4494 preferredChain:
4495 description: |-
4496 PreferredChain is the chain to use if the ACME server outputs multiple.
4497 PreferredChain is no guarantee that this one gets delivered by the ACME
4498 endpoint.
4499 For example, for Let's Encrypt's DST cross-sign you would use:
4500 "DST Root CA X3" or "ISRG Root X1" for the newer Let's Encrypt root CA.
4501 This value picks the first certificate bundle in the combined set of
4502 ACME default and alternative chains that has a root-most certificate with
4503 this value as its issuer's commonname.
4504 type: string
4505 maxLength: 64
4506 privateKeySecretRef:
4507 description: |-
4508 PrivateKey is the name of a Kubernetes Secret resource that will be used to
4509 store the automatically generated ACME account private key.
4510 Optionally, a `key` may be specified to select a specific entry within
4511 the named Secret resource.
4512 If `key` is not specified, a default of `tls.key` will be used.
4513 type: object
4514 required:
4515 - name
4516 properties:
4517 key:
4518 description: |-
4519 The key of the entry in the Secret resource's `data` field to be used.
4520 Some instances of this field may be defaulted, in others it may be
4521 required.
4522 type: string
4523 name:
4524 description: |-
4525 Name of the resource being referred to.
4526 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4527 type: string
4528 profile:
4529 description: |-
4530 Profile allows requesting a certificate profile from the ACME server.
4531 Supported profiles are listed by the server's ACME directory URL.
4532 type: string
4533 server:
4534 description: |-
4535 Server is the URL used to access the ACME server's 'directory' endpoint.
4536 For example, for Let's Encrypt's staging endpoint, you would use:
4537 "https://acme-staging-v02.api.letsencrypt.org/directory".
4538 Only ACME v2 endpoints (i.e. RFC 8555) are supported.
4539 type: string
4540 skipTLSVerify:
4541 description: |-
4542 INSECURE: Enables or disables validation of the ACME server TLS certificate.
4543 If true, requests to the ACME server will not have the TLS certificate chain
4544 validated.
4545 Mutually exclusive with CABundle; prefer using CABundle to prevent various
4546 kinds of security vulnerabilities.
4547 Only enable this option in development environments.
4548 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
4549 the container is used to validate the TLS connection.
4550 Defaults to false.
4551 type: boolean
4552 solvers:
4553 description: |-
4554 Solvers is a list of challenge solvers that will be used to solve
4555 ACME challenges for the matching domains.
4556 Solver configurations must be provided in order to obtain certificates
4557 from an ACME server.
4558 For more information, see: https://cert-manager.io/docs/configuration/acme/
4559 type: array
4560 items:
4561 description: |-
4562 An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of.
4563 A selector may be provided to use different solving strategies for different DNS names.
4564 Only one of HTTP01 or DNS01 must be provided.
4565 type: object
4566 properties:
4567 dns01:
4568 description: |-
4569 Configures cert-manager to attempt to complete authorizations by
4570 performing the DNS01 challenge flow.
4571 type: object
4572 properties:
4573 acmeDNS:
4574 description: |-
4575 Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage
4576 DNS01 challenge records.
4577 type: object
4578 required:
4579 - accountSecretRef
4580 - host
4581 properties:
4582 accountSecretRef:
4583 description: |-
4584 A reference to a specific 'key' within a Secret resource.
4585 In some instances, `key` is a required field.
4586 type: object
4587 required:
4588 - name
4589 properties:
4590 key:
4591 description: |-
4592 The key of the entry in the Secret resource's `data` field to be used.
4593 Some instances of this field may be defaulted, in others it may be
4594 required.
4595 type: string
4596 name:
4597 description: |-
4598 Name of the resource being referred to.
4599 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4600 type: string
4601 host:
4602 type: string
4603 akamai:
4604 description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
4605 type: object
4606 required:
4607 - accessTokenSecretRef
4608 - clientSecretSecretRef
4609 - clientTokenSecretRef
4610 - serviceConsumerDomain
4611 properties:
4612 accessTokenSecretRef:
4613 description: |-
4614 A reference to a specific 'key' within a Secret resource.
4615 In some instances, `key` is a required field.
4616 type: object
4617 required:
4618 - name
4619 properties:
4620 key:
4621 description: |-
4622 The key of the entry in the Secret resource's `data` field to be used.
4623 Some instances of this field may be defaulted, in others it may be
4624 required.
4625 type: string
4626 name:
4627 description: |-
4628 Name of the resource being referred to.
4629 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4630 type: string
4631 clientSecretSecretRef:
4632 description: |-
4633 A reference to a specific 'key' within a Secret resource.
4634 In some instances, `key` is a required field.
4635 type: object
4636 required:
4637 - name
4638 properties:
4639 key:
4640 description: |-
4641 The key of the entry in the Secret resource's `data` field to be used.
4642 Some instances of this field may be defaulted, in others it may be
4643 required.
4644 type: string
4645 name:
4646 description: |-
4647 Name of the resource being referred to.
4648 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4649 type: string
4650 clientTokenSecretRef:
4651 description: |-
4652 A reference to a specific 'key' within a Secret resource.
4653 In some instances, `key` is a required field.
4654 type: object
4655 required:
4656 - name
4657 properties:
4658 key:
4659 description: |-
4660 The key of the entry in the Secret resource's `data` field to be used.
4661 Some instances of this field may be defaulted, in others it may be
4662 required.
4663 type: string
4664 name:
4665 description: |-
4666 Name of the resource being referred to.
4667 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4668 type: string
4669 serviceConsumerDomain:
4670 type: string
4671 azureDNS:
4672 description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
4673 type: object
4674 required:
4675 - resourceGroupName
4676 - subscriptionID
4677 properties:
4678 clientID:
4679 description: |-
4680 Auth: Azure Service Principal:
4681 The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
4682 If set, ClientSecret and TenantID must also be set.
4683 type: string
4684 clientSecretSecretRef:
4685 description: |-
4686 Auth: Azure Service Principal:
4687 A reference to a Secret containing the password associated with the Service Principal.
4688 If set, ClientID and TenantID must also be set.
4689 type: object
4690 required:
4691 - name
4692 properties:
4693 key:
4694 description: |-
4695 The key of the entry in the Secret resource's `data` field to be used.
4696 Some instances of this field may be defaulted, in others it may be
4697 required.
4698 type: string
4699 name:
4700 description: |-
4701 Name of the resource being referred to.
4702 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4703 type: string
4704 environment:
4705 description: name of the Azure environment (default AzurePublicCloud)
4706 type: string
4707 enum:
4708 - AzurePublicCloud
4709 - AzureChinaCloud
4710 - AzureGermanCloud
4711 - AzureUSGovernmentCloud
4712 hostedZoneName:
4713 description: name of the DNS zone that should be used
4714 type: string
4715 managedIdentity:
4716 description: |-
4717 Auth: Azure Workload Identity or Azure Managed Service Identity:
4718 Settings to enable Azure Workload Identity or Azure Managed Service Identity
4719 If set, ClientID, ClientSecret and TenantID must not be set.
4720 type: object
4721 properties:
4722 clientID:
4723 description: client ID of the managed identity, cannot be used at the same time as resourceID
4724 type: string
4725 resourceID:
4726 description: |-
4727 resource ID of the managed identity, cannot be used at the same time as clientID
4728 Cannot be used for Azure Managed Service Identity
4729 type: string
4730 tenantID:
4731 description: tenant ID of the managed identity, cannot be used at the same time as resourceID
4732 type: string
4733 resourceGroupName:
4734 description: resource group the DNS zone is located in
4735 type: string
4736 subscriptionID:
4737 description: ID of the Azure subscription
4738 type: string
4739 tenantID:
4740 description: |-
4741 Auth: Azure Service Principal:
4742 The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
4743 If set, ClientID and ClientSecret must also be set.
4744 type: string
4745 cloudDNS:
4746 description: Use the Google Cloud DNS API to manage DNS01 challenge records.
4747 type: object
4748 required:
4749 - project
4750 properties:
4751 hostedZoneName:
4752 description: |-
4753 HostedZoneName is an optional field that tells cert-manager in which
4754 Cloud DNS zone the challenge record has to be created.
4755 If left empty cert-manager will automatically choose a zone.
4756 type: string
4757 project:
4758 type: string
4759 serviceAccountSecretRef:
4760 description: |-
4761 A reference to a specific 'key' within a Secret resource.
4762 In some instances, `key` is a required field.
4763 type: object
4764 required:
4765 - name
4766 properties:
4767 key:
4768 description: |-
4769 The key of the entry in the Secret resource's `data` field to be used.
4770 Some instances of this field may be defaulted, in others it may be
4771 required.
4772 type: string
4773 name:
4774 description: |-
4775 Name of the resource being referred to.
4776 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4777 type: string
4778 cloudflare:
4779 description: Use the Cloudflare API to manage DNS01 challenge records.
4780 type: object
4781 properties:
4782 apiKeySecretRef:
4783 description: |-
4784 API key to use to authenticate with Cloudflare.
4785 Note: using an API token to authenticate is now the recommended method
4786 as it allows greater control of permissions.
4787 type: object
4788 required:
4789 - name
4790 properties:
4791 key:
4792 description: |-
4793 The key of the entry in the Secret resource's `data` field to be used.
4794 Some instances of this field may be defaulted, in others it may be
4795 required.
4796 type: string
4797 name:
4798 description: |-
4799 Name of the resource being referred to.
4800 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4801 type: string
4802 apiTokenSecretRef:
4803 description: API token used to authenticate with Cloudflare.
4804 type: object
4805 required:
4806 - name
4807 properties:
4808 key:
4809 description: |-
4810 The key of the entry in the Secret resource's `data` field to be used.
4811 Some instances of this field may be defaulted, in others it may be
4812 required.
4813 type: string
4814 name:
4815 description: |-
4816 Name of the resource being referred to.
4817 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4818 type: string
4819 email:
4820 description: Email of the account, only required when using API key based authentication.
4821 type: string
4822 cnameStrategy:
4823 description: |-
4824 CNAMEStrategy configures how the DNS01 provider should handle CNAME
4825 records when found in DNS zones.
4826 type: string
4827 enum:
4828 - None
4829 - Follow
4830 digitalocean:
4831 description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
4832 type: object
4833 required:
4834 - tokenSecretRef
4835 properties:
4836 tokenSecretRef:
4837 description: |-
4838 A reference to a specific 'key' within a Secret resource.
4839 In some instances, `key` is a required field.
4840 type: object
4841 required:
4842 - name
4843 properties:
4844 key:
4845 description: |-
4846 The key of the entry in the Secret resource's `data` field to be used.
4847 Some instances of this field may be defaulted, in others it may be
4848 required.
4849 type: string
4850 name:
4851 description: |-
4852 Name of the resource being referred to.
4853 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4854 type: string
4855 rfc2136:
4856 description: |-
4857 Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/)
4858 to manage DNS01 challenge records.
4859 type: object
4860 required:
4861 - nameserver
4862 properties:
4863 nameserver:
4864 description: |-
4865 The IP address or hostname of an authoritative DNS server supporting
4866 RFC2136 in the form host:port. If the host is an IPv6 address it must be
4867 enclosed in square brackets (e.g [2001:db8::1]) ; port is optional.
4868 This field is required.
4869 type: string
4870 tsigAlgorithm:
4871 description: |-
4872 The TSIG Algorithm configured in the DNS supporting RFC2136. Used only
4873 when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined.
4874 Supported values are (case-insensitive): ``HMACMD5`` (default),
4875 ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.
4876 type: string
4877 tsigKeyName:
4878 description: |-
4879 The TSIG Key name configured in the DNS.
4880 If ``tsigSecretSecretRef`` is defined, this field is required.
4881 type: string
4882 tsigSecretSecretRef:
4883 description: |-
4884 The name of the secret containing the TSIG value.
4885 If ``tsigKeyName`` is defined, this field is required.
4886 type: object
4887 required:
4888 - name
4889 properties:
4890 key:
4891 description: |-
4892 The key of the entry in the Secret resource's `data` field to be used.
4893 Some instances of this field may be defaulted, in others it may be
4894 required.
4895 type: string
4896 name:
4897 description: |-
4898 Name of the resource being referred to.
4899 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4900 type: string
4901 route53:
4902 description: Use the AWS Route53 API to manage DNS01 challenge records.
4903 type: object
4904 properties:
4905 accessKeyID:
4906 description: |-
4907 The AccessKeyID is used for authentication.
4908 Cannot be set when SecretAccessKeyID is set.
4909 If neither the Access Key nor Key ID are set, we fall-back to using env
4910 vars, shared credentials file or AWS Instance metadata,
4911 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
4912 type: string
4913 accessKeyIDSecretRef:
4914 description: |-
4915 The SecretAccessKey is used for authentication. If set, pull the AWS
4916 access key ID from a key within a Kubernetes Secret.
4917 Cannot be set when AccessKeyID is set.
4918 If neither the Access Key nor Key ID are set, we fall-back to using env
4919 vars, shared credentials file or AWS Instance metadata,
4920 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
4921 type: object
4922 required:
4923 - name
4924 properties:
4925 key:
4926 description: |-
4927 The key of the entry in the Secret resource's `data` field to be used.
4928 Some instances of this field may be defaulted, in others it may be
4929 required.
4930 type: string
4931 name:
4932 description: |-
4933 Name of the resource being referred to.
4934 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4935 type: string
4936 auth:
4937 description: Auth configures how cert-manager authenticates.
4938 type: object
4939 required:
4940 - kubernetes
4941 properties:
4942 kubernetes:
4943 description: |-
4944 Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
4945 by passing a bound ServiceAccount token.
4946 type: object
4947 required:
4948 - serviceAccountRef
4949 properties:
4950 serviceAccountRef:
4951 description: |-
4952 A reference to a service account that will be used to request a bound
4953 token (also known as "projected token"). To use this field, you must
4954 configure an RBAC rule to let cert-manager request a token.
4955 type: object
4956 required:
4957 - name
4958 properties:
4959 audiences:
4960 description: |-
4961 TokenAudiences is an optional list of audiences to include in the
4962 token passed to AWS. The default token consisting of the issuer's namespace
4963 and name is always included.
4964 If unset the audience defaults to `sts.amazonaws.com`.
4965 type: array
4966 items:
4967 type: string
4968 name:
4969 description: Name of the ServiceAccount used to request a token.
4970 type: string
4971 hostedZoneID:
4972 description: If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.
4973 type: string
4974 region:
4975 description: |-
4976 Override the AWS region.
4977
4978 Route53 is a global service and does not have regional endpoints but the
4979 region specified here (or via environment variables) is used as a hint to
4980 help compute the correct AWS credential scope and partition when it
4981 connects to Route53. See:
4982 - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html)
4983 - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html)
4984
4985 If you omit this region field, cert-manager will use the region from
4986 AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set
4987 in the cert-manager controller Pod.
4988
4989 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).
4990 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
4991 [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook).
4992 In this case this `region` field value is ignored.
4993
4994 The `region` field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
4995 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
4996 [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent),
4997 In this case this `region` field value is ignored.
4998 type: string
4999 role:
5000 description: |-
5001 Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
5002 or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
5003 type: string
5004 secretAccessKeySecretRef:
5005 description: |-
5006 The SecretAccessKey is used for authentication.
5007 If neither the Access Key nor Key ID are set, we fall-back to using env
5008 vars, shared credentials file or AWS Instance metadata,
5009 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
5010 type: object
5011 required:
5012 - name
5013 properties:
5014 key:
5015 description: |-
5016 The key of the entry in the Secret resource's `data` field to be used.
5017 Some instances of this field may be defaulted, in others it may be
5018 required.
5019 type: string
5020 name:
5021 description: |-
5022 Name of the resource being referred to.
5023 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
5024 type: string
5025 webhook:
5026 description: |-
5027 Configure an external webhook based DNS01 challenge solver to manage
5028 DNS01 challenge records.
5029 type: object
5030 required:
5031 - groupName
5032 - solverName
5033 properties:
5034 config:
5035 description: |-
5036 Additional configuration that should be passed to the webhook apiserver
5037 when challenges are processed.
5038 This can contain arbitrary JSON data.
5039 Secret values should not be specified in this stanza.
5040 If secret values are needed (e.g., credentials for a DNS service), you
5041 should use a SecretKeySelector to reference a Secret resource.
5042 For details on the schema of this field, consult the webhook provider
5043 implementation's documentation.
5044 x-kubernetes-preserve-unknown-fields: true
5045 groupName:
5046 description: |-
5047 The API group name that should be used when POSTing ChallengePayload
5048 resources to the webhook apiserver.
5049 This should be the same as the GroupName specified in the webhook
5050 provider implementation.
5051 type: string
5052 solverName:
5053 description: |-
5054 The name of the solver to use, as defined in the webhook provider
5055 implementation.
5056 This will typically be the name of the provider, e.g., 'cloudflare'.
5057 type: string
5058 http01:
5059 description: |-
5060 Configures cert-manager to attempt to complete authorizations by
5061 performing the HTTP01 challenge flow.
5062 It is not possible to obtain certificates for wildcard domain names
5063 (e.g., `*.example.com`) using the HTTP01 challenge mechanism.
5064 type: object
5065 properties:
5066 gatewayHTTPRoute:
5067 description: |-
5068 The Gateway API is a sig-network community API that models service networking
5069 in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will
5070 create HTTPRoutes with the specified labels in the same namespace as the challenge.
5071 This solver is experimental, and fields / behaviour may change in the future.
5072 type: object
5073 properties:
5074 labels:
5075 description: |-
5076 Custom labels that will be applied to HTTPRoutes created by cert-manager
5077 while solving HTTP-01 challenges.
5078 type: object
5079 additionalProperties:
5080 type: string
5081 parentRefs:
5082 description: |-
5083 When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute.
5084 cert-manager needs to know which parentRefs should be used when creating
5085 the HTTPRoute. Usually, the parentRef references a Gateway. See:
5086 https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways
5087 type: array
5088 items:
5089 description: |-
5090 ParentReference identifies an API object (usually a Gateway) that can be considered
5091 a parent of this resource (usually a route). There are two kinds of parent resources
5092 with "Core" support:
5093
5094 * Gateway (Gateway conformance profile)
5095 * Service (Mesh conformance profile, ClusterIP Services only)
5096
5097 This API may be extended in the future to support additional kinds of parent
5098 resources.
5099
5100 The API object must be valid in the cluster; the Group and Kind must
5101 be registered in the cluster for this reference to be valid.
5102 type: object
5103 required:
5104 - name
5105 properties:
5106 group:
5107 description: |-
5108 Group is the group of the referent.
5109 When unspecified, "gateway.networking.k8s.io" is inferred.
5110 To set the core API group (such as for a "Service" kind referent),
5111 Group must be explicitly set to "" (empty string).
5112
5113 Support: Core
5114 type: string
5115 default: gateway.networking.k8s.io
5116 maxLength: 253
5117 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
5118 kind:
5119 description: |-
5120 Kind is kind of the referent.
5121
5122 There are two kinds of parent resources with "Core" support:
5123
5124 * Gateway (Gateway conformance profile)
5125 * Service (Mesh conformance profile, ClusterIP Services only)
5126
5127 Support for other resources is Implementation-Specific.
5128 type: string
5129 default: Gateway
5130 maxLength: 63
5131 minLength: 1
5132 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
5133 name:
5134 description: |-
5135 Name is the name of the referent.
5136
5137 Support: Core
5138 type: string
5139 maxLength: 253
5140 minLength: 1
5141 namespace:
5142 description: |-
5143 Namespace is the namespace of the referent. When unspecified, this refers
5144 to the local namespace of the Route.
5145
5146 Note that there are specific rules for ParentRefs which cross namespace
5147 boundaries. Cross-namespace references are only valid if they are explicitly
5148 allowed by something in the namespace they are referring to. For example:
5149 Gateway has the AllowedRoutes field, and ReferenceGrant provides a
5150 generic way to enable any other kind of cross-namespace reference.
5151
5152 <gateway:experimental:description>
5153 ParentRefs from a Route to a Service in the same namespace are "producer"
5154 routes, which apply default routing rules to inbound connections from
5155 any namespace to the Service.
5156
5157 ParentRefs from a Route to a Service in a different namespace are
5158 "consumer" routes, and these routing rules are only applied to outbound
5159 connections originating from the same namespace as the Route, for which
5160 the intended destination of the connections are a Service targeted as a
5161 ParentRef of the Route.
5162 </gateway:experimental:description>
5163
5164 Support: Core
5165 type: string
5166 maxLength: 63
5167 minLength: 1
5168 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
5169 port:
5170 description: |-
5171 Port is the network port this Route targets. It can be interpreted
5172 differently based on the type of parent resource.
5173
5174 When the parent resource is a Gateway, this targets all listeners
5175 listening on the specified port that also support this kind of Route(and
5176 select this Route). It's not recommended to set `Port` unless the
5177 networking behaviors specified in a Route must apply to a specific port
5178 as opposed to a listener(s) whose port(s) may be changed. When both Port
5179 and SectionName are specified, the name and port of the selected listener
5180 must match both specified values.
5181
5182 <gateway:experimental:description>
5183 When the parent resource is a Service, this targets a specific port in the
5184 Service spec. When both Port (experimental) and SectionName are specified,
5185 the name and port of the selected port must match both specified values.
5186 </gateway:experimental:description>
5187
5188 Implementations MAY choose to support other parent resources.
5189 Implementations supporting other types of parent resources MUST clearly
5190 document how/if Port is interpreted.
5191
5192 For the purpose of status, an attachment is considered successful as
5193 long as the parent resource accepts it partially. For example, Gateway
5194 listeners can restrict which Routes can attach to them by Route kind,
5195 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
5196 from the referencing Route, the Route MUST be considered successfully
5197 attached. If no Gateway listeners accept attachment from this Route,
5198 the Route MUST be considered detached from the Gateway.
5199
5200 Support: Extended
5201 type: integer
5202 format: int32
5203 maximum: 65535
5204 minimum: 1
5205 sectionName:
5206 description: |-
5207 SectionName is the name of a section within the target resource. In the
5208 following resources, SectionName is interpreted as the following:
5209
5210 * Gateway: Listener name. When both Port (experimental) and SectionName
5211 are specified, the name and port of the selected listener must match
5212 both specified values.
5213 * Service: Port name. When both Port (experimental) and SectionName
5214 are specified, the name and port of the selected listener must match
5215 both specified values.
5216
5217 Implementations MAY choose to support attaching Routes to other resources.
5218 If that is the case, they MUST clearly document how SectionName is
5219 interpreted.
5220
5221 When unspecified (empty string), this will reference the entire resource.
5222 For the purpose of status, an attachment is considered successful if at
5223 least one section in the parent resource accepts it. For example, Gateway
5224 listeners can restrict which Routes can attach to them by Route kind,
5225 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
5226 the referencing Route, the Route MUST be considered successfully
5227 attached. If no Gateway listeners accept attachment from this Route, the
5228 Route MUST be considered detached from the Gateway.
5229
5230 Support: Core
5231 type: string
5232 maxLength: 253
5233 minLength: 1
5234 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
5235 podTemplate:
5236 description: |-
5237 Optional pod template used to configure the ACME challenge solver pods
5238 used for HTTP01 challenges.
5239 type: object
5240 properties:
5241 metadata:
5242 description: |-
5243 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
5244 Only the 'labels' and 'annotations' fields may be set.
5245 If labels or annotations overlap with in-built values, the values here
5246 will override the in-built values.
5247 type: object
5248 properties:
5249 annotations:
5250 description: Annotations that should be added to the created ACME HTTP01 solver pods.
5251 type: object
5252 additionalProperties:
5253 type: string
5254 labels:
5255 description: Labels that should be added to the created ACME HTTP01 solver pods.
5256 type: object
5257 additionalProperties:
5258 type: string
5259 spec:
5260 description: |-
5261 PodSpec defines overrides for the HTTP01 challenge solver pod.
5262 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
5263 All other fields will be ignored.
5264 type: object
5265 properties:
5266 affinity:
5267 description: If specified, the pod's scheduling constraints
5268 type: object
5269 properties:
5270 nodeAffinity:
5271 description: Describes node affinity scheduling rules for the pod.
5272 type: object
5273 properties:
5274 preferredDuringSchedulingIgnoredDuringExecution:
5275 description: |-
5276 The scheduler will prefer to schedule pods to nodes that satisfy
5277 the affinity expressions specified by this field, but it may choose
5278 a node that violates one or more of the expressions. The node that is
5279 most preferred is the one with the greatest sum of weights, i.e.
5280 for each node that meets all of the scheduling requirements (resource
5281 request, requiredDuringScheduling affinity expressions, etc.),
5282 compute a sum by iterating through the elements of this field and adding
5283 "weight" to the sum if the node matches the corresponding matchExpressions; the
5284 node(s) with the highest sum are the most preferred.
5285 type: array
5286 items:
5287 description: |-
5288 An empty preferred scheduling term matches all objects with implicit weight 0
5289 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
5290 type: object
5291 required:
5292 - preference
5293 - weight
5294 properties:
5295 preference:
5296 description: A node selector term, associated with the corresponding weight.
5297 type: object
5298 properties:
5299 matchExpressions:
5300 description: A list of node selector requirements by node's labels.
5301 type: array
5302 items:
5303 description: |-
5304 A node selector requirement is a selector that contains values, a key, and an operator
5305 that relates the key and values.
5306 type: object
5307 required:
5308 - key
5309 - operator
5310 properties:
5311 key:
5312 description: The label key that the selector applies to.
5313 type: string
5314 operator:
5315 description: |-
5316 Represents a key's relationship to a set of values.
5317 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5318 type: string
5319 values:
5320 description: |-
5321 An array of string values. If the operator is In or NotIn,
5322 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5323 the values array must be empty. If the operator is Gt or Lt, the values
5324 array must have a single element, which will be interpreted as an integer.
5325 This array is replaced during a strategic merge patch.
5326 type: array
5327 items:
5328 type: string
5329 x-kubernetes-list-type: atomic
5330 x-kubernetes-list-type: atomic
5331 matchFields:
5332 description: A list of node selector requirements by node's fields.
5333 type: array
5334 items:
5335 description: |-
5336 A node selector requirement is a selector that contains values, a key, and an operator
5337 that relates the key and values.
5338 type: object
5339 required:
5340 - key
5341 - operator
5342 properties:
5343 key:
5344 description: The label key that the selector applies to.
5345 type: string
5346 operator:
5347 description: |-
5348 Represents a key's relationship to a set of values.
5349 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5350 type: string
5351 values:
5352 description: |-
5353 An array of string values. If the operator is In or NotIn,
5354 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5355 the values array must be empty. If the operator is Gt or Lt, the values
5356 array must have a single element, which will be interpreted as an integer.
5357 This array is replaced during a strategic merge patch.
5358 type: array
5359 items:
5360 type: string
5361 x-kubernetes-list-type: atomic
5362 x-kubernetes-list-type: atomic
5363 x-kubernetes-map-type: atomic
5364 weight:
5365 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
5366 type: integer
5367 format: int32
5368 x-kubernetes-list-type: atomic
5369 requiredDuringSchedulingIgnoredDuringExecution:
5370 description: |-
5371 If the affinity requirements specified by this field are not met at
5372 scheduling time, the pod will not be scheduled onto the node.
5373 If the affinity requirements specified by this field cease to be met
5374 at some point during pod execution (e.g. due to an update), the system
5375 may or may not try to eventually evict the pod from its node.
5376 type: object
5377 required:
5378 - nodeSelectorTerms
5379 properties:
5380 nodeSelectorTerms:
5381 description: Required. A list of node selector terms. The terms are ORed.
5382 type: array
5383 items:
5384 description: |-
5385 A null or empty node selector term matches no objects. The requirements of
5386 them are ANDed.
5387 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
5388 type: object
5389 properties:
5390 matchExpressions:
5391 description: A list of node selector requirements by node's labels.
5392 type: array
5393 items:
5394 description: |-
5395 A node selector requirement is a selector that contains values, a key, and an operator
5396 that relates the key and values.
5397 type: object
5398 required:
5399 - key
5400 - operator
5401 properties:
5402 key:
5403 description: The label key that the selector applies to.
5404 type: string
5405 operator:
5406 description: |-
5407 Represents a key's relationship to a set of values.
5408 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5409 type: string
5410 values:
5411 description: |-
5412 An array of string values. If the operator is In or NotIn,
5413 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5414 the values array must be empty. If the operator is Gt or Lt, the values
5415 array must have a single element, which will be interpreted as an integer.
5416 This array is replaced during a strategic merge patch.
5417 type: array
5418 items:
5419 type: string
5420 x-kubernetes-list-type: atomic
5421 x-kubernetes-list-type: atomic
5422 matchFields:
5423 description: A list of node selector requirements by node's fields.
5424 type: array
5425 items:
5426 description: |-
5427 A node selector requirement is a selector that contains values, a key, and an operator
5428 that relates the key and values.
5429 type: object
5430 required:
5431 - key
5432 - operator
5433 properties:
5434 key:
5435 description: The label key that the selector applies to.
5436 type: string
5437 operator:
5438 description: |-
5439 Represents a key's relationship to a set of values.
5440 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5441 type: string
5442 values:
5443 description: |-
5444 An array of string values. If the operator is In or NotIn,
5445 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5446 the values array must be empty. If the operator is Gt or Lt, the values
5447 array must have a single element, which will be interpreted as an integer.
5448 This array is replaced during a strategic merge patch.
5449 type: array
5450 items:
5451 type: string
5452 x-kubernetes-list-type: atomic
5453 x-kubernetes-list-type: atomic
5454 x-kubernetes-map-type: atomic
5455 x-kubernetes-list-type: atomic
5456 x-kubernetes-map-type: atomic
5457 podAffinity:
5458 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
5459 type: object
5460 properties:
5461 preferredDuringSchedulingIgnoredDuringExecution:
5462 description: |-
5463 The scheduler will prefer to schedule pods to nodes that satisfy
5464 the affinity expressions specified by this field, but it may choose
5465 a node that violates one or more of the expressions. The node that is
5466 most preferred is the one with the greatest sum of weights, i.e.
5467 for each node that meets all of the scheduling requirements (resource
5468 request, requiredDuringScheduling affinity expressions, etc.),
5469 compute a sum by iterating through the elements of this field and adding
5470 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
5471 node(s) with the highest sum are the most preferred.
5472 type: array
5473 items:
5474 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
5475 type: object
5476 required:
5477 - podAffinityTerm
5478 - weight
5479 properties:
5480 podAffinityTerm:
5481 description: Required. A pod affinity term, associated with the corresponding weight.
5482 type: object
5483 required:
5484 - topologyKey
5485 properties:
5486 labelSelector:
5487 description: |-
5488 A label query over a set of resources, in this case pods.
5489 If it's null, this PodAffinityTerm matches with no Pods.
5490 type: object
5491 properties:
5492 matchExpressions:
5493 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5494 type: array
5495 items:
5496 description: |-
5497 A label selector requirement is a selector that contains values, a key, and an operator that
5498 relates the key and values.
5499 type: object
5500 required:
5501 - key
5502 - operator
5503 properties:
5504 key:
5505 description: key is the label key that the selector applies to.
5506 type: string
5507 operator:
5508 description: |-
5509 operator represents a key's relationship to a set of values.
5510 Valid operators are In, NotIn, Exists and DoesNotExist.
5511 type: string
5512 values:
5513 description: |-
5514 values is an array of string values. If the operator is In or NotIn,
5515 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5516 the values array must be empty. This array is replaced during a strategic
5517 merge patch.
5518 type: array
5519 items:
5520 type: string
5521 x-kubernetes-list-type: atomic
5522 x-kubernetes-list-type: atomic
5523 matchLabels:
5524 description: |-
5525 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5526 map is equivalent to an element of matchExpressions, whose key field is "key", the
5527 operator is "In", and the values array contains only "value". The requirements are ANDed.
5528 type: object
5529 additionalProperties:
5530 type: string
5531 x-kubernetes-map-type: atomic
5532 matchLabelKeys:
5533 description: |-
5534 MatchLabelKeys is a set of pod label keys to select which pods will
5535 be taken into consideration. The keys are used to lookup values from the
5536 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
5537 to select the group of existing pods which pods will be taken into consideration
5538 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5539 pod labels will be ignored. The default value is empty.
5540 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5541 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5542 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5543 type: array
5544 items:
5545 type: string
5546 x-kubernetes-list-type: atomic
5547 mismatchLabelKeys:
5548 description: |-
5549 MismatchLabelKeys is a set of pod label keys to select which pods will
5550 be taken into consideration. The keys are used to lookup values from the
5551 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
5552 to select the group of existing pods which pods will be taken into consideration
5553 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5554 pod labels will be ignored. The default value is empty.
5555 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5556 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5557 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5558 type: array
5559 items:
5560 type: string
5561 x-kubernetes-list-type: atomic
5562 namespaceSelector:
5563 description: |-
5564 A label query over the set of namespaces that the term applies to.
5565 The term is applied to the union of the namespaces selected by this field
5566 and the ones listed in the namespaces field.
5567 null selector and null or empty namespaces list means "this pod's namespace".
5568 An empty selector ({}) matches all namespaces.
5569 type: object
5570 properties:
5571 matchExpressions:
5572 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5573 type: array
5574 items:
5575 description: |-
5576 A label selector requirement is a selector that contains values, a key, and an operator that
5577 relates the key and values.
5578 type: object
5579 required:
5580 - key
5581 - operator
5582 properties:
5583 key:
5584 description: key is the label key that the selector applies to.
5585 type: string
5586 operator:
5587 description: |-
5588 operator represents a key's relationship to a set of values.
5589 Valid operators are In, NotIn, Exists and DoesNotExist.
5590 type: string
5591 values:
5592 description: |-
5593 values is an array of string values. If the operator is In or NotIn,
5594 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5595 the values array must be empty. This array is replaced during a strategic
5596 merge patch.
5597 type: array
5598 items:
5599 type: string
5600 x-kubernetes-list-type: atomic
5601 x-kubernetes-list-type: atomic
5602 matchLabels:
5603 description: |-
5604 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5605 map is equivalent to an element of matchExpressions, whose key field is "key", the
5606 operator is "In", and the values array contains only "value". The requirements are ANDed.
5607 type: object
5608 additionalProperties:
5609 type: string
5610 x-kubernetes-map-type: atomic
5611 namespaces:
5612 description: |-
5613 namespaces specifies a static list of namespace names that the term applies to.
5614 The term is applied to the union of the namespaces listed in this field
5615 and the ones selected by namespaceSelector.
5616 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5617 type: array
5618 items:
5619 type: string
5620 x-kubernetes-list-type: atomic
5621 topologyKey:
5622 description: |-
5623 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5624 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5625 whose value of the label with key topologyKey matches that of any node on which any of the
5626 selected pods is running.
5627 Empty topologyKey is not allowed.
5628 type: string
5629 weight:
5630 description: |-
5631 weight associated with matching the corresponding podAffinityTerm,
5632 in the range 1-100.
5633 type: integer
5634 format: int32
5635 x-kubernetes-list-type: atomic
5636 requiredDuringSchedulingIgnoredDuringExecution:
5637 description: |-
5638 If the affinity requirements specified by this field are not met at
5639 scheduling time, the pod will not be scheduled onto the node.
5640 If the affinity requirements specified by this field cease to be met
5641 at some point during pod execution (e.g. due to a pod label update), the
5642 system may or may not try to eventually evict the pod from its node.
5643 When there are multiple elements, the lists of nodes corresponding to each
5644 podAffinityTerm are intersected, i.e. all terms must be satisfied.
5645 type: array
5646 items:
5647 description: |-
5648 Defines a set of pods (namely those matching the labelSelector
5649 relative to the given namespace(s)) that this pod should be
5650 co-located (affinity) or not co-located (anti-affinity) with,
5651 where co-located is defined as running on a node whose value of
5652 the label with key <topologyKey> matches that of any node on which
5653 a pod of the set of pods is running
5654 type: object
5655 required:
5656 - topologyKey
5657 properties:
5658 labelSelector:
5659 description: |-
5660 A label query over a set of resources, in this case pods.
5661 If it's null, this PodAffinityTerm matches with no Pods.
5662 type: object
5663 properties:
5664 matchExpressions:
5665 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5666 type: array
5667 items:
5668 description: |-
5669 A label selector requirement is a selector that contains values, a key, and an operator that
5670 relates the key and values.
5671 type: object
5672 required:
5673 - key
5674 - operator
5675 properties:
5676 key:
5677 description: key is the label key that the selector applies to.
5678 type: string
5679 operator:
5680 description: |-
5681 operator represents a key's relationship to a set of values.
5682 Valid operators are In, NotIn, Exists and DoesNotExist.
5683 type: string
5684 values:
5685 description: |-
5686 values is an array of string values. If the operator is In or NotIn,
5687 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5688 the values array must be empty. This array is replaced during a strategic
5689 merge patch.
5690 type: array
5691 items:
5692 type: string
5693 x-kubernetes-list-type: atomic
5694 x-kubernetes-list-type: atomic
5695 matchLabels:
5696 description: |-
5697 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5698 map is equivalent to an element of matchExpressions, whose key field is "key", the
5699 operator is "In", and the values array contains only "value". The requirements are ANDed.
5700 type: object
5701 additionalProperties:
5702 type: string
5703 x-kubernetes-map-type: atomic
5704 matchLabelKeys:
5705 description: |-
5706 MatchLabelKeys is a set of pod label keys to select which pods will
5707 be taken into consideration. The keys are used to lookup values from the
5708 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
5709 to select the group of existing pods which pods will be taken into consideration
5710 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5711 pod labels will be ignored. The default value is empty.
5712 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5713 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5714 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5715 type: array
5716 items:
5717 type: string
5718 x-kubernetes-list-type: atomic
5719 mismatchLabelKeys:
5720 description: |-
5721 MismatchLabelKeys is a set of pod label keys to select which pods will
5722 be taken into consideration. The keys are used to lookup values from the
5723 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
5724 to select the group of existing pods which pods will be taken into consideration
5725 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5726 pod labels will be ignored. The default value is empty.
5727 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5728 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5729 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5730 type: array
5731 items:
5732 type: string
5733 x-kubernetes-list-type: atomic
5734 namespaceSelector:
5735 description: |-
5736 A label query over the set of namespaces that the term applies to.
5737 The term is applied to the union of the namespaces selected by this field
5738 and the ones listed in the namespaces field.
5739 null selector and null or empty namespaces list means "this pod's namespace".
5740 An empty selector ({}) matches all namespaces.
5741 type: object
5742 properties:
5743 matchExpressions:
5744 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5745 type: array
5746 items:
5747 description: |-
5748 A label selector requirement is a selector that contains values, a key, and an operator that
5749 relates the key and values.
5750 type: object
5751 required:
5752 - key
5753 - operator
5754 properties:
5755 key:
5756 description: key is the label key that the selector applies to.
5757 type: string
5758 operator:
5759 description: |-
5760 operator represents a key's relationship to a set of values.
5761 Valid operators are In, NotIn, Exists and DoesNotExist.
5762 type: string
5763 values:
5764 description: |-
5765 values is an array of string values. If the operator is In or NotIn,
5766 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5767 the values array must be empty. This array is replaced during a strategic
5768 merge patch.
5769 type: array
5770 items:
5771 type: string
5772 x-kubernetes-list-type: atomic
5773 x-kubernetes-list-type: atomic
5774 matchLabels:
5775 description: |-
5776 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5777 map is equivalent to an element of matchExpressions, whose key field is "key", the
5778 operator is "In", and the values array contains only "value". The requirements are ANDed.
5779 type: object
5780 additionalProperties:
5781 type: string
5782 x-kubernetes-map-type: atomic
5783 namespaces:
5784 description: |-
5785 namespaces specifies a static list of namespace names that the term applies to.
5786 The term is applied to the union of the namespaces listed in this field
5787 and the ones selected by namespaceSelector.
5788 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5789 type: array
5790 items:
5791 type: string
5792 x-kubernetes-list-type: atomic
5793 topologyKey:
5794 description: |-
5795 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5796 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5797 whose value of the label with key topologyKey matches that of any node on which any of the
5798 selected pods is running.
5799 Empty topologyKey is not allowed.
5800 type: string
5801 x-kubernetes-list-type: atomic
5802 podAntiAffinity:
5803 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
5804 type: object
5805 properties:
5806 preferredDuringSchedulingIgnoredDuringExecution:
5807 description: |-
5808 The scheduler will prefer to schedule pods to nodes that satisfy
5809 the anti-affinity expressions specified by this field, but it may choose
5810 a node that violates one or more of the expressions. The node that is
5811 most preferred is the one with the greatest sum of weights, i.e.
5812 for each node that meets all of the scheduling requirements (resource
5813 request, requiredDuringScheduling anti-affinity expressions, etc.),
5814 compute a sum by iterating through the elements of this field and adding
5815 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
5816 node(s) with the highest sum are the most preferred.
5817 type: array
5818 items:
5819 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
5820 type: object
5821 required:
5822 - podAffinityTerm
5823 - weight
5824 properties:
5825 podAffinityTerm:
5826 description: Required. A pod affinity term, associated with the corresponding weight.
5827 type: object
5828 required:
5829 - topologyKey
5830 properties:
5831 labelSelector:
5832 description: |-
5833 A label query over a set of resources, in this case pods.
5834 If it's null, this PodAffinityTerm matches with no Pods.
5835 type: object
5836 properties:
5837 matchExpressions:
5838 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5839 type: array
5840 items:
5841 description: |-
5842 A label selector requirement is a selector that contains values, a key, and an operator that
5843 relates the key and values.
5844 type: object
5845 required:
5846 - key
5847 - operator
5848 properties:
5849 key:
5850 description: key is the label key that the selector applies to.
5851 type: string
5852 operator:
5853 description: |-
5854 operator represents a key's relationship to a set of values.
5855 Valid operators are In, NotIn, Exists and DoesNotExist.
5856 type: string
5857 values:
5858 description: |-
5859 values is an array of string values. If the operator is In or NotIn,
5860 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5861 the values array must be empty. This array is replaced during a strategic
5862 merge patch.
5863 type: array
5864 items:
5865 type: string
5866 x-kubernetes-list-type: atomic
5867 x-kubernetes-list-type: atomic
5868 matchLabels:
5869 description: |-
5870 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5871 map is equivalent to an element of matchExpressions, whose key field is "key", the
5872 operator is "In", and the values array contains only "value". The requirements are ANDed.
5873 type: object
5874 additionalProperties:
5875 type: string
5876 x-kubernetes-map-type: atomic
5877 matchLabelKeys:
5878 description: |-
5879 MatchLabelKeys is a set of pod label keys to select which pods will
5880 be taken into consideration. The keys are used to lookup values from the
5881 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
5882 to select the group of existing pods which pods will be taken into consideration
5883 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5884 pod labels will be ignored. The default value is empty.
5885 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5886 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5887 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5888 type: array
5889 items:
5890 type: string
5891 x-kubernetes-list-type: atomic
5892 mismatchLabelKeys:
5893 description: |-
5894 MismatchLabelKeys is a set of pod label keys to select which pods will
5895 be taken into consideration. The keys are used to lookup values from the
5896 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
5897 to select the group of existing pods which pods will be taken into consideration
5898 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5899 pod labels will be ignored. The default value is empty.
5900 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5901 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5902 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5903 type: array
5904 items:
5905 type: string
5906 x-kubernetes-list-type: atomic
5907 namespaceSelector:
5908 description: |-
5909 A label query over the set of namespaces that the term applies to.
5910 The term is applied to the union of the namespaces selected by this field
5911 and the ones listed in the namespaces field.
5912 null selector and null or empty namespaces list means "this pod's namespace".
5913 An empty selector ({}) matches all namespaces.
5914 type: object
5915 properties:
5916 matchExpressions:
5917 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5918 type: array
5919 items:
5920 description: |-
5921 A label selector requirement is a selector that contains values, a key, and an operator that
5922 relates the key and values.
5923 type: object
5924 required:
5925 - key
5926 - operator
5927 properties:
5928 key:
5929 description: key is the label key that the selector applies to.
5930 type: string
5931 operator:
5932 description: |-
5933 operator represents a key's relationship to a set of values.
5934 Valid operators are In, NotIn, Exists and DoesNotExist.
5935 type: string
5936 values:
5937 description: |-
5938 values is an array of string values. If the operator is In or NotIn,
5939 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5940 the values array must be empty. This array is replaced during a strategic
5941 merge patch.
5942 type: array
5943 items:
5944 type: string
5945 x-kubernetes-list-type: atomic
5946 x-kubernetes-list-type: atomic
5947 matchLabels:
5948 description: |-
5949 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5950 map is equivalent to an element of matchExpressions, whose key field is "key", the
5951 operator is "In", and the values array contains only "value". The requirements are ANDed.
5952 type: object
5953 additionalProperties:
5954 type: string
5955 x-kubernetes-map-type: atomic
5956 namespaces:
5957 description: |-
5958 namespaces specifies a static list of namespace names that the term applies to.
5959 The term is applied to the union of the namespaces listed in this field
5960 and the ones selected by namespaceSelector.
5961 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5962 type: array
5963 items:
5964 type: string
5965 x-kubernetes-list-type: atomic
5966 topologyKey:
5967 description: |-
5968 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5969 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5970 whose value of the label with key topologyKey matches that of any node on which any of the
5971 selected pods is running.
5972 Empty topologyKey is not allowed.
5973 type: string
5974 weight:
5975 description: |-
5976 weight associated with matching the corresponding podAffinityTerm,
5977 in the range 1-100.
5978 type: integer
5979 format: int32
5980 x-kubernetes-list-type: atomic
5981 requiredDuringSchedulingIgnoredDuringExecution:
5982 description: |-
5983 If the anti-affinity requirements specified by this field are not met at
5984 scheduling time, the pod will not be scheduled onto the node.
5985 If the anti-affinity requirements specified by this field cease to be met
5986 at some point during pod execution (e.g. due to a pod label update), the
5987 system may or may not try to eventually evict the pod from its node.
5988 When there are multiple elements, the lists of nodes corresponding to each
5989 podAffinityTerm are intersected, i.e. all terms must be satisfied.
5990 type: array
5991 items:
5992 description: |-
5993 Defines a set of pods (namely those matching the labelSelector
5994 relative to the given namespace(s)) that this pod should be
5995 co-located (affinity) or not co-located (anti-affinity) with,
5996 where co-located is defined as running on a node whose value of
5997 the label with key <topologyKey> matches that of any node on which
5998 a pod of the set of pods is running
5999 type: object
6000 required:
6001 - topologyKey
6002 properties:
6003 labelSelector:
6004 description: |-
6005 A label query over a set of resources, in this case pods.
6006 If it's null, this PodAffinityTerm matches with no Pods.
6007 type: object
6008 properties:
6009 matchExpressions:
6010 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6011 type: array
6012 items:
6013 description: |-
6014 A label selector requirement is a selector that contains values, a key, and an operator that
6015 relates the key and values.
6016 type: object
6017 required:
6018 - key
6019 - operator
6020 properties:
6021 key:
6022 description: key is the label key that the selector applies to.
6023 type: string
6024 operator:
6025 description: |-
6026 operator represents a key's relationship to a set of values.
6027 Valid operators are In, NotIn, Exists and DoesNotExist.
6028 type: string
6029 values:
6030 description: |-
6031 values is an array of string values. If the operator is In or NotIn,
6032 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6033 the values array must be empty. This array is replaced during a strategic
6034 merge patch.
6035 type: array
6036 items:
6037 type: string
6038 x-kubernetes-list-type: atomic
6039 x-kubernetes-list-type: atomic
6040 matchLabels:
6041 description: |-
6042 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6043 map is equivalent to an element of matchExpressions, whose key field is "key", the
6044 operator is "In", and the values array contains only "value". The requirements are ANDed.
6045 type: object
6046 additionalProperties:
6047 type: string
6048 x-kubernetes-map-type: atomic
6049 matchLabelKeys:
6050 description: |-
6051 MatchLabelKeys is a set of pod label keys to select which pods will
6052 be taken into consideration. The keys are used to lookup values from the
6053 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
6054 to select the group of existing pods which pods will be taken into consideration
6055 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6056 pod labels will be ignored. The default value is empty.
6057 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6058 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6059 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6060 type: array
6061 items:
6062 type: string
6063 x-kubernetes-list-type: atomic
6064 mismatchLabelKeys:
6065 description: |-
6066 MismatchLabelKeys is a set of pod label keys to select which pods will
6067 be taken into consideration. The keys are used to lookup values from the
6068 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
6069 to select the group of existing pods which pods will be taken into consideration
6070 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6071 pod labels will be ignored. The default value is empty.
6072 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6073 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6074 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6075 type: array
6076 items:
6077 type: string
6078 x-kubernetes-list-type: atomic
6079 namespaceSelector:
6080 description: |-
6081 A label query over the set of namespaces that the term applies to.
6082 The term is applied to the union of the namespaces selected by this field
6083 and the ones listed in the namespaces field.
6084 null selector and null or empty namespaces list means "this pod's namespace".
6085 An empty selector ({}) matches all namespaces.
6086 type: object
6087 properties:
6088 matchExpressions:
6089 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6090 type: array
6091 items:
6092 description: |-
6093 A label selector requirement is a selector that contains values, a key, and an operator that
6094 relates the key and values.
6095 type: object
6096 required:
6097 - key
6098 - operator
6099 properties:
6100 key:
6101 description: key is the label key that the selector applies to.
6102 type: string
6103 operator:
6104 description: |-
6105 operator represents a key's relationship to a set of values.
6106 Valid operators are In, NotIn, Exists and DoesNotExist.
6107 type: string
6108 values:
6109 description: |-
6110 values is an array of string values. If the operator is In or NotIn,
6111 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6112 the values array must be empty. This array is replaced during a strategic
6113 merge patch.
6114 type: array
6115 items:
6116 type: string
6117 x-kubernetes-list-type: atomic
6118 x-kubernetes-list-type: atomic
6119 matchLabels:
6120 description: |-
6121 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6122 map is equivalent to an element of matchExpressions, whose key field is "key", the
6123 operator is "In", and the values array contains only "value". The requirements are ANDed.
6124 type: object
6125 additionalProperties:
6126 type: string
6127 x-kubernetes-map-type: atomic
6128 namespaces:
6129 description: |-
6130 namespaces specifies a static list of namespace names that the term applies to.
6131 The term is applied to the union of the namespaces listed in this field
6132 and the ones selected by namespaceSelector.
6133 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6134 type: array
6135 items:
6136 type: string
6137 x-kubernetes-list-type: atomic
6138 topologyKey:
6139 description: |-
6140 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6141 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6142 whose value of the label with key topologyKey matches that of any node on which any of the
6143 selected pods is running.
6144 Empty topologyKey is not allowed.
6145 type: string
6146 x-kubernetes-list-type: atomic
6147 imagePullSecrets:
6148 description: If specified, the pod's imagePullSecrets
6149 type: array
6150 items:
6151 description: |-
6152 LocalObjectReference contains enough information to let you locate the
6153 referenced object inside the same namespace.
6154 type: object
6155 properties:
6156 name:
6157 description: |-
6158 Name of the referent.
6159 This field is effectively required, but due to backwards compatibility is
6160 allowed to be empty. Instances of this type with an empty value here are
6161 almost certainly wrong.
6162 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6163 type: string
6164 default: ""
6165 x-kubernetes-map-type: atomic
6166 nodeSelector:
6167 description: |-
6168 NodeSelector is a selector which must be true for the pod to fit on a node.
6169 Selector which must match a node's labels for the pod to be scheduled on that node.
6170 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
6171 type: object
6172 additionalProperties:
6173 type: string
6174 priorityClassName:
6175 description: If specified, the pod's priorityClassName.
6176 type: string
6177 securityContext:
6178 description: If specified, the pod's security context
6179 type: object
6180 properties:
6181 fsGroup:
6182 description: |-
6183 A special supplemental group that applies to all containers in a pod.
6184 Some volume types allow the Kubelet to change the ownership of that volume
6185 to be owned by the pod:
6186
6187 1. The owning GID will be the FSGroup
6188 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
6189 3. The permission bits are OR'd with rw-rw----
6190
6191 If unset, the Kubelet will not modify the ownership and permissions of any volume.
6192 Note that this field cannot be set when spec.os.name is windows.
6193 type: integer
6194 format: int64
6195 fsGroupChangePolicy:
6196 description: |-
6197 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
6198 before being exposed inside Pod. This field will only apply to
6199 volume types which support fsGroup based ownership(and permissions).
6200 It will have no effect on ephemeral volume types such as: secret, configmaps
6201 and emptydir.
6202 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
6203 Note that this field cannot be set when spec.os.name is windows.
6204 type: string
6205 runAsGroup:
6206 description: |-
6207 The GID to run the entrypoint of the container process.
6208 Uses runtime default if unset.
6209 May also be set in SecurityContext. If set in both SecurityContext and
6210 PodSecurityContext, the value specified in SecurityContext takes precedence
6211 for that container.
6212 Note that this field cannot be set when spec.os.name is windows.
6213 type: integer
6214 format: int64
6215 runAsNonRoot:
6216 description: |-
6217 Indicates that the container must run as a non-root user.
6218 If true, the Kubelet will validate the image at runtime to ensure that it
6219 does not run as UID 0 (root) and fail to start the container if it does.
6220 If unset or false, no such validation will be performed.
6221 May also be set in SecurityContext. If set in both SecurityContext and
6222 PodSecurityContext, the value specified in SecurityContext takes precedence.
6223 type: boolean
6224 runAsUser:
6225 description: |-
6226 The UID to run the entrypoint of the container process.
6227 Defaults to user specified in image metadata if unspecified.
6228 May also be set in SecurityContext. If set in both SecurityContext and
6229 PodSecurityContext, the value specified in SecurityContext takes precedence
6230 for that container.
6231 Note that this field cannot be set when spec.os.name is windows.
6232 type: integer
6233 format: int64
6234 seLinuxOptions:
6235 description: |-
6236 The SELinux context to be applied to all containers.
6237 If unspecified, the container runtime will allocate a random SELinux context for each
6238 container. May also be set in SecurityContext. If set in
6239 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
6240 takes precedence for that container.
6241 Note that this field cannot be set when spec.os.name is windows.
6242 type: object
6243 properties:
6244 level:
6245 description: Level is SELinux level label that applies to the container.
6246 type: string
6247 role:
6248 description: Role is a SELinux role label that applies to the container.
6249 type: string
6250 type:
6251 description: Type is a SELinux type label that applies to the container.
6252 type: string
6253 user:
6254 description: User is a SELinux user label that applies to the container.
6255 type: string
6256 seccompProfile:
6257 description: |-
6258 The seccomp options to use by the containers in this pod.
6259 Note that this field cannot be set when spec.os.name is windows.
6260 type: object
6261 required:
6262 - type
6263 properties:
6264 localhostProfile:
6265 description: |-
6266 localhostProfile indicates a profile defined in a file on the node should be used.
6267 The profile must be preconfigured on the node to work.
6268 Must be a descending path, relative to the kubelet's configured seccomp profile location.
6269 Must be set if type is "Localhost". Must NOT be set for any other type.
6270 type: string
6271 type:
6272 description: |-
6273 type indicates which kind of seccomp profile will be applied.
6274 Valid options are:
6275
6276 Localhost - a profile defined in a file on the node should be used.
6277 RuntimeDefault - the container runtime default profile should be used.
6278 Unconfined - no profile should be applied.
6279 type: string
6280 supplementalGroups:
6281 description: |-
6282 A list of groups applied to the first process run in each container, in addition
6283 to the container's primary GID, the fsGroup (if specified), and group memberships
6284 defined in the container image for the uid of the container process. If unspecified,
6285 no additional groups are added to any container. Note that group memberships
6286 defined in the container image for the uid of the container process are still effective,
6287 even if they are not included in this list.
6288 Note that this field cannot be set when spec.os.name is windows.
6289 type: array
6290 items:
6291 type: integer
6292 format: int64
6293 sysctls:
6294 description: |-
6295 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
6296 sysctls (by the container runtime) might fail to launch.
6297 Note that this field cannot be set when spec.os.name is windows.
6298 type: array
6299 items:
6300 description: Sysctl defines a kernel parameter to be set
6301 type: object
6302 required:
6303 - name
6304 - value
6305 properties:
6306 name:
6307 description: Name of a property to set
6308 type: string
6309 value:
6310 description: Value of a property to set
6311 type: string
6312 serviceAccountName:
6313 description: If specified, the pod's service account
6314 type: string
6315 tolerations:
6316 description: If specified, the pod's tolerations.
6317 type: array
6318 items:
6319 description: |-
6320 The pod this Toleration is attached to tolerates any taint that matches
6321 the triple <key,value,effect> using the matching operator <operator>.
6322 type: object
6323 properties:
6324 effect:
6325 description: |-
6326 Effect indicates the taint effect to match. Empty means match all taint effects.
6327 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
6328 type: string
6329 key:
6330 description: |-
6331 Key is the taint key that the toleration applies to. Empty means match all taint keys.
6332 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
6333 type: string
6334 operator:
6335 description: |-
6336 Operator represents a key's relationship to the value.
6337 Valid operators are Exists and Equal. Defaults to Equal.
6338 Exists is equivalent to wildcard for value, so that a pod can
6339 tolerate all taints of a particular category.
6340 type: string
6341 tolerationSeconds:
6342 description: |-
6343 TolerationSeconds represents the period of time the toleration (which must be
6344 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
6345 it is not set, which means tolerate the taint forever (do not evict). Zero and
6346 negative values will be treated as 0 (evict immediately) by the system.
6347 type: integer
6348 format: int64
6349 value:
6350 description: |-
6351 Value is the taint value the toleration matches to.
6352 If the operator is Exists, the value should be empty, otherwise just a regular string.
6353 type: string
6354 serviceType:
6355 description: |-
6356 Optional service type for Kubernetes solver service. Supported values
6357 are NodePort or ClusterIP. If unset, defaults to NodePort.
6358 type: string
6359 ingress:
6360 description: |-
6361 The ingress based HTTP01 challenge solver will solve challenges by
6362 creating or modifying Ingress resources in order to route requests for
6363 '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are
6364 provisioned by cert-manager for each Challenge to be completed.
6365 type: object
6366 properties:
6367 class:
6368 description: |-
6369 This field configures the annotation `kubernetes.io/ingress.class` when
6370 creating Ingress resources to solve ACME challenges that use this
6371 challenge solver. Only one of `class`, `name` or `ingressClassName` may
6372 be specified.
6373 type: string
6374 ingressClassName:
6375 description: |-
6376 This field configures the field `ingressClassName` on the created Ingress
6377 resources used to solve ACME challenges that use this challenge solver.
6378 This is the recommended way of configuring the ingress class. Only one of
6379 `class`, `name` or `ingressClassName` may be specified.
6380 type: string
6381 ingressTemplate:
6382 description: |-
6383 Optional ingress template used to configure the ACME challenge solver
6384 ingress used for HTTP01 challenges.
6385 type: object
6386 properties:
6387 metadata:
6388 description: |-
6389 ObjectMeta overrides for the ingress used to solve HTTP01 challenges.
6390 Only the 'labels' and 'annotations' fields may be set.
6391 If labels or annotations overlap with in-built values, the values here
6392 will override the in-built values.
6393 type: object
6394 properties:
6395 annotations:
6396 description: Annotations that should be added to the created ACME HTTP01 solver ingress.
6397 type: object
6398 additionalProperties:
6399 type: string
6400 labels:
6401 description: Labels that should be added to the created ACME HTTP01 solver ingress.
6402 type: object
6403 additionalProperties:
6404 type: string
6405 name:
6406 description: |-
6407 The name of the ingress resource that should have ACME challenge solving
6408 routes inserted into it in order to solve HTTP01 challenges.
6409 This is typically used in conjunction with ingress controllers like
6410 ingress-gce, which maintains a 1:1 mapping between external IPs and
6411 ingress resources. Only one of `class`, `name` or `ingressClassName` may
6412 be specified.
6413 type: string
6414 podTemplate:
6415 description: |-
6416 Optional pod template used to configure the ACME challenge solver pods
6417 used for HTTP01 challenges.
6418 type: object
6419 properties:
6420 metadata:
6421 description: |-
6422 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
6423 Only the 'labels' and 'annotations' fields may be set.
6424 If labels or annotations overlap with in-built values, the values here
6425 will override the in-built values.
6426 type: object
6427 properties:
6428 annotations:
6429 description: Annotations that should be added to the created ACME HTTP01 solver pods.
6430 type: object
6431 additionalProperties:
6432 type: string
6433 labels:
6434 description: Labels that should be added to the created ACME HTTP01 solver pods.
6435 type: object
6436 additionalProperties:
6437 type: string
6438 spec:
6439 description: |-
6440 PodSpec defines overrides for the HTTP01 challenge solver pod.
6441 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
6442 All other fields will be ignored.
6443 type: object
6444 properties:
6445 affinity:
6446 description: If specified, the pod's scheduling constraints
6447 type: object
6448 properties:
6449 nodeAffinity:
6450 description: Describes node affinity scheduling rules for the pod.
6451 type: object
6452 properties:
6453 preferredDuringSchedulingIgnoredDuringExecution:
6454 description: |-
6455 The scheduler will prefer to schedule pods to nodes that satisfy
6456 the affinity expressions specified by this field, but it may choose
6457 a node that violates one or more of the expressions. The node that is
6458 most preferred is the one with the greatest sum of weights, i.e.
6459 for each node that meets all of the scheduling requirements (resource
6460 request, requiredDuringScheduling affinity expressions, etc.),
6461 compute a sum by iterating through the elements of this field and adding
6462 "weight" to the sum if the node matches the corresponding matchExpressions; the
6463 node(s) with the highest sum are the most preferred.
6464 type: array
6465 items:
6466 description: |-
6467 An empty preferred scheduling term matches all objects with implicit weight 0
6468 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
6469 type: object
6470 required:
6471 - preference
6472 - weight
6473 properties:
6474 preference:
6475 description: A node selector term, associated with the corresponding weight.
6476 type: object
6477 properties:
6478 matchExpressions:
6479 description: A list of node selector requirements by node's labels.
6480 type: array
6481 items:
6482 description: |-
6483 A node selector requirement is a selector that contains values, a key, and an operator
6484 that relates the key and values.
6485 type: object
6486 required:
6487 - key
6488 - operator
6489 properties:
6490 key:
6491 description: The label key that the selector applies to.
6492 type: string
6493 operator:
6494 description: |-
6495 Represents a key's relationship to a set of values.
6496 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6497 type: string
6498 values:
6499 description: |-
6500 An array of string values. If the operator is In or NotIn,
6501 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6502 the values array must be empty. If the operator is Gt or Lt, the values
6503 array must have a single element, which will be interpreted as an integer.
6504 This array is replaced during a strategic merge patch.
6505 type: array
6506 items:
6507 type: string
6508 x-kubernetes-list-type: atomic
6509 x-kubernetes-list-type: atomic
6510 matchFields:
6511 description: A list of node selector requirements by node's fields.
6512 type: array
6513 items:
6514 description: |-
6515 A node selector requirement is a selector that contains values, a key, and an operator
6516 that relates the key and values.
6517 type: object
6518 required:
6519 - key
6520 - operator
6521 properties:
6522 key:
6523 description: The label key that the selector applies to.
6524 type: string
6525 operator:
6526 description: |-
6527 Represents a key's relationship to a set of values.
6528 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6529 type: string
6530 values:
6531 description: |-
6532 An array of string values. If the operator is In or NotIn,
6533 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6534 the values array must be empty. If the operator is Gt or Lt, the values
6535 array must have a single element, which will be interpreted as an integer.
6536 This array is replaced during a strategic merge patch.
6537 type: array
6538 items:
6539 type: string
6540 x-kubernetes-list-type: atomic
6541 x-kubernetes-list-type: atomic
6542 x-kubernetes-map-type: atomic
6543 weight:
6544 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
6545 type: integer
6546 format: int32
6547 x-kubernetes-list-type: atomic
6548 requiredDuringSchedulingIgnoredDuringExecution:
6549 description: |-
6550 If the affinity requirements specified by this field are not met at
6551 scheduling time, the pod will not be scheduled onto the node.
6552 If the affinity requirements specified by this field cease to be met
6553 at some point during pod execution (e.g. due to an update), the system
6554 may or may not try to eventually evict the pod from its node.
6555 type: object
6556 required:
6557 - nodeSelectorTerms
6558 properties:
6559 nodeSelectorTerms:
6560 description: Required. A list of node selector terms. The terms are ORed.
6561 type: array
6562 items:
6563 description: |-
6564 A null or empty node selector term matches no objects. The requirements of
6565 them are ANDed.
6566 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
6567 type: object
6568 properties:
6569 matchExpressions:
6570 description: A list of node selector requirements by node's labels.
6571 type: array
6572 items:
6573 description: |-
6574 A node selector requirement is a selector that contains values, a key, and an operator
6575 that relates the key and values.
6576 type: object
6577 required:
6578 - key
6579 - operator
6580 properties:
6581 key:
6582 description: The label key that the selector applies to.
6583 type: string
6584 operator:
6585 description: |-
6586 Represents a key's relationship to a set of values.
6587 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6588 type: string
6589 values:
6590 description: |-
6591 An array of string values. If the operator is In or NotIn,
6592 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6593 the values array must be empty. If the operator is Gt or Lt, the values
6594 array must have a single element, which will be interpreted as an integer.
6595 This array is replaced during a strategic merge patch.
6596 type: array
6597 items:
6598 type: string
6599 x-kubernetes-list-type: atomic
6600 x-kubernetes-list-type: atomic
6601 matchFields:
6602 description: A list of node selector requirements by node's fields.
6603 type: array
6604 items:
6605 description: |-
6606 A node selector requirement is a selector that contains values, a key, and an operator
6607 that relates the key and values.
6608 type: object
6609 required:
6610 - key
6611 - operator
6612 properties:
6613 key:
6614 description: The label key that the selector applies to.
6615 type: string
6616 operator:
6617 description: |-
6618 Represents a key's relationship to a set of values.
6619 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6620 type: string
6621 values:
6622 description: |-
6623 An array of string values. If the operator is In or NotIn,
6624 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6625 the values array must be empty. If the operator is Gt or Lt, the values
6626 array must have a single element, which will be interpreted as an integer.
6627 This array is replaced during a strategic merge patch.
6628 type: array
6629 items:
6630 type: string
6631 x-kubernetes-list-type: atomic
6632 x-kubernetes-list-type: atomic
6633 x-kubernetes-map-type: atomic
6634 x-kubernetes-list-type: atomic
6635 x-kubernetes-map-type: atomic
6636 podAffinity:
6637 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
6638 type: object
6639 properties:
6640 preferredDuringSchedulingIgnoredDuringExecution:
6641 description: |-
6642 The scheduler will prefer to schedule pods to nodes that satisfy
6643 the affinity expressions specified by this field, but it may choose
6644 a node that violates one or more of the expressions. The node that is
6645 most preferred is the one with the greatest sum of weights, i.e.
6646 for each node that meets all of the scheduling requirements (resource
6647 request, requiredDuringScheduling affinity expressions, etc.),
6648 compute a sum by iterating through the elements of this field and adding
6649 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
6650 node(s) with the highest sum are the most preferred.
6651 type: array
6652 items:
6653 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
6654 type: object
6655 required:
6656 - podAffinityTerm
6657 - weight
6658 properties:
6659 podAffinityTerm:
6660 description: Required. A pod affinity term, associated with the corresponding weight.
6661 type: object
6662 required:
6663 - topologyKey
6664 properties:
6665 labelSelector:
6666 description: |-
6667 A label query over a set of resources, in this case pods.
6668 If it's null, this PodAffinityTerm matches with no Pods.
6669 type: object
6670 properties:
6671 matchExpressions:
6672 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6673 type: array
6674 items:
6675 description: |-
6676 A label selector requirement is a selector that contains values, a key, and an operator that
6677 relates the key and values.
6678 type: object
6679 required:
6680 - key
6681 - operator
6682 properties:
6683 key:
6684 description: key is the label key that the selector applies to.
6685 type: string
6686 operator:
6687 description: |-
6688 operator represents a key's relationship to a set of values.
6689 Valid operators are In, NotIn, Exists and DoesNotExist.
6690 type: string
6691 values:
6692 description: |-
6693 values is an array of string values. If the operator is In or NotIn,
6694 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6695 the values array must be empty. This array is replaced during a strategic
6696 merge patch.
6697 type: array
6698 items:
6699 type: string
6700 x-kubernetes-list-type: atomic
6701 x-kubernetes-list-type: atomic
6702 matchLabels:
6703 description: |-
6704 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6705 map is equivalent to an element of matchExpressions, whose key field is "key", the
6706 operator is "In", and the values array contains only "value". The requirements are ANDed.
6707 type: object
6708 additionalProperties:
6709 type: string
6710 x-kubernetes-map-type: atomic
6711 matchLabelKeys:
6712 description: |-
6713 MatchLabelKeys is a set of pod label keys to select which pods will
6714 be taken into consideration. The keys are used to lookup values from the
6715 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
6716 to select the group of existing pods which pods will be taken into consideration
6717 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6718 pod labels will be ignored. The default value is empty.
6719 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6720 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6721 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6722 type: array
6723 items:
6724 type: string
6725 x-kubernetes-list-type: atomic
6726 mismatchLabelKeys:
6727 description: |-
6728 MismatchLabelKeys is a set of pod label keys to select which pods will
6729 be taken into consideration. The keys are used to lookup values from the
6730 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
6731 to select the group of existing pods which pods will be taken into consideration
6732 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6733 pod labels will be ignored. The default value is empty.
6734 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6735 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6736 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6737 type: array
6738 items:
6739 type: string
6740 x-kubernetes-list-type: atomic
6741 namespaceSelector:
6742 description: |-
6743 A label query over the set of namespaces that the term applies to.
6744 The term is applied to the union of the namespaces selected by this field
6745 and the ones listed in the namespaces field.
6746 null selector and null or empty namespaces list means "this pod's namespace".
6747 An empty selector ({}) matches all namespaces.
6748 type: object
6749 properties:
6750 matchExpressions:
6751 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6752 type: array
6753 items:
6754 description: |-
6755 A label selector requirement is a selector that contains values, a key, and an operator that
6756 relates the key and values.
6757 type: object
6758 required:
6759 - key
6760 - operator
6761 properties:
6762 key:
6763 description: key is the label key that the selector applies to.
6764 type: string
6765 operator:
6766 description: |-
6767 operator represents a key's relationship to a set of values.
6768 Valid operators are In, NotIn, Exists and DoesNotExist.
6769 type: string
6770 values:
6771 description: |-
6772 values is an array of string values. If the operator is In or NotIn,
6773 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6774 the values array must be empty. This array is replaced during a strategic
6775 merge patch.
6776 type: array
6777 items:
6778 type: string
6779 x-kubernetes-list-type: atomic
6780 x-kubernetes-list-type: atomic
6781 matchLabels:
6782 description: |-
6783 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6784 map is equivalent to an element of matchExpressions, whose key field is "key", the
6785 operator is "In", and the values array contains only "value". The requirements are ANDed.
6786 type: object
6787 additionalProperties:
6788 type: string
6789 x-kubernetes-map-type: atomic
6790 namespaces:
6791 description: |-
6792 namespaces specifies a static list of namespace names that the term applies to.
6793 The term is applied to the union of the namespaces listed in this field
6794 and the ones selected by namespaceSelector.
6795 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6796 type: array
6797 items:
6798 type: string
6799 x-kubernetes-list-type: atomic
6800 topologyKey:
6801 description: |-
6802 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6803 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6804 whose value of the label with key topologyKey matches that of any node on which any of the
6805 selected pods is running.
6806 Empty topologyKey is not allowed.
6807 type: string
6808 weight:
6809 description: |-
6810 weight associated with matching the corresponding podAffinityTerm,
6811 in the range 1-100.
6812 type: integer
6813 format: int32
6814 x-kubernetes-list-type: atomic
6815 requiredDuringSchedulingIgnoredDuringExecution:
6816 description: |-
6817 If the affinity requirements specified by this field are not met at
6818 scheduling time, the pod will not be scheduled onto the node.
6819 If the affinity requirements specified by this field cease to be met
6820 at some point during pod execution (e.g. due to a pod label update), the
6821 system may or may not try to eventually evict the pod from its node.
6822 When there are multiple elements, the lists of nodes corresponding to each
6823 podAffinityTerm are intersected, i.e. all terms must be satisfied.
6824 type: array
6825 items:
6826 description: |-
6827 Defines a set of pods (namely those matching the labelSelector
6828 relative to the given namespace(s)) that this pod should be
6829 co-located (affinity) or not co-located (anti-affinity) with,
6830 where co-located is defined as running on a node whose value of
6831 the label with key <topologyKey> matches that of any node on which
6832 a pod of the set of pods is running
6833 type: object
6834 required:
6835 - topologyKey
6836 properties:
6837 labelSelector:
6838 description: |-
6839 A label query over a set of resources, in this case pods.
6840 If it's null, this PodAffinityTerm matches with no Pods.
6841 type: object
6842 properties:
6843 matchExpressions:
6844 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6845 type: array
6846 items:
6847 description: |-
6848 A label selector requirement is a selector that contains values, a key, and an operator that
6849 relates the key and values.
6850 type: object
6851 required:
6852 - key
6853 - operator
6854 properties:
6855 key:
6856 description: key is the label key that the selector applies to.
6857 type: string
6858 operator:
6859 description: |-
6860 operator represents a key's relationship to a set of values.
6861 Valid operators are In, NotIn, Exists and DoesNotExist.
6862 type: string
6863 values:
6864 description: |-
6865 values is an array of string values. If the operator is In or NotIn,
6866 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6867 the values array must be empty. This array is replaced during a strategic
6868 merge patch.
6869 type: array
6870 items:
6871 type: string
6872 x-kubernetes-list-type: atomic
6873 x-kubernetes-list-type: atomic
6874 matchLabels:
6875 description: |-
6876 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6877 map is equivalent to an element of matchExpressions, whose key field is "key", the
6878 operator is "In", and the values array contains only "value". The requirements are ANDed.
6879 type: object
6880 additionalProperties:
6881 type: string
6882 x-kubernetes-map-type: atomic
6883 matchLabelKeys:
6884 description: |-
6885 MatchLabelKeys is a set of pod label keys to select which pods will
6886 be taken into consideration. The keys are used to lookup values from the
6887 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
6888 to select the group of existing pods which pods will be taken into consideration
6889 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6890 pod labels will be ignored. The default value is empty.
6891 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6892 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6893 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6894 type: array
6895 items:
6896 type: string
6897 x-kubernetes-list-type: atomic
6898 mismatchLabelKeys:
6899 description: |-
6900 MismatchLabelKeys is a set of pod label keys to select which pods will
6901 be taken into consideration. The keys are used to lookup values from the
6902 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
6903 to select the group of existing pods which pods will be taken into consideration
6904 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6905 pod labels will be ignored. The default value is empty.
6906 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6907 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6908 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6909 type: array
6910 items:
6911 type: string
6912 x-kubernetes-list-type: atomic
6913 namespaceSelector:
6914 description: |-
6915 A label query over the set of namespaces that the term applies to.
6916 The term is applied to the union of the namespaces selected by this field
6917 and the ones listed in the namespaces field.
6918 null selector and null or empty namespaces list means "this pod's namespace".
6919 An empty selector ({}) matches all namespaces.
6920 type: object
6921 properties:
6922 matchExpressions:
6923 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6924 type: array
6925 items:
6926 description: |-
6927 A label selector requirement is a selector that contains values, a key, and an operator that
6928 relates the key and values.
6929 type: object
6930 required:
6931 - key
6932 - operator
6933 properties:
6934 key:
6935 description: key is the label key that the selector applies to.
6936 type: string
6937 operator:
6938 description: |-
6939 operator represents a key's relationship to a set of values.
6940 Valid operators are In, NotIn, Exists and DoesNotExist.
6941 type: string
6942 values:
6943 description: |-
6944 values is an array of string values. If the operator is In or NotIn,
6945 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6946 the values array must be empty. This array is replaced during a strategic
6947 merge patch.
6948 type: array
6949 items:
6950 type: string
6951 x-kubernetes-list-type: atomic
6952 x-kubernetes-list-type: atomic
6953 matchLabels:
6954 description: |-
6955 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6956 map is equivalent to an element of matchExpressions, whose key field is "key", the
6957 operator is "In", and the values array contains only "value". The requirements are ANDed.
6958 type: object
6959 additionalProperties:
6960 type: string
6961 x-kubernetes-map-type: atomic
6962 namespaces:
6963 description: |-
6964 namespaces specifies a static list of namespace names that the term applies to.
6965 The term is applied to the union of the namespaces listed in this field
6966 and the ones selected by namespaceSelector.
6967 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6968 type: array
6969 items:
6970 type: string
6971 x-kubernetes-list-type: atomic
6972 topologyKey:
6973 description: |-
6974 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6975 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6976 whose value of the label with key topologyKey matches that of any node on which any of the
6977 selected pods is running.
6978 Empty topologyKey is not allowed.
6979 type: string
6980 x-kubernetes-list-type: atomic
6981 podAntiAffinity:
6982 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
6983 type: object
6984 properties:
6985 preferredDuringSchedulingIgnoredDuringExecution:
6986 description: |-
6987 The scheduler will prefer to schedule pods to nodes that satisfy
6988 the anti-affinity expressions specified by this field, but it may choose
6989 a node that violates one or more of the expressions. The node that is
6990 most preferred is the one with the greatest sum of weights, i.e.
6991 for each node that meets all of the scheduling requirements (resource
6992 request, requiredDuringScheduling anti-affinity expressions, etc.),
6993 compute a sum by iterating through the elements of this field and adding
6994 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
6995 node(s) with the highest sum are the most preferred.
6996 type: array
6997 items:
6998 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
6999 type: object
7000 required:
7001 - podAffinityTerm
7002 - weight
7003 properties:
7004 podAffinityTerm:
7005 description: Required. A pod affinity term, associated with the corresponding weight.
7006 type: object
7007 required:
7008 - topologyKey
7009 properties:
7010 labelSelector:
7011 description: |-
7012 A label query over a set of resources, in this case pods.
7013 If it's null, this PodAffinityTerm matches with no Pods.
7014 type: object
7015 properties:
7016 matchExpressions:
7017 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7018 type: array
7019 items:
7020 description: |-
7021 A label selector requirement is a selector that contains values, a key, and an operator that
7022 relates the key and values.
7023 type: object
7024 required:
7025 - key
7026 - operator
7027 properties:
7028 key:
7029 description: key is the label key that the selector applies to.
7030 type: string
7031 operator:
7032 description: |-
7033 operator represents a key's relationship to a set of values.
7034 Valid operators are In, NotIn, Exists and DoesNotExist.
7035 type: string
7036 values:
7037 description: |-
7038 values is an array of string values. If the operator is In or NotIn,
7039 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7040 the values array must be empty. This array is replaced during a strategic
7041 merge patch.
7042 type: array
7043 items:
7044 type: string
7045 x-kubernetes-list-type: atomic
7046 x-kubernetes-list-type: atomic
7047 matchLabels:
7048 description: |-
7049 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7050 map is equivalent to an element of matchExpressions, whose key field is "key", the
7051 operator is "In", and the values array contains only "value". The requirements are ANDed.
7052 type: object
7053 additionalProperties:
7054 type: string
7055 x-kubernetes-map-type: atomic
7056 matchLabelKeys:
7057 description: |-
7058 MatchLabelKeys is a set of pod label keys to select which pods will
7059 be taken into consideration. The keys are used to lookup values from the
7060 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
7061 to select the group of existing pods which pods will be taken into consideration
7062 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7063 pod labels will be ignored. The default value is empty.
7064 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
7065 Also, matchLabelKeys cannot be set when labelSelector isn't set.
7066 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7067 type: array
7068 items:
7069 type: string
7070 x-kubernetes-list-type: atomic
7071 mismatchLabelKeys:
7072 description: |-
7073 MismatchLabelKeys is a set of pod label keys to select which pods will
7074 be taken into consideration. The keys are used to lookup values from the
7075 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
7076 to select the group of existing pods which pods will be taken into consideration
7077 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7078 pod labels will be ignored. The default value is empty.
7079 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
7080 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
7081 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7082 type: array
7083 items:
7084 type: string
7085 x-kubernetes-list-type: atomic
7086 namespaceSelector:
7087 description: |-
7088 A label query over the set of namespaces that the term applies to.
7089 The term is applied to the union of the namespaces selected by this field
7090 and the ones listed in the namespaces field.
7091 null selector and null or empty namespaces list means "this pod's namespace".
7092 An empty selector ({}) matches all namespaces.
7093 type: object
7094 properties:
7095 matchExpressions:
7096 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7097 type: array
7098 items:
7099 description: |-
7100 A label selector requirement is a selector that contains values, a key, and an operator that
7101 relates the key and values.
7102 type: object
7103 required:
7104 - key
7105 - operator
7106 properties:
7107 key:
7108 description: key is the label key that the selector applies to.
7109 type: string
7110 operator:
7111 description: |-
7112 operator represents a key's relationship to a set of values.
7113 Valid operators are In, NotIn, Exists and DoesNotExist.
7114 type: string
7115 values:
7116 description: |-
7117 values is an array of string values. If the operator is In or NotIn,
7118 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7119 the values array must be empty. This array is replaced during a strategic
7120 merge patch.
7121 type: array
7122 items:
7123 type: string
7124 x-kubernetes-list-type: atomic
7125 x-kubernetes-list-type: atomic
7126 matchLabels:
7127 description: |-
7128 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7129 map is equivalent to an element of matchExpressions, whose key field is "key", the
7130 operator is "In", and the values array contains only "value". The requirements are ANDed.
7131 type: object
7132 additionalProperties:
7133 type: string
7134 x-kubernetes-map-type: atomic
7135 namespaces:
7136 description: |-
7137 namespaces specifies a static list of namespace names that the term applies to.
7138 The term is applied to the union of the namespaces listed in this field
7139 and the ones selected by namespaceSelector.
7140 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
7141 type: array
7142 items:
7143 type: string
7144 x-kubernetes-list-type: atomic
7145 topologyKey:
7146 description: |-
7147 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
7148 the labelSelector in the specified namespaces, where co-located is defined as running on a node
7149 whose value of the label with key topologyKey matches that of any node on which any of the
7150 selected pods is running.
7151 Empty topologyKey is not allowed.
7152 type: string
7153 weight:
7154 description: |-
7155 weight associated with matching the corresponding podAffinityTerm,
7156 in the range 1-100.
7157 type: integer
7158 format: int32
7159 x-kubernetes-list-type: atomic
7160 requiredDuringSchedulingIgnoredDuringExecution:
7161 description: |-
7162 If the anti-affinity requirements specified by this field are not met at
7163 scheduling time, the pod will not be scheduled onto the node.
7164 If the anti-affinity requirements specified by this field cease to be met
7165 at some point during pod execution (e.g. due to a pod label update), the
7166 system may or may not try to eventually evict the pod from its node.
7167 When there are multiple elements, the lists of nodes corresponding to each
7168 podAffinityTerm are intersected, i.e. all terms must be satisfied.
7169 type: array
7170 items:
7171 description: |-
7172 Defines a set of pods (namely those matching the labelSelector
7173 relative to the given namespace(s)) that this pod should be
7174 co-located (affinity) or not co-located (anti-affinity) with,
7175 where co-located is defined as running on a node whose value of
7176 the label with key <topologyKey> matches that of any node on which
7177 a pod of the set of pods is running
7178 type: object
7179 required:
7180 - topologyKey
7181 properties:
7182 labelSelector:
7183 description: |-
7184 A label query over a set of resources, in this case pods.
7185 If it's null, this PodAffinityTerm matches with no Pods.
7186 type: object
7187 properties:
7188 matchExpressions:
7189 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7190 type: array
7191 items:
7192 description: |-
7193 A label selector requirement is a selector that contains values, a key, and an operator that
7194 relates the key and values.
7195 type: object
7196 required:
7197 - key
7198 - operator
7199 properties:
7200 key:
7201 description: key is the label key that the selector applies to.
7202 type: string
7203 operator:
7204 description: |-
7205 operator represents a key's relationship to a set of values.
7206 Valid operators are In, NotIn, Exists and DoesNotExist.
7207 type: string
7208 values:
7209 description: |-
7210 values is an array of string values. If the operator is In or NotIn,
7211 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7212 the values array must be empty. This array is replaced during a strategic
7213 merge patch.
7214 type: array
7215 items:
7216 type: string
7217 x-kubernetes-list-type: atomic
7218 x-kubernetes-list-type: atomic
7219 matchLabels:
7220 description: |-
7221 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7222 map is equivalent to an element of matchExpressions, whose key field is "key", the
7223 operator is "In", and the values array contains only "value". The requirements are ANDed.
7224 type: object
7225 additionalProperties:
7226 type: string
7227 x-kubernetes-map-type: atomic
7228 matchLabelKeys:
7229 description: |-
7230 MatchLabelKeys is a set of pod label keys to select which pods will
7231 be taken into consideration. The keys are used to lookup values from the
7232 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
7233 to select the group of existing pods which pods will be taken into consideration
7234 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7235 pod labels will be ignored. The default value is empty.
7236 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
7237 Also, matchLabelKeys cannot be set when labelSelector isn't set.
7238 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7239 type: array
7240 items:
7241 type: string
7242 x-kubernetes-list-type: atomic
7243 mismatchLabelKeys:
7244 description: |-
7245 MismatchLabelKeys is a set of pod label keys to select which pods will
7246 be taken into consideration. The keys are used to lookup values from the
7247 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
7248 to select the group of existing pods which pods will be taken into consideration
7249 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7250 pod labels will be ignored. The default value is empty.
7251 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
7252 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
7253 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7254 type: array
7255 items:
7256 type: string
7257 x-kubernetes-list-type: atomic
7258 namespaceSelector:
7259 description: |-
7260 A label query over the set of namespaces that the term applies to.
7261 The term is applied to the union of the namespaces selected by this field
7262 and the ones listed in the namespaces field.
7263 null selector and null or empty namespaces list means "this pod's namespace".
7264 An empty selector ({}) matches all namespaces.
7265 type: object
7266 properties:
7267 matchExpressions:
7268 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7269 type: array
7270 items:
7271 description: |-
7272 A label selector requirement is a selector that contains values, a key, and an operator that
7273 relates the key and values.
7274 type: object
7275 required:
7276 - key
7277 - operator
7278 properties:
7279 key:
7280 description: key is the label key that the selector applies to.
7281 type: string
7282 operator:
7283 description: |-
7284 operator represents a key's relationship to a set of values.
7285 Valid operators are In, NotIn, Exists and DoesNotExist.
7286 type: string
7287 values:
7288 description: |-
7289 values is an array of string values. If the operator is In or NotIn,
7290 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7291 the values array must be empty. This array is replaced during a strategic
7292 merge patch.
7293 type: array
7294 items:
7295 type: string
7296 x-kubernetes-list-type: atomic
7297 x-kubernetes-list-type: atomic
7298 matchLabels:
7299 description: |-
7300 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7301 map is equivalent to an element of matchExpressions, whose key field is "key", the
7302 operator is "In", and the values array contains only "value". The requirements are ANDed.
7303 type: object
7304 additionalProperties:
7305 type: string
7306 x-kubernetes-map-type: atomic
7307 namespaces:
7308 description: |-
7309 namespaces specifies a static list of namespace names that the term applies to.
7310 The term is applied to the union of the namespaces listed in this field
7311 and the ones selected by namespaceSelector.
7312 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
7313 type: array
7314 items:
7315 type: string
7316 x-kubernetes-list-type: atomic
7317 topologyKey:
7318 description: |-
7319 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
7320 the labelSelector in the specified namespaces, where co-located is defined as running on a node
7321 whose value of the label with key topologyKey matches that of any node on which any of the
7322 selected pods is running.
7323 Empty topologyKey is not allowed.
7324 type: string
7325 x-kubernetes-list-type: atomic
7326 imagePullSecrets:
7327 description: If specified, the pod's imagePullSecrets
7328 type: array
7329 items:
7330 description: |-
7331 LocalObjectReference contains enough information to let you locate the
7332 referenced object inside the same namespace.
7333 type: object
7334 properties:
7335 name:
7336 description: |-
7337 Name of the referent.
7338 This field is effectively required, but due to backwards compatibility is
7339 allowed to be empty. Instances of this type with an empty value here are
7340 almost certainly wrong.
7341 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7342 type: string
7343 default: ""
7344 x-kubernetes-map-type: atomic
7345 nodeSelector:
7346 description: |-
7347 NodeSelector is a selector which must be true for the pod to fit on a node.
7348 Selector which must match a node's labels for the pod to be scheduled on that node.
7349 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
7350 type: object
7351 additionalProperties:
7352 type: string
7353 priorityClassName:
7354 description: If specified, the pod's priorityClassName.
7355 type: string
7356 securityContext:
7357 description: If specified, the pod's security context
7358 type: object
7359 properties:
7360 fsGroup:
7361 description: |-
7362 A special supplemental group that applies to all containers in a pod.
7363 Some volume types allow the Kubelet to change the ownership of that volume
7364 to be owned by the pod:
7365
7366 1. The owning GID will be the FSGroup
7367 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
7368 3. The permission bits are OR'd with rw-rw----
7369
7370 If unset, the Kubelet will not modify the ownership and permissions of any volume.
7371 Note that this field cannot be set when spec.os.name is windows.
7372 type: integer
7373 format: int64
7374 fsGroupChangePolicy:
7375 description: |-
7376 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
7377 before being exposed inside Pod. This field will only apply to
7378 volume types which support fsGroup based ownership(and permissions).
7379 It will have no effect on ephemeral volume types such as: secret, configmaps
7380 and emptydir.
7381 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
7382 Note that this field cannot be set when spec.os.name is windows.
7383 type: string
7384 runAsGroup:
7385 description: |-
7386 The GID to run the entrypoint of the container process.
7387 Uses runtime default if unset.
7388 May also be set in SecurityContext. If set in both SecurityContext and
7389 PodSecurityContext, the value specified in SecurityContext takes precedence
7390 for that container.
7391 Note that this field cannot be set when spec.os.name is windows.
7392 type: integer
7393 format: int64
7394 runAsNonRoot:
7395 description: |-
7396 Indicates that the container must run as a non-root user.
7397 If true, the Kubelet will validate the image at runtime to ensure that it
7398 does not run as UID 0 (root) and fail to start the container if it does.
7399 If unset or false, no such validation will be performed.
7400 May also be set in SecurityContext. If set in both SecurityContext and
7401 PodSecurityContext, the value specified in SecurityContext takes precedence.
7402 type: boolean
7403 runAsUser:
7404 description: |-
7405 The UID to run the entrypoint of the container process.
7406 Defaults to user specified in image metadata if unspecified.
7407 May also be set in SecurityContext. If set in both SecurityContext and
7408 PodSecurityContext, the value specified in SecurityContext takes precedence
7409 for that container.
7410 Note that this field cannot be set when spec.os.name is windows.
7411 type: integer
7412 format: int64
7413 seLinuxOptions:
7414 description: |-
7415 The SELinux context to be applied to all containers.
7416 If unspecified, the container runtime will allocate a random SELinux context for each
7417 container. May also be set in SecurityContext. If set in
7418 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
7419 takes precedence for that container.
7420 Note that this field cannot be set when spec.os.name is windows.
7421 type: object
7422 properties:
7423 level:
7424 description: Level is SELinux level label that applies to the container.
7425 type: string
7426 role:
7427 description: Role is a SELinux role label that applies to the container.
7428 type: string
7429 type:
7430 description: Type is a SELinux type label that applies to the container.
7431 type: string
7432 user:
7433 description: User is a SELinux user label that applies to the container.
7434 type: string
7435 seccompProfile:
7436 description: |-
7437 The seccomp options to use by the containers in this pod.
7438 Note that this field cannot be set when spec.os.name is windows.
7439 type: object
7440 required:
7441 - type
7442 properties:
7443 localhostProfile:
7444 description: |-
7445 localhostProfile indicates a profile defined in a file on the node should be used.
7446 The profile must be preconfigured on the node to work.
7447 Must be a descending path, relative to the kubelet's configured seccomp profile location.
7448 Must be set if type is "Localhost". Must NOT be set for any other type.
7449 type: string
7450 type:
7451 description: |-
7452 type indicates which kind of seccomp profile will be applied.
7453 Valid options are:
7454
7455 Localhost - a profile defined in a file on the node should be used.
7456 RuntimeDefault - the container runtime default profile should be used.
7457 Unconfined - no profile should be applied.
7458 type: string
7459 supplementalGroups:
7460 description: |-
7461 A list of groups applied to the first process run in each container, in addition
7462 to the container's primary GID, the fsGroup (if specified), and group memberships
7463 defined in the container image for the uid of the container process. If unspecified,
7464 no additional groups are added to any container. Note that group memberships
7465 defined in the container image for the uid of the container process are still effective,
7466 even if they are not included in this list.
7467 Note that this field cannot be set when spec.os.name is windows.
7468 type: array
7469 items:
7470 type: integer
7471 format: int64
7472 sysctls:
7473 description: |-
7474 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
7475 sysctls (by the container runtime) might fail to launch.
7476 Note that this field cannot be set when spec.os.name is windows.
7477 type: array
7478 items:
7479 description: Sysctl defines a kernel parameter to be set
7480 type: object
7481 required:
7482 - name
7483 - value
7484 properties:
7485 name:
7486 description: Name of a property to set
7487 type: string
7488 value:
7489 description: Value of a property to set
7490 type: string
7491 serviceAccountName:
7492 description: If specified, the pod's service account
7493 type: string
7494 tolerations:
7495 description: If specified, the pod's tolerations.
7496 type: array
7497 items:
7498 description: |-
7499 The pod this Toleration is attached to tolerates any taint that matches
7500 the triple <key,value,effect> using the matching operator <operator>.
7501 type: object
7502 properties:
7503 effect:
7504 description: |-
7505 Effect indicates the taint effect to match. Empty means match all taint effects.
7506 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
7507 type: string
7508 key:
7509 description: |-
7510 Key is the taint key that the toleration applies to. Empty means match all taint keys.
7511 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
7512 type: string
7513 operator:
7514 description: |-
7515 Operator represents a key's relationship to the value.
7516 Valid operators are Exists and Equal. Defaults to Equal.
7517 Exists is equivalent to wildcard for value, so that a pod can
7518 tolerate all taints of a particular category.
7519 type: string
7520 tolerationSeconds:
7521 description: |-
7522 TolerationSeconds represents the period of time the toleration (which must be
7523 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
7524 it is not set, which means tolerate the taint forever (do not evict). Zero and
7525 negative values will be treated as 0 (evict immediately) by the system.
7526 type: integer
7527 format: int64
7528 value:
7529 description: |-
7530 Value is the taint value the toleration matches to.
7531 If the operator is Exists, the value should be empty, otherwise just a regular string.
7532 type: string
7533 serviceType:
7534 description: |-
7535 Optional service type for Kubernetes solver service. Supported values
7536 are NodePort or ClusterIP. If unset, defaults to NodePort.
7537 type: string
7538 selector:
7539 description: |-
7540 Selector selects a set of DNSNames on the Certificate resource that
7541 should be solved using this challenge solver.
7542 If not specified, the solver will be treated as the 'default' solver
7543 with the lowest priority, i.e. if any other solver has a more specific
7544 match, it will be used instead.
7545 type: object
7546 properties:
7547 dnsNames:
7548 description: |-
7549 List of DNSNames that this solver will be used to solve.
7550 If specified and a match is found, a dnsNames selector will take
7551 precedence over a dnsZones selector.
7552 If multiple solvers match with the same dnsNames value, the solver
7553 with the most matching labels in matchLabels will be selected.
7554 If neither has more matches, the solver defined earlier in the list
7555 will be selected.
7556 type: array
7557 items:
7558 type: string
7559 dnsZones:
7560 description: |-
7561 List of DNSZones that this solver will be used to solve.
7562 The most specific DNS zone match specified here will take precedence
7563 over other DNS zone matches, so a solver specifying sys.example.com
7564 will be selected over one specifying example.com for the domain
7565 www.sys.example.com.
7566 If multiple solvers match with the same dnsZones value, the solver
7567 with the most matching labels in matchLabels will be selected.
7568 If neither has more matches, the solver defined earlier in the list
7569 will be selected.
7570 type: array
7571 items:
7572 type: string
7573 matchLabels:
7574 description: |-
7575 A label selector that is used to refine the set of certificate's that
7576 this challenge solver will apply to.
7577 type: object
7578 additionalProperties:
7579 type: string
7580 ca:
7581 description: |-
7582 CA configures this issuer to sign certificates using a signing CA keypair
7583 stored in a Secret resource.
7584 This is used to build internal PKIs that are managed by cert-manager.
7585 type: object
7586 required:
7587 - secretName
7588 properties:
7589 crlDistributionPoints:
7590 description: |-
7591 The CRL distribution points is an X.509 v3 certificate extension which identifies
7592 the location of the CRL from which the revocation of this certificate can be checked.
7593 If not set, certificates will be issued without distribution points set.
7594 type: array
7595 items:
7596 type: string
7597 issuingCertificateURLs:
7598 description: |-
7599 IssuingCertificateURLs is a list of URLs which this issuer should embed into certificates
7600 it creates. See https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1 for more details.
7601 As an example, such a URL might be "http://ca.domain.com/ca.crt".
7602 type: array
7603 items:
7604 type: string
7605 ocspServers:
7606 description: |-
7607 The OCSP server list is an X.509 v3 extension that defines a list of
7608 URLs of OCSP responders. The OCSP responders can be queried for the
7609 revocation status of an issued certificate. If not set, the
7610 certificate will be issued with no OCSP servers set. For example, an
7611 OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
7612 type: array
7613 items:
7614 type: string
7615 secretName:
7616 description: |-
7617 SecretName is the name of the secret used to sign Certificates issued
7618 by this Issuer.
7619 type: string
7620 selfSigned:
7621 description: |-
7622 SelfSigned configures this issuer to 'self sign' certificates using the
7623 private key used to create the CertificateRequest object.
7624 type: object
7625 properties:
7626 crlDistributionPoints:
7627 description: |-
7628 The CRL distribution points is an X.509 v3 certificate extension which identifies
7629 the location of the CRL from which the revocation of this certificate can be checked.
7630 If not set certificate will be issued without CDP. Values are strings.
7631 type: array
7632 items:
7633 type: string
7634 vault:
7635 description: |-
7636 Vault configures this issuer to sign certificates using a HashiCorp Vault
7637 PKI backend.
7638 type: object
7639 required:
7640 - auth
7641 - path
7642 - server
7643 properties:
7644 auth:
7645 description: Auth configures how cert-manager authenticates with the Vault server.
7646 type: object
7647 properties:
7648 appRole:
7649 description: |-
7650 AppRole authenticates with Vault using the App Role auth mechanism,
7651 with the role and secret stored in a Kubernetes Secret resource.
7652 type: object
7653 required:
7654 - path
7655 - roleId
7656 - secretRef
7657 properties:
7658 path:
7659 description: |-
7660 Path where the App Role authentication backend is mounted in Vault, e.g:
7661 "approle"
7662 type: string
7663 roleId:
7664 description: |-
7665 RoleID configured in the App Role authentication backend when setting
7666 up the authentication backend in Vault.
7667 type: string
7668 secretRef:
7669 description: |-
7670 Reference to a key in a Secret that contains the App Role secret used
7671 to authenticate with Vault.
7672 The `key` field must be specified and denotes which entry within the Secret
7673 resource is used as the app role secret.
7674 type: object
7675 required:
7676 - name
7677 properties:
7678 key:
7679 description: |-
7680 The key of the entry in the Secret resource's `data` field to be used.
7681 Some instances of this field may be defaulted, in others it may be
7682 required.
7683 type: string
7684 name:
7685 description: |-
7686 Name of the resource being referred to.
7687 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7688 type: string
7689 clientCertificate:
7690 description: |-
7691 ClientCertificate authenticates with Vault by presenting a client
7692 certificate during the request's TLS handshake.
7693 Works only when using HTTPS protocol.
7694 type: object
7695 properties:
7696 mountPath:
7697 description: |-
7698 The Vault mountPath here is the mount path to use when authenticating with
7699 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
7700 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
7701 default value "/v1/auth/cert" will be used.
7702 type: string
7703 name:
7704 description: |-
7705 Name of the certificate role to authenticate against.
7706 If not set, matching any certificate role, if available.
7707 type: string
7708 secretName:
7709 description: |-
7710 Reference to Kubernetes Secret of type "kubernetes.io/tls" (hence containing
7711 tls.crt and tls.key) used to authenticate to Vault using TLS client
7712 authentication.
7713 type: string
7714 kubernetes:
7715 description: |-
7716 Kubernetes authenticates with Vault by passing the ServiceAccount
7717 token stored in the named Secret resource to the Vault server.
7718 type: object
7719 required:
7720 - role
7721 properties:
7722 mountPath:
7723 description: |-
7724 The Vault mountPath here is the mount path to use when authenticating with
7725 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
7726 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
7727 default value "/v1/auth/kubernetes" will be used.
7728 type: string
7729 role:
7730 description: |-
7731 A required field containing the Vault Role to assume. A Role binds a
7732 Kubernetes ServiceAccount with a set of Vault policies.
7733 type: string
7734 secretRef:
7735 description: |-
7736 The required Secret field containing a Kubernetes ServiceAccount JWT used
7737 for authenticating with Vault. Use of 'ambient credentials' is not
7738 supported.
7739 type: object
7740 required:
7741 - name
7742 properties:
7743 key:
7744 description: |-
7745 The key of the entry in the Secret resource's `data` field to be used.
7746 Some instances of this field may be defaulted, in others it may be
7747 required.
7748 type: string
7749 name:
7750 description: |-
7751 Name of the resource being referred to.
7752 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7753 type: string
7754 serviceAccountRef:
7755 description: |-
7756 A reference to a service account that will be used to request a bound
7757 token (also known as "projected token"). Compared to using "secretRef",
7758 using this field means that you don't rely on statically bound tokens. To
7759 use this field, you must configure an RBAC rule to let cert-manager
7760 request a token.
7761 type: object
7762 required:
7763 - name
7764 properties:
7765 audiences:
7766 description: |-
7767 TokenAudiences is an optional list of extra audiences to include in the token passed to Vault. The default token
7768 consisting of the issuer's namespace and name is always included.
7769 type: array
7770 items:
7771 type: string
7772 name:
7773 description: Name of the ServiceAccount used to request a token.
7774 type: string
7775 tokenSecretRef:
7776 description: TokenSecretRef authenticates with Vault by presenting a token.
7777 type: object
7778 required:
7779 - name
7780 properties:
7781 key:
7782 description: |-
7783 The key of the entry in the Secret resource's `data` field to be used.
7784 Some instances of this field may be defaulted, in others it may be
7785 required.
7786 type: string
7787 name:
7788 description: |-
7789 Name of the resource being referred to.
7790 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7791 type: string
7792 caBundle:
7793 description: |-
7794 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
7795 chain presented by Vault. Only used if using HTTPS to connect to Vault and
7796 ignored for HTTP connections.
7797 Mutually exclusive with CABundleSecretRef.
7798 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
7799 the cert-manager controller container is used to validate the TLS connection.
7800 type: string
7801 format: byte
7802 caBundleSecretRef:
7803 description: |-
7804 Reference to a Secret containing a bundle of PEM-encoded CAs to use when
7805 verifying the certificate chain presented by Vault when using HTTPS.
7806 Mutually exclusive with CABundle.
7807 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
7808 the cert-manager controller container is used to validate the TLS connection.
7809 If no key for the Secret is specified, cert-manager will default to 'ca.crt'.
7810 type: object
7811 required:
7812 - name
7813 properties:
7814 key:
7815 description: |-
7816 The key of the entry in the Secret resource's `data` field to be used.
7817 Some instances of this field may be defaulted, in others it may be
7818 required.
7819 type: string
7820 name:
7821 description: |-
7822 Name of the resource being referred to.
7823 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7824 type: string
7825 clientCertSecretRef:
7826 description: |-
7827 Reference to a Secret containing a PEM-encoded Client Certificate to use when the
7828 Vault server requires mTLS.
7829 type: object
7830 required:
7831 - name
7832 properties:
7833 key:
7834 description: |-
7835 The key of the entry in the Secret resource's `data` field to be used.
7836 Some instances of this field may be defaulted, in others it may be
7837 required.
7838 type: string
7839 name:
7840 description: |-
7841 Name of the resource being referred to.
7842 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7843 type: string
7844 clientKeySecretRef:
7845 description: |-
7846 Reference to a Secret containing a PEM-encoded Client Private Key to use when the
7847 Vault server requires mTLS.
7848 type: object
7849 required:
7850 - name
7851 properties:
7852 key:
7853 description: |-
7854 The key of the entry in the Secret resource's `data` field to be used.
7855 Some instances of this field may be defaulted, in others it may be
7856 required.
7857 type: string
7858 name:
7859 description: |-
7860 Name of the resource being referred to.
7861 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7862 type: string
7863 namespace:
7864 description: |-
7865 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"
7866 More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
7867 type: string
7868 path:
7869 description: |-
7870 Path is the mount path of the Vault PKI backend's `sign` endpoint, e.g:
7871 "my_pki_mount/sign/my-role-name".
7872 type: string
7873 server:
7874 description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
7875 type: string
7876 serverName:
7877 description: |-
7878 ServerName is used to verify the hostname on the returned certificates
7879 by the Vault server.
7880 type: string
7881 venafi:
7882 description: |-
7883 Venafi configures this issuer to sign certificates using a Venafi TPP
7884 or Venafi Cloud policy zone.
7885 type: object
7886 required:
7887 - zone
7888 properties:
7889 cloud:
7890 description: |-
7891 Cloud specifies the Venafi cloud configuration settings.
7892 Only one of TPP or Cloud may be specified.
7893 type: object
7894 required:
7895 - apiTokenSecretRef
7896 properties:
7897 apiTokenSecretRef:
7898 description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
7899 type: object
7900 required:
7901 - name
7902 properties:
7903 key:
7904 description: |-
7905 The key of the entry in the Secret resource's `data` field to be used.
7906 Some instances of this field may be defaulted, in others it may be
7907 required.
7908 type: string
7909 name:
7910 description: |-
7911 Name of the resource being referred to.
7912 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7913 type: string
7914 url:
7915 description: |-
7916 URL is the base URL for Venafi Cloud.
7917 Defaults to "https://api.venafi.cloud/".
7918 type: string
7919 tpp:
7920 description: |-
7921 TPP specifies Trust Protection Platform configuration settings.
7922 Only one of TPP or Cloud may be specified.
7923 type: object
7924 required:
7925 - credentialsRef
7926 - url
7927 properties:
7928 caBundle:
7929 description: |-
7930 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
7931 chain presented by the TPP server. Only used if using HTTPS; ignored for HTTP.
7932 If undefined, the certificate bundle in the cert-manager controller container
7933 is used to validate the chain.
7934 type: string
7935 format: byte
7936 caBundleSecretRef:
7937 description: |-
7938 Reference to a Secret containing a base64-encoded bundle of PEM CAs
7939 which will be used to validate the certificate chain presented by the TPP server.
7940 Only used if using HTTPS; ignored for HTTP. Mutually exclusive with CABundle.
7941 If neither CABundle nor CABundleSecretRef is defined, the certificate bundle in
7942 the cert-manager controller container is used to validate the TLS connection.
7943 type: object
7944 required:
7945 - name
7946 properties:
7947 key:
7948 description: |-
7949 The key of the entry in the Secret resource's `data` field to be used.
7950 Some instances of this field may be defaulted, in others it may be
7951 required.
7952 type: string
7953 name:
7954 description: |-
7955 Name of the resource being referred to.
7956 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7957 type: string
7958 credentialsRef:
7959 description: |-
7960 CredentialsRef is a reference to a Secret containing the Venafi TPP API credentials.
7961 The secret must contain the key 'access-token' for the Access Token Authentication,
7962 or two keys, 'username' and 'password' for the API Keys Authentication.
7963 type: object
7964 required:
7965 - name
7966 properties:
7967 name:
7968 description: |-
7969 Name of the resource being referred to.
7970 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7971 type: string
7972 url:
7973 description: |-
7974 URL is the base URL for the vedsdk endpoint of the Venafi TPP instance,
7975 for example: "https://tpp.example.com/vedsdk".
7976 type: string
7977 zone:
7978 description: |-
7979 Zone is the Venafi Policy Zone to use for this issuer.
7980 All requests made to the Venafi platform will be restricted by the named
7981 zone policy.
7982 This field is required.
7983 type: string
7984 status:
7985 description: Status of the ClusterIssuer. This is set and managed automatically.
7986 type: object
7987 properties:
7988 acme:
7989 description: |-
7990 ACME specific status options.
7991 This field should only be set if the Issuer is configured to use an ACME
7992 server to issue certificates.
7993 type: object
7994 properties:
7995 lastPrivateKeyHash:
7996 description: |-
7997 LastPrivateKeyHash is a hash of the private key associated with the latest
7998 registered ACME account, in order to track changes made to registered account
7999 associated with the Issuer
8000 type: string
8001 lastRegisteredEmail:
8002 description: |-
8003 LastRegisteredEmail is the email associated with the latest registered
8004 ACME account, in order to track changes made to registered account
8005 associated with the Issuer
8006 type: string
8007 uri:
8008 description: |-
8009 URI is the unique account identifier, which can also be used to retrieve
8010 account details from the CA
8011 type: string
8012 conditions:
8013 description: |-
8014 List of status conditions to indicate the status of a CertificateRequest.
8015 Known condition types are `Ready`.
8016 type: array
8017 items:
8018 description: IssuerCondition contains condition information for an Issuer.
8019 type: object
8020 required:
8021 - status
8022 - type
8023 properties:
8024 lastTransitionTime:
8025 description: |-
8026 LastTransitionTime is the timestamp corresponding to the last status
8027 change of this condition.
8028 type: string
8029 format: date-time
8030 message:
8031 description: |-
8032 Message is a human readable description of the details of the last
8033 transition, complementing reason.
8034 type: string
8035 observedGeneration:
8036 description: |-
8037 If set, this represents the .metadata.generation that the condition was
8038 set based upon.
8039 For instance, if .metadata.generation is currently 12, but the
8040 .status.condition[x].observedGeneration is 9, the condition is out of date
8041 with respect to the current state of the Issuer.
8042 type: integer
8043 format: int64
8044 reason:
8045 description: |-
8046 Reason is a brief machine readable explanation for the condition's last
8047 transition.
8048 type: string
8049 status:
8050 description: Status of the condition, one of (`True`, `False`, `Unknown`).
8051 type: string
8052 enum:
8053 - "True"
8054 - "False"
8055 - Unknown
8056 type:
8057 description: Type of the condition, known values are (`Ready`).
8058 type: string
8059 x-kubernetes-list-map-keys:
8060 - type
8061 x-kubernetes-list-type: map
8062 served: true
8063 storage: true
8064
8065# END crd {{- end }}
8066
8067---
8068# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
8069apiVersion: apiextensions.k8s.io/v1
8070kind: CustomResourceDefinition
8071metadata:
8072 name: issuers.cert-manager.io
8073 # START annotations {{- if .Values.crds.keep }}
8074 annotations:
8075 helm.sh/resource-policy: keep
8076 # END annotations {{- end }}
8077 labels:
8078 app: '{{ template "cert-manager.name" . }}'
8079 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
8080 app.kubernetes.io/instance: '{{ .Release.Name }}'
8081 app.kubernetes.io/component: "crds"
8082 # Generated labels {{- include "labels" . | nindent 4 }}
8083spec:
8084 group: cert-manager.io
8085 names:
8086 kind: Issuer
8087 listKind: IssuerList
8088 plural: issuers
8089 shortNames:
8090 - iss
8091 singular: issuer
8092 categories:
8093 - cert-manager
8094 scope: Namespaced
8095 versions:
8096 - name: v1
8097 subresources:
8098 status: {}
8099 additionalPrinterColumns:
8100 - jsonPath: .status.conditions[?(@.type=="Ready")].status
8101 name: Ready
8102 type: string
8103 - jsonPath: .status.conditions[?(@.type=="Ready")].message
8104 name: Status
8105 priority: 1
8106 type: string
8107 - jsonPath: .metadata.creationTimestamp
8108 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.
8109 name: Age
8110 type: date
8111 schema:
8112 openAPIV3Schema:
8113 description: |-
8114 An Issuer represents a certificate issuing authority which can be
8115 referenced as part of `issuerRef` fields.
8116 It is scoped to a single namespace and can therefore only be referenced by
8117 resources within the same namespace.
8118 type: object
8119 required:
8120 - spec
8121 properties:
8122 apiVersion:
8123 description: |-
8124 APIVersion defines the versioned schema of this representation of an object.
8125 Servers should convert recognized schemas to the latest internal value, and
8126 may reject unrecognized values.
8127 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
8128 type: string
8129 kind:
8130 description: |-
8131 Kind is a string value representing the REST resource this object represents.
8132 Servers may infer this from the endpoint the client submits requests to.
8133 Cannot be updated.
8134 In CamelCase.
8135 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
8136 type: string
8137 metadata:
8138 type: object
8139 spec:
8140 description: Desired state of the Issuer resource.
8141 type: object
8142 properties:
8143 acme:
8144 description: |-
8145 ACME configures this issuer to communicate with a RFC8555 (ACME) server
8146 to obtain signed x509 certificates.
8147 type: object
8148 required:
8149 - privateKeySecretRef
8150 - server
8151 properties:
8152 caBundle:
8153 description: |-
8154 Base64-encoded bundle of PEM CAs which can be used to validate the certificate
8155 chain presented by the ACME server.
8156 Mutually exclusive with SkipTLSVerify; prefer using CABundle to prevent various
8157 kinds of security vulnerabilities.
8158 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
8159 the container is used to validate the TLS connection.
8160 type: string
8161 format: byte
8162 disableAccountKeyGeneration:
8163 description: |-
8164 Enables or disables generating a new ACME account key.
8165 If true, the Issuer resource will *not* request a new account but will expect
8166 the account key to be supplied via an existing secret.
8167 If false, the cert-manager system will generate a new ACME account key
8168 for the Issuer.
8169 Defaults to false.
8170 type: boolean
8171 email:
8172 description: |-
8173 Email is the email address to be associated with the ACME account.
8174 This field is optional, but it is strongly recommended to be set.
8175 It will be used to contact you in case of issues with your account or
8176 certificates, including expiry notification emails.
8177 This field may be updated after the account is initially registered.
8178 type: string
8179 enableDurationFeature:
8180 description: |-
8181 Enables requesting a Not After date on certificates that matches the
8182 duration of the certificate. This is not supported by all ACME servers
8183 like Let's Encrypt. If set to true when the ACME server does not support
8184 it, it will create an error on the Order.
8185 Defaults to false.
8186 type: boolean
8187 externalAccountBinding:
8188 description: |-
8189 ExternalAccountBinding is a reference to a CA external account of the ACME
8190 server.
8191 If set, upon registration cert-manager will attempt to associate the given
8192 external account credentials with the registered ACME account.
8193 type: object
8194 required:
8195 - keyID
8196 - keySecretRef
8197 properties:
8198 keyAlgorithm:
8199 description: |-
8200 Deprecated: keyAlgorithm field exists for historical compatibility
8201 reasons and should not be used. The algorithm is now hardcoded to HS256
8202 in golang/x/crypto/acme.
8203 type: string
8204 enum:
8205 - HS256
8206 - HS384
8207 - HS512
8208 keyID:
8209 description: keyID is the ID of the CA key that the External Account is bound to.
8210 type: string
8211 keySecretRef:
8212 description: |-
8213 keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes
8214 Secret which holds the symmetric MAC key of the External Account Binding.
8215 The `key` is the index string that is paired with the key data in the
8216 Secret and should not be confused with the key data itself, or indeed with
8217 the External Account Binding keyID above.
8218 The secret key stored in the Secret **must** be un-padded, base64 URL
8219 encoded data.
8220 type: object
8221 required:
8222 - name
8223 properties:
8224 key:
8225 description: |-
8226 The key of the entry in the Secret resource's `data` field to be used.
8227 Some instances of this field may be defaulted, in others it may be
8228 required.
8229 type: string
8230 name:
8231 description: |-
8232 Name of the resource being referred to.
8233 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8234 type: string
8235 preferredChain:
8236 description: |-
8237 PreferredChain is the chain to use if the ACME server outputs multiple.
8238 PreferredChain is no guarantee that this one gets delivered by the ACME
8239 endpoint.
8240 For example, for Let's Encrypt's DST cross-sign you would use:
8241 "DST Root CA X3" or "ISRG Root X1" for the newer Let's Encrypt root CA.
8242 This value picks the first certificate bundle in the combined set of
8243 ACME default and alternative chains that has a root-most certificate with
8244 this value as its issuer's commonname.
8245 type: string
8246 maxLength: 64
8247 privateKeySecretRef:
8248 description: |-
8249 PrivateKey is the name of a Kubernetes Secret resource that will be used to
8250 store the automatically generated ACME account private key.
8251 Optionally, a `key` may be specified to select a specific entry within
8252 the named Secret resource.
8253 If `key` is not specified, a default of `tls.key` will be used.
8254 type: object
8255 required:
8256 - name
8257 properties:
8258 key:
8259 description: |-
8260 The key of the entry in the Secret resource's `data` field to be used.
8261 Some instances of this field may be defaulted, in others it may be
8262 required.
8263 type: string
8264 name:
8265 description: |-
8266 Name of the resource being referred to.
8267 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8268 type: string
8269 profile:
8270 description: |-
8271 Profile allows requesting a certificate profile from the ACME server.
8272 Supported profiles are listed by the server's ACME directory URL.
8273 type: string
8274 server:
8275 description: |-
8276 Server is the URL used to access the ACME server's 'directory' endpoint.
8277 For example, for Let's Encrypt's staging endpoint, you would use:
8278 "https://acme-staging-v02.api.letsencrypt.org/directory".
8279 Only ACME v2 endpoints (i.e. RFC 8555) are supported.
8280 type: string
8281 skipTLSVerify:
8282 description: |-
8283 INSECURE: Enables or disables validation of the ACME server TLS certificate.
8284 If true, requests to the ACME server will not have the TLS certificate chain
8285 validated.
8286 Mutually exclusive with CABundle; prefer using CABundle to prevent various
8287 kinds of security vulnerabilities.
8288 Only enable this option in development environments.
8289 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
8290 the container is used to validate the TLS connection.
8291 Defaults to false.
8292 type: boolean
8293 solvers:
8294 description: |-
8295 Solvers is a list of challenge solvers that will be used to solve
8296 ACME challenges for the matching domains.
8297 Solver configurations must be provided in order to obtain certificates
8298 from an ACME server.
8299 For more information, see: https://cert-manager.io/docs/configuration/acme/
8300 type: array
8301 items:
8302 description: |-
8303 An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of.
8304 A selector may be provided to use different solving strategies for different DNS names.
8305 Only one of HTTP01 or DNS01 must be provided.
8306 type: object
8307 properties:
8308 dns01:
8309 description: |-
8310 Configures cert-manager to attempt to complete authorizations by
8311 performing the DNS01 challenge flow.
8312 type: object
8313 properties:
8314 acmeDNS:
8315 description: |-
8316 Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage
8317 DNS01 challenge records.
8318 type: object
8319 required:
8320 - accountSecretRef
8321 - host
8322 properties:
8323 accountSecretRef:
8324 description: |-
8325 A reference to a specific 'key' within a Secret resource.
8326 In some instances, `key` is a required field.
8327 type: object
8328 required:
8329 - name
8330 properties:
8331 key:
8332 description: |-
8333 The key of the entry in the Secret resource's `data` field to be used.
8334 Some instances of this field may be defaulted, in others it may be
8335 required.
8336 type: string
8337 name:
8338 description: |-
8339 Name of the resource being referred to.
8340 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8341 type: string
8342 host:
8343 type: string
8344 akamai:
8345 description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
8346 type: object
8347 required:
8348 - accessTokenSecretRef
8349 - clientSecretSecretRef
8350 - clientTokenSecretRef
8351 - serviceConsumerDomain
8352 properties:
8353 accessTokenSecretRef:
8354 description: |-
8355 A reference to a specific 'key' within a Secret resource.
8356 In some instances, `key` is a required field.
8357 type: object
8358 required:
8359 - name
8360 properties:
8361 key:
8362 description: |-
8363 The key of the entry in the Secret resource's `data` field to be used.
8364 Some instances of this field may be defaulted, in others it may be
8365 required.
8366 type: string
8367 name:
8368 description: |-
8369 Name of the resource being referred to.
8370 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8371 type: string
8372 clientSecretSecretRef:
8373 description: |-
8374 A reference to a specific 'key' within a Secret resource.
8375 In some instances, `key` is a required field.
8376 type: object
8377 required:
8378 - name
8379 properties:
8380 key:
8381 description: |-
8382 The key of the entry in the Secret resource's `data` field to be used.
8383 Some instances of this field may be defaulted, in others it may be
8384 required.
8385 type: string
8386 name:
8387 description: |-
8388 Name of the resource being referred to.
8389 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8390 type: string
8391 clientTokenSecretRef:
8392 description: |-
8393 A reference to a specific 'key' within a Secret resource.
8394 In some instances, `key` is a required field.
8395 type: object
8396 required:
8397 - name
8398 properties:
8399 key:
8400 description: |-
8401 The key of the entry in the Secret resource's `data` field to be used.
8402 Some instances of this field may be defaulted, in others it may be
8403 required.
8404 type: string
8405 name:
8406 description: |-
8407 Name of the resource being referred to.
8408 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8409 type: string
8410 serviceConsumerDomain:
8411 type: string
8412 azureDNS:
8413 description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
8414 type: object
8415 required:
8416 - resourceGroupName
8417 - subscriptionID
8418 properties:
8419 clientID:
8420 description: |-
8421 Auth: Azure Service Principal:
8422 The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
8423 If set, ClientSecret and TenantID must also be set.
8424 type: string
8425 clientSecretSecretRef:
8426 description: |-
8427 Auth: Azure Service Principal:
8428 A reference to a Secret containing the password associated with the Service Principal.
8429 If set, ClientID and TenantID must also be set.
8430 type: object
8431 required:
8432 - name
8433 properties:
8434 key:
8435 description: |-
8436 The key of the entry in the Secret resource's `data` field to be used.
8437 Some instances of this field may be defaulted, in others it may be
8438 required.
8439 type: string
8440 name:
8441 description: |-
8442 Name of the resource being referred to.
8443 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8444 type: string
8445 environment:
8446 description: name of the Azure environment (default AzurePublicCloud)
8447 type: string
8448 enum:
8449 - AzurePublicCloud
8450 - AzureChinaCloud
8451 - AzureGermanCloud
8452 - AzureUSGovernmentCloud
8453 hostedZoneName:
8454 description: name of the DNS zone that should be used
8455 type: string
8456 managedIdentity:
8457 description: |-
8458 Auth: Azure Workload Identity or Azure Managed Service Identity:
8459 Settings to enable Azure Workload Identity or Azure Managed Service Identity
8460 If set, ClientID, ClientSecret and TenantID must not be set.
8461 type: object
8462 properties:
8463 clientID:
8464 description: client ID of the managed identity, cannot be used at the same time as resourceID
8465 type: string
8466 resourceID:
8467 description: |-
8468 resource ID of the managed identity, cannot be used at the same time as clientID
8469 Cannot be used for Azure Managed Service Identity
8470 type: string
8471 tenantID:
8472 description: tenant ID of the managed identity, cannot be used at the same time as resourceID
8473 type: string
8474 resourceGroupName:
8475 description: resource group the DNS zone is located in
8476 type: string
8477 subscriptionID:
8478 description: ID of the Azure subscription
8479 type: string
8480 tenantID:
8481 description: |-
8482 Auth: Azure Service Principal:
8483 The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
8484 If set, ClientID and ClientSecret must also be set.
8485 type: string
8486 cloudDNS:
8487 description: Use the Google Cloud DNS API to manage DNS01 challenge records.
8488 type: object
8489 required:
8490 - project
8491 properties:
8492 hostedZoneName:
8493 description: |-
8494 HostedZoneName is an optional field that tells cert-manager in which
8495 Cloud DNS zone the challenge record has to be created.
8496 If left empty cert-manager will automatically choose a zone.
8497 type: string
8498 project:
8499 type: string
8500 serviceAccountSecretRef:
8501 description: |-
8502 A reference to a specific 'key' within a Secret resource.
8503 In some instances, `key` is a required field.
8504 type: object
8505 required:
8506 - name
8507 properties:
8508 key:
8509 description: |-
8510 The key of the entry in the Secret resource's `data` field to be used.
8511 Some instances of this field may be defaulted, in others it may be
8512 required.
8513 type: string
8514 name:
8515 description: |-
8516 Name of the resource being referred to.
8517 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8518 type: string
8519 cloudflare:
8520 description: Use the Cloudflare API to manage DNS01 challenge records.
8521 type: object
8522 properties:
8523 apiKeySecretRef:
8524 description: |-
8525 API key to use to authenticate with Cloudflare.
8526 Note: using an API token to authenticate is now the recommended method
8527 as it allows greater control of permissions.
8528 type: object
8529 required:
8530 - name
8531 properties:
8532 key:
8533 description: |-
8534 The key of the entry in the Secret resource's `data` field to be used.
8535 Some instances of this field may be defaulted, in others it may be
8536 required.
8537 type: string
8538 name:
8539 description: |-
8540 Name of the resource being referred to.
8541 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8542 type: string
8543 apiTokenSecretRef:
8544 description: API token used to authenticate with Cloudflare.
8545 type: object
8546 required:
8547 - name
8548 properties:
8549 key:
8550 description: |-
8551 The key of the entry in the Secret resource's `data` field to be used.
8552 Some instances of this field may be defaulted, in others it may be
8553 required.
8554 type: string
8555 name:
8556 description: |-
8557 Name of the resource being referred to.
8558 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8559 type: string
8560 email:
8561 description: Email of the account, only required when using API key based authentication.
8562 type: string
8563 cnameStrategy:
8564 description: |-
8565 CNAMEStrategy configures how the DNS01 provider should handle CNAME
8566 records when found in DNS zones.
8567 type: string
8568 enum:
8569 - None
8570 - Follow
8571 digitalocean:
8572 description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
8573 type: object
8574 required:
8575 - tokenSecretRef
8576 properties:
8577 tokenSecretRef:
8578 description: |-
8579 A reference to a specific 'key' within a Secret resource.
8580 In some instances, `key` is a required field.
8581 type: object
8582 required:
8583 - name
8584 properties:
8585 key:
8586 description: |-
8587 The key of the entry in the Secret resource's `data` field to be used.
8588 Some instances of this field may be defaulted, in others it may be
8589 required.
8590 type: string
8591 name:
8592 description: |-
8593 Name of the resource being referred to.
8594 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8595 type: string
8596 rfc2136:
8597 description: |-
8598 Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/)
8599 to manage DNS01 challenge records.
8600 type: object
8601 required:
8602 - nameserver
8603 properties:
8604 nameserver:
8605 description: |-
8606 The IP address or hostname of an authoritative DNS server supporting
8607 RFC2136 in the form host:port. If the host is an IPv6 address it must be
8608 enclosed in square brackets (e.g [2001:db8::1]) ; port is optional.
8609 This field is required.
8610 type: string
8611 tsigAlgorithm:
8612 description: |-
8613 The TSIG Algorithm configured in the DNS supporting RFC2136. Used only
8614 when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined.
8615 Supported values are (case-insensitive): ``HMACMD5`` (default),
8616 ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.
8617 type: string
8618 tsigKeyName:
8619 description: |-
8620 The TSIG Key name configured in the DNS.
8621 If ``tsigSecretSecretRef`` is defined, this field is required.
8622 type: string
8623 tsigSecretSecretRef:
8624 description: |-
8625 The name of the secret containing the TSIG value.
8626 If ``tsigKeyName`` is defined, this field is required.
8627 type: object
8628 required:
8629 - name
8630 properties:
8631 key:
8632 description: |-
8633 The key of the entry in the Secret resource's `data` field to be used.
8634 Some instances of this field may be defaulted, in others it may be
8635 required.
8636 type: string
8637 name:
8638 description: |-
8639 Name of the resource being referred to.
8640 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8641 type: string
8642 route53:
8643 description: Use the AWS Route53 API to manage DNS01 challenge records.
8644 type: object
8645 properties:
8646 accessKeyID:
8647 description: |-
8648 The AccessKeyID is used for authentication.
8649 Cannot be set when SecretAccessKeyID is set.
8650 If neither the Access Key nor Key ID are set, we fall-back to using env
8651 vars, shared credentials file or AWS Instance metadata,
8652 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
8653 type: string
8654 accessKeyIDSecretRef:
8655 description: |-
8656 The SecretAccessKey is used for authentication. If set, pull the AWS
8657 access key ID from a key within a Kubernetes Secret.
8658 Cannot be set when AccessKeyID is set.
8659 If neither the Access Key nor Key ID are set, we fall-back to using env
8660 vars, shared credentials file or AWS Instance metadata,
8661 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
8662 type: object
8663 required:
8664 - name
8665 properties:
8666 key:
8667 description: |-
8668 The key of the entry in the Secret resource's `data` field to be used.
8669 Some instances of this field may be defaulted, in others it may be
8670 required.
8671 type: string
8672 name:
8673 description: |-
8674 Name of the resource being referred to.
8675 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8676 type: string
8677 auth:
8678 description: Auth configures how cert-manager authenticates.
8679 type: object
8680 required:
8681 - kubernetes
8682 properties:
8683 kubernetes:
8684 description: |-
8685 Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
8686 by passing a bound ServiceAccount token.
8687 type: object
8688 required:
8689 - serviceAccountRef
8690 properties:
8691 serviceAccountRef:
8692 description: |-
8693 A reference to a service account that will be used to request a bound
8694 token (also known as "projected token"). To use this field, you must
8695 configure an RBAC rule to let cert-manager request a token.
8696 type: object
8697 required:
8698 - name
8699 properties:
8700 audiences:
8701 description: |-
8702 TokenAudiences is an optional list of audiences to include in the
8703 token passed to AWS. The default token consisting of the issuer's namespace
8704 and name is always included.
8705 If unset the audience defaults to `sts.amazonaws.com`.
8706 type: array
8707 items:
8708 type: string
8709 name:
8710 description: Name of the ServiceAccount used to request a token.
8711 type: string
8712 hostedZoneID:
8713 description: If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.
8714 type: string
8715 region:
8716 description: |-
8717 Override the AWS region.
8718
8719 Route53 is a global service and does not have regional endpoints but the
8720 region specified here (or via environment variables) is used as a hint to
8721 help compute the correct AWS credential scope and partition when it
8722 connects to Route53. See:
8723 - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html)
8724 - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html)
8725
8726 If you omit this region field, cert-manager will use the region from
8727 AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set
8728 in the cert-manager controller Pod.
8729
8730 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).
8731 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
8732 [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook).
8733 In this case this `region` field value is ignored.
8734
8735 The `region` field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
8736 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
8737 [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent),
8738 In this case this `region` field value is ignored.
8739 type: string
8740 role:
8741 description: |-
8742 Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
8743 or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
8744 type: string
8745 secretAccessKeySecretRef:
8746 description: |-
8747 The SecretAccessKey is used for authentication.
8748 If neither the Access Key nor Key ID are set, we fall-back to using env
8749 vars, shared credentials file or AWS Instance metadata,
8750 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
8751 type: object
8752 required:
8753 - name
8754 properties:
8755 key:
8756 description: |-
8757 The key of the entry in the Secret resource's `data` field to be used.
8758 Some instances of this field may be defaulted, in others it may be
8759 required.
8760 type: string
8761 name:
8762 description: |-
8763 Name of the resource being referred to.
8764 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8765 type: string
8766 webhook:
8767 description: |-
8768 Configure an external webhook based DNS01 challenge solver to manage
8769 DNS01 challenge records.
8770 type: object
8771 required:
8772 - groupName
8773 - solverName
8774 properties:
8775 config:
8776 description: |-
8777 Additional configuration that should be passed to the webhook apiserver
8778 when challenges are processed.
8779 This can contain arbitrary JSON data.
8780 Secret values should not be specified in this stanza.
8781 If secret values are needed (e.g., credentials for a DNS service), you
8782 should use a SecretKeySelector to reference a Secret resource.
8783 For details on the schema of this field, consult the webhook provider
8784 implementation's documentation.
8785 x-kubernetes-preserve-unknown-fields: true
8786 groupName:
8787 description: |-
8788 The API group name that should be used when POSTing ChallengePayload
8789 resources to the webhook apiserver.
8790 This should be the same as the GroupName specified in the webhook
8791 provider implementation.
8792 type: string
8793 solverName:
8794 description: |-
8795 The name of the solver to use, as defined in the webhook provider
8796 implementation.
8797 This will typically be the name of the provider, e.g., 'cloudflare'.
8798 type: string
8799 http01:
8800 description: |-
8801 Configures cert-manager to attempt to complete authorizations by
8802 performing the HTTP01 challenge flow.
8803 It is not possible to obtain certificates for wildcard domain names
8804 (e.g., `*.example.com`) using the HTTP01 challenge mechanism.
8805 type: object
8806 properties:
8807 gatewayHTTPRoute:
8808 description: |-
8809 The Gateway API is a sig-network community API that models service networking
8810 in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will
8811 create HTTPRoutes with the specified labels in the same namespace as the challenge.
8812 This solver is experimental, and fields / behaviour may change in the future.
8813 type: object
8814 properties:
8815 labels:
8816 description: |-
8817 Custom labels that will be applied to HTTPRoutes created by cert-manager
8818 while solving HTTP-01 challenges.
8819 type: object
8820 additionalProperties:
8821 type: string
8822 parentRefs:
8823 description: |-
8824 When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute.
8825 cert-manager needs to know which parentRefs should be used when creating
8826 the HTTPRoute. Usually, the parentRef references a Gateway. See:
8827 https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways
8828 type: array
8829 items:
8830 description: |-
8831 ParentReference identifies an API object (usually a Gateway) that can be considered
8832 a parent of this resource (usually a route). There are two kinds of parent resources
8833 with "Core" support:
8834
8835 * Gateway (Gateway conformance profile)
8836 * Service (Mesh conformance profile, ClusterIP Services only)
8837
8838 This API may be extended in the future to support additional kinds of parent
8839 resources.
8840
8841 The API object must be valid in the cluster; the Group and Kind must
8842 be registered in the cluster for this reference to be valid.
8843 type: object
8844 required:
8845 - name
8846 properties:
8847 group:
8848 description: |-
8849 Group is the group of the referent.
8850 When unspecified, "gateway.networking.k8s.io" is inferred.
8851 To set the core API group (such as for a "Service" kind referent),
8852 Group must be explicitly set to "" (empty string).
8853
8854 Support: Core
8855 type: string
8856 default: gateway.networking.k8s.io
8857 maxLength: 253
8858 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
8859 kind:
8860 description: |-
8861 Kind is kind of the referent.
8862
8863 There are two kinds of parent resources with "Core" support:
8864
8865 * Gateway (Gateway conformance profile)
8866 * Service (Mesh conformance profile, ClusterIP Services only)
8867
8868 Support for other resources is Implementation-Specific.
8869 type: string
8870 default: Gateway
8871 maxLength: 63
8872 minLength: 1
8873 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
8874 name:
8875 description: |-
8876 Name is the name of the referent.
8877
8878 Support: Core
8879 type: string
8880 maxLength: 253
8881 minLength: 1
8882 namespace:
8883 description: |-
8884 Namespace is the namespace of the referent. When unspecified, this refers
8885 to the local namespace of the Route.
8886
8887 Note that there are specific rules for ParentRefs which cross namespace
8888 boundaries. Cross-namespace references are only valid if they are explicitly
8889 allowed by something in the namespace they are referring to. For example:
8890 Gateway has the AllowedRoutes field, and ReferenceGrant provides a
8891 generic way to enable any other kind of cross-namespace reference.
8892
8893 <gateway:experimental:description>
8894 ParentRefs from a Route to a Service in the same namespace are "producer"
8895 routes, which apply default routing rules to inbound connections from
8896 any namespace to the Service.
8897
8898 ParentRefs from a Route to a Service in a different namespace are
8899 "consumer" routes, and these routing rules are only applied to outbound
8900 connections originating from the same namespace as the Route, for which
8901 the intended destination of the connections are a Service targeted as a
8902 ParentRef of the Route.
8903 </gateway:experimental:description>
8904
8905 Support: Core
8906 type: string
8907 maxLength: 63
8908 minLength: 1
8909 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
8910 port:
8911 description: |-
8912 Port is the network port this Route targets. It can be interpreted
8913 differently based on the type of parent resource.
8914
8915 When the parent resource is a Gateway, this targets all listeners
8916 listening on the specified port that also support this kind of Route(and
8917 select this Route). It's not recommended to set `Port` unless the
8918 networking behaviors specified in a Route must apply to a specific port
8919 as opposed to a listener(s) whose port(s) may be changed. When both Port
8920 and SectionName are specified, the name and port of the selected listener
8921 must match both specified values.
8922
8923 <gateway:experimental:description>
8924 When the parent resource is a Service, this targets a specific port in the
8925 Service spec. When both Port (experimental) and SectionName are specified,
8926 the name and port of the selected port must match both specified values.
8927 </gateway:experimental:description>
8928
8929 Implementations MAY choose to support other parent resources.
8930 Implementations supporting other types of parent resources MUST clearly
8931 document how/if Port is interpreted.
8932
8933 For the purpose of status, an attachment is considered successful as
8934 long as the parent resource accepts it partially. For example, Gateway
8935 listeners can restrict which Routes can attach to them by Route kind,
8936 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
8937 from the referencing Route, the Route MUST be considered successfully
8938 attached. If no Gateway listeners accept attachment from this Route,
8939 the Route MUST be considered detached from the Gateway.
8940
8941 Support: Extended
8942 type: integer
8943 format: int32
8944 maximum: 65535
8945 minimum: 1
8946 sectionName:
8947 description: |-
8948 SectionName is the name of a section within the target resource. In the
8949 following resources, SectionName is interpreted as the following:
8950
8951 * Gateway: Listener name. When both Port (experimental) and SectionName
8952 are specified, the name and port of the selected listener must match
8953 both specified values.
8954 * Service: Port name. When both Port (experimental) and SectionName
8955 are specified, the name and port of the selected listener must match
8956 both specified values.
8957
8958 Implementations MAY choose to support attaching Routes to other resources.
8959 If that is the case, they MUST clearly document how SectionName is
8960 interpreted.
8961
8962 When unspecified (empty string), this will reference the entire resource.
8963 For the purpose of status, an attachment is considered successful if at
8964 least one section in the parent resource accepts it. For example, Gateway
8965 listeners can restrict which Routes can attach to them by Route kind,
8966 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
8967 the referencing Route, the Route MUST be considered successfully
8968 attached. If no Gateway listeners accept attachment from this Route, the
8969 Route MUST be considered detached from the Gateway.
8970
8971 Support: Core
8972 type: string
8973 maxLength: 253
8974 minLength: 1
8975 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
8976 podTemplate:
8977 description: |-
8978 Optional pod template used to configure the ACME challenge solver pods
8979 used for HTTP01 challenges.
8980 type: object
8981 properties:
8982 metadata:
8983 description: |-
8984 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
8985 Only the 'labels' and 'annotations' fields may be set.
8986 If labels or annotations overlap with in-built values, the values here
8987 will override the in-built values.
8988 type: object
8989 properties:
8990 annotations:
8991 description: Annotations that should be added to the created ACME HTTP01 solver pods.
8992 type: object
8993 additionalProperties:
8994 type: string
8995 labels:
8996 description: Labels that should be added to the created ACME HTTP01 solver pods.
8997 type: object
8998 additionalProperties:
8999 type: string
9000 spec:
9001 description: |-
9002 PodSpec defines overrides for the HTTP01 challenge solver pod.
9003 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
9004 All other fields will be ignored.
9005 type: object
9006 properties:
9007 affinity:
9008 description: If specified, the pod's scheduling constraints
9009 type: object
9010 properties:
9011 nodeAffinity:
9012 description: Describes node affinity scheduling rules for the pod.
9013 type: object
9014 properties:
9015 preferredDuringSchedulingIgnoredDuringExecution:
9016 description: |-
9017 The scheduler will prefer to schedule pods to nodes that satisfy
9018 the affinity expressions specified by this field, but it may choose
9019 a node that violates one or more of the expressions. The node that is
9020 most preferred is the one with the greatest sum of weights, i.e.
9021 for each node that meets all of the scheduling requirements (resource
9022 request, requiredDuringScheduling affinity expressions, etc.),
9023 compute a sum by iterating through the elements of this field and adding
9024 "weight" to the sum if the node matches the corresponding matchExpressions; the
9025 node(s) with the highest sum are the most preferred.
9026 type: array
9027 items:
9028 description: |-
9029 An empty preferred scheduling term matches all objects with implicit weight 0
9030 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
9031 type: object
9032 required:
9033 - preference
9034 - weight
9035 properties:
9036 preference:
9037 description: A node selector term, associated with the corresponding weight.
9038 type: object
9039 properties:
9040 matchExpressions:
9041 description: A list of node selector requirements by node's labels.
9042 type: array
9043 items:
9044 description: |-
9045 A node selector requirement is a selector that contains values, a key, and an operator
9046 that relates the key and values.
9047 type: object
9048 required:
9049 - key
9050 - operator
9051 properties:
9052 key:
9053 description: The label key that the selector applies to.
9054 type: string
9055 operator:
9056 description: |-
9057 Represents a key's relationship to a set of values.
9058 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9059 type: string
9060 values:
9061 description: |-
9062 An array of string values. If the operator is In or NotIn,
9063 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9064 the values array must be empty. If the operator is Gt or Lt, the values
9065 array must have a single element, which will be interpreted as an integer.
9066 This array is replaced during a strategic merge patch.
9067 type: array
9068 items:
9069 type: string
9070 x-kubernetes-list-type: atomic
9071 x-kubernetes-list-type: atomic
9072 matchFields:
9073 description: A list of node selector requirements by node's fields.
9074 type: array
9075 items:
9076 description: |-
9077 A node selector requirement is a selector that contains values, a key, and an operator
9078 that relates the key and values.
9079 type: object
9080 required:
9081 - key
9082 - operator
9083 properties:
9084 key:
9085 description: The label key that the selector applies to.
9086 type: string
9087 operator:
9088 description: |-
9089 Represents a key's relationship to a set of values.
9090 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9091 type: string
9092 values:
9093 description: |-
9094 An array of string values. If the operator is In or NotIn,
9095 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9096 the values array must be empty. If the operator is Gt or Lt, the values
9097 array must have a single element, which will be interpreted as an integer.
9098 This array is replaced during a strategic merge patch.
9099 type: array
9100 items:
9101 type: string
9102 x-kubernetes-list-type: atomic
9103 x-kubernetes-list-type: atomic
9104 x-kubernetes-map-type: atomic
9105 weight:
9106 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
9107 type: integer
9108 format: int32
9109 x-kubernetes-list-type: atomic
9110 requiredDuringSchedulingIgnoredDuringExecution:
9111 description: |-
9112 If the affinity requirements specified by this field are not met at
9113 scheduling time, the pod will not be scheduled onto the node.
9114 If the affinity requirements specified by this field cease to be met
9115 at some point during pod execution (e.g. due to an update), the system
9116 may or may not try to eventually evict the pod from its node.
9117 type: object
9118 required:
9119 - nodeSelectorTerms
9120 properties:
9121 nodeSelectorTerms:
9122 description: Required. A list of node selector terms. The terms are ORed.
9123 type: array
9124 items:
9125 description: |-
9126 A null or empty node selector term matches no objects. The requirements of
9127 them are ANDed.
9128 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
9129 type: object
9130 properties:
9131 matchExpressions:
9132 description: A list of node selector requirements by node's labels.
9133 type: array
9134 items:
9135 description: |-
9136 A node selector requirement is a selector that contains values, a key, and an operator
9137 that relates the key and values.
9138 type: object
9139 required:
9140 - key
9141 - operator
9142 properties:
9143 key:
9144 description: The label key that the selector applies to.
9145 type: string
9146 operator:
9147 description: |-
9148 Represents a key's relationship to a set of values.
9149 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9150 type: string
9151 values:
9152 description: |-
9153 An array of string values. If the operator is In or NotIn,
9154 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9155 the values array must be empty. If the operator is Gt or Lt, the values
9156 array must have a single element, which will be interpreted as an integer.
9157 This array is replaced during a strategic merge patch.
9158 type: array
9159 items:
9160 type: string
9161 x-kubernetes-list-type: atomic
9162 x-kubernetes-list-type: atomic
9163 matchFields:
9164 description: A list of node selector requirements by node's fields.
9165 type: array
9166 items:
9167 description: |-
9168 A node selector requirement is a selector that contains values, a key, and an operator
9169 that relates the key and values.
9170 type: object
9171 required:
9172 - key
9173 - operator
9174 properties:
9175 key:
9176 description: The label key that the selector applies to.
9177 type: string
9178 operator:
9179 description: |-
9180 Represents a key's relationship to a set of values.
9181 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9182 type: string
9183 values:
9184 description: |-
9185 An array of string values. If the operator is In or NotIn,
9186 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9187 the values array must be empty. If the operator is Gt or Lt, the values
9188 array must have a single element, which will be interpreted as an integer.
9189 This array is replaced during a strategic merge patch.
9190 type: array
9191 items:
9192 type: string
9193 x-kubernetes-list-type: atomic
9194 x-kubernetes-list-type: atomic
9195 x-kubernetes-map-type: atomic
9196 x-kubernetes-list-type: atomic
9197 x-kubernetes-map-type: atomic
9198 podAffinity:
9199 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
9200 type: object
9201 properties:
9202 preferredDuringSchedulingIgnoredDuringExecution:
9203 description: |-
9204 The scheduler will prefer to schedule pods to nodes that satisfy
9205 the affinity expressions specified by this field, but it may choose
9206 a node that violates one or more of the expressions. The node that is
9207 most preferred is the one with the greatest sum of weights, i.e.
9208 for each node that meets all of the scheduling requirements (resource
9209 request, requiredDuringScheduling affinity expressions, etc.),
9210 compute a sum by iterating through the elements of this field and adding
9211 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
9212 node(s) with the highest sum are the most preferred.
9213 type: array
9214 items:
9215 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
9216 type: object
9217 required:
9218 - podAffinityTerm
9219 - weight
9220 properties:
9221 podAffinityTerm:
9222 description: Required. A pod affinity term, associated with the corresponding weight.
9223 type: object
9224 required:
9225 - topologyKey
9226 properties:
9227 labelSelector:
9228 description: |-
9229 A label query over a set of resources, in this case pods.
9230 If it's null, this PodAffinityTerm matches with no Pods.
9231 type: object
9232 properties:
9233 matchExpressions:
9234 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9235 type: array
9236 items:
9237 description: |-
9238 A label selector requirement is a selector that contains values, a key, and an operator that
9239 relates the key and values.
9240 type: object
9241 required:
9242 - key
9243 - operator
9244 properties:
9245 key:
9246 description: key is the label key that the selector applies to.
9247 type: string
9248 operator:
9249 description: |-
9250 operator represents a key's relationship to a set of values.
9251 Valid operators are In, NotIn, Exists and DoesNotExist.
9252 type: string
9253 values:
9254 description: |-
9255 values is an array of string values. If the operator is In or NotIn,
9256 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9257 the values array must be empty. This array is replaced during a strategic
9258 merge patch.
9259 type: array
9260 items:
9261 type: string
9262 x-kubernetes-list-type: atomic
9263 x-kubernetes-list-type: atomic
9264 matchLabels:
9265 description: |-
9266 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9267 map is equivalent to an element of matchExpressions, whose key field is "key", the
9268 operator is "In", and the values array contains only "value". The requirements are ANDed.
9269 type: object
9270 additionalProperties:
9271 type: string
9272 x-kubernetes-map-type: atomic
9273 matchLabelKeys:
9274 description: |-
9275 MatchLabelKeys is a set of pod label keys to select which pods will
9276 be taken into consideration. The keys are used to lookup values from the
9277 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9278 to select the group of existing pods which pods will be taken into consideration
9279 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9280 pod labels will be ignored. The default value is empty.
9281 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9282 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9283 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9284 type: array
9285 items:
9286 type: string
9287 x-kubernetes-list-type: atomic
9288 mismatchLabelKeys:
9289 description: |-
9290 MismatchLabelKeys is a set of pod label keys to select which pods will
9291 be taken into consideration. The keys are used to lookup values from the
9292 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9293 to select the group of existing pods which pods will be taken into consideration
9294 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9295 pod labels will be ignored. The default value is empty.
9296 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9297 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9298 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9299 type: array
9300 items:
9301 type: string
9302 x-kubernetes-list-type: atomic
9303 namespaceSelector:
9304 description: |-
9305 A label query over the set of namespaces that the term applies to.
9306 The term is applied to the union of the namespaces selected by this field
9307 and the ones listed in the namespaces field.
9308 null selector and null or empty namespaces list means "this pod's namespace".
9309 An empty selector ({}) matches all namespaces.
9310 type: object
9311 properties:
9312 matchExpressions:
9313 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9314 type: array
9315 items:
9316 description: |-
9317 A label selector requirement is a selector that contains values, a key, and an operator that
9318 relates the key and values.
9319 type: object
9320 required:
9321 - key
9322 - operator
9323 properties:
9324 key:
9325 description: key is the label key that the selector applies to.
9326 type: string
9327 operator:
9328 description: |-
9329 operator represents a key's relationship to a set of values.
9330 Valid operators are In, NotIn, Exists and DoesNotExist.
9331 type: string
9332 values:
9333 description: |-
9334 values is an array of string values. If the operator is In or NotIn,
9335 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9336 the values array must be empty. This array is replaced during a strategic
9337 merge patch.
9338 type: array
9339 items:
9340 type: string
9341 x-kubernetes-list-type: atomic
9342 x-kubernetes-list-type: atomic
9343 matchLabels:
9344 description: |-
9345 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9346 map is equivalent to an element of matchExpressions, whose key field is "key", the
9347 operator is "In", and the values array contains only "value". The requirements are ANDed.
9348 type: object
9349 additionalProperties:
9350 type: string
9351 x-kubernetes-map-type: atomic
9352 namespaces:
9353 description: |-
9354 namespaces specifies a static list of namespace names that the term applies to.
9355 The term is applied to the union of the namespaces listed in this field
9356 and the ones selected by namespaceSelector.
9357 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9358 type: array
9359 items:
9360 type: string
9361 x-kubernetes-list-type: atomic
9362 topologyKey:
9363 description: |-
9364 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9365 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9366 whose value of the label with key topologyKey matches that of any node on which any of the
9367 selected pods is running.
9368 Empty topologyKey is not allowed.
9369 type: string
9370 weight:
9371 description: |-
9372 weight associated with matching the corresponding podAffinityTerm,
9373 in the range 1-100.
9374 type: integer
9375 format: int32
9376 x-kubernetes-list-type: atomic
9377 requiredDuringSchedulingIgnoredDuringExecution:
9378 description: |-
9379 If the affinity requirements specified by this field are not met at
9380 scheduling time, the pod will not be scheduled onto the node.
9381 If the affinity requirements specified by this field cease to be met
9382 at some point during pod execution (e.g. due to a pod label update), the
9383 system may or may not try to eventually evict the pod from its node.
9384 When there are multiple elements, the lists of nodes corresponding to each
9385 podAffinityTerm are intersected, i.e. all terms must be satisfied.
9386 type: array
9387 items:
9388 description: |-
9389 Defines a set of pods (namely those matching the labelSelector
9390 relative to the given namespace(s)) that this pod should be
9391 co-located (affinity) or not co-located (anti-affinity) with,
9392 where co-located is defined as running on a node whose value of
9393 the label with key <topologyKey> matches that of any node on which
9394 a pod of the set of pods is running
9395 type: object
9396 required:
9397 - topologyKey
9398 properties:
9399 labelSelector:
9400 description: |-
9401 A label query over a set of resources, in this case pods.
9402 If it's null, this PodAffinityTerm matches with no Pods.
9403 type: object
9404 properties:
9405 matchExpressions:
9406 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9407 type: array
9408 items:
9409 description: |-
9410 A label selector requirement is a selector that contains values, a key, and an operator that
9411 relates the key and values.
9412 type: object
9413 required:
9414 - key
9415 - operator
9416 properties:
9417 key:
9418 description: key is the label key that the selector applies to.
9419 type: string
9420 operator:
9421 description: |-
9422 operator represents a key's relationship to a set of values.
9423 Valid operators are In, NotIn, Exists and DoesNotExist.
9424 type: string
9425 values:
9426 description: |-
9427 values is an array of string values. If the operator is In or NotIn,
9428 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9429 the values array must be empty. This array is replaced during a strategic
9430 merge patch.
9431 type: array
9432 items:
9433 type: string
9434 x-kubernetes-list-type: atomic
9435 x-kubernetes-list-type: atomic
9436 matchLabels:
9437 description: |-
9438 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9439 map is equivalent to an element of matchExpressions, whose key field is "key", the
9440 operator is "In", and the values array contains only "value". The requirements are ANDed.
9441 type: object
9442 additionalProperties:
9443 type: string
9444 x-kubernetes-map-type: atomic
9445 matchLabelKeys:
9446 description: |-
9447 MatchLabelKeys is a set of pod label keys to select which pods will
9448 be taken into consideration. The keys are used to lookup values from the
9449 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9450 to select the group of existing pods which pods will be taken into consideration
9451 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9452 pod labels will be ignored. The default value is empty.
9453 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9454 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9455 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9456 type: array
9457 items:
9458 type: string
9459 x-kubernetes-list-type: atomic
9460 mismatchLabelKeys:
9461 description: |-
9462 MismatchLabelKeys is a set of pod label keys to select which pods will
9463 be taken into consideration. The keys are used to lookup values from the
9464 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9465 to select the group of existing pods which pods will be taken into consideration
9466 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9467 pod labels will be ignored. The default value is empty.
9468 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9469 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9470 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9471 type: array
9472 items:
9473 type: string
9474 x-kubernetes-list-type: atomic
9475 namespaceSelector:
9476 description: |-
9477 A label query over the set of namespaces that the term applies to.
9478 The term is applied to the union of the namespaces selected by this field
9479 and the ones listed in the namespaces field.
9480 null selector and null or empty namespaces list means "this pod's namespace".
9481 An empty selector ({}) matches all namespaces.
9482 type: object
9483 properties:
9484 matchExpressions:
9485 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9486 type: array
9487 items:
9488 description: |-
9489 A label selector requirement is a selector that contains values, a key, and an operator that
9490 relates the key and values.
9491 type: object
9492 required:
9493 - key
9494 - operator
9495 properties:
9496 key:
9497 description: key is the label key that the selector applies to.
9498 type: string
9499 operator:
9500 description: |-
9501 operator represents a key's relationship to a set of values.
9502 Valid operators are In, NotIn, Exists and DoesNotExist.
9503 type: string
9504 values:
9505 description: |-
9506 values is an array of string values. If the operator is In or NotIn,
9507 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9508 the values array must be empty. This array is replaced during a strategic
9509 merge patch.
9510 type: array
9511 items:
9512 type: string
9513 x-kubernetes-list-type: atomic
9514 x-kubernetes-list-type: atomic
9515 matchLabels:
9516 description: |-
9517 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9518 map is equivalent to an element of matchExpressions, whose key field is "key", the
9519 operator is "In", and the values array contains only "value". The requirements are ANDed.
9520 type: object
9521 additionalProperties:
9522 type: string
9523 x-kubernetes-map-type: atomic
9524 namespaces:
9525 description: |-
9526 namespaces specifies a static list of namespace names that the term applies to.
9527 The term is applied to the union of the namespaces listed in this field
9528 and the ones selected by namespaceSelector.
9529 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9530 type: array
9531 items:
9532 type: string
9533 x-kubernetes-list-type: atomic
9534 topologyKey:
9535 description: |-
9536 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9537 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9538 whose value of the label with key topologyKey matches that of any node on which any of the
9539 selected pods is running.
9540 Empty topologyKey is not allowed.
9541 type: string
9542 x-kubernetes-list-type: atomic
9543 podAntiAffinity:
9544 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
9545 type: object
9546 properties:
9547 preferredDuringSchedulingIgnoredDuringExecution:
9548 description: |-
9549 The scheduler will prefer to schedule pods to nodes that satisfy
9550 the anti-affinity expressions specified by this field, but it may choose
9551 a node that violates one or more of the expressions. The node that is
9552 most preferred is the one with the greatest sum of weights, i.e.
9553 for each node that meets all of the scheduling requirements (resource
9554 request, requiredDuringScheduling anti-affinity expressions, etc.),
9555 compute a sum by iterating through the elements of this field and adding
9556 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
9557 node(s) with the highest sum are the most preferred.
9558 type: array
9559 items:
9560 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
9561 type: object
9562 required:
9563 - podAffinityTerm
9564 - weight
9565 properties:
9566 podAffinityTerm:
9567 description: Required. A pod affinity term, associated with the corresponding weight.
9568 type: object
9569 required:
9570 - topologyKey
9571 properties:
9572 labelSelector:
9573 description: |-
9574 A label query over a set of resources, in this case pods.
9575 If it's null, this PodAffinityTerm matches with no Pods.
9576 type: object
9577 properties:
9578 matchExpressions:
9579 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9580 type: array
9581 items:
9582 description: |-
9583 A label selector requirement is a selector that contains values, a key, and an operator that
9584 relates the key and values.
9585 type: object
9586 required:
9587 - key
9588 - operator
9589 properties:
9590 key:
9591 description: key is the label key that the selector applies to.
9592 type: string
9593 operator:
9594 description: |-
9595 operator represents a key's relationship to a set of values.
9596 Valid operators are In, NotIn, Exists and DoesNotExist.
9597 type: string
9598 values:
9599 description: |-
9600 values is an array of string values. If the operator is In or NotIn,
9601 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9602 the values array must be empty. This array is replaced during a strategic
9603 merge patch.
9604 type: array
9605 items:
9606 type: string
9607 x-kubernetes-list-type: atomic
9608 x-kubernetes-list-type: atomic
9609 matchLabels:
9610 description: |-
9611 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9612 map is equivalent to an element of matchExpressions, whose key field is "key", the
9613 operator is "In", and the values array contains only "value". The requirements are ANDed.
9614 type: object
9615 additionalProperties:
9616 type: string
9617 x-kubernetes-map-type: atomic
9618 matchLabelKeys:
9619 description: |-
9620 MatchLabelKeys is a set of pod label keys to select which pods will
9621 be taken into consideration. The keys are used to lookup values from the
9622 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9623 to select the group of existing pods which pods will be taken into consideration
9624 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9625 pod labels will be ignored. The default value is empty.
9626 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9627 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9628 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9629 type: array
9630 items:
9631 type: string
9632 x-kubernetes-list-type: atomic
9633 mismatchLabelKeys:
9634 description: |-
9635 MismatchLabelKeys is a set of pod label keys to select which pods will
9636 be taken into consideration. The keys are used to lookup values from the
9637 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9638 to select the group of existing pods which pods will be taken into consideration
9639 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9640 pod labels will be ignored. The default value is empty.
9641 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9642 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9643 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9644 type: array
9645 items:
9646 type: string
9647 x-kubernetes-list-type: atomic
9648 namespaceSelector:
9649 description: |-
9650 A label query over the set of namespaces that the term applies to.
9651 The term is applied to the union of the namespaces selected by this field
9652 and the ones listed in the namespaces field.
9653 null selector and null or empty namespaces list means "this pod's namespace".
9654 An empty selector ({}) matches all namespaces.
9655 type: object
9656 properties:
9657 matchExpressions:
9658 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9659 type: array
9660 items:
9661 description: |-
9662 A label selector requirement is a selector that contains values, a key, and an operator that
9663 relates the key and values.
9664 type: object
9665 required:
9666 - key
9667 - operator
9668 properties:
9669 key:
9670 description: key is the label key that the selector applies to.
9671 type: string
9672 operator:
9673 description: |-
9674 operator represents a key's relationship to a set of values.
9675 Valid operators are In, NotIn, Exists and DoesNotExist.
9676 type: string
9677 values:
9678 description: |-
9679 values is an array of string values. If the operator is In or NotIn,
9680 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9681 the values array must be empty. This array is replaced during a strategic
9682 merge patch.
9683 type: array
9684 items:
9685 type: string
9686 x-kubernetes-list-type: atomic
9687 x-kubernetes-list-type: atomic
9688 matchLabels:
9689 description: |-
9690 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9691 map is equivalent to an element of matchExpressions, whose key field is "key", the
9692 operator is "In", and the values array contains only "value". The requirements are ANDed.
9693 type: object
9694 additionalProperties:
9695 type: string
9696 x-kubernetes-map-type: atomic
9697 namespaces:
9698 description: |-
9699 namespaces specifies a static list of namespace names that the term applies to.
9700 The term is applied to the union of the namespaces listed in this field
9701 and the ones selected by namespaceSelector.
9702 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9703 type: array
9704 items:
9705 type: string
9706 x-kubernetes-list-type: atomic
9707 topologyKey:
9708 description: |-
9709 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9710 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9711 whose value of the label with key topologyKey matches that of any node on which any of the
9712 selected pods is running.
9713 Empty topologyKey is not allowed.
9714 type: string
9715 weight:
9716 description: |-
9717 weight associated with matching the corresponding podAffinityTerm,
9718 in the range 1-100.
9719 type: integer
9720 format: int32
9721 x-kubernetes-list-type: atomic
9722 requiredDuringSchedulingIgnoredDuringExecution:
9723 description: |-
9724 If the anti-affinity requirements specified by this field are not met at
9725 scheduling time, the pod will not be scheduled onto the node.
9726 If the anti-affinity requirements specified by this field cease to be met
9727 at some point during pod execution (e.g. due to a pod label update), the
9728 system may or may not try to eventually evict the pod from its node.
9729 When there are multiple elements, the lists of nodes corresponding to each
9730 podAffinityTerm are intersected, i.e. all terms must be satisfied.
9731 type: array
9732 items:
9733 description: |-
9734 Defines a set of pods (namely those matching the labelSelector
9735 relative to the given namespace(s)) that this pod should be
9736 co-located (affinity) or not co-located (anti-affinity) with,
9737 where co-located is defined as running on a node whose value of
9738 the label with key <topologyKey> matches that of any node on which
9739 a pod of the set of pods is running
9740 type: object
9741 required:
9742 - topologyKey
9743 properties:
9744 labelSelector:
9745 description: |-
9746 A label query over a set of resources, in this case pods.
9747 If it's null, this PodAffinityTerm matches with no Pods.
9748 type: object
9749 properties:
9750 matchExpressions:
9751 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9752 type: array
9753 items:
9754 description: |-
9755 A label selector requirement is a selector that contains values, a key, and an operator that
9756 relates the key and values.
9757 type: object
9758 required:
9759 - key
9760 - operator
9761 properties:
9762 key:
9763 description: key is the label key that the selector applies to.
9764 type: string
9765 operator:
9766 description: |-
9767 operator represents a key's relationship to a set of values.
9768 Valid operators are In, NotIn, Exists and DoesNotExist.
9769 type: string
9770 values:
9771 description: |-
9772 values is an array of string values. If the operator is In or NotIn,
9773 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9774 the values array must be empty. This array is replaced during a strategic
9775 merge patch.
9776 type: array
9777 items:
9778 type: string
9779 x-kubernetes-list-type: atomic
9780 x-kubernetes-list-type: atomic
9781 matchLabels:
9782 description: |-
9783 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9784 map is equivalent to an element of matchExpressions, whose key field is "key", the
9785 operator is "In", and the values array contains only "value". The requirements are ANDed.
9786 type: object
9787 additionalProperties:
9788 type: string
9789 x-kubernetes-map-type: atomic
9790 matchLabelKeys:
9791 description: |-
9792 MatchLabelKeys is a set of pod label keys to select which pods will
9793 be taken into consideration. The keys are used to lookup values from the
9794 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9795 to select the group of existing pods which pods will be taken into consideration
9796 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9797 pod labels will be ignored. The default value is empty.
9798 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9799 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9800 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9801 type: array
9802 items:
9803 type: string
9804 x-kubernetes-list-type: atomic
9805 mismatchLabelKeys:
9806 description: |-
9807 MismatchLabelKeys is a set of pod label keys to select which pods will
9808 be taken into consideration. The keys are used to lookup values from the
9809 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9810 to select the group of existing pods which pods will be taken into consideration
9811 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9812 pod labels will be ignored. The default value is empty.
9813 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9814 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9815 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9816 type: array
9817 items:
9818 type: string
9819 x-kubernetes-list-type: atomic
9820 namespaceSelector:
9821 description: |-
9822 A label query over the set of namespaces that the term applies to.
9823 The term is applied to the union of the namespaces selected by this field
9824 and the ones listed in the namespaces field.
9825 null selector and null or empty namespaces list means "this pod's namespace".
9826 An empty selector ({}) matches all namespaces.
9827 type: object
9828 properties:
9829 matchExpressions:
9830 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9831 type: array
9832 items:
9833 description: |-
9834 A label selector requirement is a selector that contains values, a key, and an operator that
9835 relates the key and values.
9836 type: object
9837 required:
9838 - key
9839 - operator
9840 properties:
9841 key:
9842 description: key is the label key that the selector applies to.
9843 type: string
9844 operator:
9845 description: |-
9846 operator represents a key's relationship to a set of values.
9847 Valid operators are In, NotIn, Exists and DoesNotExist.
9848 type: string
9849 values:
9850 description: |-
9851 values is an array of string values. If the operator is In or NotIn,
9852 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9853 the values array must be empty. This array is replaced during a strategic
9854 merge patch.
9855 type: array
9856 items:
9857 type: string
9858 x-kubernetes-list-type: atomic
9859 x-kubernetes-list-type: atomic
9860 matchLabels:
9861 description: |-
9862 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9863 map is equivalent to an element of matchExpressions, whose key field is "key", the
9864 operator is "In", and the values array contains only "value". The requirements are ANDed.
9865 type: object
9866 additionalProperties:
9867 type: string
9868 x-kubernetes-map-type: atomic
9869 namespaces:
9870 description: |-
9871 namespaces specifies a static list of namespace names that the term applies to.
9872 The term is applied to the union of the namespaces listed in this field
9873 and the ones selected by namespaceSelector.
9874 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9875 type: array
9876 items:
9877 type: string
9878 x-kubernetes-list-type: atomic
9879 topologyKey:
9880 description: |-
9881 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9882 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9883 whose value of the label with key topologyKey matches that of any node on which any of the
9884 selected pods is running.
9885 Empty topologyKey is not allowed.
9886 type: string
9887 x-kubernetes-list-type: atomic
9888 imagePullSecrets:
9889 description: If specified, the pod's imagePullSecrets
9890 type: array
9891 items:
9892 description: |-
9893 LocalObjectReference contains enough information to let you locate the
9894 referenced object inside the same namespace.
9895 type: object
9896 properties:
9897 name:
9898 description: |-
9899 Name of the referent.
9900 This field is effectively required, but due to backwards compatibility is
9901 allowed to be empty. Instances of this type with an empty value here are
9902 almost certainly wrong.
9903 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
9904 type: string
9905 default: ""
9906 x-kubernetes-map-type: atomic
9907 nodeSelector:
9908 description: |-
9909 NodeSelector is a selector which must be true for the pod to fit on a node.
9910 Selector which must match a node's labels for the pod to be scheduled on that node.
9911 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
9912 type: object
9913 additionalProperties:
9914 type: string
9915 priorityClassName:
9916 description: If specified, the pod's priorityClassName.
9917 type: string
9918 securityContext:
9919 description: If specified, the pod's security context
9920 type: object
9921 properties:
9922 fsGroup:
9923 description: |-
9924 A special supplemental group that applies to all containers in a pod.
9925 Some volume types allow the Kubelet to change the ownership of that volume
9926 to be owned by the pod:
9927
9928 1. The owning GID will be the FSGroup
9929 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
9930 3. The permission bits are OR'd with rw-rw----
9931
9932 If unset, the Kubelet will not modify the ownership and permissions of any volume.
9933 Note that this field cannot be set when spec.os.name is windows.
9934 type: integer
9935 format: int64
9936 fsGroupChangePolicy:
9937 description: |-
9938 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
9939 before being exposed inside Pod. This field will only apply to
9940 volume types which support fsGroup based ownership(and permissions).
9941 It will have no effect on ephemeral volume types such as: secret, configmaps
9942 and emptydir.
9943 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
9944 Note that this field cannot be set when spec.os.name is windows.
9945 type: string
9946 runAsGroup:
9947 description: |-
9948 The GID to run the entrypoint of the container process.
9949 Uses runtime default if unset.
9950 May also be set in SecurityContext. If set in both SecurityContext and
9951 PodSecurityContext, the value specified in SecurityContext takes precedence
9952 for that container.
9953 Note that this field cannot be set when spec.os.name is windows.
9954 type: integer
9955 format: int64
9956 runAsNonRoot:
9957 description: |-
9958 Indicates that the container must run as a non-root user.
9959 If true, the Kubelet will validate the image at runtime to ensure that it
9960 does not run as UID 0 (root) and fail to start the container if it does.
9961 If unset or false, no such validation will be performed.
9962 May also be set in SecurityContext. If set in both SecurityContext and
9963 PodSecurityContext, the value specified in SecurityContext takes precedence.
9964 type: boolean
9965 runAsUser:
9966 description: |-
9967 The UID to run the entrypoint of the container process.
9968 Defaults to user specified in image metadata if unspecified.
9969 May also be set in SecurityContext. If set in both SecurityContext and
9970 PodSecurityContext, the value specified in SecurityContext takes precedence
9971 for that container.
9972 Note that this field cannot be set when spec.os.name is windows.
9973 type: integer
9974 format: int64
9975 seLinuxOptions:
9976 description: |-
9977 The SELinux context to be applied to all containers.
9978 If unspecified, the container runtime will allocate a random SELinux context for each
9979 container. May also be set in SecurityContext. If set in
9980 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
9981 takes precedence for that container.
9982 Note that this field cannot be set when spec.os.name is windows.
9983 type: object
9984 properties:
9985 level:
9986 description: Level is SELinux level label that applies to the container.
9987 type: string
9988 role:
9989 description: Role is a SELinux role label that applies to the container.
9990 type: string
9991 type:
9992 description: Type is a SELinux type label that applies to the container.
9993 type: string
9994 user:
9995 description: User is a SELinux user label that applies to the container.
9996 type: string
9997 seccompProfile:
9998 description: |-
9999 The seccomp options to use by the containers in this pod.
10000 Note that this field cannot be set when spec.os.name is windows.
10001 type: object
10002 required:
10003 - type
10004 properties:
10005 localhostProfile:
10006 description: |-
10007 localhostProfile indicates a profile defined in a file on the node should be used.
10008 The profile must be preconfigured on the node to work.
10009 Must be a descending path, relative to the kubelet's configured seccomp profile location.
10010 Must be set if type is "Localhost". Must NOT be set for any other type.
10011 type: string
10012 type:
10013 description: |-
10014 type indicates which kind of seccomp profile will be applied.
10015 Valid options are:
10016
10017 Localhost - a profile defined in a file on the node should be used.
10018 RuntimeDefault - the container runtime default profile should be used.
10019 Unconfined - no profile should be applied.
10020 type: string
10021 supplementalGroups:
10022 description: |-
10023 A list of groups applied to the first process run in each container, in addition
10024 to the container's primary GID, the fsGroup (if specified), and group memberships
10025 defined in the container image for the uid of the container process. If unspecified,
10026 no additional groups are added to any container. Note that group memberships
10027 defined in the container image for the uid of the container process are still effective,
10028 even if they are not included in this list.
10029 Note that this field cannot be set when spec.os.name is windows.
10030 type: array
10031 items:
10032 type: integer
10033 format: int64
10034 sysctls:
10035 description: |-
10036 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
10037 sysctls (by the container runtime) might fail to launch.
10038 Note that this field cannot be set when spec.os.name is windows.
10039 type: array
10040 items:
10041 description: Sysctl defines a kernel parameter to be set
10042 type: object
10043 required:
10044 - name
10045 - value
10046 properties:
10047 name:
10048 description: Name of a property to set
10049 type: string
10050 value:
10051 description: Value of a property to set
10052 type: string
10053 serviceAccountName:
10054 description: If specified, the pod's service account
10055 type: string
10056 tolerations:
10057 description: If specified, the pod's tolerations.
10058 type: array
10059 items:
10060 description: |-
10061 The pod this Toleration is attached to tolerates any taint that matches
10062 the triple <key,value,effect> using the matching operator <operator>.
10063 type: object
10064 properties:
10065 effect:
10066 description: |-
10067 Effect indicates the taint effect to match. Empty means match all taint effects.
10068 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
10069 type: string
10070 key:
10071 description: |-
10072 Key is the taint key that the toleration applies to. Empty means match all taint keys.
10073 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
10074 type: string
10075 operator:
10076 description: |-
10077 Operator represents a key's relationship to the value.
10078 Valid operators are Exists and Equal. Defaults to Equal.
10079 Exists is equivalent to wildcard for value, so that a pod can
10080 tolerate all taints of a particular category.
10081 type: string
10082 tolerationSeconds:
10083 description: |-
10084 TolerationSeconds represents the period of time the toleration (which must be
10085 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
10086 it is not set, which means tolerate the taint forever (do not evict). Zero and
10087 negative values will be treated as 0 (evict immediately) by the system.
10088 type: integer
10089 format: int64
10090 value:
10091 description: |-
10092 Value is the taint value the toleration matches to.
10093 If the operator is Exists, the value should be empty, otherwise just a regular string.
10094 type: string
10095 serviceType:
10096 description: |-
10097 Optional service type for Kubernetes solver service. Supported values
10098 are NodePort or ClusterIP. If unset, defaults to NodePort.
10099 type: string
10100 ingress:
10101 description: |-
10102 The ingress based HTTP01 challenge solver will solve challenges by
10103 creating or modifying Ingress resources in order to route requests for
10104 '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are
10105 provisioned by cert-manager for each Challenge to be completed.
10106 type: object
10107 properties:
10108 class:
10109 description: |-
10110 This field configures the annotation `kubernetes.io/ingress.class` when
10111 creating Ingress resources to solve ACME challenges that use this
10112 challenge solver. Only one of `class`, `name` or `ingressClassName` may
10113 be specified.
10114 type: string
10115 ingressClassName:
10116 description: |-
10117 This field configures the field `ingressClassName` on the created Ingress
10118 resources used to solve ACME challenges that use this challenge solver.
10119 This is the recommended way of configuring the ingress class. Only one of
10120 `class`, `name` or `ingressClassName` may be specified.
10121 type: string
10122 ingressTemplate:
10123 description: |-
10124 Optional ingress template used to configure the ACME challenge solver
10125 ingress used for HTTP01 challenges.
10126 type: object
10127 properties:
10128 metadata:
10129 description: |-
10130 ObjectMeta overrides for the ingress used to solve HTTP01 challenges.
10131 Only the 'labels' and 'annotations' fields may be set.
10132 If labels or annotations overlap with in-built values, the values here
10133 will override the in-built values.
10134 type: object
10135 properties:
10136 annotations:
10137 description: Annotations that should be added to the created ACME HTTP01 solver ingress.
10138 type: object
10139 additionalProperties:
10140 type: string
10141 labels:
10142 description: Labels that should be added to the created ACME HTTP01 solver ingress.
10143 type: object
10144 additionalProperties:
10145 type: string
10146 name:
10147 description: |-
10148 The name of the ingress resource that should have ACME challenge solving
10149 routes inserted into it in order to solve HTTP01 challenges.
10150 This is typically used in conjunction with ingress controllers like
10151 ingress-gce, which maintains a 1:1 mapping between external IPs and
10152 ingress resources. Only one of `class`, `name` or `ingressClassName` may
10153 be specified.
10154 type: string
10155 podTemplate:
10156 description: |-
10157 Optional pod template used to configure the ACME challenge solver pods
10158 used for HTTP01 challenges.
10159 type: object
10160 properties:
10161 metadata:
10162 description: |-
10163 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
10164 Only the 'labels' and 'annotations' fields may be set.
10165 If labels or annotations overlap with in-built values, the values here
10166 will override the in-built values.
10167 type: object
10168 properties:
10169 annotations:
10170 description: Annotations that should be added to the created ACME HTTP01 solver pods.
10171 type: object
10172 additionalProperties:
10173 type: string
10174 labels:
10175 description: Labels that should be added to the created ACME HTTP01 solver pods.
10176 type: object
10177 additionalProperties:
10178 type: string
10179 spec:
10180 description: |-
10181 PodSpec defines overrides for the HTTP01 challenge solver pod.
10182 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
10183 All other fields will be ignored.
10184 type: object
10185 properties:
10186 affinity:
10187 description: If specified, the pod's scheduling constraints
10188 type: object
10189 properties:
10190 nodeAffinity:
10191 description: Describes node affinity scheduling rules for the pod.
10192 type: object
10193 properties:
10194 preferredDuringSchedulingIgnoredDuringExecution:
10195 description: |-
10196 The scheduler will prefer to schedule pods to nodes that satisfy
10197 the affinity expressions specified by this field, but it may choose
10198 a node that violates one or more of the expressions. The node that is
10199 most preferred is the one with the greatest sum of weights, i.e.
10200 for each node that meets all of the scheduling requirements (resource
10201 request, requiredDuringScheduling affinity expressions, etc.),
10202 compute a sum by iterating through the elements of this field and adding
10203 "weight" to the sum if the node matches the corresponding matchExpressions; the
10204 node(s) with the highest sum are the most preferred.
10205 type: array
10206 items:
10207 description: |-
10208 An empty preferred scheduling term matches all objects with implicit weight 0
10209 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
10210 type: object
10211 required:
10212 - preference
10213 - weight
10214 properties:
10215 preference:
10216 description: A node selector term, associated with the corresponding weight.
10217 type: object
10218 properties:
10219 matchExpressions:
10220 description: A list of node selector requirements by node's labels.
10221 type: array
10222 items:
10223 description: |-
10224 A node selector requirement is a selector that contains values, a key, and an operator
10225 that relates the key and values.
10226 type: object
10227 required:
10228 - key
10229 - operator
10230 properties:
10231 key:
10232 description: The label key that the selector applies to.
10233 type: string
10234 operator:
10235 description: |-
10236 Represents a key's relationship to a set of values.
10237 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10238 type: string
10239 values:
10240 description: |-
10241 An array of string values. If the operator is In or NotIn,
10242 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10243 the values array must be empty. If the operator is Gt or Lt, the values
10244 array must have a single element, which will be interpreted as an integer.
10245 This array is replaced during a strategic merge patch.
10246 type: array
10247 items:
10248 type: string
10249 x-kubernetes-list-type: atomic
10250 x-kubernetes-list-type: atomic
10251 matchFields:
10252 description: A list of node selector requirements by node's fields.
10253 type: array
10254 items:
10255 description: |-
10256 A node selector requirement is a selector that contains values, a key, and an operator
10257 that relates the key and values.
10258 type: object
10259 required:
10260 - key
10261 - operator
10262 properties:
10263 key:
10264 description: The label key that the selector applies to.
10265 type: string
10266 operator:
10267 description: |-
10268 Represents a key's relationship to a set of values.
10269 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10270 type: string
10271 values:
10272 description: |-
10273 An array of string values. If the operator is In or NotIn,
10274 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10275 the values array must be empty. If the operator is Gt or Lt, the values
10276 array must have a single element, which will be interpreted as an integer.
10277 This array is replaced during a strategic merge patch.
10278 type: array
10279 items:
10280 type: string
10281 x-kubernetes-list-type: atomic
10282 x-kubernetes-list-type: atomic
10283 x-kubernetes-map-type: atomic
10284 weight:
10285 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
10286 type: integer
10287 format: int32
10288 x-kubernetes-list-type: atomic
10289 requiredDuringSchedulingIgnoredDuringExecution:
10290 description: |-
10291 If the affinity requirements specified by this field are not met at
10292 scheduling time, the pod will not be scheduled onto the node.
10293 If the affinity requirements specified by this field cease to be met
10294 at some point during pod execution (e.g. due to an update), the system
10295 may or may not try to eventually evict the pod from its node.
10296 type: object
10297 required:
10298 - nodeSelectorTerms
10299 properties:
10300 nodeSelectorTerms:
10301 description: Required. A list of node selector terms. The terms are ORed.
10302 type: array
10303 items:
10304 description: |-
10305 A null or empty node selector term matches no objects. The requirements of
10306 them are ANDed.
10307 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
10308 type: object
10309 properties:
10310 matchExpressions:
10311 description: A list of node selector requirements by node's labels.
10312 type: array
10313 items:
10314 description: |-
10315 A node selector requirement is a selector that contains values, a key, and an operator
10316 that relates the key and values.
10317 type: object
10318 required:
10319 - key
10320 - operator
10321 properties:
10322 key:
10323 description: The label key that the selector applies to.
10324 type: string
10325 operator:
10326 description: |-
10327 Represents a key's relationship to a set of values.
10328 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10329 type: string
10330 values:
10331 description: |-
10332 An array of string values. If the operator is In or NotIn,
10333 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10334 the values array must be empty. If the operator is Gt or Lt, the values
10335 array must have a single element, which will be interpreted as an integer.
10336 This array is replaced during a strategic merge patch.
10337 type: array
10338 items:
10339 type: string
10340 x-kubernetes-list-type: atomic
10341 x-kubernetes-list-type: atomic
10342 matchFields:
10343 description: A list of node selector requirements by node's fields.
10344 type: array
10345 items:
10346 description: |-
10347 A node selector requirement is a selector that contains values, a key, and an operator
10348 that relates the key and values.
10349 type: object
10350 required:
10351 - key
10352 - operator
10353 properties:
10354 key:
10355 description: The label key that the selector applies to.
10356 type: string
10357 operator:
10358 description: |-
10359 Represents a key's relationship to a set of values.
10360 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10361 type: string
10362 values:
10363 description: |-
10364 An array of string values. If the operator is In or NotIn,
10365 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10366 the values array must be empty. If the operator is Gt or Lt, the values
10367 array must have a single element, which will be interpreted as an integer.
10368 This array is replaced during a strategic merge patch.
10369 type: array
10370 items:
10371 type: string
10372 x-kubernetes-list-type: atomic
10373 x-kubernetes-list-type: atomic
10374 x-kubernetes-map-type: atomic
10375 x-kubernetes-list-type: atomic
10376 x-kubernetes-map-type: atomic
10377 podAffinity:
10378 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
10379 type: object
10380 properties:
10381 preferredDuringSchedulingIgnoredDuringExecution:
10382 description: |-
10383 The scheduler will prefer to schedule pods to nodes that satisfy
10384 the affinity expressions specified by this field, but it may choose
10385 a node that violates one or more of the expressions. The node that is
10386 most preferred is the one with the greatest sum of weights, i.e.
10387 for each node that meets all of the scheduling requirements (resource
10388 request, requiredDuringScheduling affinity expressions, etc.),
10389 compute a sum by iterating through the elements of this field and adding
10390 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
10391 node(s) with the highest sum are the most preferred.
10392 type: array
10393 items:
10394 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
10395 type: object
10396 required:
10397 - podAffinityTerm
10398 - weight
10399 properties:
10400 podAffinityTerm:
10401 description: Required. A pod affinity term, associated with the corresponding weight.
10402 type: object
10403 required:
10404 - topologyKey
10405 properties:
10406 labelSelector:
10407 description: |-
10408 A label query over a set of resources, in this case pods.
10409 If it's null, this PodAffinityTerm matches with no Pods.
10410 type: object
10411 properties:
10412 matchExpressions:
10413 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10414 type: array
10415 items:
10416 description: |-
10417 A label selector requirement is a selector that contains values, a key, and an operator that
10418 relates the key and values.
10419 type: object
10420 required:
10421 - key
10422 - operator
10423 properties:
10424 key:
10425 description: key is the label key that the selector applies to.
10426 type: string
10427 operator:
10428 description: |-
10429 operator represents a key's relationship to a set of values.
10430 Valid operators are In, NotIn, Exists and DoesNotExist.
10431 type: string
10432 values:
10433 description: |-
10434 values is an array of string values. If the operator is In or NotIn,
10435 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10436 the values array must be empty. This array is replaced during a strategic
10437 merge patch.
10438 type: array
10439 items:
10440 type: string
10441 x-kubernetes-list-type: atomic
10442 x-kubernetes-list-type: atomic
10443 matchLabels:
10444 description: |-
10445 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10446 map is equivalent to an element of matchExpressions, whose key field is "key", the
10447 operator is "In", and the values array contains only "value". The requirements are ANDed.
10448 type: object
10449 additionalProperties:
10450 type: string
10451 x-kubernetes-map-type: atomic
10452 matchLabelKeys:
10453 description: |-
10454 MatchLabelKeys is a set of pod label keys to select which pods will
10455 be taken into consideration. The keys are used to lookup values from the
10456 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10457 to select the group of existing pods which pods will be taken into consideration
10458 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10459 pod labels will be ignored. The default value is empty.
10460 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10461 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10462 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10463 type: array
10464 items:
10465 type: string
10466 x-kubernetes-list-type: atomic
10467 mismatchLabelKeys:
10468 description: |-
10469 MismatchLabelKeys is a set of pod label keys to select which pods will
10470 be taken into consideration. The keys are used to lookup values from the
10471 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10472 to select the group of existing pods which pods will be taken into consideration
10473 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10474 pod labels will be ignored. The default value is empty.
10475 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10476 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10477 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10478 type: array
10479 items:
10480 type: string
10481 x-kubernetes-list-type: atomic
10482 namespaceSelector:
10483 description: |-
10484 A label query over the set of namespaces that the term applies to.
10485 The term is applied to the union of the namespaces selected by this field
10486 and the ones listed in the namespaces field.
10487 null selector and null or empty namespaces list means "this pod's namespace".
10488 An empty selector ({}) matches all namespaces.
10489 type: object
10490 properties:
10491 matchExpressions:
10492 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10493 type: array
10494 items:
10495 description: |-
10496 A label selector requirement is a selector that contains values, a key, and an operator that
10497 relates the key and values.
10498 type: object
10499 required:
10500 - key
10501 - operator
10502 properties:
10503 key:
10504 description: key is the label key that the selector applies to.
10505 type: string
10506 operator:
10507 description: |-
10508 operator represents a key's relationship to a set of values.
10509 Valid operators are In, NotIn, Exists and DoesNotExist.
10510 type: string
10511 values:
10512 description: |-
10513 values is an array of string values. If the operator is In or NotIn,
10514 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10515 the values array must be empty. This array is replaced during a strategic
10516 merge patch.
10517 type: array
10518 items:
10519 type: string
10520 x-kubernetes-list-type: atomic
10521 x-kubernetes-list-type: atomic
10522 matchLabels:
10523 description: |-
10524 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10525 map is equivalent to an element of matchExpressions, whose key field is "key", the
10526 operator is "In", and the values array contains only "value". The requirements are ANDed.
10527 type: object
10528 additionalProperties:
10529 type: string
10530 x-kubernetes-map-type: atomic
10531 namespaces:
10532 description: |-
10533 namespaces specifies a static list of namespace names that the term applies to.
10534 The term is applied to the union of the namespaces listed in this field
10535 and the ones selected by namespaceSelector.
10536 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
10537 type: array
10538 items:
10539 type: string
10540 x-kubernetes-list-type: atomic
10541 topologyKey:
10542 description: |-
10543 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
10544 the labelSelector in the specified namespaces, where co-located is defined as running on a node
10545 whose value of the label with key topologyKey matches that of any node on which any of the
10546 selected pods is running.
10547 Empty topologyKey is not allowed.
10548 type: string
10549 weight:
10550 description: |-
10551 weight associated with matching the corresponding podAffinityTerm,
10552 in the range 1-100.
10553 type: integer
10554 format: int32
10555 x-kubernetes-list-type: atomic
10556 requiredDuringSchedulingIgnoredDuringExecution:
10557 description: |-
10558 If the affinity requirements specified by this field are not met at
10559 scheduling time, the pod will not be scheduled onto the node.
10560 If the affinity requirements specified by this field cease to be met
10561 at some point during pod execution (e.g. due to a pod label update), the
10562 system may or may not try to eventually evict the pod from its node.
10563 When there are multiple elements, the lists of nodes corresponding to each
10564 podAffinityTerm are intersected, i.e. all terms must be satisfied.
10565 type: array
10566 items:
10567 description: |-
10568 Defines a set of pods (namely those matching the labelSelector
10569 relative to the given namespace(s)) that this pod should be
10570 co-located (affinity) or not co-located (anti-affinity) with,
10571 where co-located is defined as running on a node whose value of
10572 the label with key <topologyKey> matches that of any node on which
10573 a pod of the set of pods is running
10574 type: object
10575 required:
10576 - topologyKey
10577 properties:
10578 labelSelector:
10579 description: |-
10580 A label query over a set of resources, in this case pods.
10581 If it's null, this PodAffinityTerm matches with no Pods.
10582 type: object
10583 properties:
10584 matchExpressions:
10585 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10586 type: array
10587 items:
10588 description: |-
10589 A label selector requirement is a selector that contains values, a key, and an operator that
10590 relates the key and values.
10591 type: object
10592 required:
10593 - key
10594 - operator
10595 properties:
10596 key:
10597 description: key is the label key that the selector applies to.
10598 type: string
10599 operator:
10600 description: |-
10601 operator represents a key's relationship to a set of values.
10602 Valid operators are In, NotIn, Exists and DoesNotExist.
10603 type: string
10604 values:
10605 description: |-
10606 values is an array of string values. If the operator is In or NotIn,
10607 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10608 the values array must be empty. This array is replaced during a strategic
10609 merge patch.
10610 type: array
10611 items:
10612 type: string
10613 x-kubernetes-list-type: atomic
10614 x-kubernetes-list-type: atomic
10615 matchLabels:
10616 description: |-
10617 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10618 map is equivalent to an element of matchExpressions, whose key field is "key", the
10619 operator is "In", and the values array contains only "value". The requirements are ANDed.
10620 type: object
10621 additionalProperties:
10622 type: string
10623 x-kubernetes-map-type: atomic
10624 matchLabelKeys:
10625 description: |-
10626 MatchLabelKeys is a set of pod label keys to select which pods will
10627 be taken into consideration. The keys are used to lookup values from the
10628 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10629 to select the group of existing pods which pods will be taken into consideration
10630 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10631 pod labels will be ignored. The default value is empty.
10632 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10633 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10634 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10635 type: array
10636 items:
10637 type: string
10638 x-kubernetes-list-type: atomic
10639 mismatchLabelKeys:
10640 description: |-
10641 MismatchLabelKeys is a set of pod label keys to select which pods will
10642 be taken into consideration. The keys are used to lookup values from the
10643 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10644 to select the group of existing pods which pods will be taken into consideration
10645 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10646 pod labels will be ignored. The default value is empty.
10647 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10648 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10649 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10650 type: array
10651 items:
10652 type: string
10653 x-kubernetes-list-type: atomic
10654 namespaceSelector:
10655 description: |-
10656 A label query over the set of namespaces that the term applies to.
10657 The term is applied to the union of the namespaces selected by this field
10658 and the ones listed in the namespaces field.
10659 null selector and null or empty namespaces list means "this pod's namespace".
10660 An empty selector ({}) matches all namespaces.
10661 type: object
10662 properties:
10663 matchExpressions:
10664 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10665 type: array
10666 items:
10667 description: |-
10668 A label selector requirement is a selector that contains values, a key, and an operator that
10669 relates the key and values.
10670 type: object
10671 required:
10672 - key
10673 - operator
10674 properties:
10675 key:
10676 description: key is the label key that the selector applies to.
10677 type: string
10678 operator:
10679 description: |-
10680 operator represents a key's relationship to a set of values.
10681 Valid operators are In, NotIn, Exists and DoesNotExist.
10682 type: string
10683 values:
10684 description: |-
10685 values is an array of string values. If the operator is In or NotIn,
10686 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10687 the values array must be empty. This array is replaced during a strategic
10688 merge patch.
10689 type: array
10690 items:
10691 type: string
10692 x-kubernetes-list-type: atomic
10693 x-kubernetes-list-type: atomic
10694 matchLabels:
10695 description: |-
10696 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10697 map is equivalent to an element of matchExpressions, whose key field is "key", the
10698 operator is "In", and the values array contains only "value". The requirements are ANDed.
10699 type: object
10700 additionalProperties:
10701 type: string
10702 x-kubernetes-map-type: atomic
10703 namespaces:
10704 description: |-
10705 namespaces specifies a static list of namespace names that the term applies to.
10706 The term is applied to the union of the namespaces listed in this field
10707 and the ones selected by namespaceSelector.
10708 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
10709 type: array
10710 items:
10711 type: string
10712 x-kubernetes-list-type: atomic
10713 topologyKey:
10714 description: |-
10715 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
10716 the labelSelector in the specified namespaces, where co-located is defined as running on a node
10717 whose value of the label with key topologyKey matches that of any node on which any of the
10718 selected pods is running.
10719 Empty topologyKey is not allowed.
10720 type: string
10721 x-kubernetes-list-type: atomic
10722 podAntiAffinity:
10723 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
10724 type: object
10725 properties:
10726 preferredDuringSchedulingIgnoredDuringExecution:
10727 description: |-
10728 The scheduler will prefer to schedule pods to nodes that satisfy
10729 the anti-affinity expressions specified by this field, but it may choose
10730 a node that violates one or more of the expressions. The node that is
10731 most preferred is the one with the greatest sum of weights, i.e.
10732 for each node that meets all of the scheduling requirements (resource
10733 request, requiredDuringScheduling anti-affinity expressions, etc.),
10734 compute a sum by iterating through the elements of this field and adding
10735 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
10736 node(s) with the highest sum are the most preferred.
10737 type: array
10738 items:
10739 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
10740 type: object
10741 required:
10742 - podAffinityTerm
10743 - weight
10744 properties:
10745 podAffinityTerm:
10746 description: Required. A pod affinity term, associated with the corresponding weight.
10747 type: object
10748 required:
10749 - topologyKey
10750 properties:
10751 labelSelector:
10752 description: |-
10753 A label query over a set of resources, in this case pods.
10754 If it's null, this PodAffinityTerm matches with no Pods.
10755 type: object
10756 properties:
10757 matchExpressions:
10758 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10759 type: array
10760 items:
10761 description: |-
10762 A label selector requirement is a selector that contains values, a key, and an operator that
10763 relates the key and values.
10764 type: object
10765 required:
10766 - key
10767 - operator
10768 properties:
10769 key:
10770 description: key is the label key that the selector applies to.
10771 type: string
10772 operator:
10773 description: |-
10774 operator represents a key's relationship to a set of values.
10775 Valid operators are In, NotIn, Exists and DoesNotExist.
10776 type: string
10777 values:
10778 description: |-
10779 values is an array of string values. If the operator is In or NotIn,
10780 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10781 the values array must be empty. This array is replaced during a strategic
10782 merge patch.
10783 type: array
10784 items:
10785 type: string
10786 x-kubernetes-list-type: atomic
10787 x-kubernetes-list-type: atomic
10788 matchLabels:
10789 description: |-
10790 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10791 map is equivalent to an element of matchExpressions, whose key field is "key", the
10792 operator is "In", and the values array contains only "value". The requirements are ANDed.
10793 type: object
10794 additionalProperties:
10795 type: string
10796 x-kubernetes-map-type: atomic
10797 matchLabelKeys:
10798 description: |-
10799 MatchLabelKeys is a set of pod label keys to select which pods will
10800 be taken into consideration. The keys are used to lookup values from the
10801 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10802 to select the group of existing pods which pods will be taken into consideration
10803 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10804 pod labels will be ignored. The default value is empty.
10805 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10806 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10807 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10808 type: array
10809 items:
10810 type: string
10811 x-kubernetes-list-type: atomic
10812 mismatchLabelKeys:
10813 description: |-
10814 MismatchLabelKeys is a set of pod label keys to select which pods will
10815 be taken into consideration. The keys are used to lookup values from the
10816 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10817 to select the group of existing pods which pods will be taken into consideration
10818 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10819 pod labels will be ignored. The default value is empty.
10820 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10821 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10822 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10823 type: array
10824 items:
10825 type: string
10826 x-kubernetes-list-type: atomic
10827 namespaceSelector:
10828 description: |-
10829 A label query over the set of namespaces that the term applies to.
10830 The term is applied to the union of the namespaces selected by this field
10831 and the ones listed in the namespaces field.
10832 null selector and null or empty namespaces list means "this pod's namespace".
10833 An empty selector ({}) matches all namespaces.
10834 type: object
10835 properties:
10836 matchExpressions:
10837 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10838 type: array
10839 items:
10840 description: |-
10841 A label selector requirement is a selector that contains values, a key, and an operator that
10842 relates the key and values.
10843 type: object
10844 required:
10845 - key
10846 - operator
10847 properties:
10848 key:
10849 description: key is the label key that the selector applies to.
10850 type: string
10851 operator:
10852 description: |-
10853 operator represents a key's relationship to a set of values.
10854 Valid operators are In, NotIn, Exists and DoesNotExist.
10855 type: string
10856 values:
10857 description: |-
10858 values is an array of string values. If the operator is In or NotIn,
10859 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10860 the values array must be empty. This array is replaced during a strategic
10861 merge patch.
10862 type: array
10863 items:
10864 type: string
10865 x-kubernetes-list-type: atomic
10866 x-kubernetes-list-type: atomic
10867 matchLabels:
10868 description: |-
10869 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10870 map is equivalent to an element of matchExpressions, whose key field is "key", the
10871 operator is "In", and the values array contains only "value". The requirements are ANDed.
10872 type: object
10873 additionalProperties:
10874 type: string
10875 x-kubernetes-map-type: atomic
10876 namespaces:
10877 description: |-
10878 namespaces specifies a static list of namespace names that the term applies to.
10879 The term is applied to the union of the namespaces listed in this field
10880 and the ones selected by namespaceSelector.
10881 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
10882 type: array
10883 items:
10884 type: string
10885 x-kubernetes-list-type: atomic
10886 topologyKey:
10887 description: |-
10888 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
10889 the labelSelector in the specified namespaces, where co-located is defined as running on a node
10890 whose value of the label with key topologyKey matches that of any node on which any of the
10891 selected pods is running.
10892 Empty topologyKey is not allowed.
10893 type: string
10894 weight:
10895 description: |-
10896 weight associated with matching the corresponding podAffinityTerm,
10897 in the range 1-100.
10898 type: integer
10899 format: int32
10900 x-kubernetes-list-type: atomic
10901 requiredDuringSchedulingIgnoredDuringExecution:
10902 description: |-
10903 If the anti-affinity requirements specified by this field are not met at
10904 scheduling time, the pod will not be scheduled onto the node.
10905 If the anti-affinity requirements specified by this field cease to be met
10906 at some point during pod execution (e.g. due to a pod label update), the
10907 system may or may not try to eventually evict the pod from its node.
10908 When there are multiple elements, the lists of nodes corresponding to each
10909 podAffinityTerm are intersected, i.e. all terms must be satisfied.
10910 type: array
10911 items:
10912 description: |-
10913 Defines a set of pods (namely those matching the labelSelector
10914 relative to the given namespace(s)) that this pod should be
10915 co-located (affinity) or not co-located (anti-affinity) with,
10916 where co-located is defined as running on a node whose value of
10917 the label with key <topologyKey> matches that of any node on which
10918 a pod of the set of pods is running
10919 type: object
10920 required:
10921 - topologyKey
10922 properties:
10923 labelSelector:
10924 description: |-
10925 A label query over a set of resources, in this case pods.
10926 If it's null, this PodAffinityTerm matches with no Pods.
10927 type: object
10928 properties:
10929 matchExpressions:
10930 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10931 type: array
10932 items:
10933 description: |-
10934 A label selector requirement is a selector that contains values, a key, and an operator that
10935 relates the key and values.
10936 type: object
10937 required:
10938 - key
10939 - operator
10940 properties:
10941 key:
10942 description: key is the label key that the selector applies to.
10943 type: string
10944 operator:
10945 description: |-
10946 operator represents a key's relationship to a set of values.
10947 Valid operators are In, NotIn, Exists and DoesNotExist.
10948 type: string
10949 values:
10950 description: |-
10951 values is an array of string values. If the operator is In or NotIn,
10952 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10953 the values array must be empty. This array is replaced during a strategic
10954 merge patch.
10955 type: array
10956 items:
10957 type: string
10958 x-kubernetes-list-type: atomic
10959 x-kubernetes-list-type: atomic
10960 matchLabels:
10961 description: |-
10962 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10963 map is equivalent to an element of matchExpressions, whose key field is "key", the
10964 operator is "In", and the values array contains only "value". The requirements are ANDed.
10965 type: object
10966 additionalProperties:
10967 type: string
10968 x-kubernetes-map-type: atomic
10969 matchLabelKeys:
10970 description: |-
10971 MatchLabelKeys is a set of pod label keys to select which pods will
10972 be taken into consideration. The keys are used to lookup values from the
10973 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10974 to select the group of existing pods which pods will be taken into consideration
10975 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10976 pod labels will be ignored. The default value is empty.
10977 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10978 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10979 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10980 type: array
10981 items:
10982 type: string
10983 x-kubernetes-list-type: atomic
10984 mismatchLabelKeys:
10985 description: |-
10986 MismatchLabelKeys is a set of pod label keys to select which pods will
10987 be taken into consideration. The keys are used to lookup values from the
10988 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10989 to select the group of existing pods which pods will be taken into consideration
10990 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10991 pod labels will be ignored. The default value is empty.
10992 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10993 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10994 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10995 type: array
10996 items:
10997 type: string
10998 x-kubernetes-list-type: atomic
10999 namespaceSelector:
11000 description: |-
11001 A label query over the set of namespaces that the term applies to.
11002 The term is applied to the union of the namespaces selected by this field
11003 and the ones listed in the namespaces field.
11004 null selector and null or empty namespaces list means "this pod's namespace".
11005 An empty selector ({}) matches all namespaces.
11006 type: object
11007 properties:
11008 matchExpressions:
11009 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
11010 type: array
11011 items:
11012 description: |-
11013 A label selector requirement is a selector that contains values, a key, and an operator that
11014 relates the key and values.
11015 type: object
11016 required:
11017 - key
11018 - operator
11019 properties:
11020 key:
11021 description: key is the label key that the selector applies to.
11022 type: string
11023 operator:
11024 description: |-
11025 operator represents a key's relationship to a set of values.
11026 Valid operators are In, NotIn, Exists and DoesNotExist.
11027 type: string
11028 values:
11029 description: |-
11030 values is an array of string values. If the operator is In or NotIn,
11031 the values array must be non-empty. If the operator is Exists or DoesNotExist,
11032 the values array must be empty. This array is replaced during a strategic
11033 merge patch.
11034 type: array
11035 items:
11036 type: string
11037 x-kubernetes-list-type: atomic
11038 x-kubernetes-list-type: atomic
11039 matchLabels:
11040 description: |-
11041 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
11042 map is equivalent to an element of matchExpressions, whose key field is "key", the
11043 operator is "In", and the values array contains only "value". The requirements are ANDed.
11044 type: object
11045 additionalProperties:
11046 type: string
11047 x-kubernetes-map-type: atomic
11048 namespaces:
11049 description: |-
11050 namespaces specifies a static list of namespace names that the term applies to.
11051 The term is applied to the union of the namespaces listed in this field
11052 and the ones selected by namespaceSelector.
11053 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
11054 type: array
11055 items:
11056 type: string
11057 x-kubernetes-list-type: atomic
11058 topologyKey:
11059 description: |-
11060 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
11061 the labelSelector in the specified namespaces, where co-located is defined as running on a node
11062 whose value of the label with key topologyKey matches that of any node on which any of the
11063 selected pods is running.
11064 Empty topologyKey is not allowed.
11065 type: string
11066 x-kubernetes-list-type: atomic
11067 imagePullSecrets:
11068 description: If specified, the pod's imagePullSecrets
11069 type: array
11070 items:
11071 description: |-
11072 LocalObjectReference contains enough information to let you locate the
11073 referenced object inside the same namespace.
11074 type: object
11075 properties:
11076 name:
11077 description: |-
11078 Name of the referent.
11079 This field is effectively required, but due to backwards compatibility is
11080 allowed to be empty. Instances of this type with an empty value here are
11081 almost certainly wrong.
11082 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11083 type: string
11084 default: ""
11085 x-kubernetes-map-type: atomic
11086 nodeSelector:
11087 description: |-
11088 NodeSelector is a selector which must be true for the pod to fit on a node.
11089 Selector which must match a node's labels for the pod to be scheduled on that node.
11090 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
11091 type: object
11092 additionalProperties:
11093 type: string
11094 priorityClassName:
11095 description: If specified, the pod's priorityClassName.
11096 type: string
11097 securityContext:
11098 description: If specified, the pod's security context
11099 type: object
11100 properties:
11101 fsGroup:
11102 description: |-
11103 A special supplemental group that applies to all containers in a pod.
11104 Some volume types allow the Kubelet to change the ownership of that volume
11105 to be owned by the pod:
11106
11107 1. The owning GID will be the FSGroup
11108 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
11109 3. The permission bits are OR'd with rw-rw----
11110
11111 If unset, the Kubelet will not modify the ownership and permissions of any volume.
11112 Note that this field cannot be set when spec.os.name is windows.
11113 type: integer
11114 format: int64
11115 fsGroupChangePolicy:
11116 description: |-
11117 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
11118 before being exposed inside Pod. This field will only apply to
11119 volume types which support fsGroup based ownership(and permissions).
11120 It will have no effect on ephemeral volume types such as: secret, configmaps
11121 and emptydir.
11122 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
11123 Note that this field cannot be set when spec.os.name is windows.
11124 type: string
11125 runAsGroup:
11126 description: |-
11127 The GID to run the entrypoint of the container process.
11128 Uses runtime default if unset.
11129 May also be set in SecurityContext. If set in both SecurityContext and
11130 PodSecurityContext, the value specified in SecurityContext takes precedence
11131 for that container.
11132 Note that this field cannot be set when spec.os.name is windows.
11133 type: integer
11134 format: int64
11135 runAsNonRoot:
11136 description: |-
11137 Indicates that the container must run as a non-root user.
11138 If true, the Kubelet will validate the image at runtime to ensure that it
11139 does not run as UID 0 (root) and fail to start the container if it does.
11140 If unset or false, no such validation will be performed.
11141 May also be set in SecurityContext. If set in both SecurityContext and
11142 PodSecurityContext, the value specified in SecurityContext takes precedence.
11143 type: boolean
11144 runAsUser:
11145 description: |-
11146 The UID to run the entrypoint of the container process.
11147 Defaults to user specified in image metadata if unspecified.
11148 May also be set in SecurityContext. If set in both SecurityContext and
11149 PodSecurityContext, the value specified in SecurityContext takes precedence
11150 for that container.
11151 Note that this field cannot be set when spec.os.name is windows.
11152 type: integer
11153 format: int64
11154 seLinuxOptions:
11155 description: |-
11156 The SELinux context to be applied to all containers.
11157 If unspecified, the container runtime will allocate a random SELinux context for each
11158 container. May also be set in SecurityContext. If set in
11159 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
11160 takes precedence for that container.
11161 Note that this field cannot be set when spec.os.name is windows.
11162 type: object
11163 properties:
11164 level:
11165 description: Level is SELinux level label that applies to the container.
11166 type: string
11167 role:
11168 description: Role is a SELinux role label that applies to the container.
11169 type: string
11170 type:
11171 description: Type is a SELinux type label that applies to the container.
11172 type: string
11173 user:
11174 description: User is a SELinux user label that applies to the container.
11175 type: string
11176 seccompProfile:
11177 description: |-
11178 The seccomp options to use by the containers in this pod.
11179 Note that this field cannot be set when spec.os.name is windows.
11180 type: object
11181 required:
11182 - type
11183 properties:
11184 localhostProfile:
11185 description: |-
11186 localhostProfile indicates a profile defined in a file on the node should be used.
11187 The profile must be preconfigured on the node to work.
11188 Must be a descending path, relative to the kubelet's configured seccomp profile location.
11189 Must be set if type is "Localhost". Must NOT be set for any other type.
11190 type: string
11191 type:
11192 description: |-
11193 type indicates which kind of seccomp profile will be applied.
11194 Valid options are:
11195
11196 Localhost - a profile defined in a file on the node should be used.
11197 RuntimeDefault - the container runtime default profile should be used.
11198 Unconfined - no profile should be applied.
11199 type: string
11200 supplementalGroups:
11201 description: |-
11202 A list of groups applied to the first process run in each container, in addition
11203 to the container's primary GID, the fsGroup (if specified), and group memberships
11204 defined in the container image for the uid of the container process. If unspecified,
11205 no additional groups are added to any container. Note that group memberships
11206 defined in the container image for the uid of the container process are still effective,
11207 even if they are not included in this list.
11208 Note that this field cannot be set when spec.os.name is windows.
11209 type: array
11210 items:
11211 type: integer
11212 format: int64
11213 sysctls:
11214 description: |-
11215 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
11216 sysctls (by the container runtime) might fail to launch.
11217 Note that this field cannot be set when spec.os.name is windows.
11218 type: array
11219 items:
11220 description: Sysctl defines a kernel parameter to be set
11221 type: object
11222 required:
11223 - name
11224 - value
11225 properties:
11226 name:
11227 description: Name of a property to set
11228 type: string
11229 value:
11230 description: Value of a property to set
11231 type: string
11232 serviceAccountName:
11233 description: If specified, the pod's service account
11234 type: string
11235 tolerations:
11236 description: If specified, the pod's tolerations.
11237 type: array
11238 items:
11239 description: |-
11240 The pod this Toleration is attached to tolerates any taint that matches
11241 the triple <key,value,effect> using the matching operator <operator>.
11242 type: object
11243 properties:
11244 effect:
11245 description: |-
11246 Effect indicates the taint effect to match. Empty means match all taint effects.
11247 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
11248 type: string
11249 key:
11250 description: |-
11251 Key is the taint key that the toleration applies to. Empty means match all taint keys.
11252 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
11253 type: string
11254 operator:
11255 description: |-
11256 Operator represents a key's relationship to the value.
11257 Valid operators are Exists and Equal. Defaults to Equal.
11258 Exists is equivalent to wildcard for value, so that a pod can
11259 tolerate all taints of a particular category.
11260 type: string
11261 tolerationSeconds:
11262 description: |-
11263 TolerationSeconds represents the period of time the toleration (which must be
11264 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
11265 it is not set, which means tolerate the taint forever (do not evict). Zero and
11266 negative values will be treated as 0 (evict immediately) by the system.
11267 type: integer
11268 format: int64
11269 value:
11270 description: |-
11271 Value is the taint value the toleration matches to.
11272 If the operator is Exists, the value should be empty, otherwise just a regular string.
11273 type: string
11274 serviceType:
11275 description: |-
11276 Optional service type for Kubernetes solver service. Supported values
11277 are NodePort or ClusterIP. If unset, defaults to NodePort.
11278 type: string
11279 selector:
11280 description: |-
11281 Selector selects a set of DNSNames on the Certificate resource that
11282 should be solved using this challenge solver.
11283 If not specified, the solver will be treated as the 'default' solver
11284 with the lowest priority, i.e. if any other solver has a more specific
11285 match, it will be used instead.
11286 type: object
11287 properties:
11288 dnsNames:
11289 description: |-
11290 List of DNSNames that this solver will be used to solve.
11291 If specified and a match is found, a dnsNames selector will take
11292 precedence over a dnsZones selector.
11293 If multiple solvers match with the same dnsNames value, the solver
11294 with the most matching labels in matchLabels will be selected.
11295 If neither has more matches, the solver defined earlier in the list
11296 will be selected.
11297 type: array
11298 items:
11299 type: string
11300 dnsZones:
11301 description: |-
11302 List of DNSZones that this solver will be used to solve.
11303 The most specific DNS zone match specified here will take precedence
11304 over other DNS zone matches, so a solver specifying sys.example.com
11305 will be selected over one specifying example.com for the domain
11306 www.sys.example.com.
11307 If multiple solvers match with the same dnsZones value, the solver
11308 with the most matching labels in matchLabels will be selected.
11309 If neither has more matches, the solver defined earlier in the list
11310 will be selected.
11311 type: array
11312 items:
11313 type: string
11314 matchLabels:
11315 description: |-
11316 A label selector that is used to refine the set of certificate's that
11317 this challenge solver will apply to.
11318 type: object
11319 additionalProperties:
11320 type: string
11321 ca:
11322 description: |-
11323 CA configures this issuer to sign certificates using a signing CA keypair
11324 stored in a Secret resource.
11325 This is used to build internal PKIs that are managed by cert-manager.
11326 type: object
11327 required:
11328 - secretName
11329 properties:
11330 crlDistributionPoints:
11331 description: |-
11332 The CRL distribution points is an X.509 v3 certificate extension which identifies
11333 the location of the CRL from which the revocation of this certificate can be checked.
11334 If not set, certificates will be issued without distribution points set.
11335 type: array
11336 items:
11337 type: string
11338 issuingCertificateURLs:
11339 description: |-
11340 IssuingCertificateURLs is a list of URLs which this issuer should embed into certificates
11341 it creates. See https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1 for more details.
11342 As an example, such a URL might be "http://ca.domain.com/ca.crt".
11343 type: array
11344 items:
11345 type: string
11346 ocspServers:
11347 description: |-
11348 The OCSP server list is an X.509 v3 extension that defines a list of
11349 URLs of OCSP responders. The OCSP responders can be queried for the
11350 revocation status of an issued certificate. If not set, the
11351 certificate will be issued with no OCSP servers set. For example, an
11352 OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
11353 type: array
11354 items:
11355 type: string
11356 secretName:
11357 description: |-
11358 SecretName is the name of the secret used to sign Certificates issued
11359 by this Issuer.
11360 type: string
11361 selfSigned:
11362 description: |-
11363 SelfSigned configures this issuer to 'self sign' certificates using the
11364 private key used to create the CertificateRequest object.
11365 type: object
11366 properties:
11367 crlDistributionPoints:
11368 description: |-
11369 The CRL distribution points is an X.509 v3 certificate extension which identifies
11370 the location of the CRL from which the revocation of this certificate can be checked.
11371 If not set certificate will be issued without CDP. Values are strings.
11372 type: array
11373 items:
11374 type: string
11375 vault:
11376 description: |-
11377 Vault configures this issuer to sign certificates using a HashiCorp Vault
11378 PKI backend.
11379 type: object
11380 required:
11381 - auth
11382 - path
11383 - server
11384 properties:
11385 auth:
11386 description: Auth configures how cert-manager authenticates with the Vault server.
11387 type: object
11388 properties:
11389 appRole:
11390 description: |-
11391 AppRole authenticates with Vault using the App Role auth mechanism,
11392 with the role and secret stored in a Kubernetes Secret resource.
11393 type: object
11394 required:
11395 - path
11396 - roleId
11397 - secretRef
11398 properties:
11399 path:
11400 description: |-
11401 Path where the App Role authentication backend is mounted in Vault, e.g:
11402 "approle"
11403 type: string
11404 roleId:
11405 description: |-
11406 RoleID configured in the App Role authentication backend when setting
11407 up the authentication backend in Vault.
11408 type: string
11409 secretRef:
11410 description: |-
11411 Reference to a key in a Secret that contains the App Role secret used
11412 to authenticate with Vault.
11413 The `key` field must be specified and denotes which entry within the Secret
11414 resource is used as the app role secret.
11415 type: object
11416 required:
11417 - name
11418 properties:
11419 key:
11420 description: |-
11421 The key of the entry in the Secret resource's `data` field to be used.
11422 Some instances of this field may be defaulted, in others it may be
11423 required.
11424 type: string
11425 name:
11426 description: |-
11427 Name of the resource being referred to.
11428 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11429 type: string
11430 clientCertificate:
11431 description: |-
11432 ClientCertificate authenticates with Vault by presenting a client
11433 certificate during the request's TLS handshake.
11434 Works only when using HTTPS protocol.
11435 type: object
11436 properties:
11437 mountPath:
11438 description: |-
11439 The Vault mountPath here is the mount path to use when authenticating with
11440 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
11441 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
11442 default value "/v1/auth/cert" will be used.
11443 type: string
11444 name:
11445 description: |-
11446 Name of the certificate role to authenticate against.
11447 If not set, matching any certificate role, if available.
11448 type: string
11449 secretName:
11450 description: |-
11451 Reference to Kubernetes Secret of type "kubernetes.io/tls" (hence containing
11452 tls.crt and tls.key) used to authenticate to Vault using TLS client
11453 authentication.
11454 type: string
11455 kubernetes:
11456 description: |-
11457 Kubernetes authenticates with Vault by passing the ServiceAccount
11458 token stored in the named Secret resource to the Vault server.
11459 type: object
11460 required:
11461 - role
11462 properties:
11463 mountPath:
11464 description: |-
11465 The Vault mountPath here is the mount path to use when authenticating with
11466 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
11467 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
11468 default value "/v1/auth/kubernetes" will be used.
11469 type: string
11470 role:
11471 description: |-
11472 A required field containing the Vault Role to assume. A Role binds a
11473 Kubernetes ServiceAccount with a set of Vault policies.
11474 type: string
11475 secretRef:
11476 description: |-
11477 The required Secret field containing a Kubernetes ServiceAccount JWT used
11478 for authenticating with Vault. Use of 'ambient credentials' is not
11479 supported.
11480 type: object
11481 required:
11482 - name
11483 properties:
11484 key:
11485 description: |-
11486 The key of the entry in the Secret resource's `data` field to be used.
11487 Some instances of this field may be defaulted, in others it may be
11488 required.
11489 type: string
11490 name:
11491 description: |-
11492 Name of the resource being referred to.
11493 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11494 type: string
11495 serviceAccountRef:
11496 description: |-
11497 A reference to a service account that will be used to request a bound
11498 token (also known as "projected token"). Compared to using "secretRef",
11499 using this field means that you don't rely on statically bound tokens. To
11500 use this field, you must configure an RBAC rule to let cert-manager
11501 request a token.
11502 type: object
11503 required:
11504 - name
11505 properties:
11506 audiences:
11507 description: |-
11508 TokenAudiences is an optional list of extra audiences to include in the token passed to Vault. The default token
11509 consisting of the issuer's namespace and name is always included.
11510 type: array
11511 items:
11512 type: string
11513 name:
11514 description: Name of the ServiceAccount used to request a token.
11515 type: string
11516 tokenSecretRef:
11517 description: TokenSecretRef authenticates with Vault by presenting a token.
11518 type: object
11519 required:
11520 - name
11521 properties:
11522 key:
11523 description: |-
11524 The key of the entry in the Secret resource's `data` field to be used.
11525 Some instances of this field may be defaulted, in others it may be
11526 required.
11527 type: string
11528 name:
11529 description: |-
11530 Name of the resource being referred to.
11531 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11532 type: string
11533 caBundle:
11534 description: |-
11535 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
11536 chain presented by Vault. Only used if using HTTPS to connect to Vault and
11537 ignored for HTTP connections.
11538 Mutually exclusive with CABundleSecretRef.
11539 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
11540 the cert-manager controller container is used to validate the TLS connection.
11541 type: string
11542 format: byte
11543 caBundleSecretRef:
11544 description: |-
11545 Reference to a Secret containing a bundle of PEM-encoded CAs to use when
11546 verifying the certificate chain presented by Vault when using HTTPS.
11547 Mutually exclusive with CABundle.
11548 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
11549 the cert-manager controller container is used to validate the TLS connection.
11550 If no key for the Secret is specified, cert-manager will default to 'ca.crt'.
11551 type: object
11552 required:
11553 - name
11554 properties:
11555 key:
11556 description: |-
11557 The key of the entry in the Secret resource's `data` field to be used.
11558 Some instances of this field may be defaulted, in others it may be
11559 required.
11560 type: string
11561 name:
11562 description: |-
11563 Name of the resource being referred to.
11564 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11565 type: string
11566 clientCertSecretRef:
11567 description: |-
11568 Reference to a Secret containing a PEM-encoded Client Certificate to use when the
11569 Vault server requires mTLS.
11570 type: object
11571 required:
11572 - name
11573 properties:
11574 key:
11575 description: |-
11576 The key of the entry in the Secret resource's `data` field to be used.
11577 Some instances of this field may be defaulted, in others it may be
11578 required.
11579 type: string
11580 name:
11581 description: |-
11582 Name of the resource being referred to.
11583 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11584 type: string
11585 clientKeySecretRef:
11586 description: |-
11587 Reference to a Secret containing a PEM-encoded Client Private Key to use when the
11588 Vault server requires mTLS.
11589 type: object
11590 required:
11591 - name
11592 properties:
11593 key:
11594 description: |-
11595 The key of the entry in the Secret resource's `data` field to be used.
11596 Some instances of this field may be defaulted, in others it may be
11597 required.
11598 type: string
11599 name:
11600 description: |-
11601 Name of the resource being referred to.
11602 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11603 type: string
11604 namespace:
11605 description: |-
11606 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"
11607 More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
11608 type: string
11609 path:
11610 description: |-
11611 Path is the mount path of the Vault PKI backend's `sign` endpoint, e.g:
11612 "my_pki_mount/sign/my-role-name".
11613 type: string
11614 server:
11615 description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
11616 type: string
11617 serverName:
11618 description: |-
11619 ServerName is used to verify the hostname on the returned certificates
11620 by the Vault server.
11621 type: string
11622 venafi:
11623 description: |-
11624 Venafi configures this issuer to sign certificates using a Venafi TPP
11625 or Venafi Cloud policy zone.
11626 type: object
11627 required:
11628 - zone
11629 properties:
11630 cloud:
11631 description: |-
11632 Cloud specifies the Venafi cloud configuration settings.
11633 Only one of TPP or Cloud may be specified.
11634 type: object
11635 required:
11636 - apiTokenSecretRef
11637 properties:
11638 apiTokenSecretRef:
11639 description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
11640 type: object
11641 required:
11642 - name
11643 properties:
11644 key:
11645 description: |-
11646 The key of the entry in the Secret resource's `data` field to be used.
11647 Some instances of this field may be defaulted, in others it may be
11648 required.
11649 type: string
11650 name:
11651 description: |-
11652 Name of the resource being referred to.
11653 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11654 type: string
11655 url:
11656 description: |-
11657 URL is the base URL for Venafi Cloud.
11658 Defaults to "https://api.venafi.cloud/".
11659 type: string
11660 tpp:
11661 description: |-
11662 TPP specifies Trust Protection Platform configuration settings.
11663 Only one of TPP or Cloud may be specified.
11664 type: object
11665 required:
11666 - credentialsRef
11667 - url
11668 properties:
11669 caBundle:
11670 description: |-
11671 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
11672 chain presented by the TPP server. Only used if using HTTPS; ignored for HTTP.
11673 If undefined, the certificate bundle in the cert-manager controller container
11674 is used to validate the chain.
11675 type: string
11676 format: byte
11677 caBundleSecretRef:
11678 description: |-
11679 Reference to a Secret containing a base64-encoded bundle of PEM CAs
11680 which will be used to validate the certificate chain presented by the TPP server.
11681 Only used if using HTTPS; ignored for HTTP. Mutually exclusive with CABundle.
11682 If neither CABundle nor CABundleSecretRef is defined, the certificate bundle in
11683 the cert-manager controller container is used to validate the TLS connection.
11684 type: object
11685 required:
11686 - name
11687 properties:
11688 key:
11689 description: |-
11690 The key of the entry in the Secret resource's `data` field to be used.
11691 Some instances of this field may be defaulted, in others it may be
11692 required.
11693 type: string
11694 name:
11695 description: |-
11696 Name of the resource being referred to.
11697 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11698 type: string
11699 credentialsRef:
11700 description: |-
11701 CredentialsRef is a reference to a Secret containing the Venafi TPP API credentials.
11702 The secret must contain the key 'access-token' for the Access Token Authentication,
11703 or two keys, 'username' and 'password' for the API Keys Authentication.
11704 type: object
11705 required:
11706 - name
11707 properties:
11708 name:
11709 description: |-
11710 Name of the resource being referred to.
11711 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11712 type: string
11713 url:
11714 description: |-
11715 URL is the base URL for the vedsdk endpoint of the Venafi TPP instance,
11716 for example: "https://tpp.example.com/vedsdk".
11717 type: string
11718 zone:
11719 description: |-
11720 Zone is the Venafi Policy Zone to use for this issuer.
11721 All requests made to the Venafi platform will be restricted by the named
11722 zone policy.
11723 This field is required.
11724 type: string
11725 status:
11726 description: Status of the Issuer. This is set and managed automatically.
11727 type: object
11728 properties:
11729 acme:
11730 description: |-
11731 ACME specific status options.
11732 This field should only be set if the Issuer is configured to use an ACME
11733 server to issue certificates.
11734 type: object
11735 properties:
11736 lastPrivateKeyHash:
11737 description: |-
11738 LastPrivateKeyHash is a hash of the private key associated with the latest
11739 registered ACME account, in order to track changes made to registered account
11740 associated with the Issuer
11741 type: string
11742 lastRegisteredEmail:
11743 description: |-
11744 LastRegisteredEmail is the email associated with the latest registered
11745 ACME account, in order to track changes made to registered account
11746 associated with the Issuer
11747 type: string
11748 uri:
11749 description: |-
11750 URI is the unique account identifier, which can also be used to retrieve
11751 account details from the CA
11752 type: string
11753 conditions:
11754 description: |-
11755 List of status conditions to indicate the status of a CertificateRequest.
11756 Known condition types are `Ready`.
11757 type: array
11758 items:
11759 description: IssuerCondition contains condition information for an Issuer.
11760 type: object
11761 required:
11762 - status
11763 - type
11764 properties:
11765 lastTransitionTime:
11766 description: |-
11767 LastTransitionTime is the timestamp corresponding to the last status
11768 change of this condition.
11769 type: string
11770 format: date-time
11771 message:
11772 description: |-
11773 Message is a human readable description of the details of the last
11774 transition, complementing reason.
11775 type: string
11776 observedGeneration:
11777 description: |-
11778 If set, this represents the .metadata.generation that the condition was
11779 set based upon.
11780 For instance, if .metadata.generation is currently 12, but the
11781 .status.condition[x].observedGeneration is 9, the condition is out of date
11782 with respect to the current state of the Issuer.
11783 type: integer
11784 format: int64
11785 reason:
11786 description: |-
11787 Reason is a brief machine readable explanation for the condition's last
11788 transition.
11789 type: string
11790 status:
11791 description: Status of the condition, one of (`True`, `False`, `Unknown`).
11792 type: string
11793 enum:
11794 - "True"
11795 - "False"
11796 - Unknown
11797 type:
11798 description: Type of the condition, known values are (`Ready`).
11799 type: string
11800 x-kubernetes-list-map-keys:
11801 - type
11802 x-kubernetes-list-type: map
11803 served: true
11804 storage: true
11805
11806# END crd {{- end }}
11807
11808---
11809# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
11810apiVersion: apiextensions.k8s.io/v1
11811kind: CustomResourceDefinition
11812metadata:
11813 name: orders.acme.cert-manager.io
11814 # START annotations {{- if .Values.crds.keep }}
11815 annotations:
11816 helm.sh/resource-policy: keep
11817 # END annotations {{- end }}
11818 labels:
11819 app: '{{ template "cert-manager.name" . }}'
11820 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
11821 app.kubernetes.io/instance: '{{ .Release.Name }}'
11822 app.kubernetes.io/component: "crds"
11823 # Generated labels {{- include "labels" . | nindent 4 }}
11824spec:
11825 group: acme.cert-manager.io
11826 names:
11827 kind: Order
11828 listKind: OrderList
11829 plural: orders
11830 singular: order
11831 categories:
11832 - cert-manager
11833 - cert-manager-acme
11834 scope: Namespaced
11835 versions:
11836 - name: v1
11837 subresources:
11838 status: {}
11839 additionalPrinterColumns:
11840 - jsonPath: .status.state
11841 name: State
11842 type: string
11843 - jsonPath: .spec.issuerRef.name
11844 name: Issuer
11845 priority: 1
11846 type: string
11847 - jsonPath: .status.reason
11848 name: Reason
11849 priority: 1
11850 type: string
11851 - jsonPath: .metadata.creationTimestamp
11852 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.
11853 name: Age
11854 type: date
11855 schema:
11856 openAPIV3Schema:
11857 description: Order is a type to represent an Order with an ACME server
11858 type: object
11859 required:
11860 - metadata
11861 - spec
11862 properties:
11863 apiVersion:
11864 description: |-
11865 APIVersion defines the versioned schema of this representation of an object.
11866 Servers should convert recognized schemas to the latest internal value, and
11867 may reject unrecognized values.
11868 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
11869 type: string
11870 kind:
11871 description: |-
11872 Kind is a string value representing the REST resource this object represents.
11873 Servers may infer this from the endpoint the client submits requests to.
11874 Cannot be updated.
11875 In CamelCase.
11876 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
11877 type: string
11878 metadata:
11879 type: object
11880 spec:
11881 type: object
11882 required:
11883 - issuerRef
11884 - request
11885 properties:
11886 commonName:
11887 description: |-
11888 CommonName is the common name as specified on the DER encoded CSR.
11889 If specified, this value must also be present in `dnsNames` or `ipAddresses`.
11890 This field must match the corresponding field on the DER encoded CSR.
11891 type: string
11892 dnsNames:
11893 description: |-
11894 DNSNames is a list of DNS names that should be included as part of the Order
11895 validation process.
11896 This field must match the corresponding field on the DER encoded CSR.
11897 type: array
11898 items:
11899 type: string
11900 duration:
11901 description: |-
11902 Duration is the duration for the not after date for the requested certificate.
11903 this is set on order creation as pe the ACME spec.
11904 type: string
11905 ipAddresses:
11906 description: |-
11907 IPAddresses is a list of IP addresses that should be included as part of the Order
11908 validation process.
11909 This field must match the corresponding field on the DER encoded CSR.
11910 type: array
11911 items:
11912 type: string
11913 issuerRef:
11914 description: |-
11915 IssuerRef references a properly configured ACME-type Issuer which should
11916 be used to create this Order.
11917 If the Issuer does not exist, processing will be retried.
11918 If the Issuer is not an 'ACME' Issuer, an error will be returned and the
11919 Order will be marked as failed.
11920 type: object
11921 required:
11922 - name
11923 properties:
11924 group:
11925 description: Group of the resource being referred to.
11926 type: string
11927 kind:
11928 description: Kind of the resource being referred to.
11929 type: string
11930 name:
11931 description: Name of the resource being referred to.
11932 type: string
11933 profile:
11934 description: |-
11935 Profile allows requesting a certificate profile from the ACME server.
11936 Supported profiles are listed by the server's ACME directory URL.
11937 type: string
11938 request:
11939 description: |-
11940 Certificate signing request bytes in DER encoding.
11941 This will be used when finalizing the order.
11942 This field must be set on the order.
11943 type: string
11944 format: byte
11945 status:
11946 type: object
11947 properties:
11948 authorizations:
11949 description: |-
11950 Authorizations contains data returned from the ACME server on what
11951 authorizations must be completed in order to validate the DNS names
11952 specified on the Order.
11953 type: array
11954 items:
11955 description: |-
11956 ACMEAuthorization contains data returned from the ACME server on an
11957 authorization that must be completed in order validate a DNS name on an ACME
11958 Order resource.
11959 type: object
11960 required:
11961 - url
11962 properties:
11963 challenges:
11964 description: |-
11965 Challenges specifies the challenge types offered by the ACME server.
11966 One of these challenge types will be selected when validating the DNS
11967 name and an appropriate Challenge resource will be created to perform
11968 the ACME challenge process.
11969 type: array
11970 items:
11971 description: |-
11972 Challenge specifies a challenge offered by the ACME server for an Order.
11973 An appropriate Challenge resource can be created to perform the ACME
11974 challenge process.
11975 type: object
11976 required:
11977 - token
11978 - type
11979 - url
11980 properties:
11981 token:
11982 description: |-
11983 Token is the token that must be presented for this challenge.
11984 This is used to compute the 'key' that must also be presented.
11985 type: string
11986 type:
11987 description: |-
11988 Type is the type of challenge being offered, e.g., 'http-01', 'dns-01',
11989 'tls-sni-01', etc.
11990 This is the raw value retrieved from the ACME server.
11991 Only 'http-01' and 'dns-01' are supported by cert-manager, other values
11992 will be ignored.
11993 type: string
11994 url:
11995 description: |-
11996 URL is the URL of this challenge. It can be used to retrieve additional
11997 metadata about the Challenge from the ACME server.
11998 type: string
11999 identifier:
12000 description: Identifier is the DNS name to be validated as part of this authorization
12001 type: string
12002 initialState:
12003 description: |-
12004 InitialState is the initial state of the ACME authorization when first
12005 fetched from the ACME server.
12006 If an Authorization is already 'valid', the Order controller will not
12007 create a Challenge resource for the authorization. This will occur when
12008 working with an ACME server that enables 'authz reuse' (such as Let's
12009 Encrypt's production endpoint).
12010 If not set and 'identifier' is set, the state is assumed to be pending
12011 and a Challenge will be created.
12012 type: string
12013 enum:
12014 - valid
12015 - ready
12016 - pending
12017 - processing
12018 - invalid
12019 - expired
12020 - errored
12021 url:
12022 description: URL is the URL of the Authorization that must be completed
12023 type: string
12024 wildcard:
12025 description: |-
12026 Wildcard will be true if this authorization is for a wildcard DNS name.
12027 If this is true, the identifier will be the *non-wildcard* version of
12028 the DNS name.
12029 For example, if '*.example.com' is the DNS name being validated, this
12030 field will be 'true' and the 'identifier' field will be 'example.com'.
12031 type: boolean
12032 certificate:
12033 description: |-
12034 Certificate is a copy of the PEM encoded certificate for this Order.
12035 This field will be populated after the order has been successfully
12036 finalized with the ACME server, and the order has transitioned to the
12037 'valid' state.
12038 type: string
12039 format: byte
12040 failureTime:
12041 description: |-
12042 FailureTime stores the time that this order failed.
12043 This is used to influence garbage collection and back-off.
12044 type: string
12045 format: date-time
12046 finalizeURL:
12047 description: |-
12048 FinalizeURL of the Order.
12049 This is used to obtain certificates for this order once it has been completed.
12050 type: string
12051 reason:
12052 description: |-
12053 Reason optionally provides more information about a why the order is in
12054 the current state.
12055 type: string
12056 state:
12057 description: |-
12058 State contains the current state of this Order resource.
12059 States 'success' and 'expired' are 'final'
12060 type: string
12061 enum:
12062 - valid
12063 - ready
12064 - pending
12065 - processing
12066 - invalid
12067 - expired
12068 - errored
12069 url:
12070 description: |-
12071 URL of the Order.
12072 This will initially be empty when the resource is first created.
12073 The Order controller will populate this field when the Order is first processed.
12074 This field will be immutable after it is initially set.
12075 type: string
12076 served: true
12077 storage: true
12078
12079# END crd {{- end }}