blob: f5f8ec43786b48e103660e3c84a0a7b917f83424 [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
412 This is a Beta Feature enabled by default. It can be disabled with the
413 `--feature-gates=AdditionalCertificateOutputFormats=false` option set on both
414 the controller and webhook components.
415 type: array
416 items:
417 description: |-
418 CertificateAdditionalOutputFormat defines an additional output format of a
419 Certificate resource. These contain supplementary data formats of the signed
420 certificate chain and paired private key.
421 type: object
422 required:
423 - type
424 properties:
425 type:
426 description: |-
427 Type is the name of the format type that should be written to the
428 Certificate's target Secret.
429 type: string
430 enum:
431 - DER
432 - CombinedPEM
433 commonName:
434 description: |-
435 Requested common name X509 certificate subject attribute.
436 More info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6
437 NOTE: TLS clients will ignore this value when any subject alternative name is
438 set (see https://tools.ietf.org/html/rfc6125#section-6.4.4).
439
440 Should have a length of 64 characters or fewer to avoid generating invalid CSRs.
441 Cannot be set if the `literalSubject` field is set.
442 type: string
443 dnsNames:
444 description: Requested DNS subject alternative names.
445 type: array
446 items:
447 type: string
448 duration:
449 description: |-
450 Requested 'duration' (i.e. lifetime) of the Certificate. Note that the
451 issuer may choose to ignore the requested duration, just like any other
452 requested attribute.
453
454 If unset, this defaults to 90 days.
455 Minimum accepted duration is 1 hour.
456 Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration.
457 type: string
458 emailAddresses:
459 description: Requested email subject alternative names.
460 type: array
461 items:
462 type: string
463 encodeUsagesInRequest:
464 description: |-
465 Whether the KeyUsage and ExtKeyUsage extensions should be set in the encoded CSR.
466
467 This option defaults to true, and should only be disabled if the target
468 issuer does not support CSRs with these X509 KeyUsage/ ExtKeyUsage extensions.
469 type: boolean
470 ipAddresses:
471 description: Requested IP address subject alternative names.
472 type: array
473 items:
474 type: string
475 isCA:
476 description: |-
477 Requested basic constraints isCA value.
478 The isCA value is used to set the `isCA` field on the created CertificateRequest
479 resources. Note that the issuer may choose to ignore the requested isCA value, just
480 like any other requested attribute.
481
482 If true, this will automatically add the `cert sign` usage to the list
483 of requested `usages`.
484 type: boolean
485 issuerRef:
486 description: |-
487 Reference to the issuer responsible for issuing the certificate.
488 If the issuer is namespace-scoped, it must be in the same namespace
489 as the Certificate. If the issuer is cluster-scoped, it can be used
490 from any namespace.
491
492 The `name` field of the reference must always be specified.
493 type: object
494 required:
495 - name
496 properties:
497 group:
498 description: Group of the resource being referred to.
499 type: string
500 kind:
501 description: Kind of the resource being referred to.
502 type: string
503 name:
504 description: Name of the resource being referred to.
505 type: string
506 keystores:
507 description: Additional keystore output formats to be stored in the Certificate's Secret.
508 type: object
509 properties:
510 jks:
511 description: |-
512 JKS configures options for storing a JKS keystore in the
513 `spec.secretName` Secret resource.
514 type: object
515 required:
516 - create
517 properties:
518 alias:
519 description: |-
520 Alias specifies the alias of the key in the keystore, required by the JKS format.
521 If not provided, the default alias `certificate` will be used.
522 type: string
523 create:
524 description: |-
525 Create enables JKS keystore creation for the Certificate.
526 If true, a file named `keystore.jks` will be created in the target
527 Secret resource, encrypted using the password stored in
528 `passwordSecretRef` or `password`.
529 The keystore file will be updated immediately.
530 If the issuer provided a CA certificate, a file named `truststore.jks`
531 will also be created in the target Secret resource, encrypted using the
532 password stored in `passwordSecretRef`
533 containing the issuing Certificate Authority
534 type: boolean
535 password:
536 description: |-
537 Password provides a literal password used to encrypt the JKS keystore.
538 Mutually exclusive with passwordSecretRef.
539 One of password or passwordSecretRef must provide a password with a non-zero length.
540 type: string
541 passwordSecretRef:
542 description: |-
543 PasswordSecretRef is a reference to a non-empty key in a Secret resource
544 containing the password used to encrypt the JKS keystore.
545 Mutually exclusive with password.
546 One of password or passwordSecretRef must provide a password with a non-zero length.
547 type: object
548 required:
549 - name
550 properties:
551 key:
552 description: |-
553 The key of the entry in the Secret resource's `data` field to be used.
554 Some instances of this field may be defaulted, in others it may be
555 required.
556 type: string
557 name:
558 description: |-
559 Name of the resource being referred to.
560 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
561 type: string
562 pkcs12:
563 description: |-
564 PKCS12 configures options for storing a PKCS12 keystore in the
565 `spec.secretName` Secret resource.
566 type: object
567 required:
568 - create
569 properties:
570 create:
571 description: |-
572 Create enables PKCS12 keystore creation for the Certificate.
573 If true, a file named `keystore.p12` will be created in the target
574 Secret resource, encrypted using the password stored in
575 `passwordSecretRef` or in `password`.
576 The keystore file will be updated immediately.
577 If the issuer provided a CA certificate, a file named `truststore.p12` will
578 also be created in the target Secret resource, encrypted using the
579 password stored in `passwordSecretRef` containing the issuing Certificate
580 Authority
581 type: boolean
582 password:
583 description: |-
584 Password provides a literal password used to encrypt the PKCS#12 keystore.
585 Mutually exclusive with passwordSecretRef.
586 One of password or passwordSecretRef must provide a password with a non-zero length.
587 type: string
588 passwordSecretRef:
589 description: |-
590 PasswordSecretRef is a reference to a non-empty key in a Secret resource
591 containing the password used to encrypt the PKCS#12 keystore.
592 Mutually exclusive with password.
593 One of password or passwordSecretRef must provide a password with a non-zero length.
594 type: object
595 required:
596 - name
597 properties:
598 key:
599 description: |-
600 The key of the entry in the Secret resource's `data` field to be used.
601 Some instances of this field may be defaulted, in others it may be
602 required.
603 type: string
604 name:
605 description: |-
606 Name of the resource being referred to.
607 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
608 type: string
609 profile:
610 description: |-
611 Profile specifies the key and certificate encryption algorithms and the HMAC algorithm
612 used to create the PKCS12 keystore. Default value is `LegacyRC2` for backward compatibility.
613
614 If provided, allowed values are:
615 `LegacyRC2`: Deprecated. Not supported by default in OpenSSL 3 or Java 20.
616 `LegacyDES`: Less secure algorithm. Use this option for maximal compatibility.
617 `Modern2023`: Secure algorithm. Use this option in case you have to always use secure algorithms
618 (eg. because of company policy). Please note that the security of the algorithm is not that important
619 in reality, because the unencrypted certificate and private key are also stored in the Secret.
620 type: string
621 enum:
622 - LegacyRC2
623 - LegacyDES
624 - Modern2023
625 literalSubject:
626 description: |-
627 Requested X.509 certificate subject, represented using the LDAP "String
628 Representation of a Distinguished Name" [1].
629 Important: the LDAP string format also specifies the order of the attributes
630 in the subject, this is important when issuing certs for LDAP authentication.
631 Example: `CN=foo,DC=corp,DC=example,DC=com`
632 More info [1]: https://datatracker.ietf.org/doc/html/rfc4514
633 More info: https://github.com/cert-manager/cert-manager/issues/3203
634 More info: https://github.com/cert-manager/cert-manager/issues/4424
635
636 Cannot be set if the `subject` or `commonName` field is set.
637 type: string
638 nameConstraints:
639 description: |-
640 x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate.
641 More Info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10
642
643 This is an Alpha Feature and is only enabled with the
644 `--feature-gates=NameConstraints=true` option set on both
645 the controller and webhook components.
646 type: object
647 properties:
648 critical:
649 description: if true then the name constraints are marked critical.
650 type: boolean
651 excluded:
652 description: |-
653 Excluded contains the constraints which must be disallowed. Any name matching a
654 restriction in the excluded field is invalid regardless
655 of information appearing in the permitted
656 type: object
657 properties:
658 dnsDomains:
659 description: DNSDomains is a list of DNS domains that are permitted or excluded.
660 type: array
661 items:
662 type: string
663 emailAddresses:
664 description: EmailAddresses is a list of Email Addresses that are permitted or excluded.
665 type: array
666 items:
667 type: string
668 ipRanges:
669 description: |-
670 IPRanges is a list of IP Ranges that are permitted or excluded.
671 This should be a valid CIDR notation.
672 type: array
673 items:
674 type: string
675 uriDomains:
676 description: URIDomains is a list of URI domains that are permitted or excluded.
677 type: array
678 items:
679 type: string
680 permitted:
681 description: Permitted contains the constraints in which the names must be located.
682 type: object
683 properties:
684 dnsDomains:
685 description: DNSDomains is a list of DNS domains that are permitted or excluded.
686 type: array
687 items:
688 type: string
689 emailAddresses:
690 description: EmailAddresses is a list of Email Addresses that are permitted or excluded.
691 type: array
692 items:
693 type: string
694 ipRanges:
695 description: |-
696 IPRanges is a list of IP Ranges that are permitted or excluded.
697 This should be a valid CIDR notation.
698 type: array
699 items:
700 type: string
701 uriDomains:
702 description: URIDomains is a list of URI domains that are permitted or excluded.
703 type: array
704 items:
705 type: string
706 otherNames:
707 description: |-
708 `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
709 Any UTF8 String valued otherName can be passed with by setting the keys oid: x.x.x.x and UTF8Value: somevalue for `otherName`.
710 Most commonly this would be UPN set with oid: 1.3.6.1.4.1.311.20.2.3
711 You should ensure that any OID passed is valid for the UTF8String type as we do not explicitly validate this.
712 type: array
713 items:
714 type: object
715 properties:
716 oid:
717 description: |-
718 OID is the object identifier for the otherName SAN.
719 The object identifier must be expressed as a dotted string, for
720 example, "1.2.840.113556.1.4.221".
721 type: string
722 utf8Value:
723 description: |-
724 utf8Value is the string value of the otherName SAN.
725 The utf8Value accepts any valid UTF8 string to set as value for the otherName SAN.
726 type: string
727 privateKey:
728 description: |-
729 Private key options. These include the key algorithm and size, the used
730 encoding and the rotation policy.
731 type: object
732 properties:
733 algorithm:
734 description: |-
735 Algorithm is the private key algorithm of the corresponding private key
736 for this certificate.
737
738 If provided, allowed values are either `RSA`, `ECDSA` or `Ed25519`.
739 If `algorithm` is specified and `size` is not provided,
740 key size of 2048 will be used for `RSA` key algorithm and
741 key size of 256 will be used for `ECDSA` key algorithm.
742 key size is ignored when using the `Ed25519` key algorithm.
743 type: string
744 enum:
745 - RSA
746 - ECDSA
747 - Ed25519
748 encoding:
749 description: |-
750 The private key cryptography standards (PKCS) encoding for this
751 certificate's private key to be encoded in.
752
753 If provided, allowed values are `PKCS1` and `PKCS8` standing for PKCS#1
754 and PKCS#8, respectively.
755 Defaults to `PKCS1` if not specified.
756 type: string
757 enum:
758 - PKCS1
759 - PKCS8
760 rotationPolicy:
761 description: |-
762 RotationPolicy controls how private keys should be regenerated when a
763 re-issuance is being processed.
764
765 If set to `Never`, a private key will only be generated if one does not
766 already exist in the target `spec.secretName`. If one does exist but it
767 does not have the correct algorithm or size, a warning will be raised
768 to await user intervention.
769 If set to `Always`, a private key matching the specified requirements
770 will be generated whenever a re-issuance occurs.
771 Default is `Never` for backward compatibility.
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 If unset (`nil`), revisions will not be garbage collected.
832 Default value is `nil`.
833 type: integer
834 format: int32
835 secretName:
836 description: |-
837 Name of the Secret resource that will be automatically created and
838 managed by this Certificate resource. It will be populated with a
839 private key and certificate, signed by the denoted issuer. The Secret
840 resource lives in the same namespace as the Certificate resource.
841 type: string
842 secretTemplate:
843 description: |-
844 Defines annotations and labels to be copied to the Certificate's Secret.
845 Labels and annotations on the Secret will be changed as they appear on the
846 SecretTemplate when added or removed. SecretTemplate annotations are added
847 in conjunction with, and cannot overwrite, the base set of annotations
848 cert-manager sets on the Certificate's Secret.
849 type: object
850 properties:
851 annotations:
852 description: Annotations is a key value map to be copied to the target Kubernetes Secret.
853 type: object
854 additionalProperties:
855 type: string
856 labels:
857 description: Labels is a key value map to be copied to the target Kubernetes Secret.
858 type: object
859 additionalProperties:
860 type: string
861 subject:
862 description: |-
863 Requested set of X509 certificate subject attributes.
864 More info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6
865
866 The common name attribute is specified separately in the `commonName` field.
867 Cannot be set if the `literalSubject` field is set.
868 type: object
869 properties:
870 countries:
871 description: Countries to be used on the Certificate.
872 type: array
873 items:
874 type: string
875 localities:
876 description: Cities to be used on the Certificate.
877 type: array
878 items:
879 type: string
880 organizationalUnits:
881 description: Organizational Units to be used on the Certificate.
882 type: array
883 items:
884 type: string
885 organizations:
886 description: Organizations to be used on the Certificate.
887 type: array
888 items:
889 type: string
890 postalCodes:
891 description: Postal codes to be used on the Certificate.
892 type: array
893 items:
894 type: string
895 provinces:
896 description: State/Provinces to be used on the Certificate.
897 type: array
898 items:
899 type: string
900 serialNumber:
901 description: Serial number to be used on the Certificate.
902 type: string
903 streetAddresses:
904 description: Street addresses to be used on the Certificate.
905 type: array
906 items:
907 type: string
908 uris:
909 description: Requested URI subject alternative names.
910 type: array
911 items:
912 type: string
913 usages:
914 description: |-
915 Requested key usages and extended key usages.
916 These usages are used to set the `usages` field on the created CertificateRequest
917 resources. If `encodeUsagesInRequest` is unset or set to `true`, the usages
918 will additionally be encoded in the `request` field which contains the CSR blob.
919
920 If unset, defaults to `digital signature` and `key encipherment`.
921 type: array
922 items:
923 description: |-
924 KeyUsage specifies valid usage contexts for keys.
925 See:
926 https://tools.ietf.org/html/rfc5280#section-4.2.1.3
927 https://tools.ietf.org/html/rfc5280#section-4.2.1.12
928
929 Valid KeyUsage values are as follows:
930 "signing",
931 "digital signature",
932 "content commitment",
933 "key encipherment",
934 "key agreement",
935 "data encipherment",
936 "cert sign",
937 "crl sign",
938 "encipher only",
939 "decipher only",
940 "any",
941 "server auth",
942 "client auth",
943 "code signing",
944 "email protection",
945 "s/mime",
946 "ipsec end system",
947 "ipsec tunnel",
948 "ipsec user",
949 "timestamping",
950 "ocsp signing",
951 "microsoft sgc",
952 "netscape sgc"
953 type: string
954 enum:
955 - signing
956 - digital signature
957 - content commitment
958 - key encipherment
959 - key agreement
960 - data encipherment
961 - cert sign
962 - crl sign
963 - encipher only
964 - decipher only
965 - any
966 - server auth
967 - client auth
968 - code signing
969 - email protection
970 - s/mime
971 - ipsec end system
972 - ipsec tunnel
973 - ipsec user
974 - timestamping
975 - ocsp signing
976 - microsoft sgc
977 - netscape sgc
978 status:
979 description: |-
980 Status of the Certificate.
981 This is set and managed automatically.
982 Read-only.
983 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
984 type: object
985 properties:
986 conditions:
987 description: |-
988 List of status conditions to indicate the status of certificates.
989 Known condition types are `Ready` and `Issuing`.
990 type: array
991 items:
992 description: CertificateCondition contains condition information for a Certificate.
993 type: object
994 required:
995 - status
996 - type
997 properties:
998 lastTransitionTime:
999 description: |-
1000 LastTransitionTime is the timestamp corresponding to the last status
1001 change of this condition.
1002 type: string
1003 format: date-time
1004 message:
1005 description: |-
1006 Message is a human readable description of the details of the last
1007 transition, complementing reason.
1008 type: string
1009 observedGeneration:
1010 description: |-
1011 If set, this represents the .metadata.generation that the condition was
1012 set based upon.
1013 For instance, if .metadata.generation is currently 12, but the
1014 .status.condition[x].observedGeneration is 9, the condition is out of date
1015 with respect to the current state of the Certificate.
1016 type: integer
1017 format: int64
1018 reason:
1019 description: |-
1020 Reason is a brief machine readable explanation for the condition's last
1021 transition.
1022 type: string
1023 status:
1024 description: Status of the condition, one of (`True`, `False`, `Unknown`).
1025 type: string
1026 enum:
1027 - "True"
1028 - "False"
1029 - Unknown
1030 type:
1031 description: Type of the condition, known values are (`Ready`, `Issuing`).
1032 type: string
1033 x-kubernetes-list-map-keys:
1034 - type
1035 x-kubernetes-list-type: map
1036 failedIssuanceAttempts:
1037 description: |-
1038 The number of continuous failed issuance attempts up till now. This
1039 field gets removed (if set) on a successful issuance and gets set to
1040 1 if unset and an issuance has failed. If an issuance has failed, the
1041 delay till the next issuance will be calculated using formula
1042 time.Hour * 2 ^ (failedIssuanceAttempts - 1).
1043 type: integer
1044 lastFailureTime:
1045 description: |-
1046 LastFailureTime is set only if the latest issuance for this
1047 Certificate failed and contains the time of the failure. If an
1048 issuance has failed, the delay till the next issuance will be
1049 calculated using formula time.Hour * 2 ^ (failedIssuanceAttempts -
1050 1). If the latest issuance has succeeded this field will be unset.
1051 type: string
1052 format: date-time
1053 nextPrivateKeySecretName:
1054 description: |-
1055 The name of the Secret resource containing the private key to be used
1056 for the next certificate iteration.
1057 The keymanager controller will automatically set this field if the
1058 `Issuing` condition is set to `True`.
1059 It will automatically unset this field when the Issuing condition is
1060 not set or False.
1061 type: string
1062 notAfter:
1063 description: |-
1064 The expiration time of the certificate stored in the secret named
1065 by this resource in `spec.secretName`.
1066 type: string
1067 format: date-time
1068 notBefore:
1069 description: |-
1070 The time after which the certificate stored in the secret named
1071 by this resource in `spec.secretName` is valid.
1072 type: string
1073 format: date-time
1074 renewalTime:
1075 description: |-
1076 RenewalTime is the time at which the certificate will be next
1077 renewed.
1078 If not set, no upcoming renewal is scheduled.
1079 type: string
1080 format: date-time
1081 revision:
1082 description: |-
1083 The current 'revision' of the certificate as issued.
1084
1085 When a CertificateRequest resource is created, it will have the
1086 `cert-manager.io/certificate-revision` set to one greater than the
1087 current value of this field.
1088
1089 Upon issuance, this field will be set to the value of the annotation
1090 on the CertificateRequest resource used to issue the certificate.
1091
1092 Persisting the value on the CertificateRequest resource allows the
1093 certificates controller to know whether a request is part of an old
1094 issuance or if it is part of the ongoing revision's issuance by
1095 checking if the revision value in the annotation is greater than this
1096 field.
1097 type: integer
1098 served: true
1099 storage: true
1100
1101# END crd {{- end }}
1102
1103---
1104# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
1105apiVersion: apiextensions.k8s.io/v1
1106kind: CustomResourceDefinition
1107metadata:
1108 name: challenges.acme.cert-manager.io
1109 # START annotations {{- if .Values.crds.keep }}
1110 annotations:
1111 helm.sh/resource-policy: keep
1112 # END annotations {{- end }}
1113 labels:
1114 app: '{{ template "cert-manager.name" . }}'
1115 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
1116 app.kubernetes.io/instance: '{{ .Release.Name }}'
1117 # Generated labels {{- include "labels" . | nindent 4 }}
1118spec:
1119 group: acme.cert-manager.io
1120 names:
1121 kind: Challenge
1122 listKind: ChallengeList
1123 plural: challenges
1124 singular: challenge
1125 categories:
1126 - cert-manager
1127 - cert-manager-acme
1128 scope: Namespaced
1129 versions:
1130 - additionalPrinterColumns:
1131 - jsonPath: .status.state
1132 name: State
1133 type: string
1134 - jsonPath: .spec.dnsName
1135 name: Domain
1136 type: string
1137 - jsonPath: .status.reason
1138 name: Reason
1139 priority: 1
1140 type: string
1141 - 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.
1142 jsonPath: .metadata.creationTimestamp
1143 name: Age
1144 type: date
1145 name: v1
1146 schema:
1147 openAPIV3Schema:
1148 description: Challenge is a type to represent a Challenge request with an ACME server
1149 type: object
1150 required:
1151 - metadata
1152 - spec
1153 properties:
1154 apiVersion:
1155 description: |-
1156 APIVersion defines the versioned schema of this representation of an object.
1157 Servers should convert recognized schemas to the latest internal value, and
1158 may reject unrecognized values.
1159 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1160 type: string
1161 kind:
1162 description: |-
1163 Kind is a string value representing the REST resource this object represents.
1164 Servers may infer this from the endpoint the client submits requests to.
1165 Cannot be updated.
1166 In CamelCase.
1167 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1168 type: string
1169 metadata:
1170 type: object
1171 spec:
1172 type: object
1173 required:
1174 - authorizationURL
1175 - dnsName
1176 - issuerRef
1177 - key
1178 - solver
1179 - token
1180 - type
1181 - url
1182 properties:
1183 authorizationURL:
1184 description: |-
1185 The URL to the ACME Authorization resource that this
1186 challenge is a part of.
1187 type: string
1188 dnsName:
1189 description: |-
1190 dnsName is the identifier that this challenge is for, e.g. example.com.
1191 If the requested DNSName is a 'wildcard', this field MUST be set to the
1192 non-wildcard domain, e.g. for `*.example.com`, it must be `example.com`.
1193 type: string
1194 issuerRef:
1195 description: |-
1196 References a properly configured ACME-type Issuer which should
1197 be used to create this Challenge.
1198 If the Issuer does not exist, processing will be retried.
1199 If the Issuer is not an 'ACME' Issuer, an error will be returned and the
1200 Challenge will be marked as failed.
1201 type: object
1202 required:
1203 - name
1204 properties:
1205 group:
1206 description: Group of the resource being referred to.
1207 type: string
1208 kind:
1209 description: Kind of the resource being referred to.
1210 type: string
1211 name:
1212 description: Name of the resource being referred to.
1213 type: string
1214 key:
1215 description: |-
1216 The ACME challenge key for this challenge
1217 For HTTP01 challenges, this is the value that must be responded with to
1218 complete the HTTP01 challenge in the format:
1219 `<private key JWK thumbprint>.<key from acme server for challenge>`.
1220 For DNS01 challenges, this is the base64 encoded SHA256 sum of the
1221 `<private key JWK thumbprint>.<key from acme server for challenge>`
1222 text that must be set as the TXT record content.
1223 type: string
1224 solver:
1225 description: |-
1226 Contains the domain solving configuration that should be used to
1227 solve this challenge resource.
1228 type: object
1229 properties:
1230 dns01:
1231 description: |-
1232 Configures cert-manager to attempt to complete authorizations by
1233 performing the DNS01 challenge flow.
1234 type: object
1235 properties:
1236 acmeDNS:
1237 description: |-
1238 Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage
1239 DNS01 challenge records.
1240 type: object
1241 required:
1242 - accountSecretRef
1243 - host
1244 properties:
1245 accountSecretRef:
1246 description: |-
1247 A reference to a specific 'key' within a Secret resource.
1248 In some instances, `key` is a required field.
1249 type: object
1250 required:
1251 - name
1252 properties:
1253 key:
1254 description: |-
1255 The key of the entry in the Secret resource's `data` field to be used.
1256 Some instances of this field may be defaulted, in others it may be
1257 required.
1258 type: string
1259 name:
1260 description: |-
1261 Name of the resource being referred to.
1262 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1263 type: string
1264 host:
1265 type: string
1266 akamai:
1267 description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
1268 type: object
1269 required:
1270 - accessTokenSecretRef
1271 - clientSecretSecretRef
1272 - clientTokenSecretRef
1273 - serviceConsumerDomain
1274 properties:
1275 accessTokenSecretRef:
1276 description: |-
1277 A reference to a specific 'key' within a Secret resource.
1278 In some instances, `key` is a required field.
1279 type: object
1280 required:
1281 - name
1282 properties:
1283 key:
1284 description: |-
1285 The key of the entry in the Secret resource's `data` field to be used.
1286 Some instances of this field may be defaulted, in others it may be
1287 required.
1288 type: string
1289 name:
1290 description: |-
1291 Name of the resource being referred to.
1292 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1293 type: string
1294 clientSecretSecretRef:
1295 description: |-
1296 A reference to a specific 'key' within a Secret resource.
1297 In some instances, `key` is a required field.
1298 type: object
1299 required:
1300 - name
1301 properties:
1302 key:
1303 description: |-
1304 The key of the entry in the Secret resource's `data` field to be used.
1305 Some instances of this field may be defaulted, in others it may be
1306 required.
1307 type: string
1308 name:
1309 description: |-
1310 Name of the resource being referred to.
1311 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1312 type: string
1313 clientTokenSecretRef:
1314 description: |-
1315 A reference to a specific 'key' within a Secret resource.
1316 In some instances, `key` is a required field.
1317 type: object
1318 required:
1319 - name
1320 properties:
1321 key:
1322 description: |-
1323 The key of the entry in the Secret resource's `data` field to be used.
1324 Some instances of this field may be defaulted, in others it may be
1325 required.
1326 type: string
1327 name:
1328 description: |-
1329 Name of the resource being referred to.
1330 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1331 type: string
1332 serviceConsumerDomain:
1333 type: string
1334 azureDNS:
1335 description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
1336 type: object
1337 required:
1338 - resourceGroupName
1339 - subscriptionID
1340 properties:
1341 clientID:
1342 description: |-
1343 Auth: Azure Service Principal:
1344 The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
1345 If set, ClientSecret and TenantID must also be set.
1346 type: string
1347 clientSecretSecretRef:
1348 description: |-
1349 Auth: Azure Service Principal:
1350 A reference to a Secret containing the password associated with the Service Principal.
1351 If set, ClientID and TenantID must also be set.
1352 type: object
1353 required:
1354 - name
1355 properties:
1356 key:
1357 description: |-
1358 The key of the entry in the Secret resource's `data` field to be used.
1359 Some instances of this field may be defaulted, in others it may be
1360 required.
1361 type: string
1362 name:
1363 description: |-
1364 Name of the resource being referred to.
1365 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1366 type: string
1367 environment:
1368 description: name of the Azure environment (default AzurePublicCloud)
1369 type: string
1370 enum:
1371 - AzurePublicCloud
1372 - AzureChinaCloud
1373 - AzureGermanCloud
1374 - AzureUSGovernmentCloud
1375 hostedZoneName:
1376 description: name of the DNS zone that should be used
1377 type: string
1378 managedIdentity:
1379 description: |-
1380 Auth: Azure Workload Identity or Azure Managed Service Identity:
1381 Settings to enable Azure Workload Identity or Azure Managed Service Identity
1382 If set, ClientID, ClientSecret and TenantID must not be set.
1383 type: object
1384 properties:
1385 clientID:
1386 description: client ID of the managed identity, can not be used at the same time as resourceID
1387 type: string
1388 resourceID:
1389 description: |-
1390 resource ID of the managed identity, can not be used at the same time as clientID
1391 Cannot be used for Azure Managed Service Identity
1392 type: string
1393 tenantID:
1394 description: tenant ID of the managed identity, can not be used at the same time as resourceID
1395 type: string
1396 resourceGroupName:
1397 description: resource group the DNS zone is located in
1398 type: string
1399 subscriptionID:
1400 description: ID of the Azure subscription
1401 type: string
1402 tenantID:
1403 description: |-
1404 Auth: Azure Service Principal:
1405 The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
1406 If set, ClientID and ClientSecret must also be set.
1407 type: string
1408 cloudDNS:
1409 description: Use the Google Cloud DNS API to manage DNS01 challenge records.
1410 type: object
1411 required:
1412 - project
1413 properties:
1414 hostedZoneName:
1415 description: |-
1416 HostedZoneName is an optional field that tells cert-manager in which
1417 Cloud DNS zone the challenge record has to be created.
1418 If left empty cert-manager will automatically choose a zone.
1419 type: string
1420 project:
1421 type: string
1422 serviceAccountSecretRef:
1423 description: |-
1424 A reference to a specific 'key' within a Secret resource.
1425 In some instances, `key` is a required field.
1426 type: object
1427 required:
1428 - name
1429 properties:
1430 key:
1431 description: |-
1432 The key of the entry in the Secret resource's `data` field to be used.
1433 Some instances of this field may be defaulted, in others it may be
1434 required.
1435 type: string
1436 name:
1437 description: |-
1438 Name of the resource being referred to.
1439 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1440 type: string
1441 cloudflare:
1442 description: Use the Cloudflare API to manage DNS01 challenge records.
1443 type: object
1444 properties:
1445 apiKeySecretRef:
1446 description: |-
1447 API key to use to authenticate with Cloudflare.
1448 Note: using an API token to authenticate is now the recommended method
1449 as it allows greater control of permissions.
1450 type: object
1451 required:
1452 - name
1453 properties:
1454 key:
1455 description: |-
1456 The key of the entry in the Secret resource's `data` field to be used.
1457 Some instances of this field may be defaulted, in others it may be
1458 required.
1459 type: string
1460 name:
1461 description: |-
1462 Name of the resource being referred to.
1463 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1464 type: string
1465 apiTokenSecretRef:
1466 description: API token used to authenticate with Cloudflare.
1467 type: object
1468 required:
1469 - name
1470 properties:
1471 key:
1472 description: |-
1473 The key of the entry in the Secret resource's `data` field to be used.
1474 Some instances of this field may be defaulted, in others it may be
1475 required.
1476 type: string
1477 name:
1478 description: |-
1479 Name of the resource being referred to.
1480 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1481 type: string
1482 email:
1483 description: Email of the account, only required when using API key based authentication.
1484 type: string
1485 cnameStrategy:
1486 description: |-
1487 CNAMEStrategy configures how the DNS01 provider should handle CNAME
1488 records when found in DNS zones.
1489 type: string
1490 enum:
1491 - None
1492 - Follow
1493 digitalocean:
1494 description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
1495 type: object
1496 required:
1497 - tokenSecretRef
1498 properties:
1499 tokenSecretRef:
1500 description: |-
1501 A reference to a specific 'key' within a Secret resource.
1502 In some instances, `key` is a required field.
1503 type: object
1504 required:
1505 - name
1506 properties:
1507 key:
1508 description: |-
1509 The key of the entry in the Secret resource's `data` field to be used.
1510 Some instances of this field may be defaulted, in others it may be
1511 required.
1512 type: string
1513 name:
1514 description: |-
1515 Name of the resource being referred to.
1516 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1517 type: string
1518 rfc2136:
1519 description: |-
1520 Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/)
1521 to manage DNS01 challenge records.
1522 type: object
1523 required:
1524 - nameserver
1525 properties:
1526 nameserver:
1527 description: |-
1528 The IP address or hostname of an authoritative DNS server supporting
1529 RFC2136 in the form host:port. If the host is an IPv6 address it must be
1530 enclosed in square brackets (e.g [2001:db8::1]) ; port is optional.
1531 This field is required.
1532 type: string
1533 tsigAlgorithm:
1534 description: |-
1535 The TSIG Algorithm configured in the DNS supporting RFC2136. Used only
1536 when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined.
1537 Supported values are (case-insensitive): ``HMACMD5`` (default),
1538 ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.
1539 type: string
1540 tsigKeyName:
1541 description: |-
1542 The TSIG Key name configured in the DNS.
1543 If ``tsigSecretSecretRef`` is defined, this field is required.
1544 type: string
1545 tsigSecretSecretRef:
1546 description: |-
1547 The name of the secret containing the TSIG value.
1548 If ``tsigKeyName`` is defined, this field is required.
1549 type: object
1550 required:
1551 - name
1552 properties:
1553 key:
1554 description: |-
1555 The key of the entry in the Secret resource's `data` field to be used.
1556 Some instances of this field may be defaulted, in others it may be
1557 required.
1558 type: string
1559 name:
1560 description: |-
1561 Name of the resource being referred to.
1562 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1563 type: string
1564 route53:
1565 description: Use the AWS Route53 API to manage DNS01 challenge records.
1566 type: object
1567 properties:
1568 accessKeyID:
1569 description: |-
1570 The AccessKeyID is used for authentication.
1571 Cannot be set when SecretAccessKeyID is set.
1572 If neither the Access Key nor Key ID are set, we fall-back to using env
1573 vars, shared credentials file or AWS Instance metadata,
1574 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
1575 type: string
1576 accessKeyIDSecretRef:
1577 description: |-
1578 The SecretAccessKey is used for authentication. If set, pull the AWS
1579 access key ID from a key within a Kubernetes Secret.
1580 Cannot be set when AccessKeyID is set.
1581 If neither the Access Key nor Key ID are set, we fall-back to using env
1582 vars, shared credentials file or AWS Instance metadata,
1583 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
1584 type: object
1585 required:
1586 - name
1587 properties:
1588 key:
1589 description: |-
1590 The key of the entry in the Secret resource's `data` field to be used.
1591 Some instances of this field may be defaulted, in others it may be
1592 required.
1593 type: string
1594 name:
1595 description: |-
1596 Name of the resource being referred to.
1597 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1598 type: string
1599 auth:
1600 description: Auth configures how cert-manager authenticates.
1601 type: object
1602 required:
1603 - kubernetes
1604 properties:
1605 kubernetes:
1606 description: |-
1607 Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
1608 by passing a bound ServiceAccount token.
1609 type: object
1610 required:
1611 - serviceAccountRef
1612 properties:
1613 serviceAccountRef:
1614 description: |-
1615 A reference to a service account that will be used to request a bound
1616 token (also known as "projected token"). To use this field, you must
1617 configure an RBAC rule to let cert-manager request a token.
1618 type: object
1619 required:
1620 - name
1621 properties:
1622 audiences:
1623 description: |-
1624 TokenAudiences is an optional list of audiences to include in the
1625 token passed to AWS. The default token consisting of the issuer's namespace
1626 and name is always included.
1627 If unset the audience defaults to `sts.amazonaws.com`.
1628 type: array
1629 items:
1630 type: string
1631 name:
1632 description: Name of the ServiceAccount used to request a token.
1633 type: string
1634 hostedZoneID:
1635 description: If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.
1636 type: string
1637 region:
1638 description: |-
1639 Override the AWS region.
1640
1641 Route53 is a global service and does not have regional endpoints but the
1642 region specified here (or via environment variables) is used as a hint to
1643 help compute the correct AWS credential scope and partition when it
1644 connects to Route53. See:
1645 - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html)
1646 - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html)
1647
1648 If you omit this region field, cert-manager will use the region from
1649 AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set
1650 in the cert-manager controller Pod.
1651
1652 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).
1653 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
1654 [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook).
1655 In this case this `region` field value is ignored.
1656
1657 The `region` field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
1658 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
1659 [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent),
1660 In this case this `region` field value is ignored.
1661 type: string
1662 role:
1663 description: |-
1664 Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
1665 or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
1666 type: string
1667 secretAccessKeySecretRef:
1668 description: |-
1669 The SecretAccessKey is used for authentication.
1670 If neither the Access Key nor Key ID are set, we fall-back to using env
1671 vars, shared credentials file or AWS Instance metadata,
1672 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
1673 type: object
1674 required:
1675 - name
1676 properties:
1677 key:
1678 description: |-
1679 The key of the entry in the Secret resource's `data` field to be used.
1680 Some instances of this field may be defaulted, in others it may be
1681 required.
1682 type: string
1683 name:
1684 description: |-
1685 Name of the resource being referred to.
1686 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1687 type: string
1688 webhook:
1689 description: |-
1690 Configure an external webhook based DNS01 challenge solver to manage
1691 DNS01 challenge records.
1692 type: object
1693 required:
1694 - groupName
1695 - solverName
1696 properties:
1697 config:
1698 description: |-
1699 Additional configuration that should be passed to the webhook apiserver
1700 when challenges are processed.
1701 This can contain arbitrary JSON data.
1702 Secret values should not be specified in this stanza.
1703 If secret values are needed (e.g. credentials for a DNS service), you
1704 should use a SecretKeySelector to reference a Secret resource.
1705 For details on the schema of this field, consult the webhook provider
1706 implementation's documentation.
1707 x-kubernetes-preserve-unknown-fields: true
1708 groupName:
1709 description: |-
1710 The API group name that should be used when POSTing ChallengePayload
1711 resources to the webhook apiserver.
1712 This should be the same as the GroupName specified in the webhook
1713 provider implementation.
1714 type: string
1715 solverName:
1716 description: |-
1717 The name of the solver to use, as defined in the webhook provider
1718 implementation.
1719 This will typically be the name of the provider, e.g. 'cloudflare'.
1720 type: string
1721 http01:
1722 description: |-
1723 Configures cert-manager to attempt to complete authorizations by
1724 performing the HTTP01 challenge flow.
1725 It is not possible to obtain certificates for wildcard domain names
1726 (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
1727 type: object
1728 properties:
1729 gatewayHTTPRoute:
1730 description: |-
1731 The Gateway API is a sig-network community API that models service networking
1732 in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will
1733 create HTTPRoutes with the specified labels in the same namespace as the challenge.
1734 This solver is experimental, and fields / behaviour may change in the future.
1735 type: object
1736 properties:
1737 labels:
1738 description: |-
1739 Custom labels that will be applied to HTTPRoutes created by cert-manager
1740 while solving HTTP-01 challenges.
1741 type: object
1742 additionalProperties:
1743 type: string
1744 parentRefs:
1745 description: |-
1746 When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute.
1747 cert-manager needs to know which parentRefs should be used when creating
1748 the HTTPRoute. Usually, the parentRef references a Gateway. See:
1749 https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways
1750 type: array
1751 items:
1752 description: |-
1753 ParentReference identifies an API object (usually a Gateway) that can be considered
1754 a parent of this resource (usually a route). There are two kinds of parent resources
1755 with "Core" support:
1756
1757 * Gateway (Gateway conformance profile)
1758 * Service (Mesh conformance profile, ClusterIP Services only)
1759
1760 This API may be extended in the future to support additional kinds of parent
1761 resources.
1762
1763 The API object must be valid in the cluster; the Group and Kind must
1764 be registered in the cluster for this reference to be valid.
1765 type: object
1766 required:
1767 - name
1768 properties:
1769 group:
1770 description: |-
1771 Group is the group of the referent.
1772 When unspecified, "gateway.networking.k8s.io" is inferred.
1773 To set the core API group (such as for a "Service" kind referent),
1774 Group must be explicitly set to "" (empty string).
1775
1776 Support: Core
1777 type: string
1778 default: gateway.networking.k8s.io
1779 maxLength: 253
1780 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
1781 kind:
1782 description: |-
1783 Kind is kind of the referent.
1784
1785 There are two kinds of parent resources with "Core" support:
1786
1787 * Gateway (Gateway conformance profile)
1788 * Service (Mesh conformance profile, ClusterIP Services only)
1789
1790 Support for other resources is Implementation-Specific.
1791 type: string
1792 default: Gateway
1793 maxLength: 63
1794 minLength: 1
1795 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
1796 name:
1797 description: |-
1798 Name is the name of the referent.
1799
1800 Support: Core
1801 type: string
1802 maxLength: 253
1803 minLength: 1
1804 namespace:
1805 description: |-
1806 Namespace is the namespace of the referent. When unspecified, this refers
1807 to the local namespace of the Route.
1808
1809 Note that there are specific rules for ParentRefs which cross namespace
1810 boundaries. Cross-namespace references are only valid if they are explicitly
1811 allowed by something in the namespace they are referring to. For example:
1812 Gateway has the AllowedRoutes field, and ReferenceGrant provides a
1813 generic way to enable any other kind of cross-namespace reference.
1814
1815 <gateway:experimental:description>
1816 ParentRefs from a Route to a Service in the same namespace are "producer"
1817 routes, which apply default routing rules to inbound connections from
1818 any namespace to the Service.
1819
1820 ParentRefs from a Route to a Service in a different namespace are
1821 "consumer" routes, and these routing rules are only applied to outbound
1822 connections originating from the same namespace as the Route, for which
1823 the intended destination of the connections are a Service targeted as a
1824 ParentRef of the Route.
1825 </gateway:experimental:description>
1826
1827 Support: Core
1828 type: string
1829 maxLength: 63
1830 minLength: 1
1831 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
1832 port:
1833 description: |-
1834 Port is the network port this Route targets. It can be interpreted
1835 differently based on the type of parent resource.
1836
1837 When the parent resource is a Gateway, this targets all listeners
1838 listening on the specified port that also support this kind of Route(and
1839 select this Route). It's not recommended to set `Port` unless the
1840 networking behaviors specified in a Route must apply to a specific port
1841 as opposed to a listener(s) whose port(s) may be changed. When both Port
1842 and SectionName are specified, the name and port of the selected listener
1843 must match both specified values.
1844
1845 <gateway:experimental:description>
1846 When the parent resource is a Service, this targets a specific port in the
1847 Service spec. When both Port (experimental) and SectionName are specified,
1848 the name and port of the selected port must match both specified values.
1849 </gateway:experimental:description>
1850
1851 Implementations MAY choose to support other parent resources.
1852 Implementations supporting other types of parent resources MUST clearly
1853 document how/if Port is interpreted.
1854
1855 For the purpose of status, an attachment is considered successful as
1856 long as the parent resource accepts it partially. For example, Gateway
1857 listeners can restrict which Routes can attach to them by Route kind,
1858 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
1859 from the referencing Route, the Route MUST be considered successfully
1860 attached. If no Gateway listeners accept attachment from this Route,
1861 the Route MUST be considered detached from the Gateway.
1862
1863 Support: Extended
1864 type: integer
1865 format: int32
1866 maximum: 65535
1867 minimum: 1
1868 sectionName:
1869 description: |-
1870 SectionName is the name of a section within the target resource. In the
1871 following resources, SectionName is interpreted as the following:
1872
1873 * Gateway: Listener name. When both Port (experimental) and SectionName
1874 are specified, the name and port of the selected listener must match
1875 both specified values.
1876 * Service: Port name. When both Port (experimental) and SectionName
1877 are specified, the name and port of the selected listener must match
1878 both specified values.
1879
1880 Implementations MAY choose to support attaching Routes to other resources.
1881 If that is the case, they MUST clearly document how SectionName is
1882 interpreted.
1883
1884 When unspecified (empty string), this will reference the entire resource.
1885 For the purpose of status, an attachment is considered successful if at
1886 least one section in the parent resource accepts it. For example, Gateway
1887 listeners can restrict which Routes can attach to them by Route kind,
1888 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
1889 the referencing Route, the Route MUST be considered successfully
1890 attached. If no Gateway listeners accept attachment from this Route, the
1891 Route MUST be considered detached from the Gateway.
1892
1893 Support: Core
1894 type: string
1895 maxLength: 253
1896 minLength: 1
1897 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
1898 podTemplate:
1899 description: |-
1900 Optional pod template used to configure the ACME challenge solver pods
1901 used for HTTP01 challenges.
1902 type: object
1903 properties:
1904 metadata:
1905 description: |-
1906 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
1907 Only the 'labels' and 'annotations' fields may be set.
1908 If labels or annotations overlap with in-built values, the values here
1909 will override the in-built values.
1910 type: object
1911 properties:
1912 annotations:
1913 description: Annotations that should be added to the created ACME HTTP01 solver pods.
1914 type: object
1915 additionalProperties:
1916 type: string
1917 labels:
1918 description: Labels that should be added to the created ACME HTTP01 solver pods.
1919 type: object
1920 additionalProperties:
1921 type: string
1922 spec:
1923 description: |-
1924 PodSpec defines overrides for the HTTP01 challenge solver pod.
1925 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
1926 All other fields will be ignored.
1927 type: object
1928 properties:
1929 affinity:
1930 description: If specified, the pod's scheduling constraints
1931 type: object
1932 properties:
1933 nodeAffinity:
1934 description: Describes node affinity scheduling rules for the pod.
1935 type: object
1936 properties:
1937 preferredDuringSchedulingIgnoredDuringExecution:
1938 description: |-
1939 The scheduler will prefer to schedule pods to nodes that satisfy
1940 the affinity expressions specified by this field, but it may choose
1941 a node that violates one or more of the expressions. The node that is
1942 most preferred is the one with the greatest sum of weights, i.e.
1943 for each node that meets all of the scheduling requirements (resource
1944 request, requiredDuringScheduling affinity expressions, etc.),
1945 compute a sum by iterating through the elements of this field and adding
1946 "weight" to the sum if the node matches the corresponding matchExpressions; the
1947 node(s) with the highest sum are the most preferred.
1948 type: array
1949 items:
1950 description: |-
1951 An empty preferred scheduling term matches all objects with implicit weight 0
1952 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
1953 type: object
1954 required:
1955 - preference
1956 - weight
1957 properties:
1958 preference:
1959 description: A node selector term, associated with the corresponding weight.
1960 type: object
1961 properties:
1962 matchExpressions:
1963 description: A list of node selector requirements by node's labels.
1964 type: array
1965 items:
1966 description: |-
1967 A node selector requirement is a selector that contains values, a key, and an operator
1968 that relates the key and values.
1969 type: object
1970 required:
1971 - key
1972 - operator
1973 properties:
1974 key:
1975 description: The label key that the selector applies to.
1976 type: string
1977 operator:
1978 description: |-
1979 Represents a key's relationship to a set of values.
1980 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
1981 type: string
1982 values:
1983 description: |-
1984 An array of string values. If the operator is In or NotIn,
1985 the values array must be non-empty. If the operator is Exists or DoesNotExist,
1986 the values array must be empty. If the operator is Gt or Lt, the values
1987 array must have a single element, which will be interpreted as an integer.
1988 This array is replaced during a strategic merge patch.
1989 type: array
1990 items:
1991 type: string
1992 x-kubernetes-list-type: atomic
1993 x-kubernetes-list-type: atomic
1994 matchFields:
1995 description: A list of node selector requirements by node's fields.
1996 type: array
1997 items:
1998 description: |-
1999 A node selector requirement is a selector that contains values, a key, and an operator
2000 that relates the key and values.
2001 type: object
2002 required:
2003 - key
2004 - operator
2005 properties:
2006 key:
2007 description: The label key that the selector applies to.
2008 type: string
2009 operator:
2010 description: |-
2011 Represents a key's relationship to a set of values.
2012 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2013 type: string
2014 values:
2015 description: |-
2016 An array of string values. If the operator is In or NotIn,
2017 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2018 the values array must be empty. If the operator is Gt or Lt, the values
2019 array must have a single element, which will be interpreted as an integer.
2020 This array is replaced during a strategic merge patch.
2021 type: array
2022 items:
2023 type: string
2024 x-kubernetes-list-type: atomic
2025 x-kubernetes-list-type: atomic
2026 x-kubernetes-map-type: atomic
2027 weight:
2028 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
2029 type: integer
2030 format: int32
2031 x-kubernetes-list-type: atomic
2032 requiredDuringSchedulingIgnoredDuringExecution:
2033 description: |-
2034 If the affinity requirements specified by this field are not met at
2035 scheduling time, the pod will not be scheduled onto the node.
2036 If the affinity requirements specified by this field cease to be met
2037 at some point during pod execution (e.g. due to an update), the system
2038 may or may not try to eventually evict the pod from its node.
2039 type: object
2040 required:
2041 - nodeSelectorTerms
2042 properties:
2043 nodeSelectorTerms:
2044 description: Required. A list of node selector terms. The terms are ORed.
2045 type: array
2046 items:
2047 description: |-
2048 A null or empty node selector term matches no objects. The requirements of
2049 them are ANDed.
2050 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
2051 type: object
2052 properties:
2053 matchExpressions:
2054 description: A list of node selector requirements by node's labels.
2055 type: array
2056 items:
2057 description: |-
2058 A node selector requirement is a selector that contains values, a key, and an operator
2059 that relates the key and values.
2060 type: object
2061 required:
2062 - key
2063 - operator
2064 properties:
2065 key:
2066 description: The label key that the selector applies to.
2067 type: string
2068 operator:
2069 description: |-
2070 Represents a key's relationship to a set of values.
2071 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2072 type: string
2073 values:
2074 description: |-
2075 An array of string values. If the operator is In or NotIn,
2076 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2077 the values array must be empty. If the operator is Gt or Lt, the values
2078 array must have a single element, which will be interpreted as an integer.
2079 This array is replaced during a strategic merge patch.
2080 type: array
2081 items:
2082 type: string
2083 x-kubernetes-list-type: atomic
2084 x-kubernetes-list-type: atomic
2085 matchFields:
2086 description: A list of node selector requirements by node's fields.
2087 type: array
2088 items:
2089 description: |-
2090 A node selector requirement is a selector that contains values, a key, and an operator
2091 that relates the key and values.
2092 type: object
2093 required:
2094 - key
2095 - operator
2096 properties:
2097 key:
2098 description: The label key that the selector applies to.
2099 type: string
2100 operator:
2101 description: |-
2102 Represents a key's relationship to a set of values.
2103 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
2104 type: string
2105 values:
2106 description: |-
2107 An array of string values. If the operator is In or NotIn,
2108 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2109 the values array must be empty. If the operator is Gt or Lt, the values
2110 array must have a single element, which will be interpreted as an integer.
2111 This array is replaced during a strategic merge patch.
2112 type: array
2113 items:
2114 type: string
2115 x-kubernetes-list-type: atomic
2116 x-kubernetes-list-type: atomic
2117 x-kubernetes-map-type: atomic
2118 x-kubernetes-list-type: atomic
2119 x-kubernetes-map-type: atomic
2120 podAffinity:
2121 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
2122 type: object
2123 properties:
2124 preferredDuringSchedulingIgnoredDuringExecution:
2125 description: |-
2126 The scheduler will prefer to schedule pods to nodes that satisfy
2127 the affinity expressions specified by this field, but it may choose
2128 a node that violates one or more of the expressions. The node that is
2129 most preferred is the one with the greatest sum of weights, i.e.
2130 for each node that meets all of the scheduling requirements (resource
2131 request, requiredDuringScheduling affinity expressions, etc.),
2132 compute a sum by iterating through the elements of this field and adding
2133 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2134 node(s) with the highest sum are the most preferred.
2135 type: array
2136 items:
2137 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2138 type: object
2139 required:
2140 - podAffinityTerm
2141 - weight
2142 properties:
2143 podAffinityTerm:
2144 description: Required. A pod affinity term, associated with the corresponding weight.
2145 type: object
2146 required:
2147 - topologyKey
2148 properties:
2149 labelSelector:
2150 description: |-
2151 A label query over a set of resources, in this case pods.
2152 If it's null, this PodAffinityTerm matches with no Pods.
2153 type: object
2154 properties:
2155 matchExpressions:
2156 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2157 type: array
2158 items:
2159 description: |-
2160 A label selector requirement is a selector that contains values, a key, and an operator that
2161 relates the key and values.
2162 type: object
2163 required:
2164 - key
2165 - operator
2166 properties:
2167 key:
2168 description: key is the label key that the selector applies to.
2169 type: string
2170 operator:
2171 description: |-
2172 operator represents a key's relationship to a set of values.
2173 Valid operators are In, NotIn, Exists and DoesNotExist.
2174 type: string
2175 values:
2176 description: |-
2177 values is an array of string values. If the operator is In or NotIn,
2178 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2179 the values array must be empty. This array is replaced during a strategic
2180 merge patch.
2181 type: array
2182 items:
2183 type: string
2184 x-kubernetes-list-type: atomic
2185 x-kubernetes-list-type: atomic
2186 matchLabels:
2187 description: |-
2188 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2189 map is equivalent to an element of matchExpressions, whose key field is "key", the
2190 operator is "In", and the values array contains only "value". The requirements are ANDed.
2191 type: object
2192 additionalProperties:
2193 type: string
2194 x-kubernetes-map-type: atomic
2195 matchLabelKeys:
2196 description: |-
2197 MatchLabelKeys is a set of pod label keys to select which pods will
2198 be taken into consideration. The keys are used to lookup values from the
2199 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2200 to select the group of existing pods which pods will be taken into consideration
2201 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2202 pod labels will be ignored. The default value is empty.
2203 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2204 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2205 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2206 type: array
2207 items:
2208 type: string
2209 x-kubernetes-list-type: atomic
2210 mismatchLabelKeys:
2211 description: |-
2212 MismatchLabelKeys is a set of pod label keys to select which pods will
2213 be taken into consideration. The keys are used to lookup values from the
2214 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2215 to select the group of existing pods which pods will be taken into consideration
2216 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2217 pod labels will be ignored. The default value is empty.
2218 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2219 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2220 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2221 type: array
2222 items:
2223 type: string
2224 x-kubernetes-list-type: atomic
2225 namespaceSelector:
2226 description: |-
2227 A label query over the set of namespaces that the term applies to.
2228 The term is applied to the union of the namespaces selected by this field
2229 and the ones listed in the namespaces field.
2230 null selector and null or empty namespaces list means "this pod's namespace".
2231 An empty selector ({}) matches all namespaces.
2232 type: object
2233 properties:
2234 matchExpressions:
2235 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2236 type: array
2237 items:
2238 description: |-
2239 A label selector requirement is a selector that contains values, a key, and an operator that
2240 relates the key and values.
2241 type: object
2242 required:
2243 - key
2244 - operator
2245 properties:
2246 key:
2247 description: key is the label key that the selector applies to.
2248 type: string
2249 operator:
2250 description: |-
2251 operator represents a key's relationship to a set of values.
2252 Valid operators are In, NotIn, Exists and DoesNotExist.
2253 type: string
2254 values:
2255 description: |-
2256 values is an array of string values. If the operator is In or NotIn,
2257 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2258 the values array must be empty. This array is replaced during a strategic
2259 merge patch.
2260 type: array
2261 items:
2262 type: string
2263 x-kubernetes-list-type: atomic
2264 x-kubernetes-list-type: atomic
2265 matchLabels:
2266 description: |-
2267 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2268 map is equivalent to an element of matchExpressions, whose key field is "key", the
2269 operator is "In", and the values array contains only "value". The requirements are ANDed.
2270 type: object
2271 additionalProperties:
2272 type: string
2273 x-kubernetes-map-type: atomic
2274 namespaces:
2275 description: |-
2276 namespaces specifies a static list of namespace names that the term applies to.
2277 The term is applied to the union of the namespaces listed in this field
2278 and the ones selected by namespaceSelector.
2279 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2280 type: array
2281 items:
2282 type: string
2283 x-kubernetes-list-type: atomic
2284 topologyKey:
2285 description: |-
2286 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2287 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2288 whose value of the label with key topologyKey matches that of any node on which any of the
2289 selected pods is running.
2290 Empty topologyKey is not allowed.
2291 type: string
2292 weight:
2293 description: |-
2294 weight associated with matching the corresponding podAffinityTerm,
2295 in the range 1-100.
2296 type: integer
2297 format: int32
2298 x-kubernetes-list-type: atomic
2299 requiredDuringSchedulingIgnoredDuringExecution:
2300 description: |-
2301 If the affinity requirements specified by this field are not met at
2302 scheduling time, the pod will not be scheduled onto the node.
2303 If the affinity requirements specified by this field cease to be met
2304 at some point during pod execution (e.g. due to a pod label update), the
2305 system may or may not try to eventually evict the pod from its node.
2306 When there are multiple elements, the lists of nodes corresponding to each
2307 podAffinityTerm are intersected, i.e. all terms must be satisfied.
2308 type: array
2309 items:
2310 description: |-
2311 Defines a set of pods (namely those matching the labelSelector
2312 relative to the given namespace(s)) that this pod should be
2313 co-located (affinity) or not co-located (anti-affinity) with,
2314 where co-located is defined as running on a node whose value of
2315 the label with key <topologyKey> matches that of any node on which
2316 a pod of the set of pods is running
2317 type: object
2318 required:
2319 - topologyKey
2320 properties:
2321 labelSelector:
2322 description: |-
2323 A label query over a set of resources, in this case pods.
2324 If it's null, this PodAffinityTerm matches with no Pods.
2325 type: object
2326 properties:
2327 matchExpressions:
2328 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2329 type: array
2330 items:
2331 description: |-
2332 A label selector requirement is a selector that contains values, a key, and an operator that
2333 relates the key and values.
2334 type: object
2335 required:
2336 - key
2337 - operator
2338 properties:
2339 key:
2340 description: key is the label key that the selector applies to.
2341 type: string
2342 operator:
2343 description: |-
2344 operator represents a key's relationship to a set of values.
2345 Valid operators are In, NotIn, Exists and DoesNotExist.
2346 type: string
2347 values:
2348 description: |-
2349 values is an array of string values. If the operator is In or NotIn,
2350 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2351 the values array must be empty. This array is replaced during a strategic
2352 merge patch.
2353 type: array
2354 items:
2355 type: string
2356 x-kubernetes-list-type: atomic
2357 x-kubernetes-list-type: atomic
2358 matchLabels:
2359 description: |-
2360 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2361 map is equivalent to an element of matchExpressions, whose key field is "key", the
2362 operator is "In", and the values array contains only "value". The requirements are ANDed.
2363 type: object
2364 additionalProperties:
2365 type: string
2366 x-kubernetes-map-type: atomic
2367 matchLabelKeys:
2368 description: |-
2369 MatchLabelKeys is a set of pod label keys to select which pods will
2370 be taken into consideration. The keys are used to lookup values from the
2371 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2372 to select the group of existing pods which pods will be taken into consideration
2373 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2374 pod labels will be ignored. The default value is empty.
2375 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2376 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2377 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2378 type: array
2379 items:
2380 type: string
2381 x-kubernetes-list-type: atomic
2382 mismatchLabelKeys:
2383 description: |-
2384 MismatchLabelKeys is a set of pod label keys to select which pods will
2385 be taken into consideration. The keys are used to lookup values from the
2386 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2387 to select the group of existing pods which pods will be taken into consideration
2388 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2389 pod labels will be ignored. The default value is empty.
2390 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2391 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2392 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2393 type: array
2394 items:
2395 type: string
2396 x-kubernetes-list-type: atomic
2397 namespaceSelector:
2398 description: |-
2399 A label query over the set of namespaces that the term applies to.
2400 The term is applied to the union of the namespaces selected by this field
2401 and the ones listed in the namespaces field.
2402 null selector and null or empty namespaces list means "this pod's namespace".
2403 An empty selector ({}) matches all namespaces.
2404 type: object
2405 properties:
2406 matchExpressions:
2407 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2408 type: array
2409 items:
2410 description: |-
2411 A label selector requirement is a selector that contains values, a key, and an operator that
2412 relates the key and values.
2413 type: object
2414 required:
2415 - key
2416 - operator
2417 properties:
2418 key:
2419 description: key is the label key that the selector applies to.
2420 type: string
2421 operator:
2422 description: |-
2423 operator represents a key's relationship to a set of values.
2424 Valid operators are In, NotIn, Exists and DoesNotExist.
2425 type: string
2426 values:
2427 description: |-
2428 values is an array of string values. If the operator is In or NotIn,
2429 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2430 the values array must be empty. This array is replaced during a strategic
2431 merge patch.
2432 type: array
2433 items:
2434 type: string
2435 x-kubernetes-list-type: atomic
2436 x-kubernetes-list-type: atomic
2437 matchLabels:
2438 description: |-
2439 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2440 map is equivalent to an element of matchExpressions, whose key field is "key", the
2441 operator is "In", and the values array contains only "value". The requirements are ANDed.
2442 type: object
2443 additionalProperties:
2444 type: string
2445 x-kubernetes-map-type: atomic
2446 namespaces:
2447 description: |-
2448 namespaces specifies a static list of namespace names that the term applies to.
2449 The term is applied to the union of the namespaces listed in this field
2450 and the ones selected by namespaceSelector.
2451 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2452 type: array
2453 items:
2454 type: string
2455 x-kubernetes-list-type: atomic
2456 topologyKey:
2457 description: |-
2458 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2459 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2460 whose value of the label with key topologyKey matches that of any node on which any of the
2461 selected pods is running.
2462 Empty topologyKey is not allowed.
2463 type: string
2464 x-kubernetes-list-type: atomic
2465 podAntiAffinity:
2466 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
2467 type: object
2468 properties:
2469 preferredDuringSchedulingIgnoredDuringExecution:
2470 description: |-
2471 The scheduler will prefer to schedule pods to nodes that satisfy
2472 the anti-affinity expressions specified by this field, but it may choose
2473 a node that violates one or more of the expressions. The node that is
2474 most preferred is the one with the greatest sum of weights, i.e.
2475 for each node that meets all of the scheduling requirements (resource
2476 request, requiredDuringScheduling anti-affinity expressions, etc.),
2477 compute a sum by iterating through the elements of this field and adding
2478 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
2479 node(s) with the highest sum are the most preferred.
2480 type: array
2481 items:
2482 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
2483 type: object
2484 required:
2485 - podAffinityTerm
2486 - weight
2487 properties:
2488 podAffinityTerm:
2489 description: Required. A pod affinity term, associated with the corresponding weight.
2490 type: object
2491 required:
2492 - topologyKey
2493 properties:
2494 labelSelector:
2495 description: |-
2496 A label query over a set of resources, in this case pods.
2497 If it's null, this PodAffinityTerm matches with no Pods.
2498 type: object
2499 properties:
2500 matchExpressions:
2501 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2502 type: array
2503 items:
2504 description: |-
2505 A label selector requirement is a selector that contains values, a key, and an operator that
2506 relates the key and values.
2507 type: object
2508 required:
2509 - key
2510 - operator
2511 properties:
2512 key:
2513 description: key is the label key that the selector applies to.
2514 type: string
2515 operator:
2516 description: |-
2517 operator represents a key's relationship to a set of values.
2518 Valid operators are In, NotIn, Exists and DoesNotExist.
2519 type: string
2520 values:
2521 description: |-
2522 values is an array of string values. If the operator is In or NotIn,
2523 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2524 the values array must be empty. This array is replaced during a strategic
2525 merge patch.
2526 type: array
2527 items:
2528 type: string
2529 x-kubernetes-list-type: atomic
2530 x-kubernetes-list-type: atomic
2531 matchLabels:
2532 description: |-
2533 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2534 map is equivalent to an element of matchExpressions, whose key field is "key", the
2535 operator is "In", and the values array contains only "value". The requirements are ANDed.
2536 type: object
2537 additionalProperties:
2538 type: string
2539 x-kubernetes-map-type: atomic
2540 matchLabelKeys:
2541 description: |-
2542 MatchLabelKeys is a set of pod label keys to select which pods will
2543 be taken into consideration. The keys are used to lookup values from the
2544 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2545 to select the group of existing pods which pods will be taken into consideration
2546 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2547 pod labels will be ignored. The default value is empty.
2548 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2549 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2550 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2551 type: array
2552 items:
2553 type: string
2554 x-kubernetes-list-type: atomic
2555 mismatchLabelKeys:
2556 description: |-
2557 MismatchLabelKeys is a set of pod label keys to select which pods will
2558 be taken into consideration. The keys are used to lookup values from the
2559 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2560 to select the group of existing pods which pods will be taken into consideration
2561 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2562 pod labels will be ignored. The default value is empty.
2563 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2564 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2565 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2566 type: array
2567 items:
2568 type: string
2569 x-kubernetes-list-type: atomic
2570 namespaceSelector:
2571 description: |-
2572 A label query over the set of namespaces that the term applies to.
2573 The term is applied to the union of the namespaces selected by this field
2574 and the ones listed in the namespaces field.
2575 null selector and null or empty namespaces list means "this pod's namespace".
2576 An empty selector ({}) matches all namespaces.
2577 type: object
2578 properties:
2579 matchExpressions:
2580 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2581 type: array
2582 items:
2583 description: |-
2584 A label selector requirement is a selector that contains values, a key, and an operator that
2585 relates the key and values.
2586 type: object
2587 required:
2588 - key
2589 - operator
2590 properties:
2591 key:
2592 description: key is the label key that the selector applies to.
2593 type: string
2594 operator:
2595 description: |-
2596 operator represents a key's relationship to a set of values.
2597 Valid operators are In, NotIn, Exists and DoesNotExist.
2598 type: string
2599 values:
2600 description: |-
2601 values is an array of string values. If the operator is In or NotIn,
2602 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2603 the values array must be empty. This array is replaced during a strategic
2604 merge patch.
2605 type: array
2606 items:
2607 type: string
2608 x-kubernetes-list-type: atomic
2609 x-kubernetes-list-type: atomic
2610 matchLabels:
2611 description: |-
2612 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2613 map is equivalent to an element of matchExpressions, whose key field is "key", the
2614 operator is "In", and the values array contains only "value". The requirements are ANDed.
2615 type: object
2616 additionalProperties:
2617 type: string
2618 x-kubernetes-map-type: atomic
2619 namespaces:
2620 description: |-
2621 namespaces specifies a static list of namespace names that the term applies to.
2622 The term is applied to the union of the namespaces listed in this field
2623 and the ones selected by namespaceSelector.
2624 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2625 type: array
2626 items:
2627 type: string
2628 x-kubernetes-list-type: atomic
2629 topologyKey:
2630 description: |-
2631 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2632 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2633 whose value of the label with key topologyKey matches that of any node on which any of the
2634 selected pods is running.
2635 Empty topologyKey is not allowed.
2636 type: string
2637 weight:
2638 description: |-
2639 weight associated with matching the corresponding podAffinityTerm,
2640 in the range 1-100.
2641 type: integer
2642 format: int32
2643 x-kubernetes-list-type: atomic
2644 requiredDuringSchedulingIgnoredDuringExecution:
2645 description: |-
2646 If the anti-affinity requirements specified by this field are not met at
2647 scheduling time, the pod will not be scheduled onto the node.
2648 If the anti-affinity requirements specified by this field cease to be met
2649 at some point during pod execution (e.g. due to a pod label update), the
2650 system may or may not try to eventually evict the pod from its node.
2651 When there are multiple elements, the lists of nodes corresponding to each
2652 podAffinityTerm are intersected, i.e. all terms must be satisfied.
2653 type: array
2654 items:
2655 description: |-
2656 Defines a set of pods (namely those matching the labelSelector
2657 relative to the given namespace(s)) that this pod should be
2658 co-located (affinity) or not co-located (anti-affinity) with,
2659 where co-located is defined as running on a node whose value of
2660 the label with key <topologyKey> matches that of any node on which
2661 a pod of the set of pods is running
2662 type: object
2663 required:
2664 - topologyKey
2665 properties:
2666 labelSelector:
2667 description: |-
2668 A label query over a set of resources, in this case pods.
2669 If it's null, this PodAffinityTerm matches with no Pods.
2670 type: object
2671 properties:
2672 matchExpressions:
2673 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2674 type: array
2675 items:
2676 description: |-
2677 A label selector requirement is a selector that contains values, a key, and an operator that
2678 relates the key and values.
2679 type: object
2680 required:
2681 - key
2682 - operator
2683 properties:
2684 key:
2685 description: key is the label key that the selector applies to.
2686 type: string
2687 operator:
2688 description: |-
2689 operator represents a key's relationship to a set of values.
2690 Valid operators are In, NotIn, Exists and DoesNotExist.
2691 type: string
2692 values:
2693 description: |-
2694 values is an array of string values. If the operator is In or NotIn,
2695 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2696 the values array must be empty. This array is replaced during a strategic
2697 merge patch.
2698 type: array
2699 items:
2700 type: string
2701 x-kubernetes-list-type: atomic
2702 x-kubernetes-list-type: atomic
2703 matchLabels:
2704 description: |-
2705 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2706 map is equivalent to an element of matchExpressions, whose key field is "key", the
2707 operator is "In", and the values array contains only "value". The requirements are ANDed.
2708 type: object
2709 additionalProperties:
2710 type: string
2711 x-kubernetes-map-type: atomic
2712 matchLabelKeys:
2713 description: |-
2714 MatchLabelKeys is a set of pod label keys to select which pods will
2715 be taken into consideration. The keys are used to lookup values from the
2716 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
2717 to select the group of existing pods which pods will be taken into consideration
2718 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2719 pod labels will be ignored. The default value is empty.
2720 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
2721 Also, matchLabelKeys cannot be set when labelSelector isn't set.
2722 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2723 type: array
2724 items:
2725 type: string
2726 x-kubernetes-list-type: atomic
2727 mismatchLabelKeys:
2728 description: |-
2729 MismatchLabelKeys is a set of pod label keys to select which pods will
2730 be taken into consideration. The keys are used to lookup values from the
2731 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
2732 to select the group of existing pods which pods will be taken into consideration
2733 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
2734 pod labels will be ignored. The default value is empty.
2735 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
2736 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
2737 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
2738 type: array
2739 items:
2740 type: string
2741 x-kubernetes-list-type: atomic
2742 namespaceSelector:
2743 description: |-
2744 A label query over the set of namespaces that the term applies to.
2745 The term is applied to the union of the namespaces selected by this field
2746 and the ones listed in the namespaces field.
2747 null selector and null or empty namespaces list means "this pod's namespace".
2748 An empty selector ({}) matches all namespaces.
2749 type: object
2750 properties:
2751 matchExpressions:
2752 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
2753 type: array
2754 items:
2755 description: |-
2756 A label selector requirement is a selector that contains values, a key, and an operator that
2757 relates the key and values.
2758 type: object
2759 required:
2760 - key
2761 - operator
2762 properties:
2763 key:
2764 description: key is the label key that the selector applies to.
2765 type: string
2766 operator:
2767 description: |-
2768 operator represents a key's relationship to a set of values.
2769 Valid operators are In, NotIn, Exists and DoesNotExist.
2770 type: string
2771 values:
2772 description: |-
2773 values is an array of string values. If the operator is In or NotIn,
2774 the values array must be non-empty. If the operator is Exists or DoesNotExist,
2775 the values array must be empty. This array is replaced during a strategic
2776 merge patch.
2777 type: array
2778 items:
2779 type: string
2780 x-kubernetes-list-type: atomic
2781 x-kubernetes-list-type: atomic
2782 matchLabels:
2783 description: |-
2784 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
2785 map is equivalent to an element of matchExpressions, whose key field is "key", the
2786 operator is "In", and the values array contains only "value". The requirements are ANDed.
2787 type: object
2788 additionalProperties:
2789 type: string
2790 x-kubernetes-map-type: atomic
2791 namespaces:
2792 description: |-
2793 namespaces specifies a static list of namespace names that the term applies to.
2794 The term is applied to the union of the namespaces listed in this field
2795 and the ones selected by namespaceSelector.
2796 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
2797 type: array
2798 items:
2799 type: string
2800 x-kubernetes-list-type: atomic
2801 topologyKey:
2802 description: |-
2803 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
2804 the labelSelector in the specified namespaces, where co-located is defined as running on a node
2805 whose value of the label with key topologyKey matches that of any node on which any of the
2806 selected pods is running.
2807 Empty topologyKey is not allowed.
2808 type: string
2809 x-kubernetes-list-type: atomic
2810 imagePullSecrets:
2811 description: If specified, the pod's imagePullSecrets
2812 type: array
2813 items:
2814 description: |-
2815 LocalObjectReference contains enough information to let you locate the
2816 referenced object inside the same namespace.
2817 type: object
2818 properties:
2819 name:
2820 description: |-
2821 Name of the referent.
2822 This field is effectively required, but due to backwards compatibility is
2823 allowed to be empty. Instances of this type with an empty value here are
2824 almost certainly wrong.
2825 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
2826 type: string
2827 default: ""
2828 x-kubernetes-map-type: atomic
2829 nodeSelector:
2830 description: |-
2831 NodeSelector is a selector which must be true for the pod to fit on a node.
2832 Selector which must match a node's labels for the pod to be scheduled on that node.
2833 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
2834 type: object
2835 additionalProperties:
2836 type: string
2837 priorityClassName:
2838 description: If specified, the pod's priorityClassName.
2839 type: string
2840 securityContext:
2841 description: If specified, the pod's security context
2842 type: object
2843 properties:
2844 fsGroup:
2845 description: |-
2846 A special supplemental group that applies to all containers in a pod.
2847 Some volume types allow the Kubelet to change the ownership of that volume
2848 to be owned by the pod:
2849
2850 1. The owning GID will be the FSGroup
2851 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
2852 3. The permission bits are OR'd with rw-rw----
2853
2854 If unset, the Kubelet will not modify the ownership and permissions of any volume.
2855 Note that this field cannot be set when spec.os.name is windows.
2856 type: integer
2857 format: int64
2858 fsGroupChangePolicy:
2859 description: |-
2860 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
2861 before being exposed inside Pod. This field will only apply to
2862 volume types which support fsGroup based ownership(and permissions).
2863 It will have no effect on ephemeral volume types such as: secret, configmaps
2864 and emptydir.
2865 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
2866 Note that this field cannot be set when spec.os.name is windows.
2867 type: string
2868 runAsGroup:
2869 description: |-
2870 The GID to run the entrypoint of the container process.
2871 Uses runtime default if unset.
2872 May also be set in SecurityContext. If set in both SecurityContext and
2873 PodSecurityContext, the value specified in SecurityContext takes precedence
2874 for that container.
2875 Note that this field cannot be set when spec.os.name is windows.
2876 type: integer
2877 format: int64
2878 runAsNonRoot:
2879 description: |-
2880 Indicates that the container must run as a non-root user.
2881 If true, the Kubelet will validate the image at runtime to ensure that it
2882 does not run as UID 0 (root) and fail to start the container if it does.
2883 If unset or false, no such validation will be performed.
2884 May also be set in SecurityContext. If set in both SecurityContext and
2885 PodSecurityContext, the value specified in SecurityContext takes precedence.
2886 type: boolean
2887 runAsUser:
2888 description: |-
2889 The UID to run the entrypoint of the container process.
2890 Defaults to user specified in image metadata if unspecified.
2891 May also be set in SecurityContext. If set in both SecurityContext and
2892 PodSecurityContext, the value specified in SecurityContext takes precedence
2893 for that container.
2894 Note that this field cannot be set when spec.os.name is windows.
2895 type: integer
2896 format: int64
2897 seLinuxOptions:
2898 description: |-
2899 The SELinux context to be applied to all containers.
2900 If unspecified, the container runtime will allocate a random SELinux context for each
2901 container. May also be set in SecurityContext. If set in
2902 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
2903 takes precedence for that container.
2904 Note that this field cannot be set when spec.os.name is windows.
2905 type: object
2906 properties:
2907 level:
2908 description: Level is SELinux level label that applies to the container.
2909 type: string
2910 role:
2911 description: Role is a SELinux role label that applies to the container.
2912 type: string
2913 type:
2914 description: Type is a SELinux type label that applies to the container.
2915 type: string
2916 user:
2917 description: User is a SELinux user label that applies to the container.
2918 type: string
2919 seccompProfile:
2920 description: |-
2921 The seccomp options to use by the containers in this pod.
2922 Note that this field cannot be set when spec.os.name is windows.
2923 type: object
2924 required:
2925 - type
2926 properties:
2927 localhostProfile:
2928 description: |-
2929 localhostProfile indicates a profile defined in a file on the node should be used.
2930 The profile must be preconfigured on the node to work.
2931 Must be a descending path, relative to the kubelet's configured seccomp profile location.
2932 Must be set if type is "Localhost". Must NOT be set for any other type.
2933 type: string
2934 type:
2935 description: |-
2936 type indicates which kind of seccomp profile will be applied.
2937 Valid options are:
2938
2939 Localhost - a profile defined in a file on the node should be used.
2940 RuntimeDefault - the container runtime default profile should be used.
2941 Unconfined - no profile should be applied.
2942 type: string
2943 supplementalGroups:
2944 description: |-
2945 A list of groups applied to the first process run in each container, in addition
2946 to the container's primary GID, the fsGroup (if specified), and group memberships
2947 defined in the container image for the uid of the container process. If unspecified,
2948 no additional groups are added to any container. Note that group memberships
2949 defined in the container image for the uid of the container process are still effective,
2950 even if they are not included in this list.
2951 Note that this field cannot be set when spec.os.name is windows.
2952 type: array
2953 items:
2954 type: integer
2955 format: int64
2956 sysctls:
2957 description: |-
2958 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
2959 sysctls (by the container runtime) might fail to launch.
2960 Note that this field cannot be set when spec.os.name is windows.
2961 type: array
2962 items:
2963 description: Sysctl defines a kernel parameter to be set
2964 type: object
2965 required:
2966 - name
2967 - value
2968 properties:
2969 name:
2970 description: Name of a property to set
2971 type: string
2972 value:
2973 description: Value of a property to set
2974 type: string
2975 serviceAccountName:
2976 description: If specified, the pod's service account
2977 type: string
2978 tolerations:
2979 description: If specified, the pod's tolerations.
2980 type: array
2981 items:
2982 description: |-
2983 The pod this Toleration is attached to tolerates any taint that matches
2984 the triple <key,value,effect> using the matching operator <operator>.
2985 type: object
2986 properties:
2987 effect:
2988 description: |-
2989 Effect indicates the taint effect to match. Empty means match all taint effects.
2990 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
2991 type: string
2992 key:
2993 description: |-
2994 Key is the taint key that the toleration applies to. Empty means match all taint keys.
2995 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
2996 type: string
2997 operator:
2998 description: |-
2999 Operator represents a key's relationship to the value.
3000 Valid operators are Exists and Equal. Defaults to Equal.
3001 Exists is equivalent to wildcard for value, so that a pod can
3002 tolerate all taints of a particular category.
3003 type: string
3004 tolerationSeconds:
3005 description: |-
3006 TolerationSeconds represents the period of time the toleration (which must be
3007 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
3008 it is not set, which means tolerate the taint forever (do not evict). Zero and
3009 negative values will be treated as 0 (evict immediately) by the system.
3010 type: integer
3011 format: int64
3012 value:
3013 description: |-
3014 Value is the taint value the toleration matches to.
3015 If the operator is Exists, the value should be empty, otherwise just a regular string.
3016 type: string
3017 serviceType:
3018 description: |-
3019 Optional service type for Kubernetes solver service. Supported values
3020 are NodePort or ClusterIP. If unset, defaults to NodePort.
3021 type: string
3022 ingress:
3023 description: |-
3024 The ingress based HTTP01 challenge solver will solve challenges by
3025 creating or modifying Ingress resources in order to route requests for
3026 '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are
3027 provisioned by cert-manager for each Challenge to be completed.
3028 type: object
3029 properties:
3030 class:
3031 description: |-
3032 This field configures the annotation `kubernetes.io/ingress.class` when
3033 creating Ingress resources to solve ACME challenges that use this
3034 challenge solver. Only one of `class`, `name` or `ingressClassName` may
3035 be specified.
3036 type: string
3037 ingressClassName:
3038 description: |-
3039 This field configures the field `ingressClassName` on the created Ingress
3040 resources used to solve ACME challenges that use this challenge solver.
3041 This is the recommended way of configuring the ingress class. Only one of
3042 `class`, `name` or `ingressClassName` may be specified.
3043 type: string
3044 ingressTemplate:
3045 description: |-
3046 Optional ingress template used to configure the ACME challenge solver
3047 ingress used for HTTP01 challenges.
3048 type: object
3049 properties:
3050 metadata:
3051 description: |-
3052 ObjectMeta overrides for the ingress used to solve HTTP01 challenges.
3053 Only the 'labels' and 'annotations' fields may be set.
3054 If labels or annotations overlap with in-built values, the values here
3055 will override the in-built values.
3056 type: object
3057 properties:
3058 annotations:
3059 description: Annotations that should be added to the created ACME HTTP01 solver ingress.
3060 type: object
3061 additionalProperties:
3062 type: string
3063 labels:
3064 description: Labels that should be added to the created ACME HTTP01 solver ingress.
3065 type: object
3066 additionalProperties:
3067 type: string
3068 name:
3069 description: |-
3070 The name of the ingress resource that should have ACME challenge solving
3071 routes inserted into it in order to solve HTTP01 challenges.
3072 This is typically used in conjunction with ingress controllers like
3073 ingress-gce, which maintains a 1:1 mapping between external IPs and
3074 ingress resources. Only one of `class`, `name` or `ingressClassName` may
3075 be specified.
3076 type: string
3077 podTemplate:
3078 description: |-
3079 Optional pod template used to configure the ACME challenge solver pods
3080 used for HTTP01 challenges.
3081 type: object
3082 properties:
3083 metadata:
3084 description: |-
3085 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
3086 Only the 'labels' and 'annotations' fields may be set.
3087 If labels or annotations overlap with in-built values, the values here
3088 will override the in-built values.
3089 type: object
3090 properties:
3091 annotations:
3092 description: Annotations that should be added to the created ACME HTTP01 solver pods.
3093 type: object
3094 additionalProperties:
3095 type: string
3096 labels:
3097 description: Labels that should be added to the created ACME HTTP01 solver pods.
3098 type: object
3099 additionalProperties:
3100 type: string
3101 spec:
3102 description: |-
3103 PodSpec defines overrides for the HTTP01 challenge solver pod.
3104 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
3105 All other fields will be ignored.
3106 type: object
3107 properties:
3108 affinity:
3109 description: If specified, the pod's scheduling constraints
3110 type: object
3111 properties:
3112 nodeAffinity:
3113 description: Describes node affinity scheduling rules for the pod.
3114 type: object
3115 properties:
3116 preferredDuringSchedulingIgnoredDuringExecution:
3117 description: |-
3118 The scheduler will prefer to schedule pods to nodes that satisfy
3119 the affinity expressions specified by this field, but it may choose
3120 a node that violates one or more of the expressions. The node that is
3121 most preferred is the one with the greatest sum of weights, i.e.
3122 for each node that meets all of the scheduling requirements (resource
3123 request, requiredDuringScheduling affinity expressions, etc.),
3124 compute a sum by iterating through the elements of this field and adding
3125 "weight" to the sum if the node matches the corresponding matchExpressions; the
3126 node(s) with the highest sum are the most preferred.
3127 type: array
3128 items:
3129 description: |-
3130 An empty preferred scheduling term matches all objects with implicit weight 0
3131 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
3132 type: object
3133 required:
3134 - preference
3135 - weight
3136 properties:
3137 preference:
3138 description: A node selector term, associated with the corresponding weight.
3139 type: object
3140 properties:
3141 matchExpressions:
3142 description: A list of node selector requirements by node's labels.
3143 type: array
3144 items:
3145 description: |-
3146 A node selector requirement is a selector that contains values, a key, and an operator
3147 that relates the key and values.
3148 type: object
3149 required:
3150 - key
3151 - operator
3152 properties:
3153 key:
3154 description: The label key that the selector applies to.
3155 type: string
3156 operator:
3157 description: |-
3158 Represents a key's relationship to a set of values.
3159 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3160 type: string
3161 values:
3162 description: |-
3163 An array of string values. If the operator is In or NotIn,
3164 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3165 the values array must be empty. If the operator is Gt or Lt, the values
3166 array must have a single element, which will be interpreted as an integer.
3167 This array is replaced during a strategic merge patch.
3168 type: array
3169 items:
3170 type: string
3171 x-kubernetes-list-type: atomic
3172 x-kubernetes-list-type: atomic
3173 matchFields:
3174 description: A list of node selector requirements by node's fields.
3175 type: array
3176 items:
3177 description: |-
3178 A node selector requirement is a selector that contains values, a key, and an operator
3179 that relates the key and values.
3180 type: object
3181 required:
3182 - key
3183 - operator
3184 properties:
3185 key:
3186 description: The label key that the selector applies to.
3187 type: string
3188 operator:
3189 description: |-
3190 Represents a key's relationship to a set of values.
3191 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3192 type: string
3193 values:
3194 description: |-
3195 An array of string values. If the operator is In or NotIn,
3196 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3197 the values array must be empty. If the operator is Gt or Lt, the values
3198 array must have a single element, which will be interpreted as an integer.
3199 This array is replaced during a strategic merge patch.
3200 type: array
3201 items:
3202 type: string
3203 x-kubernetes-list-type: atomic
3204 x-kubernetes-list-type: atomic
3205 x-kubernetes-map-type: atomic
3206 weight:
3207 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
3208 type: integer
3209 format: int32
3210 x-kubernetes-list-type: atomic
3211 requiredDuringSchedulingIgnoredDuringExecution:
3212 description: |-
3213 If the affinity requirements specified by this field are not met at
3214 scheduling time, the pod will not be scheduled onto the node.
3215 If the affinity requirements specified by this field cease to be met
3216 at some point during pod execution (e.g. due to an update), the system
3217 may or may not try to eventually evict the pod from its node.
3218 type: object
3219 required:
3220 - nodeSelectorTerms
3221 properties:
3222 nodeSelectorTerms:
3223 description: Required. A list of node selector terms. The terms are ORed.
3224 type: array
3225 items:
3226 description: |-
3227 A null or empty node selector term matches no objects. The requirements of
3228 them are ANDed.
3229 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
3230 type: object
3231 properties:
3232 matchExpressions:
3233 description: A list of node selector requirements by node's labels.
3234 type: array
3235 items:
3236 description: |-
3237 A node selector requirement is a selector that contains values, a key, and an operator
3238 that relates the key and values.
3239 type: object
3240 required:
3241 - key
3242 - operator
3243 properties:
3244 key:
3245 description: The label key that the selector applies to.
3246 type: string
3247 operator:
3248 description: |-
3249 Represents a key's relationship to a set of values.
3250 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3251 type: string
3252 values:
3253 description: |-
3254 An array of string values. If the operator is In or NotIn,
3255 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3256 the values array must be empty. If the operator is Gt or Lt, the values
3257 array must have a single element, which will be interpreted as an integer.
3258 This array is replaced during a strategic merge patch.
3259 type: array
3260 items:
3261 type: string
3262 x-kubernetes-list-type: atomic
3263 x-kubernetes-list-type: atomic
3264 matchFields:
3265 description: A list of node selector requirements by node's fields.
3266 type: array
3267 items:
3268 description: |-
3269 A node selector requirement is a selector that contains values, a key, and an operator
3270 that relates the key and values.
3271 type: object
3272 required:
3273 - key
3274 - operator
3275 properties:
3276 key:
3277 description: The label key that the selector applies to.
3278 type: string
3279 operator:
3280 description: |-
3281 Represents a key's relationship to a set of values.
3282 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
3283 type: string
3284 values:
3285 description: |-
3286 An array of string values. If the operator is In or NotIn,
3287 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3288 the values array must be empty. If the operator is Gt or Lt, the values
3289 array must have a single element, which will be interpreted as an integer.
3290 This array is replaced during a strategic merge patch.
3291 type: array
3292 items:
3293 type: string
3294 x-kubernetes-list-type: atomic
3295 x-kubernetes-list-type: atomic
3296 x-kubernetes-map-type: atomic
3297 x-kubernetes-list-type: atomic
3298 x-kubernetes-map-type: atomic
3299 podAffinity:
3300 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
3301 type: object
3302 properties:
3303 preferredDuringSchedulingIgnoredDuringExecution:
3304 description: |-
3305 The scheduler will prefer to schedule pods to nodes that satisfy
3306 the affinity expressions specified by this field, but it may choose
3307 a node that violates one or more of the expressions. The node that is
3308 most preferred is the one with the greatest sum of weights, i.e.
3309 for each node that meets all of the scheduling requirements (resource
3310 request, requiredDuringScheduling affinity expressions, etc.),
3311 compute a sum by iterating through the elements of this field and adding
3312 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
3313 node(s) with the highest sum are the most preferred.
3314 type: array
3315 items:
3316 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
3317 type: object
3318 required:
3319 - podAffinityTerm
3320 - weight
3321 properties:
3322 podAffinityTerm:
3323 description: Required. A pod affinity term, associated with the corresponding weight.
3324 type: object
3325 required:
3326 - topologyKey
3327 properties:
3328 labelSelector:
3329 description: |-
3330 A label query over a set of resources, in this case pods.
3331 If it's null, this PodAffinityTerm matches with no Pods.
3332 type: object
3333 properties:
3334 matchExpressions:
3335 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3336 type: array
3337 items:
3338 description: |-
3339 A label selector requirement is a selector that contains values, a key, and an operator that
3340 relates the key and values.
3341 type: object
3342 required:
3343 - key
3344 - operator
3345 properties:
3346 key:
3347 description: key is the label key that the selector applies to.
3348 type: string
3349 operator:
3350 description: |-
3351 operator represents a key's relationship to a set of values.
3352 Valid operators are In, NotIn, Exists and DoesNotExist.
3353 type: string
3354 values:
3355 description: |-
3356 values is an array of string values. If the operator is In or NotIn,
3357 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3358 the values array must be empty. This array is replaced during a strategic
3359 merge patch.
3360 type: array
3361 items:
3362 type: string
3363 x-kubernetes-list-type: atomic
3364 x-kubernetes-list-type: atomic
3365 matchLabels:
3366 description: |-
3367 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3368 map is equivalent to an element of matchExpressions, whose key field is "key", the
3369 operator is "In", and the values array contains only "value". The requirements are ANDed.
3370 type: object
3371 additionalProperties:
3372 type: string
3373 x-kubernetes-map-type: atomic
3374 matchLabelKeys:
3375 description: |-
3376 MatchLabelKeys is a set of pod label keys to select which pods will
3377 be taken into consideration. The keys are used to lookup values from the
3378 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3379 to select the group of existing pods which pods will be taken into consideration
3380 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3381 pod labels will be ignored. The default value is empty.
3382 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3383 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3384 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3385 type: array
3386 items:
3387 type: string
3388 x-kubernetes-list-type: atomic
3389 mismatchLabelKeys:
3390 description: |-
3391 MismatchLabelKeys is a set of pod label keys to select which pods will
3392 be taken into consideration. The keys are used to lookup values from the
3393 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3394 to select the group of existing pods which pods will be taken into consideration
3395 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3396 pod labels will be ignored. The default value is empty.
3397 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3398 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3399 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3400 type: array
3401 items:
3402 type: string
3403 x-kubernetes-list-type: atomic
3404 namespaceSelector:
3405 description: |-
3406 A label query over the set of namespaces that the term applies to.
3407 The term is applied to the union of the namespaces selected by this field
3408 and the ones listed in the namespaces field.
3409 null selector and null or empty namespaces list means "this pod's namespace".
3410 An empty selector ({}) matches all namespaces.
3411 type: object
3412 properties:
3413 matchExpressions:
3414 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3415 type: array
3416 items:
3417 description: |-
3418 A label selector requirement is a selector that contains values, a key, and an operator that
3419 relates the key and values.
3420 type: object
3421 required:
3422 - key
3423 - operator
3424 properties:
3425 key:
3426 description: key is the label key that the selector applies to.
3427 type: string
3428 operator:
3429 description: |-
3430 operator represents a key's relationship to a set of values.
3431 Valid operators are In, NotIn, Exists and DoesNotExist.
3432 type: string
3433 values:
3434 description: |-
3435 values is an array of string values. If the operator is In or NotIn,
3436 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3437 the values array must be empty. This array is replaced during a strategic
3438 merge patch.
3439 type: array
3440 items:
3441 type: string
3442 x-kubernetes-list-type: atomic
3443 x-kubernetes-list-type: atomic
3444 matchLabels:
3445 description: |-
3446 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3447 map is equivalent to an element of matchExpressions, whose key field is "key", the
3448 operator is "In", and the values array contains only "value". The requirements are ANDed.
3449 type: object
3450 additionalProperties:
3451 type: string
3452 x-kubernetes-map-type: atomic
3453 namespaces:
3454 description: |-
3455 namespaces specifies a static list of namespace names that the term applies to.
3456 The term is applied to the union of the namespaces listed in this field
3457 and the ones selected by namespaceSelector.
3458 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3459 type: array
3460 items:
3461 type: string
3462 x-kubernetes-list-type: atomic
3463 topologyKey:
3464 description: |-
3465 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3466 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3467 whose value of the label with key topologyKey matches that of any node on which any of the
3468 selected pods is running.
3469 Empty topologyKey is not allowed.
3470 type: string
3471 weight:
3472 description: |-
3473 weight associated with matching the corresponding podAffinityTerm,
3474 in the range 1-100.
3475 type: integer
3476 format: int32
3477 x-kubernetes-list-type: atomic
3478 requiredDuringSchedulingIgnoredDuringExecution:
3479 description: |-
3480 If the affinity requirements specified by this field are not met at
3481 scheduling time, the pod will not be scheduled onto the node.
3482 If the affinity requirements specified by this field cease to be met
3483 at some point during pod execution (e.g. due to a pod label update), the
3484 system may or may not try to eventually evict the pod from its node.
3485 When there are multiple elements, the lists of nodes corresponding to each
3486 podAffinityTerm are intersected, i.e. all terms must be satisfied.
3487 type: array
3488 items:
3489 description: |-
3490 Defines a set of pods (namely those matching the labelSelector
3491 relative to the given namespace(s)) that this pod should be
3492 co-located (affinity) or not co-located (anti-affinity) with,
3493 where co-located is defined as running on a node whose value of
3494 the label with key <topologyKey> matches that of any node on which
3495 a pod of the set of pods is running
3496 type: object
3497 required:
3498 - topologyKey
3499 properties:
3500 labelSelector:
3501 description: |-
3502 A label query over a set of resources, in this case pods.
3503 If it's null, this PodAffinityTerm matches with no Pods.
3504 type: object
3505 properties:
3506 matchExpressions:
3507 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3508 type: array
3509 items:
3510 description: |-
3511 A label selector requirement is a selector that contains values, a key, and an operator that
3512 relates the key and values.
3513 type: object
3514 required:
3515 - key
3516 - operator
3517 properties:
3518 key:
3519 description: key is the label key that the selector applies to.
3520 type: string
3521 operator:
3522 description: |-
3523 operator represents a key's relationship to a set of values.
3524 Valid operators are In, NotIn, Exists and DoesNotExist.
3525 type: string
3526 values:
3527 description: |-
3528 values is an array of string values. If the operator is In or NotIn,
3529 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3530 the values array must be empty. This array is replaced during a strategic
3531 merge patch.
3532 type: array
3533 items:
3534 type: string
3535 x-kubernetes-list-type: atomic
3536 x-kubernetes-list-type: atomic
3537 matchLabels:
3538 description: |-
3539 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3540 map is equivalent to an element of matchExpressions, whose key field is "key", the
3541 operator is "In", and the values array contains only "value". The requirements are ANDed.
3542 type: object
3543 additionalProperties:
3544 type: string
3545 x-kubernetes-map-type: atomic
3546 matchLabelKeys:
3547 description: |-
3548 MatchLabelKeys is a set of pod label keys to select which pods will
3549 be taken into consideration. The keys are used to lookup values from the
3550 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3551 to select the group of existing pods which pods will be taken into consideration
3552 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3553 pod labels will be ignored. The default value is empty.
3554 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3555 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3556 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3557 type: array
3558 items:
3559 type: string
3560 x-kubernetes-list-type: atomic
3561 mismatchLabelKeys:
3562 description: |-
3563 MismatchLabelKeys is a set of pod label keys to select which pods will
3564 be taken into consideration. The keys are used to lookup values from the
3565 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3566 to select the group of existing pods which pods will be taken into consideration
3567 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3568 pod labels will be ignored. The default value is empty.
3569 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3570 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3571 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3572 type: array
3573 items:
3574 type: string
3575 x-kubernetes-list-type: atomic
3576 namespaceSelector:
3577 description: |-
3578 A label query over the set of namespaces that the term applies to.
3579 The term is applied to the union of the namespaces selected by this field
3580 and the ones listed in the namespaces field.
3581 null selector and null or empty namespaces list means "this pod's namespace".
3582 An empty selector ({}) matches all namespaces.
3583 type: object
3584 properties:
3585 matchExpressions:
3586 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3587 type: array
3588 items:
3589 description: |-
3590 A label selector requirement is a selector that contains values, a key, and an operator that
3591 relates the key and values.
3592 type: object
3593 required:
3594 - key
3595 - operator
3596 properties:
3597 key:
3598 description: key is the label key that the selector applies to.
3599 type: string
3600 operator:
3601 description: |-
3602 operator represents a key's relationship to a set of values.
3603 Valid operators are In, NotIn, Exists and DoesNotExist.
3604 type: string
3605 values:
3606 description: |-
3607 values is an array of string values. If the operator is In or NotIn,
3608 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3609 the values array must be empty. This array is replaced during a strategic
3610 merge patch.
3611 type: array
3612 items:
3613 type: string
3614 x-kubernetes-list-type: atomic
3615 x-kubernetes-list-type: atomic
3616 matchLabels:
3617 description: |-
3618 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3619 map is equivalent to an element of matchExpressions, whose key field is "key", the
3620 operator is "In", and the values array contains only "value". The requirements are ANDed.
3621 type: object
3622 additionalProperties:
3623 type: string
3624 x-kubernetes-map-type: atomic
3625 namespaces:
3626 description: |-
3627 namespaces specifies a static list of namespace names that the term applies to.
3628 The term is applied to the union of the namespaces listed in this field
3629 and the ones selected by namespaceSelector.
3630 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3631 type: array
3632 items:
3633 type: string
3634 x-kubernetes-list-type: atomic
3635 topologyKey:
3636 description: |-
3637 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3638 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3639 whose value of the label with key topologyKey matches that of any node on which any of the
3640 selected pods is running.
3641 Empty topologyKey is not allowed.
3642 type: string
3643 x-kubernetes-list-type: atomic
3644 podAntiAffinity:
3645 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
3646 type: object
3647 properties:
3648 preferredDuringSchedulingIgnoredDuringExecution:
3649 description: |-
3650 The scheduler will prefer to schedule pods to nodes that satisfy
3651 the anti-affinity expressions specified by this field, but it may choose
3652 a node that violates one or more of the expressions. The node that is
3653 most preferred is the one with the greatest sum of weights, i.e.
3654 for each node that meets all of the scheduling requirements (resource
3655 request, requiredDuringScheduling anti-affinity expressions, etc.),
3656 compute a sum by iterating through the elements of this field and adding
3657 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
3658 node(s) with the highest sum are the most preferred.
3659 type: array
3660 items:
3661 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
3662 type: object
3663 required:
3664 - podAffinityTerm
3665 - weight
3666 properties:
3667 podAffinityTerm:
3668 description: Required. A pod affinity term, associated with the corresponding weight.
3669 type: object
3670 required:
3671 - topologyKey
3672 properties:
3673 labelSelector:
3674 description: |-
3675 A label query over a set of resources, in this case pods.
3676 If it's null, this PodAffinityTerm matches with no Pods.
3677 type: object
3678 properties:
3679 matchExpressions:
3680 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3681 type: array
3682 items:
3683 description: |-
3684 A label selector requirement is a selector that contains values, a key, and an operator that
3685 relates the key and values.
3686 type: object
3687 required:
3688 - key
3689 - operator
3690 properties:
3691 key:
3692 description: key is the label key that the selector applies to.
3693 type: string
3694 operator:
3695 description: |-
3696 operator represents a key's relationship to a set of values.
3697 Valid operators are In, NotIn, Exists and DoesNotExist.
3698 type: string
3699 values:
3700 description: |-
3701 values is an array of string values. If the operator is In or NotIn,
3702 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3703 the values array must be empty. This array is replaced during a strategic
3704 merge patch.
3705 type: array
3706 items:
3707 type: string
3708 x-kubernetes-list-type: atomic
3709 x-kubernetes-list-type: atomic
3710 matchLabels:
3711 description: |-
3712 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3713 map is equivalent to an element of matchExpressions, whose key field is "key", the
3714 operator is "In", and the values array contains only "value". The requirements are ANDed.
3715 type: object
3716 additionalProperties:
3717 type: string
3718 x-kubernetes-map-type: atomic
3719 matchLabelKeys:
3720 description: |-
3721 MatchLabelKeys is a set of pod label keys to select which pods will
3722 be taken into consideration. The keys are used to lookup values from the
3723 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3724 to select the group of existing pods which pods will be taken into consideration
3725 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3726 pod labels will be ignored. The default value is empty.
3727 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3728 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3729 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3730 type: array
3731 items:
3732 type: string
3733 x-kubernetes-list-type: atomic
3734 mismatchLabelKeys:
3735 description: |-
3736 MismatchLabelKeys is a set of pod label keys to select which pods will
3737 be taken into consideration. The keys are used to lookup values from the
3738 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3739 to select the group of existing pods which pods will be taken into consideration
3740 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3741 pod labels will be ignored. The default value is empty.
3742 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3743 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3744 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3745 type: array
3746 items:
3747 type: string
3748 x-kubernetes-list-type: atomic
3749 namespaceSelector:
3750 description: |-
3751 A label query over the set of namespaces that the term applies to.
3752 The term is applied to the union of the namespaces selected by this field
3753 and the ones listed in the namespaces field.
3754 null selector and null or empty namespaces list means "this pod's namespace".
3755 An empty selector ({}) matches all namespaces.
3756 type: object
3757 properties:
3758 matchExpressions:
3759 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3760 type: array
3761 items:
3762 description: |-
3763 A label selector requirement is a selector that contains values, a key, and an operator that
3764 relates the key and values.
3765 type: object
3766 required:
3767 - key
3768 - operator
3769 properties:
3770 key:
3771 description: key is the label key that the selector applies to.
3772 type: string
3773 operator:
3774 description: |-
3775 operator represents a key's relationship to a set of values.
3776 Valid operators are In, NotIn, Exists and DoesNotExist.
3777 type: string
3778 values:
3779 description: |-
3780 values is an array of string values. If the operator is In or NotIn,
3781 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3782 the values array must be empty. This array is replaced during a strategic
3783 merge patch.
3784 type: array
3785 items:
3786 type: string
3787 x-kubernetes-list-type: atomic
3788 x-kubernetes-list-type: atomic
3789 matchLabels:
3790 description: |-
3791 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3792 map is equivalent to an element of matchExpressions, whose key field is "key", the
3793 operator is "In", and the values array contains only "value". The requirements are ANDed.
3794 type: object
3795 additionalProperties:
3796 type: string
3797 x-kubernetes-map-type: atomic
3798 namespaces:
3799 description: |-
3800 namespaces specifies a static list of namespace names that the term applies to.
3801 The term is applied to the union of the namespaces listed in this field
3802 and the ones selected by namespaceSelector.
3803 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3804 type: array
3805 items:
3806 type: string
3807 x-kubernetes-list-type: atomic
3808 topologyKey:
3809 description: |-
3810 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3811 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3812 whose value of the label with key topologyKey matches that of any node on which any of the
3813 selected pods is running.
3814 Empty topologyKey is not allowed.
3815 type: string
3816 weight:
3817 description: |-
3818 weight associated with matching the corresponding podAffinityTerm,
3819 in the range 1-100.
3820 type: integer
3821 format: int32
3822 x-kubernetes-list-type: atomic
3823 requiredDuringSchedulingIgnoredDuringExecution:
3824 description: |-
3825 If the anti-affinity requirements specified by this field are not met at
3826 scheduling time, the pod will not be scheduled onto the node.
3827 If the anti-affinity requirements specified by this field cease to be met
3828 at some point during pod execution (e.g. due to a pod label update), the
3829 system may or may not try to eventually evict the pod from its node.
3830 When there are multiple elements, the lists of nodes corresponding to each
3831 podAffinityTerm are intersected, i.e. all terms must be satisfied.
3832 type: array
3833 items:
3834 description: |-
3835 Defines a set of pods (namely those matching the labelSelector
3836 relative to the given namespace(s)) that this pod should be
3837 co-located (affinity) or not co-located (anti-affinity) with,
3838 where co-located is defined as running on a node whose value of
3839 the label with key <topologyKey> matches that of any node on which
3840 a pod of the set of pods is running
3841 type: object
3842 required:
3843 - topologyKey
3844 properties:
3845 labelSelector:
3846 description: |-
3847 A label query over a set of resources, in this case pods.
3848 If it's null, this PodAffinityTerm matches with no Pods.
3849 type: object
3850 properties:
3851 matchExpressions:
3852 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3853 type: array
3854 items:
3855 description: |-
3856 A label selector requirement is a selector that contains values, a key, and an operator that
3857 relates the key and values.
3858 type: object
3859 required:
3860 - key
3861 - operator
3862 properties:
3863 key:
3864 description: key is the label key that the selector applies to.
3865 type: string
3866 operator:
3867 description: |-
3868 operator represents a key's relationship to a set of values.
3869 Valid operators are In, NotIn, Exists and DoesNotExist.
3870 type: string
3871 values:
3872 description: |-
3873 values is an array of string values. If the operator is In or NotIn,
3874 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3875 the values array must be empty. This array is replaced during a strategic
3876 merge patch.
3877 type: array
3878 items:
3879 type: string
3880 x-kubernetes-list-type: atomic
3881 x-kubernetes-list-type: atomic
3882 matchLabels:
3883 description: |-
3884 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3885 map is equivalent to an element of matchExpressions, whose key field is "key", the
3886 operator is "In", and the values array contains only "value". The requirements are ANDed.
3887 type: object
3888 additionalProperties:
3889 type: string
3890 x-kubernetes-map-type: atomic
3891 matchLabelKeys:
3892 description: |-
3893 MatchLabelKeys is a set of pod label keys to select which pods will
3894 be taken into consideration. The keys are used to lookup values from the
3895 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
3896 to select the group of existing pods which pods will be taken into consideration
3897 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3898 pod labels will be ignored. The default value is empty.
3899 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
3900 Also, matchLabelKeys cannot be set when labelSelector isn't set.
3901 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3902 type: array
3903 items:
3904 type: string
3905 x-kubernetes-list-type: atomic
3906 mismatchLabelKeys:
3907 description: |-
3908 MismatchLabelKeys is a set of pod label keys to select which pods will
3909 be taken into consideration. The keys are used to lookup values from the
3910 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
3911 to select the group of existing pods which pods will be taken into consideration
3912 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
3913 pod labels will be ignored. The default value is empty.
3914 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
3915 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
3916 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
3917 type: array
3918 items:
3919 type: string
3920 x-kubernetes-list-type: atomic
3921 namespaceSelector:
3922 description: |-
3923 A label query over the set of namespaces that the term applies to.
3924 The term is applied to the union of the namespaces selected by this field
3925 and the ones listed in the namespaces field.
3926 null selector and null or empty namespaces list means "this pod's namespace".
3927 An empty selector ({}) matches all namespaces.
3928 type: object
3929 properties:
3930 matchExpressions:
3931 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
3932 type: array
3933 items:
3934 description: |-
3935 A label selector requirement is a selector that contains values, a key, and an operator that
3936 relates the key and values.
3937 type: object
3938 required:
3939 - key
3940 - operator
3941 properties:
3942 key:
3943 description: key is the label key that the selector applies to.
3944 type: string
3945 operator:
3946 description: |-
3947 operator represents a key's relationship to a set of values.
3948 Valid operators are In, NotIn, Exists and DoesNotExist.
3949 type: string
3950 values:
3951 description: |-
3952 values is an array of string values. If the operator is In or NotIn,
3953 the values array must be non-empty. If the operator is Exists or DoesNotExist,
3954 the values array must be empty. This array is replaced during a strategic
3955 merge patch.
3956 type: array
3957 items:
3958 type: string
3959 x-kubernetes-list-type: atomic
3960 x-kubernetes-list-type: atomic
3961 matchLabels:
3962 description: |-
3963 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
3964 map is equivalent to an element of matchExpressions, whose key field is "key", the
3965 operator is "In", and the values array contains only "value". The requirements are ANDed.
3966 type: object
3967 additionalProperties:
3968 type: string
3969 x-kubernetes-map-type: atomic
3970 namespaces:
3971 description: |-
3972 namespaces specifies a static list of namespace names that the term applies to.
3973 The term is applied to the union of the namespaces listed in this field
3974 and the ones selected by namespaceSelector.
3975 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
3976 type: array
3977 items:
3978 type: string
3979 x-kubernetes-list-type: atomic
3980 topologyKey:
3981 description: |-
3982 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
3983 the labelSelector in the specified namespaces, where co-located is defined as running on a node
3984 whose value of the label with key topologyKey matches that of any node on which any of the
3985 selected pods is running.
3986 Empty topologyKey is not allowed.
3987 type: string
3988 x-kubernetes-list-type: atomic
3989 imagePullSecrets:
3990 description: If specified, the pod's imagePullSecrets
3991 type: array
3992 items:
3993 description: |-
3994 LocalObjectReference contains enough information to let you locate the
3995 referenced object inside the same namespace.
3996 type: object
3997 properties:
3998 name:
3999 description: |-
4000 Name of the referent.
4001 This field is effectively required, but due to backwards compatibility is
4002 allowed to be empty. Instances of this type with an empty value here are
4003 almost certainly wrong.
4004 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4005 type: string
4006 default: ""
4007 x-kubernetes-map-type: atomic
4008 nodeSelector:
4009 description: |-
4010 NodeSelector is a selector which must be true for the pod to fit on a node.
4011 Selector which must match a node's labels for the pod to be scheduled on that node.
4012 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
4013 type: object
4014 additionalProperties:
4015 type: string
4016 priorityClassName:
4017 description: If specified, the pod's priorityClassName.
4018 type: string
4019 securityContext:
4020 description: If specified, the pod's security context
4021 type: object
4022 properties:
4023 fsGroup:
4024 description: |-
4025 A special supplemental group that applies to all containers in a pod.
4026 Some volume types allow the Kubelet to change the ownership of that volume
4027 to be owned by the pod:
4028
4029 1. The owning GID will be the FSGroup
4030 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
4031 3. The permission bits are OR'd with rw-rw----
4032
4033 If unset, the Kubelet will not modify the ownership and permissions of any volume.
4034 Note that this field cannot be set when spec.os.name is windows.
4035 type: integer
4036 format: int64
4037 fsGroupChangePolicy:
4038 description: |-
4039 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
4040 before being exposed inside Pod. This field will only apply to
4041 volume types which support fsGroup based ownership(and permissions).
4042 It will have no effect on ephemeral volume types such as: secret, configmaps
4043 and emptydir.
4044 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
4045 Note that this field cannot be set when spec.os.name is windows.
4046 type: string
4047 runAsGroup:
4048 description: |-
4049 The GID to run the entrypoint of the container process.
4050 Uses runtime default if unset.
4051 May also be set in SecurityContext. If set in both SecurityContext and
4052 PodSecurityContext, the value specified in SecurityContext takes precedence
4053 for that container.
4054 Note that this field cannot be set when spec.os.name is windows.
4055 type: integer
4056 format: int64
4057 runAsNonRoot:
4058 description: |-
4059 Indicates that the container must run as a non-root user.
4060 If true, the Kubelet will validate the image at runtime to ensure that it
4061 does not run as UID 0 (root) and fail to start the container if it does.
4062 If unset or false, no such validation will be performed.
4063 May also be set in SecurityContext. If set in both SecurityContext and
4064 PodSecurityContext, the value specified in SecurityContext takes precedence.
4065 type: boolean
4066 runAsUser:
4067 description: |-
4068 The UID to run the entrypoint of the container process.
4069 Defaults to user specified in image metadata if unspecified.
4070 May also be set in SecurityContext. If set in both SecurityContext and
4071 PodSecurityContext, the value specified in SecurityContext takes precedence
4072 for that container.
4073 Note that this field cannot be set when spec.os.name is windows.
4074 type: integer
4075 format: int64
4076 seLinuxOptions:
4077 description: |-
4078 The SELinux context to be applied to all containers.
4079 If unspecified, the container runtime will allocate a random SELinux context for each
4080 container. May also be set in SecurityContext. If set in
4081 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
4082 takes precedence for that container.
4083 Note that this field cannot be set when spec.os.name is windows.
4084 type: object
4085 properties:
4086 level:
4087 description: Level is SELinux level label that applies to the container.
4088 type: string
4089 role:
4090 description: Role is a SELinux role label that applies to the container.
4091 type: string
4092 type:
4093 description: Type is a SELinux type label that applies to the container.
4094 type: string
4095 user:
4096 description: User is a SELinux user label that applies to the container.
4097 type: string
4098 seccompProfile:
4099 description: |-
4100 The seccomp options to use by the containers in this pod.
4101 Note that this field cannot be set when spec.os.name is windows.
4102 type: object
4103 required:
4104 - type
4105 properties:
4106 localhostProfile:
4107 description: |-
4108 localhostProfile indicates a profile defined in a file on the node should be used.
4109 The profile must be preconfigured on the node to work.
4110 Must be a descending path, relative to the kubelet's configured seccomp profile location.
4111 Must be set if type is "Localhost". Must NOT be set for any other type.
4112 type: string
4113 type:
4114 description: |-
4115 type indicates which kind of seccomp profile will be applied.
4116 Valid options are:
4117
4118 Localhost - a profile defined in a file on the node should be used.
4119 RuntimeDefault - the container runtime default profile should be used.
4120 Unconfined - no profile should be applied.
4121 type: string
4122 supplementalGroups:
4123 description: |-
4124 A list of groups applied to the first process run in each container, in addition
4125 to the container's primary GID, the fsGroup (if specified), and group memberships
4126 defined in the container image for the uid of the container process. If unspecified,
4127 no additional groups are added to any container. Note that group memberships
4128 defined in the container image for the uid of the container process are still effective,
4129 even if they are not included in this list.
4130 Note that this field cannot be set when spec.os.name is windows.
4131 type: array
4132 items:
4133 type: integer
4134 format: int64
4135 sysctls:
4136 description: |-
4137 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
4138 sysctls (by the container runtime) might fail to launch.
4139 Note that this field cannot be set when spec.os.name is windows.
4140 type: array
4141 items:
4142 description: Sysctl defines a kernel parameter to be set
4143 type: object
4144 required:
4145 - name
4146 - value
4147 properties:
4148 name:
4149 description: Name of a property to set
4150 type: string
4151 value:
4152 description: Value of a property to set
4153 type: string
4154 serviceAccountName:
4155 description: If specified, the pod's service account
4156 type: string
4157 tolerations:
4158 description: If specified, the pod's tolerations.
4159 type: array
4160 items:
4161 description: |-
4162 The pod this Toleration is attached to tolerates any taint that matches
4163 the triple <key,value,effect> using the matching operator <operator>.
4164 type: object
4165 properties:
4166 effect:
4167 description: |-
4168 Effect indicates the taint effect to match. Empty means match all taint effects.
4169 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
4170 type: string
4171 key:
4172 description: |-
4173 Key is the taint key that the toleration applies to. Empty means match all taint keys.
4174 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
4175 type: string
4176 operator:
4177 description: |-
4178 Operator represents a key's relationship to the value.
4179 Valid operators are Exists and Equal. Defaults to Equal.
4180 Exists is equivalent to wildcard for value, so that a pod can
4181 tolerate all taints of a particular category.
4182 type: string
4183 tolerationSeconds:
4184 description: |-
4185 TolerationSeconds represents the period of time the toleration (which must be
4186 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
4187 it is not set, which means tolerate the taint forever (do not evict). Zero and
4188 negative values will be treated as 0 (evict immediately) by the system.
4189 type: integer
4190 format: int64
4191 value:
4192 description: |-
4193 Value is the taint value the toleration matches to.
4194 If the operator is Exists, the value should be empty, otherwise just a regular string.
4195 type: string
4196 serviceType:
4197 description: |-
4198 Optional service type for Kubernetes solver service. Supported values
4199 are NodePort or ClusterIP. If unset, defaults to NodePort.
4200 type: string
4201 selector:
4202 description: |-
4203 Selector selects a set of DNSNames on the Certificate resource that
4204 should be solved using this challenge solver.
4205 If not specified, the solver will be treated as the 'default' solver
4206 with the lowest priority, i.e. if any other solver has a more specific
4207 match, it will be used instead.
4208 type: object
4209 properties:
4210 dnsNames:
4211 description: |-
4212 List of DNSNames that this solver will be used to solve.
4213 If specified and a match is found, a dnsNames selector will take
4214 precedence over a dnsZones selector.
4215 If multiple solvers match with the same dnsNames value, the solver
4216 with the most matching labels in matchLabels will be selected.
4217 If neither has more matches, the solver defined earlier in the list
4218 will be selected.
4219 type: array
4220 items:
4221 type: string
4222 dnsZones:
4223 description: |-
4224 List of DNSZones that this solver will be used to solve.
4225 The most specific DNS zone match specified here will take precedence
4226 over other DNS zone matches, so a solver specifying sys.example.com
4227 will be selected over one specifying example.com for the domain
4228 www.sys.example.com.
4229 If multiple solvers match with the same dnsZones 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 matchLabels:
4237 description: |-
4238 A label selector that is used to refine the set of certificate's that
4239 this challenge solver will apply to.
4240 type: object
4241 additionalProperties:
4242 type: string
4243 token:
4244 description: |-
4245 The ACME challenge token for this challenge.
4246 This is the raw value returned from the ACME server.
4247 type: string
4248 type:
4249 description: |-
4250 The type of ACME challenge this resource represents.
4251 One of "HTTP-01" or "DNS-01".
4252 type: string
4253 enum:
4254 - HTTP-01
4255 - DNS-01
4256 url:
4257 description: |-
4258 The URL of the ACME Challenge resource for this challenge.
4259 This can be used to lookup details about the status of this challenge.
4260 type: string
4261 wildcard:
4262 description: |-
4263 wildcard will be true if this challenge is for a wildcard identifier,
4264 for example '*.example.com'.
4265 type: boolean
4266 status:
4267 type: object
4268 properties:
4269 presented:
4270 description: |-
4271 presented will be set to true if the challenge values for this challenge
4272 are currently 'presented'.
4273 This *does not* imply the self check is passing. Only that the values
4274 have been 'submitted' for the appropriate challenge mechanism (i.e. the
4275 DNS01 TXT record has been presented, or the HTTP01 configuration has been
4276 configured).
4277 type: boolean
4278 processing:
4279 description: |-
4280 Used to denote whether this challenge should be processed or not.
4281 This field will only be set to true by the 'scheduling' component.
4282 It will only be set to false by the 'challenges' controller, after the
4283 challenge has reached a final state or timed out.
4284 If this field is set to false, the challenge controller will not take
4285 any more action.
4286 type: boolean
4287 reason:
4288 description: |-
4289 Contains human readable information on why the Challenge is in the
4290 current state.
4291 type: string
4292 state:
4293 description: |-
4294 Contains the current 'state' of the challenge.
4295 If not set, the state of the challenge is unknown.
4296 type: string
4297 enum:
4298 - valid
4299 - ready
4300 - pending
4301 - processing
4302 - invalid
4303 - expired
4304 - errored
4305 served: true
4306 storage: true
4307 subresources:
4308 status: {}
4309
4310# END crd {{- end }}
4311
4312---
4313# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
4314apiVersion: apiextensions.k8s.io/v1
4315kind: CustomResourceDefinition
4316metadata:
4317 name: clusterissuers.cert-manager.io
4318 # START annotations {{- if .Values.crds.keep }}
4319 annotations:
4320 helm.sh/resource-policy: keep
4321 # END annotations {{- end }}
4322 labels:
4323 app: '{{ template "cert-manager.name" . }}'
4324 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
4325 app.kubernetes.io/instance: '{{ .Release.Name }}'
4326 # Generated labels {{- include "labels" . | nindent 4 }}
4327spec:
4328 group: cert-manager.io
4329 names:
4330 kind: ClusterIssuer
4331 listKind: ClusterIssuerList
4332 plural: clusterissuers
4333 singular: clusterissuer
4334 categories:
4335 - cert-manager
4336 scope: Cluster
4337 versions:
4338 - name: v1
4339 subresources:
4340 status: {}
4341 additionalPrinterColumns:
4342 - jsonPath: .status.conditions[?(@.type=="Ready")].status
4343 name: Ready
4344 type: string
4345 - jsonPath: .status.conditions[?(@.type=="Ready")].message
4346 name: Status
4347 priority: 1
4348 type: string
4349 - jsonPath: .metadata.creationTimestamp
4350 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.
4351 name: Age
4352 type: date
4353 schema:
4354 openAPIV3Schema:
4355 description: |-
4356 A ClusterIssuer represents a certificate issuing authority which can be
4357 referenced as part of `issuerRef` fields.
4358 It is similar to an Issuer, however it is cluster-scoped and therefore can
4359 be referenced by resources that exist in *any* namespace, not just the same
4360 namespace as the referent.
4361 type: object
4362 required:
4363 - spec
4364 properties:
4365 apiVersion:
4366 description: |-
4367 APIVersion defines the versioned schema of this representation of an object.
4368 Servers should convert recognized schemas to the latest internal value, and
4369 may reject unrecognized values.
4370 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
4371 type: string
4372 kind:
4373 description: |-
4374 Kind is a string value representing the REST resource this object represents.
4375 Servers may infer this from the endpoint the client submits requests to.
4376 Cannot be updated.
4377 In CamelCase.
4378 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
4379 type: string
4380 metadata:
4381 type: object
4382 spec:
4383 description: Desired state of the ClusterIssuer resource.
4384 type: object
4385 properties:
4386 acme:
4387 description: |-
4388 ACME configures this issuer to communicate with a RFC8555 (ACME) server
4389 to obtain signed x509 certificates.
4390 type: object
4391 required:
4392 - privateKeySecretRef
4393 - server
4394 properties:
4395 caBundle:
4396 description: |-
4397 Base64-encoded bundle of PEM CAs which can be used to validate the certificate
4398 chain presented by the ACME server.
4399 Mutually exclusive with SkipTLSVerify; prefer using CABundle to prevent various
4400 kinds of security vulnerabilities.
4401 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
4402 the container is used to validate the TLS connection.
4403 type: string
4404 format: byte
4405 disableAccountKeyGeneration:
4406 description: |-
4407 Enables or disables generating a new ACME account key.
4408 If true, the Issuer resource will *not* request a new account but will expect
4409 the account key to be supplied via an existing secret.
4410 If false, the cert-manager system will generate a new ACME account key
4411 for the Issuer.
4412 Defaults to false.
4413 type: boolean
4414 email:
4415 description: |-
4416 Email is the email address to be associated with the ACME account.
4417 This field is optional, but it is strongly recommended to be set.
4418 It will be used to contact you in case of issues with your account or
4419 certificates, including expiry notification emails.
4420 This field may be updated after the account is initially registered.
4421 type: string
4422 enableDurationFeature:
4423 description: |-
4424 Enables requesting a Not After date on certificates that matches the
4425 duration of the certificate. This is not supported by all ACME servers
4426 like Let's Encrypt. If set to true when the ACME server does not support
4427 it, it will create an error on the Order.
4428 Defaults to false.
4429 type: boolean
4430 externalAccountBinding:
4431 description: |-
4432 ExternalAccountBinding is a reference to a CA external account of the ACME
4433 server.
4434 If set, upon registration cert-manager will attempt to associate the given
4435 external account credentials with the registered ACME account.
4436 type: object
4437 required:
4438 - keyID
4439 - keySecretRef
4440 properties:
4441 keyAlgorithm:
4442 description: |-
4443 Deprecated: keyAlgorithm field exists for historical compatibility
4444 reasons and should not be used. The algorithm is now hardcoded to HS256
4445 in golang/x/crypto/acme.
4446 type: string
4447 enum:
4448 - HS256
4449 - HS384
4450 - HS512
4451 keyID:
4452 description: keyID is the ID of the CA key that the External Account is bound to.
4453 type: string
4454 keySecretRef:
4455 description: |-
4456 keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes
4457 Secret which holds the symmetric MAC key of the External Account Binding.
4458 The `key` is the index string that is paired with the key data in the
4459 Secret and should not be confused with the key data itself, or indeed with
4460 the External Account Binding keyID above.
4461 The secret key stored in the Secret **must** be un-padded, base64 URL
4462 encoded data.
4463 type: object
4464 required:
4465 - name
4466 properties:
4467 key:
4468 description: |-
4469 The key of the entry in the Secret resource's `data` field to be used.
4470 Some instances of this field may be defaulted, in others it may be
4471 required.
4472 type: string
4473 name:
4474 description: |-
4475 Name of the resource being referred to.
4476 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4477 type: string
4478 preferredChain:
4479 description: |-
4480 PreferredChain is the chain to use if the ACME server outputs multiple.
4481 PreferredChain is no guarantee that this one gets delivered by the ACME
4482 endpoint.
4483 For example, for Let's Encrypt's DST crosssign you would use:
4484 "DST Root CA X3" or "ISRG Root X1" for the newer Let's Encrypt root CA.
4485 This value picks the first certificate bundle in the combined set of
4486 ACME default and alternative chains that has a root-most certificate with
4487 this value as its issuer's commonname.
4488 type: string
4489 maxLength: 64
4490 privateKeySecretRef:
4491 description: |-
4492 PrivateKey is the name of a Kubernetes Secret resource that will be used to
4493 store the automatically generated ACME account private key.
4494 Optionally, a `key` may be specified to select a specific entry within
4495 the named Secret resource.
4496 If `key` is not specified, a default of `tls.key` will be used.
4497 type: object
4498 required:
4499 - name
4500 properties:
4501 key:
4502 description: |-
4503 The key of the entry in the Secret resource's `data` field to be used.
4504 Some instances of this field may be defaulted, in others it may be
4505 required.
4506 type: string
4507 name:
4508 description: |-
4509 Name of the resource being referred to.
4510 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4511 type: string
4512 server:
4513 description: |-
4514 Server is the URL used to access the ACME server's 'directory' endpoint.
4515 For example, for Let's Encrypt's staging endpoint, you would use:
4516 "https://acme-staging-v02.api.letsencrypt.org/directory".
4517 Only ACME v2 endpoints (i.e. RFC 8555) are supported.
4518 type: string
4519 skipTLSVerify:
4520 description: |-
4521 INSECURE: Enables or disables validation of the ACME server TLS certificate.
4522 If true, requests to the ACME server will not have the TLS certificate chain
4523 validated.
4524 Mutually exclusive with CABundle; prefer using CABundle to prevent various
4525 kinds of security vulnerabilities.
4526 Only enable this option in development environments.
4527 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
4528 the container is used to validate the TLS connection.
4529 Defaults to false.
4530 type: boolean
4531 solvers:
4532 description: |-
4533 Solvers is a list of challenge solvers that will be used to solve
4534 ACME challenges for the matching domains.
4535 Solver configurations must be provided in order to obtain certificates
4536 from an ACME server.
4537 For more information, see: https://cert-manager.io/docs/configuration/acme/
4538 type: array
4539 items:
4540 description: |-
4541 An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of.
4542 A selector may be provided to use different solving strategies for different DNS names.
4543 Only one of HTTP01 or DNS01 must be provided.
4544 type: object
4545 properties:
4546 dns01:
4547 description: |-
4548 Configures cert-manager to attempt to complete authorizations by
4549 performing the DNS01 challenge flow.
4550 type: object
4551 properties:
4552 acmeDNS:
4553 description: |-
4554 Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage
4555 DNS01 challenge records.
4556 type: object
4557 required:
4558 - accountSecretRef
4559 - host
4560 properties:
4561 accountSecretRef:
4562 description: |-
4563 A reference to a specific 'key' within a Secret resource.
4564 In some instances, `key` is a required field.
4565 type: object
4566 required:
4567 - name
4568 properties:
4569 key:
4570 description: |-
4571 The key of the entry in the Secret resource's `data` field to be used.
4572 Some instances of this field may be defaulted, in others it may be
4573 required.
4574 type: string
4575 name:
4576 description: |-
4577 Name of the resource being referred to.
4578 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4579 type: string
4580 host:
4581 type: string
4582 akamai:
4583 description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
4584 type: object
4585 required:
4586 - accessTokenSecretRef
4587 - clientSecretSecretRef
4588 - clientTokenSecretRef
4589 - serviceConsumerDomain
4590 properties:
4591 accessTokenSecretRef:
4592 description: |-
4593 A reference to a specific 'key' within a Secret resource.
4594 In some instances, `key` is a required field.
4595 type: object
4596 required:
4597 - name
4598 properties:
4599 key:
4600 description: |-
4601 The key of the entry in the Secret resource's `data` field to be used.
4602 Some instances of this field may be defaulted, in others it may be
4603 required.
4604 type: string
4605 name:
4606 description: |-
4607 Name of the resource being referred to.
4608 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4609 type: string
4610 clientSecretSecretRef:
4611 description: |-
4612 A reference to a specific 'key' within a Secret resource.
4613 In some instances, `key` is a required field.
4614 type: object
4615 required:
4616 - name
4617 properties:
4618 key:
4619 description: |-
4620 The key of the entry in the Secret resource's `data` field to be used.
4621 Some instances of this field may be defaulted, in others it may be
4622 required.
4623 type: string
4624 name:
4625 description: |-
4626 Name of the resource being referred to.
4627 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4628 type: string
4629 clientTokenSecretRef:
4630 description: |-
4631 A reference to a specific 'key' within a Secret resource.
4632 In some instances, `key` is a required field.
4633 type: object
4634 required:
4635 - name
4636 properties:
4637 key:
4638 description: |-
4639 The key of the entry in the Secret resource's `data` field to be used.
4640 Some instances of this field may be defaulted, in others it may be
4641 required.
4642 type: string
4643 name:
4644 description: |-
4645 Name of the resource being referred to.
4646 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4647 type: string
4648 serviceConsumerDomain:
4649 type: string
4650 azureDNS:
4651 description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
4652 type: object
4653 required:
4654 - resourceGroupName
4655 - subscriptionID
4656 properties:
4657 clientID:
4658 description: |-
4659 Auth: Azure Service Principal:
4660 The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
4661 If set, ClientSecret and TenantID must also be set.
4662 type: string
4663 clientSecretSecretRef:
4664 description: |-
4665 Auth: Azure Service Principal:
4666 A reference to a Secret containing the password associated with the Service Principal.
4667 If set, ClientID and TenantID must also be set.
4668 type: object
4669 required:
4670 - name
4671 properties:
4672 key:
4673 description: |-
4674 The key of the entry in the Secret resource's `data` field to be used.
4675 Some instances of this field may be defaulted, in others it may be
4676 required.
4677 type: string
4678 name:
4679 description: |-
4680 Name of the resource being referred to.
4681 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4682 type: string
4683 environment:
4684 description: name of the Azure environment (default AzurePublicCloud)
4685 type: string
4686 enum:
4687 - AzurePublicCloud
4688 - AzureChinaCloud
4689 - AzureGermanCloud
4690 - AzureUSGovernmentCloud
4691 hostedZoneName:
4692 description: name of the DNS zone that should be used
4693 type: string
4694 managedIdentity:
4695 description: |-
4696 Auth: Azure Workload Identity or Azure Managed Service Identity:
4697 Settings to enable Azure Workload Identity or Azure Managed Service Identity
4698 If set, ClientID, ClientSecret and TenantID must not be set.
4699 type: object
4700 properties:
4701 clientID:
4702 description: client ID of the managed identity, can not be used at the same time as resourceID
4703 type: string
4704 resourceID:
4705 description: |-
4706 resource ID of the managed identity, can not be used at the same time as clientID
4707 Cannot be used for Azure Managed Service Identity
4708 type: string
4709 tenantID:
4710 description: tenant ID of the managed identity, can not be used at the same time as resourceID
4711 type: string
4712 resourceGroupName:
4713 description: resource group the DNS zone is located in
4714 type: string
4715 subscriptionID:
4716 description: ID of the Azure subscription
4717 type: string
4718 tenantID:
4719 description: |-
4720 Auth: Azure Service Principal:
4721 The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
4722 If set, ClientID and ClientSecret must also be set.
4723 type: string
4724 cloudDNS:
4725 description: Use the Google Cloud DNS API to manage DNS01 challenge records.
4726 type: object
4727 required:
4728 - project
4729 properties:
4730 hostedZoneName:
4731 description: |-
4732 HostedZoneName is an optional field that tells cert-manager in which
4733 Cloud DNS zone the challenge record has to be created.
4734 If left empty cert-manager will automatically choose a zone.
4735 type: string
4736 project:
4737 type: string
4738 serviceAccountSecretRef:
4739 description: |-
4740 A reference to a specific 'key' within a Secret resource.
4741 In some instances, `key` is a required field.
4742 type: object
4743 required:
4744 - name
4745 properties:
4746 key:
4747 description: |-
4748 The key of the entry in the Secret resource's `data` field to be used.
4749 Some instances of this field may be defaulted, in others it may be
4750 required.
4751 type: string
4752 name:
4753 description: |-
4754 Name of the resource being referred to.
4755 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4756 type: string
4757 cloudflare:
4758 description: Use the Cloudflare API to manage DNS01 challenge records.
4759 type: object
4760 properties:
4761 apiKeySecretRef:
4762 description: |-
4763 API key to use to authenticate with Cloudflare.
4764 Note: using an API token to authenticate is now the recommended method
4765 as it allows greater control of permissions.
4766 type: object
4767 required:
4768 - name
4769 properties:
4770 key:
4771 description: |-
4772 The key of the entry in the Secret resource's `data` field to be used.
4773 Some instances of this field may be defaulted, in others it may be
4774 required.
4775 type: string
4776 name:
4777 description: |-
4778 Name of the resource being referred to.
4779 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4780 type: string
4781 apiTokenSecretRef:
4782 description: API token used to authenticate with Cloudflare.
4783 type: object
4784 required:
4785 - name
4786 properties:
4787 key:
4788 description: |-
4789 The key of the entry in the Secret resource's `data` field to be used.
4790 Some instances of this field may be defaulted, in others it may be
4791 required.
4792 type: string
4793 name:
4794 description: |-
4795 Name of the resource being referred to.
4796 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4797 type: string
4798 email:
4799 description: Email of the account, only required when using API key based authentication.
4800 type: string
4801 cnameStrategy:
4802 description: |-
4803 CNAMEStrategy configures how the DNS01 provider should handle CNAME
4804 records when found in DNS zones.
4805 type: string
4806 enum:
4807 - None
4808 - Follow
4809 digitalocean:
4810 description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
4811 type: object
4812 required:
4813 - tokenSecretRef
4814 properties:
4815 tokenSecretRef:
4816 description: |-
4817 A reference to a specific 'key' within a Secret resource.
4818 In some instances, `key` is a required field.
4819 type: object
4820 required:
4821 - name
4822 properties:
4823 key:
4824 description: |-
4825 The key of the entry in the Secret resource's `data` field to be used.
4826 Some instances of this field may be defaulted, in others it may be
4827 required.
4828 type: string
4829 name:
4830 description: |-
4831 Name of the resource being referred to.
4832 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4833 type: string
4834 rfc2136:
4835 description: |-
4836 Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/)
4837 to manage DNS01 challenge records.
4838 type: object
4839 required:
4840 - nameserver
4841 properties:
4842 nameserver:
4843 description: |-
4844 The IP address or hostname of an authoritative DNS server supporting
4845 RFC2136 in the form host:port. If the host is an IPv6 address it must be
4846 enclosed in square brackets (e.g [2001:db8::1]) ; port is optional.
4847 This field is required.
4848 type: string
4849 tsigAlgorithm:
4850 description: |-
4851 The TSIG Algorithm configured in the DNS supporting RFC2136. Used only
4852 when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined.
4853 Supported values are (case-insensitive): ``HMACMD5`` (default),
4854 ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.
4855 type: string
4856 tsigKeyName:
4857 description: |-
4858 The TSIG Key name configured in the DNS.
4859 If ``tsigSecretSecretRef`` is defined, this field is required.
4860 type: string
4861 tsigSecretSecretRef:
4862 description: |-
4863 The name of the secret containing the TSIG value.
4864 If ``tsigKeyName`` is defined, this field is required.
4865 type: object
4866 required:
4867 - name
4868 properties:
4869 key:
4870 description: |-
4871 The key of the entry in the Secret resource's `data` field to be used.
4872 Some instances of this field may be defaulted, in others it may be
4873 required.
4874 type: string
4875 name:
4876 description: |-
4877 Name of the resource being referred to.
4878 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4879 type: string
4880 route53:
4881 description: Use the AWS Route53 API to manage DNS01 challenge records.
4882 type: object
4883 properties:
4884 accessKeyID:
4885 description: |-
4886 The AccessKeyID is used for authentication.
4887 Cannot be set when SecretAccessKeyID is set.
4888 If neither the Access Key nor Key ID are set, we fall-back to using env
4889 vars, shared credentials file or AWS Instance metadata,
4890 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
4891 type: string
4892 accessKeyIDSecretRef:
4893 description: |-
4894 The SecretAccessKey is used for authentication. If set, pull the AWS
4895 access key ID from a key within a Kubernetes Secret.
4896 Cannot be set when AccessKeyID is set.
4897 If neither the Access Key nor Key ID are set, we fall-back to using env
4898 vars, shared credentials file or AWS Instance metadata,
4899 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
4900 type: object
4901 required:
4902 - name
4903 properties:
4904 key:
4905 description: |-
4906 The key of the entry in the Secret resource's `data` field to be used.
4907 Some instances of this field may be defaulted, in others it may be
4908 required.
4909 type: string
4910 name:
4911 description: |-
4912 Name of the resource being referred to.
4913 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
4914 type: string
4915 auth:
4916 description: Auth configures how cert-manager authenticates.
4917 type: object
4918 required:
4919 - kubernetes
4920 properties:
4921 kubernetes:
4922 description: |-
4923 Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
4924 by passing a bound ServiceAccount token.
4925 type: object
4926 required:
4927 - serviceAccountRef
4928 properties:
4929 serviceAccountRef:
4930 description: |-
4931 A reference to a service account that will be used to request a bound
4932 token (also known as "projected token"). To use this field, you must
4933 configure an RBAC rule to let cert-manager request a token.
4934 type: object
4935 required:
4936 - name
4937 properties:
4938 audiences:
4939 description: |-
4940 TokenAudiences is an optional list of audiences to include in the
4941 token passed to AWS. The default token consisting of the issuer's namespace
4942 and name is always included.
4943 If unset the audience defaults to `sts.amazonaws.com`.
4944 type: array
4945 items:
4946 type: string
4947 name:
4948 description: Name of the ServiceAccount used to request a token.
4949 type: string
4950 hostedZoneID:
4951 description: If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.
4952 type: string
4953 region:
4954 description: |-
4955 Override the AWS region.
4956
4957 Route53 is a global service and does not have regional endpoints but the
4958 region specified here (or via environment variables) is used as a hint to
4959 help compute the correct AWS credential scope and partition when it
4960 connects to Route53. See:
4961 - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html)
4962 - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html)
4963
4964 If you omit this region field, cert-manager will use the region from
4965 AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set
4966 in the cert-manager controller Pod.
4967
4968 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).
4969 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
4970 [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook).
4971 In this case this `region` field value is ignored.
4972
4973 The `region` field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
4974 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
4975 [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent),
4976 In this case this `region` field value is ignored.
4977 type: string
4978 role:
4979 description: |-
4980 Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
4981 or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
4982 type: string
4983 secretAccessKeySecretRef:
4984 description: |-
4985 The SecretAccessKey is used for authentication.
4986 If neither the Access Key nor Key ID are set, we fall-back to using env
4987 vars, shared credentials file or AWS Instance metadata,
4988 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
4989 type: object
4990 required:
4991 - name
4992 properties:
4993 key:
4994 description: |-
4995 The key of the entry in the Secret resource's `data` field to be used.
4996 Some instances of this field may be defaulted, in others it may be
4997 required.
4998 type: string
4999 name:
5000 description: |-
5001 Name of the resource being referred to.
5002 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
5003 type: string
5004 webhook:
5005 description: |-
5006 Configure an external webhook based DNS01 challenge solver to manage
5007 DNS01 challenge records.
5008 type: object
5009 required:
5010 - groupName
5011 - solverName
5012 properties:
5013 config:
5014 description: |-
5015 Additional configuration that should be passed to the webhook apiserver
5016 when challenges are processed.
5017 This can contain arbitrary JSON data.
5018 Secret values should not be specified in this stanza.
5019 If secret values are needed (e.g. credentials for a DNS service), you
5020 should use a SecretKeySelector to reference a Secret resource.
5021 For details on the schema of this field, consult the webhook provider
5022 implementation's documentation.
5023 x-kubernetes-preserve-unknown-fields: true
5024 groupName:
5025 description: |-
5026 The API group name that should be used when POSTing ChallengePayload
5027 resources to the webhook apiserver.
5028 This should be the same as the GroupName specified in the webhook
5029 provider implementation.
5030 type: string
5031 solverName:
5032 description: |-
5033 The name of the solver to use, as defined in the webhook provider
5034 implementation.
5035 This will typically be the name of the provider, e.g. 'cloudflare'.
5036 type: string
5037 http01:
5038 description: |-
5039 Configures cert-manager to attempt to complete authorizations by
5040 performing the HTTP01 challenge flow.
5041 It is not possible to obtain certificates for wildcard domain names
5042 (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
5043 type: object
5044 properties:
5045 gatewayHTTPRoute:
5046 description: |-
5047 The Gateway API is a sig-network community API that models service networking
5048 in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will
5049 create HTTPRoutes with the specified labels in the same namespace as the challenge.
5050 This solver is experimental, and fields / behaviour may change in the future.
5051 type: object
5052 properties:
5053 labels:
5054 description: |-
5055 Custom labels that will be applied to HTTPRoutes created by cert-manager
5056 while solving HTTP-01 challenges.
5057 type: object
5058 additionalProperties:
5059 type: string
5060 parentRefs:
5061 description: |-
5062 When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute.
5063 cert-manager needs to know which parentRefs should be used when creating
5064 the HTTPRoute. Usually, the parentRef references a Gateway. See:
5065 https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways
5066 type: array
5067 items:
5068 description: |-
5069 ParentReference identifies an API object (usually a Gateway) that can be considered
5070 a parent of this resource (usually a route). There are two kinds of parent resources
5071 with "Core" support:
5072
5073 * Gateway (Gateway conformance profile)
5074 * Service (Mesh conformance profile, ClusterIP Services only)
5075
5076 This API may be extended in the future to support additional kinds of parent
5077 resources.
5078
5079 The API object must be valid in the cluster; the Group and Kind must
5080 be registered in the cluster for this reference to be valid.
5081 type: object
5082 required:
5083 - name
5084 properties:
5085 group:
5086 description: |-
5087 Group is the group of the referent.
5088 When unspecified, "gateway.networking.k8s.io" is inferred.
5089 To set the core API group (such as for a "Service" kind referent),
5090 Group must be explicitly set to "" (empty string).
5091
5092 Support: Core
5093 type: string
5094 default: gateway.networking.k8s.io
5095 maxLength: 253
5096 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
5097 kind:
5098 description: |-
5099 Kind is kind of the referent.
5100
5101 There are two kinds of parent resources with "Core" support:
5102
5103 * Gateway (Gateway conformance profile)
5104 * Service (Mesh conformance profile, ClusterIP Services only)
5105
5106 Support for other resources is Implementation-Specific.
5107 type: string
5108 default: Gateway
5109 maxLength: 63
5110 minLength: 1
5111 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
5112 name:
5113 description: |-
5114 Name is the name of the referent.
5115
5116 Support: Core
5117 type: string
5118 maxLength: 253
5119 minLength: 1
5120 namespace:
5121 description: |-
5122 Namespace is the namespace of the referent. When unspecified, this refers
5123 to the local namespace of the Route.
5124
5125 Note that there are specific rules for ParentRefs which cross namespace
5126 boundaries. Cross-namespace references are only valid if they are explicitly
5127 allowed by something in the namespace they are referring to. For example:
5128 Gateway has the AllowedRoutes field, and ReferenceGrant provides a
5129 generic way to enable any other kind of cross-namespace reference.
5130
5131 <gateway:experimental:description>
5132 ParentRefs from a Route to a Service in the same namespace are "producer"
5133 routes, which apply default routing rules to inbound connections from
5134 any namespace to the Service.
5135
5136 ParentRefs from a Route to a Service in a different namespace are
5137 "consumer" routes, and these routing rules are only applied to outbound
5138 connections originating from the same namespace as the Route, for which
5139 the intended destination of the connections are a Service targeted as a
5140 ParentRef of the Route.
5141 </gateway:experimental:description>
5142
5143 Support: Core
5144 type: string
5145 maxLength: 63
5146 minLength: 1
5147 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
5148 port:
5149 description: |-
5150 Port is the network port this Route targets. It can be interpreted
5151 differently based on the type of parent resource.
5152
5153 When the parent resource is a Gateway, this targets all listeners
5154 listening on the specified port that also support this kind of Route(and
5155 select this Route). It's not recommended to set `Port` unless the
5156 networking behaviors specified in a Route must apply to a specific port
5157 as opposed to a listener(s) whose port(s) may be changed. When both Port
5158 and SectionName are specified, the name and port of the selected listener
5159 must match both specified values.
5160
5161 <gateway:experimental:description>
5162 When the parent resource is a Service, this targets a specific port in the
5163 Service spec. When both Port (experimental) and SectionName are specified,
5164 the name and port of the selected port must match both specified values.
5165 </gateway:experimental:description>
5166
5167 Implementations MAY choose to support other parent resources.
5168 Implementations supporting other types of parent resources MUST clearly
5169 document how/if Port is interpreted.
5170
5171 For the purpose of status, an attachment is considered successful as
5172 long as the parent resource accepts it partially. For example, Gateway
5173 listeners can restrict which Routes can attach to them by Route kind,
5174 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
5175 from the referencing Route, the Route MUST be considered successfully
5176 attached. If no Gateway listeners accept attachment from this Route,
5177 the Route MUST be considered detached from the Gateway.
5178
5179 Support: Extended
5180 type: integer
5181 format: int32
5182 maximum: 65535
5183 minimum: 1
5184 sectionName:
5185 description: |-
5186 SectionName is the name of a section within the target resource. In the
5187 following resources, SectionName is interpreted as the following:
5188
5189 * Gateway: Listener name. When both Port (experimental) and SectionName
5190 are specified, the name and port of the selected listener must match
5191 both specified values.
5192 * Service: Port name. When both Port (experimental) and SectionName
5193 are specified, the name and port of the selected listener must match
5194 both specified values.
5195
5196 Implementations MAY choose to support attaching Routes to other resources.
5197 If that is the case, they MUST clearly document how SectionName is
5198 interpreted.
5199
5200 When unspecified (empty string), this will reference the entire resource.
5201 For the purpose of status, an attachment is considered successful if at
5202 least one section in the parent resource accepts it. For example, Gateway
5203 listeners can restrict which Routes can attach to them by Route kind,
5204 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
5205 the referencing Route, the Route MUST be considered successfully
5206 attached. If no Gateway listeners accept attachment from this Route, the
5207 Route MUST be considered detached from the Gateway.
5208
5209 Support: Core
5210 type: string
5211 maxLength: 253
5212 minLength: 1
5213 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
5214 podTemplate:
5215 description: |-
5216 Optional pod template used to configure the ACME challenge solver pods
5217 used for HTTP01 challenges.
5218 type: object
5219 properties:
5220 metadata:
5221 description: |-
5222 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
5223 Only the 'labels' and 'annotations' fields may be set.
5224 If labels or annotations overlap with in-built values, the values here
5225 will override the in-built values.
5226 type: object
5227 properties:
5228 annotations:
5229 description: Annotations that should be added to the created ACME HTTP01 solver pods.
5230 type: object
5231 additionalProperties:
5232 type: string
5233 labels:
5234 description: Labels that should be added to the created ACME HTTP01 solver pods.
5235 type: object
5236 additionalProperties:
5237 type: string
5238 spec:
5239 description: |-
5240 PodSpec defines overrides for the HTTP01 challenge solver pod.
5241 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
5242 All other fields will be ignored.
5243 type: object
5244 properties:
5245 affinity:
5246 description: If specified, the pod's scheduling constraints
5247 type: object
5248 properties:
5249 nodeAffinity:
5250 description: Describes node affinity scheduling rules for the pod.
5251 type: object
5252 properties:
5253 preferredDuringSchedulingIgnoredDuringExecution:
5254 description: |-
5255 The scheduler will prefer to schedule pods to nodes that satisfy
5256 the affinity expressions specified by this field, but it may choose
5257 a node that violates one or more of the expressions. The node that is
5258 most preferred is the one with the greatest sum of weights, i.e.
5259 for each node that meets all of the scheduling requirements (resource
5260 request, requiredDuringScheduling affinity expressions, etc.),
5261 compute a sum by iterating through the elements of this field and adding
5262 "weight" to the sum if the node matches the corresponding matchExpressions; the
5263 node(s) with the highest sum are the most preferred.
5264 type: array
5265 items:
5266 description: |-
5267 An empty preferred scheduling term matches all objects with implicit weight 0
5268 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
5269 type: object
5270 required:
5271 - preference
5272 - weight
5273 properties:
5274 preference:
5275 description: A node selector term, associated with the corresponding weight.
5276 type: object
5277 properties:
5278 matchExpressions:
5279 description: A list of node selector requirements by node's labels.
5280 type: array
5281 items:
5282 description: |-
5283 A node selector requirement is a selector that contains values, a key, and an operator
5284 that relates the key and values.
5285 type: object
5286 required:
5287 - key
5288 - operator
5289 properties:
5290 key:
5291 description: The label key that the selector applies to.
5292 type: string
5293 operator:
5294 description: |-
5295 Represents a key's relationship to a set of values.
5296 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5297 type: string
5298 values:
5299 description: |-
5300 An array of string values. If the operator is In or NotIn,
5301 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5302 the values array must be empty. If the operator is Gt or Lt, the values
5303 array must have a single element, which will be interpreted as an integer.
5304 This array is replaced during a strategic merge patch.
5305 type: array
5306 items:
5307 type: string
5308 x-kubernetes-list-type: atomic
5309 x-kubernetes-list-type: atomic
5310 matchFields:
5311 description: A list of node selector requirements by node's fields.
5312 type: array
5313 items:
5314 description: |-
5315 A node selector requirement is a selector that contains values, a key, and an operator
5316 that relates the key and values.
5317 type: object
5318 required:
5319 - key
5320 - operator
5321 properties:
5322 key:
5323 description: The label key that the selector applies to.
5324 type: string
5325 operator:
5326 description: |-
5327 Represents a key's relationship to a set of values.
5328 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5329 type: string
5330 values:
5331 description: |-
5332 An array of string values. If the operator is In or NotIn,
5333 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5334 the values array must be empty. If the operator is Gt or Lt, the values
5335 array must have a single element, which will be interpreted as an integer.
5336 This array is replaced during a strategic merge patch.
5337 type: array
5338 items:
5339 type: string
5340 x-kubernetes-list-type: atomic
5341 x-kubernetes-list-type: atomic
5342 x-kubernetes-map-type: atomic
5343 weight:
5344 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
5345 type: integer
5346 format: int32
5347 x-kubernetes-list-type: atomic
5348 requiredDuringSchedulingIgnoredDuringExecution:
5349 description: |-
5350 If the affinity requirements specified by this field are not met at
5351 scheduling time, the pod will not be scheduled onto the node.
5352 If the affinity requirements specified by this field cease to be met
5353 at some point during pod execution (e.g. due to an update), the system
5354 may or may not try to eventually evict the pod from its node.
5355 type: object
5356 required:
5357 - nodeSelectorTerms
5358 properties:
5359 nodeSelectorTerms:
5360 description: Required. A list of node selector terms. The terms are ORed.
5361 type: array
5362 items:
5363 description: |-
5364 A null or empty node selector term matches no objects. The requirements of
5365 them are ANDed.
5366 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
5367 type: object
5368 properties:
5369 matchExpressions:
5370 description: A list of node selector requirements by node's labels.
5371 type: array
5372 items:
5373 description: |-
5374 A node selector requirement is a selector that contains values, a key, and an operator
5375 that relates the key and values.
5376 type: object
5377 required:
5378 - key
5379 - operator
5380 properties:
5381 key:
5382 description: The label key that the selector applies to.
5383 type: string
5384 operator:
5385 description: |-
5386 Represents a key's relationship to a set of values.
5387 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5388 type: string
5389 values:
5390 description: |-
5391 An array of string values. If the operator is In or NotIn,
5392 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5393 the values array must be empty. If the operator is Gt or Lt, the values
5394 array must have a single element, which will be interpreted as an integer.
5395 This array is replaced during a strategic merge patch.
5396 type: array
5397 items:
5398 type: string
5399 x-kubernetes-list-type: atomic
5400 x-kubernetes-list-type: atomic
5401 matchFields:
5402 description: A list of node selector requirements by node's fields.
5403 type: array
5404 items:
5405 description: |-
5406 A node selector requirement is a selector that contains values, a key, and an operator
5407 that relates the key and values.
5408 type: object
5409 required:
5410 - key
5411 - operator
5412 properties:
5413 key:
5414 description: The label key that the selector applies to.
5415 type: string
5416 operator:
5417 description: |-
5418 Represents a key's relationship to a set of values.
5419 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
5420 type: string
5421 values:
5422 description: |-
5423 An array of string values. If the operator is In or NotIn,
5424 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5425 the values array must be empty. If the operator is Gt or Lt, the values
5426 array must have a single element, which will be interpreted as an integer.
5427 This array is replaced during a strategic merge patch.
5428 type: array
5429 items:
5430 type: string
5431 x-kubernetes-list-type: atomic
5432 x-kubernetes-list-type: atomic
5433 x-kubernetes-map-type: atomic
5434 x-kubernetes-list-type: atomic
5435 x-kubernetes-map-type: atomic
5436 podAffinity:
5437 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
5438 type: object
5439 properties:
5440 preferredDuringSchedulingIgnoredDuringExecution:
5441 description: |-
5442 The scheduler will prefer to schedule pods to nodes that satisfy
5443 the affinity expressions specified by this field, but it may choose
5444 a node that violates one or more of the expressions. The node that is
5445 most preferred is the one with the greatest sum of weights, i.e.
5446 for each node that meets all of the scheduling requirements (resource
5447 request, requiredDuringScheduling affinity expressions, etc.),
5448 compute a sum by iterating through the elements of this field and adding
5449 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
5450 node(s) with the highest sum are the most preferred.
5451 type: array
5452 items:
5453 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
5454 type: object
5455 required:
5456 - podAffinityTerm
5457 - weight
5458 properties:
5459 podAffinityTerm:
5460 description: Required. A pod affinity term, associated with the corresponding weight.
5461 type: object
5462 required:
5463 - topologyKey
5464 properties:
5465 labelSelector:
5466 description: |-
5467 A label query over a set of resources, in this case pods.
5468 If it's null, this PodAffinityTerm matches with no Pods.
5469 type: object
5470 properties:
5471 matchExpressions:
5472 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5473 type: array
5474 items:
5475 description: |-
5476 A label selector requirement is a selector that contains values, a key, and an operator that
5477 relates the key and values.
5478 type: object
5479 required:
5480 - key
5481 - operator
5482 properties:
5483 key:
5484 description: key is the label key that the selector applies to.
5485 type: string
5486 operator:
5487 description: |-
5488 operator represents a key's relationship to a set of values.
5489 Valid operators are In, NotIn, Exists and DoesNotExist.
5490 type: string
5491 values:
5492 description: |-
5493 values is an array of string values. If the operator is In or NotIn,
5494 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5495 the values array must be empty. This array is replaced during a strategic
5496 merge patch.
5497 type: array
5498 items:
5499 type: string
5500 x-kubernetes-list-type: atomic
5501 x-kubernetes-list-type: atomic
5502 matchLabels:
5503 description: |-
5504 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5505 map is equivalent to an element of matchExpressions, whose key field is "key", the
5506 operator is "In", and the values array contains only "value". The requirements are ANDed.
5507 type: object
5508 additionalProperties:
5509 type: string
5510 x-kubernetes-map-type: atomic
5511 matchLabelKeys:
5512 description: |-
5513 MatchLabelKeys is a set of pod label keys to select which pods will
5514 be taken into consideration. The keys are used to lookup values from the
5515 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
5516 to select the group of existing pods which pods will be taken into consideration
5517 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5518 pod labels will be ignored. The default value is empty.
5519 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5520 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5521 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5522 type: array
5523 items:
5524 type: string
5525 x-kubernetes-list-type: atomic
5526 mismatchLabelKeys:
5527 description: |-
5528 MismatchLabelKeys is a set of pod label keys to select which pods will
5529 be taken into consideration. The keys are used to lookup values from the
5530 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
5531 to select the group of existing pods which pods will be taken into consideration
5532 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5533 pod labels will be ignored. The default value is empty.
5534 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5535 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5536 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5537 type: array
5538 items:
5539 type: string
5540 x-kubernetes-list-type: atomic
5541 namespaceSelector:
5542 description: |-
5543 A label query over the set of namespaces that the term applies to.
5544 The term is applied to the union of the namespaces selected by this field
5545 and the ones listed in the namespaces field.
5546 null selector and null or empty namespaces list means "this pod's namespace".
5547 An empty selector ({}) matches all namespaces.
5548 type: object
5549 properties:
5550 matchExpressions:
5551 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5552 type: array
5553 items:
5554 description: |-
5555 A label selector requirement is a selector that contains values, a key, and an operator that
5556 relates the key and values.
5557 type: object
5558 required:
5559 - key
5560 - operator
5561 properties:
5562 key:
5563 description: key is the label key that the selector applies to.
5564 type: string
5565 operator:
5566 description: |-
5567 operator represents a key's relationship to a set of values.
5568 Valid operators are In, NotIn, Exists and DoesNotExist.
5569 type: string
5570 values:
5571 description: |-
5572 values is an array of string values. If the operator is In or NotIn,
5573 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5574 the values array must be empty. This array is replaced during a strategic
5575 merge patch.
5576 type: array
5577 items:
5578 type: string
5579 x-kubernetes-list-type: atomic
5580 x-kubernetes-list-type: atomic
5581 matchLabels:
5582 description: |-
5583 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5584 map is equivalent to an element of matchExpressions, whose key field is "key", the
5585 operator is "In", and the values array contains only "value". The requirements are ANDed.
5586 type: object
5587 additionalProperties:
5588 type: string
5589 x-kubernetes-map-type: atomic
5590 namespaces:
5591 description: |-
5592 namespaces specifies a static list of namespace names that the term applies to.
5593 The term is applied to the union of the namespaces listed in this field
5594 and the ones selected by namespaceSelector.
5595 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5596 type: array
5597 items:
5598 type: string
5599 x-kubernetes-list-type: atomic
5600 topologyKey:
5601 description: |-
5602 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5603 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5604 whose value of the label with key topologyKey matches that of any node on which any of the
5605 selected pods is running.
5606 Empty topologyKey is not allowed.
5607 type: string
5608 weight:
5609 description: |-
5610 weight associated with matching the corresponding podAffinityTerm,
5611 in the range 1-100.
5612 type: integer
5613 format: int32
5614 x-kubernetes-list-type: atomic
5615 requiredDuringSchedulingIgnoredDuringExecution:
5616 description: |-
5617 If the affinity requirements specified by this field are not met at
5618 scheduling time, the pod will not be scheduled onto the node.
5619 If the affinity requirements specified by this field cease to be met
5620 at some point during pod execution (e.g. due to a pod label update), the
5621 system may or may not try to eventually evict the pod from its node.
5622 When there are multiple elements, the lists of nodes corresponding to each
5623 podAffinityTerm are intersected, i.e. all terms must be satisfied.
5624 type: array
5625 items:
5626 description: |-
5627 Defines a set of pods (namely those matching the labelSelector
5628 relative to the given namespace(s)) that this pod should be
5629 co-located (affinity) or not co-located (anti-affinity) with,
5630 where co-located is defined as running on a node whose value of
5631 the label with key <topologyKey> matches that of any node on which
5632 a pod of the set of pods is running
5633 type: object
5634 required:
5635 - topologyKey
5636 properties:
5637 labelSelector:
5638 description: |-
5639 A label query over a set of resources, in this case pods.
5640 If it's null, this PodAffinityTerm matches with no Pods.
5641 type: object
5642 properties:
5643 matchExpressions:
5644 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5645 type: array
5646 items:
5647 description: |-
5648 A label selector requirement is a selector that contains values, a key, and an operator that
5649 relates the key and values.
5650 type: object
5651 required:
5652 - key
5653 - operator
5654 properties:
5655 key:
5656 description: key is the label key that the selector applies to.
5657 type: string
5658 operator:
5659 description: |-
5660 operator represents a key's relationship to a set of values.
5661 Valid operators are In, NotIn, Exists and DoesNotExist.
5662 type: string
5663 values:
5664 description: |-
5665 values is an array of string values. If the operator is In or NotIn,
5666 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5667 the values array must be empty. This array is replaced during a strategic
5668 merge patch.
5669 type: array
5670 items:
5671 type: string
5672 x-kubernetes-list-type: atomic
5673 x-kubernetes-list-type: atomic
5674 matchLabels:
5675 description: |-
5676 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5677 map is equivalent to an element of matchExpressions, whose key field is "key", the
5678 operator is "In", and the values array contains only "value". The requirements are ANDed.
5679 type: object
5680 additionalProperties:
5681 type: string
5682 x-kubernetes-map-type: atomic
5683 matchLabelKeys:
5684 description: |-
5685 MatchLabelKeys is a set of pod label keys to select which pods will
5686 be taken into consideration. The keys are used to lookup values from the
5687 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
5688 to select the group of existing pods which pods will be taken into consideration
5689 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5690 pod labels will be ignored. The default value is empty.
5691 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5692 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5693 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5694 type: array
5695 items:
5696 type: string
5697 x-kubernetes-list-type: atomic
5698 mismatchLabelKeys:
5699 description: |-
5700 MismatchLabelKeys is a set of pod label keys to select which pods will
5701 be taken into consideration. The keys are used to lookup values from the
5702 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
5703 to select the group of existing pods which pods will be taken into consideration
5704 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5705 pod labels will be ignored. The default value is empty.
5706 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5707 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5708 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5709 type: array
5710 items:
5711 type: string
5712 x-kubernetes-list-type: atomic
5713 namespaceSelector:
5714 description: |-
5715 A label query over the set of namespaces that the term applies to.
5716 The term is applied to the union of the namespaces selected by this field
5717 and the ones listed in the namespaces field.
5718 null selector and null or empty namespaces list means "this pod's namespace".
5719 An empty selector ({}) matches all namespaces.
5720 type: object
5721 properties:
5722 matchExpressions:
5723 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5724 type: array
5725 items:
5726 description: |-
5727 A label selector requirement is a selector that contains values, a key, and an operator that
5728 relates the key and values.
5729 type: object
5730 required:
5731 - key
5732 - operator
5733 properties:
5734 key:
5735 description: key is the label key that the selector applies to.
5736 type: string
5737 operator:
5738 description: |-
5739 operator represents a key's relationship to a set of values.
5740 Valid operators are In, NotIn, Exists and DoesNotExist.
5741 type: string
5742 values:
5743 description: |-
5744 values is an array of string values. If the operator is In or NotIn,
5745 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5746 the values array must be empty. This array is replaced during a strategic
5747 merge patch.
5748 type: array
5749 items:
5750 type: string
5751 x-kubernetes-list-type: atomic
5752 x-kubernetes-list-type: atomic
5753 matchLabels:
5754 description: |-
5755 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5756 map is equivalent to an element of matchExpressions, whose key field is "key", the
5757 operator is "In", and the values array contains only "value". The requirements are ANDed.
5758 type: object
5759 additionalProperties:
5760 type: string
5761 x-kubernetes-map-type: atomic
5762 namespaces:
5763 description: |-
5764 namespaces specifies a static list of namespace names that the term applies to.
5765 The term is applied to the union of the namespaces listed in this field
5766 and the ones selected by namespaceSelector.
5767 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5768 type: array
5769 items:
5770 type: string
5771 x-kubernetes-list-type: atomic
5772 topologyKey:
5773 description: |-
5774 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5775 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5776 whose value of the label with key topologyKey matches that of any node on which any of the
5777 selected pods is running.
5778 Empty topologyKey is not allowed.
5779 type: string
5780 x-kubernetes-list-type: atomic
5781 podAntiAffinity:
5782 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
5783 type: object
5784 properties:
5785 preferredDuringSchedulingIgnoredDuringExecution:
5786 description: |-
5787 The scheduler will prefer to schedule pods to nodes that satisfy
5788 the anti-affinity expressions specified by this field, but it may choose
5789 a node that violates one or more of the expressions. The node that is
5790 most preferred is the one with the greatest sum of weights, i.e.
5791 for each node that meets all of the scheduling requirements (resource
5792 request, requiredDuringScheduling anti-affinity expressions, etc.),
5793 compute a sum by iterating through the elements of this field and adding
5794 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
5795 node(s) with the highest sum are the most preferred.
5796 type: array
5797 items:
5798 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
5799 type: object
5800 required:
5801 - podAffinityTerm
5802 - weight
5803 properties:
5804 podAffinityTerm:
5805 description: Required. A pod affinity term, associated with the corresponding weight.
5806 type: object
5807 required:
5808 - topologyKey
5809 properties:
5810 labelSelector:
5811 description: |-
5812 A label query over a set of resources, in this case pods.
5813 If it's null, this PodAffinityTerm matches with no Pods.
5814 type: object
5815 properties:
5816 matchExpressions:
5817 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5818 type: array
5819 items:
5820 description: |-
5821 A label selector requirement is a selector that contains values, a key, and an operator that
5822 relates the key and values.
5823 type: object
5824 required:
5825 - key
5826 - operator
5827 properties:
5828 key:
5829 description: key is the label key that the selector applies to.
5830 type: string
5831 operator:
5832 description: |-
5833 operator represents a key's relationship to a set of values.
5834 Valid operators are In, NotIn, Exists and DoesNotExist.
5835 type: string
5836 values:
5837 description: |-
5838 values is an array of string values. If the operator is In or NotIn,
5839 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5840 the values array must be empty. This array is replaced during a strategic
5841 merge patch.
5842 type: array
5843 items:
5844 type: string
5845 x-kubernetes-list-type: atomic
5846 x-kubernetes-list-type: atomic
5847 matchLabels:
5848 description: |-
5849 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5850 map is equivalent to an element of matchExpressions, whose key field is "key", the
5851 operator is "In", and the values array contains only "value". The requirements are ANDed.
5852 type: object
5853 additionalProperties:
5854 type: string
5855 x-kubernetes-map-type: atomic
5856 matchLabelKeys:
5857 description: |-
5858 MatchLabelKeys is a set of pod label keys to select which pods will
5859 be taken into consideration. The keys are used to lookup values from the
5860 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
5861 to select the group of existing pods which pods will be taken into consideration
5862 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5863 pod labels will be ignored. The default value is empty.
5864 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
5865 Also, matchLabelKeys cannot be set when labelSelector isn't set.
5866 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5867 type: array
5868 items:
5869 type: string
5870 x-kubernetes-list-type: atomic
5871 mismatchLabelKeys:
5872 description: |-
5873 MismatchLabelKeys is a set of pod label keys to select which pods will
5874 be taken into consideration. The keys are used to lookup values from the
5875 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
5876 to select the group of existing pods which pods will be taken into consideration
5877 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
5878 pod labels will be ignored. The default value is empty.
5879 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
5880 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
5881 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
5882 type: array
5883 items:
5884 type: string
5885 x-kubernetes-list-type: atomic
5886 namespaceSelector:
5887 description: |-
5888 A label query over the set of namespaces that the term applies to.
5889 The term is applied to the union of the namespaces selected by this field
5890 and the ones listed in the namespaces field.
5891 null selector and null or empty namespaces list means "this pod's namespace".
5892 An empty selector ({}) matches all namespaces.
5893 type: object
5894 properties:
5895 matchExpressions:
5896 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5897 type: array
5898 items:
5899 description: |-
5900 A label selector requirement is a selector that contains values, a key, and an operator that
5901 relates the key and values.
5902 type: object
5903 required:
5904 - key
5905 - operator
5906 properties:
5907 key:
5908 description: key is the label key that the selector applies to.
5909 type: string
5910 operator:
5911 description: |-
5912 operator represents a key's relationship to a set of values.
5913 Valid operators are In, NotIn, Exists and DoesNotExist.
5914 type: string
5915 values:
5916 description: |-
5917 values is an array of string values. If the operator is In or NotIn,
5918 the values array must be non-empty. If the operator is Exists or DoesNotExist,
5919 the values array must be empty. This array is replaced during a strategic
5920 merge patch.
5921 type: array
5922 items:
5923 type: string
5924 x-kubernetes-list-type: atomic
5925 x-kubernetes-list-type: atomic
5926 matchLabels:
5927 description: |-
5928 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
5929 map is equivalent to an element of matchExpressions, whose key field is "key", the
5930 operator is "In", and the values array contains only "value". The requirements are ANDed.
5931 type: object
5932 additionalProperties:
5933 type: string
5934 x-kubernetes-map-type: atomic
5935 namespaces:
5936 description: |-
5937 namespaces specifies a static list of namespace names that the term applies to.
5938 The term is applied to the union of the namespaces listed in this field
5939 and the ones selected by namespaceSelector.
5940 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
5941 type: array
5942 items:
5943 type: string
5944 x-kubernetes-list-type: atomic
5945 topologyKey:
5946 description: |-
5947 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
5948 the labelSelector in the specified namespaces, where co-located is defined as running on a node
5949 whose value of the label with key topologyKey matches that of any node on which any of the
5950 selected pods is running.
5951 Empty topologyKey is not allowed.
5952 type: string
5953 weight:
5954 description: |-
5955 weight associated with matching the corresponding podAffinityTerm,
5956 in the range 1-100.
5957 type: integer
5958 format: int32
5959 x-kubernetes-list-type: atomic
5960 requiredDuringSchedulingIgnoredDuringExecution:
5961 description: |-
5962 If the anti-affinity requirements specified by this field are not met at
5963 scheduling time, the pod will not be scheduled onto the node.
5964 If the anti-affinity requirements specified by this field cease to be met
5965 at some point during pod execution (e.g. due to a pod label update), the
5966 system may or may not try to eventually evict the pod from its node.
5967 When there are multiple elements, the lists of nodes corresponding to each
5968 podAffinityTerm are intersected, i.e. all terms must be satisfied.
5969 type: array
5970 items:
5971 description: |-
5972 Defines a set of pods (namely those matching the labelSelector
5973 relative to the given namespace(s)) that this pod should be
5974 co-located (affinity) or not co-located (anti-affinity) with,
5975 where co-located is defined as running on a node whose value of
5976 the label with key <topologyKey> matches that of any node on which
5977 a pod of the set of pods is running
5978 type: object
5979 required:
5980 - topologyKey
5981 properties:
5982 labelSelector:
5983 description: |-
5984 A label query over a set of resources, in this case pods.
5985 If it's null, this PodAffinityTerm matches with no Pods.
5986 type: object
5987 properties:
5988 matchExpressions:
5989 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
5990 type: array
5991 items:
5992 description: |-
5993 A label selector requirement is a selector that contains values, a key, and an operator that
5994 relates the key and values.
5995 type: object
5996 required:
5997 - key
5998 - operator
5999 properties:
6000 key:
6001 description: key is the label key that the selector applies to.
6002 type: string
6003 operator:
6004 description: |-
6005 operator represents a key's relationship to a set of values.
6006 Valid operators are In, NotIn, Exists and DoesNotExist.
6007 type: string
6008 values:
6009 description: |-
6010 values is an array of string values. If the operator is In or NotIn,
6011 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6012 the values array must be empty. This array is replaced during a strategic
6013 merge patch.
6014 type: array
6015 items:
6016 type: string
6017 x-kubernetes-list-type: atomic
6018 x-kubernetes-list-type: atomic
6019 matchLabels:
6020 description: |-
6021 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6022 map is equivalent to an element of matchExpressions, whose key field is "key", the
6023 operator is "In", and the values array contains only "value". The requirements are ANDed.
6024 type: object
6025 additionalProperties:
6026 type: string
6027 x-kubernetes-map-type: atomic
6028 matchLabelKeys:
6029 description: |-
6030 MatchLabelKeys is a set of pod label keys to select which pods will
6031 be taken into consideration. The keys are used to lookup values from the
6032 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
6033 to select the group of existing pods which pods will be taken into consideration
6034 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6035 pod labels will be ignored. The default value is empty.
6036 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6037 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6038 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6039 type: array
6040 items:
6041 type: string
6042 x-kubernetes-list-type: atomic
6043 mismatchLabelKeys:
6044 description: |-
6045 MismatchLabelKeys is a set of pod label keys to select which pods will
6046 be taken into consideration. The keys are used to lookup values from the
6047 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
6048 to select the group of existing pods which pods will be taken into consideration
6049 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6050 pod labels will be ignored. The default value is empty.
6051 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6052 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6053 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6054 type: array
6055 items:
6056 type: string
6057 x-kubernetes-list-type: atomic
6058 namespaceSelector:
6059 description: |-
6060 A label query over the set of namespaces that the term applies to.
6061 The term is applied to the union of the namespaces selected by this field
6062 and the ones listed in the namespaces field.
6063 null selector and null or empty namespaces list means "this pod's namespace".
6064 An empty selector ({}) matches all namespaces.
6065 type: object
6066 properties:
6067 matchExpressions:
6068 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6069 type: array
6070 items:
6071 description: |-
6072 A label selector requirement is a selector that contains values, a key, and an operator that
6073 relates the key and values.
6074 type: object
6075 required:
6076 - key
6077 - operator
6078 properties:
6079 key:
6080 description: key is the label key that the selector applies to.
6081 type: string
6082 operator:
6083 description: |-
6084 operator represents a key's relationship to a set of values.
6085 Valid operators are In, NotIn, Exists and DoesNotExist.
6086 type: string
6087 values:
6088 description: |-
6089 values is an array of string values. If the operator is In or NotIn,
6090 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6091 the values array must be empty. This array is replaced during a strategic
6092 merge patch.
6093 type: array
6094 items:
6095 type: string
6096 x-kubernetes-list-type: atomic
6097 x-kubernetes-list-type: atomic
6098 matchLabels:
6099 description: |-
6100 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6101 map is equivalent to an element of matchExpressions, whose key field is "key", the
6102 operator is "In", and the values array contains only "value". The requirements are ANDed.
6103 type: object
6104 additionalProperties:
6105 type: string
6106 x-kubernetes-map-type: atomic
6107 namespaces:
6108 description: |-
6109 namespaces specifies a static list of namespace names that the term applies to.
6110 The term is applied to the union of the namespaces listed in this field
6111 and the ones selected by namespaceSelector.
6112 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6113 type: array
6114 items:
6115 type: string
6116 x-kubernetes-list-type: atomic
6117 topologyKey:
6118 description: |-
6119 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6120 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6121 whose value of the label with key topologyKey matches that of any node on which any of the
6122 selected pods is running.
6123 Empty topologyKey is not allowed.
6124 type: string
6125 x-kubernetes-list-type: atomic
6126 imagePullSecrets:
6127 description: If specified, the pod's imagePullSecrets
6128 type: array
6129 items:
6130 description: |-
6131 LocalObjectReference contains enough information to let you locate the
6132 referenced object inside the same namespace.
6133 type: object
6134 properties:
6135 name:
6136 description: |-
6137 Name of the referent.
6138 This field is effectively required, but due to backwards compatibility is
6139 allowed to be empty. Instances of this type with an empty value here are
6140 almost certainly wrong.
6141 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
6142 type: string
6143 default: ""
6144 x-kubernetes-map-type: atomic
6145 nodeSelector:
6146 description: |-
6147 NodeSelector is a selector which must be true for the pod to fit on a node.
6148 Selector which must match a node's labels for the pod to be scheduled on that node.
6149 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
6150 type: object
6151 additionalProperties:
6152 type: string
6153 priorityClassName:
6154 description: If specified, the pod's priorityClassName.
6155 type: string
6156 securityContext:
6157 description: If specified, the pod's security context
6158 type: object
6159 properties:
6160 fsGroup:
6161 description: |-
6162 A special supplemental group that applies to all containers in a pod.
6163 Some volume types allow the Kubelet to change the ownership of that volume
6164 to be owned by the pod:
6165
6166 1. The owning GID will be the FSGroup
6167 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
6168 3. The permission bits are OR'd with rw-rw----
6169
6170 If unset, the Kubelet will not modify the ownership and permissions of any volume.
6171 Note that this field cannot be set when spec.os.name is windows.
6172 type: integer
6173 format: int64
6174 fsGroupChangePolicy:
6175 description: |-
6176 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
6177 before being exposed inside Pod. This field will only apply to
6178 volume types which support fsGroup based ownership(and permissions).
6179 It will have no effect on ephemeral volume types such as: secret, configmaps
6180 and emptydir.
6181 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
6182 Note that this field cannot be set when spec.os.name is windows.
6183 type: string
6184 runAsGroup:
6185 description: |-
6186 The GID to run the entrypoint of the container process.
6187 Uses runtime default if unset.
6188 May also be set in SecurityContext. If set in both SecurityContext and
6189 PodSecurityContext, the value specified in SecurityContext takes precedence
6190 for that container.
6191 Note that this field cannot be set when spec.os.name is windows.
6192 type: integer
6193 format: int64
6194 runAsNonRoot:
6195 description: |-
6196 Indicates that the container must run as a non-root user.
6197 If true, the Kubelet will validate the image at runtime to ensure that it
6198 does not run as UID 0 (root) and fail to start the container if it does.
6199 If unset or false, no such validation will be performed.
6200 May also be set in SecurityContext. If set in both SecurityContext and
6201 PodSecurityContext, the value specified in SecurityContext takes precedence.
6202 type: boolean
6203 runAsUser:
6204 description: |-
6205 The UID to run the entrypoint of the container process.
6206 Defaults to user specified in image metadata if unspecified.
6207 May also be set in SecurityContext. If set in both SecurityContext and
6208 PodSecurityContext, the value specified in SecurityContext takes precedence
6209 for that container.
6210 Note that this field cannot be set when spec.os.name is windows.
6211 type: integer
6212 format: int64
6213 seLinuxOptions:
6214 description: |-
6215 The SELinux context to be applied to all containers.
6216 If unspecified, the container runtime will allocate a random SELinux context for each
6217 container. May also be set in SecurityContext. If set in
6218 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
6219 takes precedence for that container.
6220 Note that this field cannot be set when spec.os.name is windows.
6221 type: object
6222 properties:
6223 level:
6224 description: Level is SELinux level label that applies to the container.
6225 type: string
6226 role:
6227 description: Role is a SELinux role label that applies to the container.
6228 type: string
6229 type:
6230 description: Type is a SELinux type label that applies to the container.
6231 type: string
6232 user:
6233 description: User is a SELinux user label that applies to the container.
6234 type: string
6235 seccompProfile:
6236 description: |-
6237 The seccomp options to use by the containers in this pod.
6238 Note that this field cannot be set when spec.os.name is windows.
6239 type: object
6240 required:
6241 - type
6242 properties:
6243 localhostProfile:
6244 description: |-
6245 localhostProfile indicates a profile defined in a file on the node should be used.
6246 The profile must be preconfigured on the node to work.
6247 Must be a descending path, relative to the kubelet's configured seccomp profile location.
6248 Must be set if type is "Localhost". Must NOT be set for any other type.
6249 type: string
6250 type:
6251 description: |-
6252 type indicates which kind of seccomp profile will be applied.
6253 Valid options are:
6254
6255 Localhost - a profile defined in a file on the node should be used.
6256 RuntimeDefault - the container runtime default profile should be used.
6257 Unconfined - no profile should be applied.
6258 type: string
6259 supplementalGroups:
6260 description: |-
6261 A list of groups applied to the first process run in each container, in addition
6262 to the container's primary GID, the fsGroup (if specified), and group memberships
6263 defined in the container image for the uid of the container process. If unspecified,
6264 no additional groups are added to any container. Note that group memberships
6265 defined in the container image for the uid of the container process are still effective,
6266 even if they are not included in this list.
6267 Note that this field cannot be set when spec.os.name is windows.
6268 type: array
6269 items:
6270 type: integer
6271 format: int64
6272 sysctls:
6273 description: |-
6274 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
6275 sysctls (by the container runtime) might fail to launch.
6276 Note that this field cannot be set when spec.os.name is windows.
6277 type: array
6278 items:
6279 description: Sysctl defines a kernel parameter to be set
6280 type: object
6281 required:
6282 - name
6283 - value
6284 properties:
6285 name:
6286 description: Name of a property to set
6287 type: string
6288 value:
6289 description: Value of a property to set
6290 type: string
6291 serviceAccountName:
6292 description: If specified, the pod's service account
6293 type: string
6294 tolerations:
6295 description: If specified, the pod's tolerations.
6296 type: array
6297 items:
6298 description: |-
6299 The pod this Toleration is attached to tolerates any taint that matches
6300 the triple <key,value,effect> using the matching operator <operator>.
6301 type: object
6302 properties:
6303 effect:
6304 description: |-
6305 Effect indicates the taint effect to match. Empty means match all taint effects.
6306 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
6307 type: string
6308 key:
6309 description: |-
6310 Key is the taint key that the toleration applies to. Empty means match all taint keys.
6311 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
6312 type: string
6313 operator:
6314 description: |-
6315 Operator represents a key's relationship to the value.
6316 Valid operators are Exists and Equal. Defaults to Equal.
6317 Exists is equivalent to wildcard for value, so that a pod can
6318 tolerate all taints of a particular category.
6319 type: string
6320 tolerationSeconds:
6321 description: |-
6322 TolerationSeconds represents the period of time the toleration (which must be
6323 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
6324 it is not set, which means tolerate the taint forever (do not evict). Zero and
6325 negative values will be treated as 0 (evict immediately) by the system.
6326 type: integer
6327 format: int64
6328 value:
6329 description: |-
6330 Value is the taint value the toleration matches to.
6331 If the operator is Exists, the value should be empty, otherwise just a regular string.
6332 type: string
6333 serviceType:
6334 description: |-
6335 Optional service type for Kubernetes solver service. Supported values
6336 are NodePort or ClusterIP. If unset, defaults to NodePort.
6337 type: string
6338 ingress:
6339 description: |-
6340 The ingress based HTTP01 challenge solver will solve challenges by
6341 creating or modifying Ingress resources in order to route requests for
6342 '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are
6343 provisioned by cert-manager for each Challenge to be completed.
6344 type: object
6345 properties:
6346 class:
6347 description: |-
6348 This field configures the annotation `kubernetes.io/ingress.class` when
6349 creating Ingress resources to solve ACME challenges that use this
6350 challenge solver. Only one of `class`, `name` or `ingressClassName` may
6351 be specified.
6352 type: string
6353 ingressClassName:
6354 description: |-
6355 This field configures the field `ingressClassName` on the created Ingress
6356 resources used to solve ACME challenges that use this challenge solver.
6357 This is the recommended way of configuring the ingress class. Only one of
6358 `class`, `name` or `ingressClassName` may be specified.
6359 type: string
6360 ingressTemplate:
6361 description: |-
6362 Optional ingress template used to configure the ACME challenge solver
6363 ingress used for HTTP01 challenges.
6364 type: object
6365 properties:
6366 metadata:
6367 description: |-
6368 ObjectMeta overrides for the ingress used to solve HTTP01 challenges.
6369 Only the 'labels' and 'annotations' fields may be set.
6370 If labels or annotations overlap with in-built values, the values here
6371 will override the in-built values.
6372 type: object
6373 properties:
6374 annotations:
6375 description: Annotations that should be added to the created ACME HTTP01 solver ingress.
6376 type: object
6377 additionalProperties:
6378 type: string
6379 labels:
6380 description: Labels that should be added to the created ACME HTTP01 solver ingress.
6381 type: object
6382 additionalProperties:
6383 type: string
6384 name:
6385 description: |-
6386 The name of the ingress resource that should have ACME challenge solving
6387 routes inserted into it in order to solve HTTP01 challenges.
6388 This is typically used in conjunction with ingress controllers like
6389 ingress-gce, which maintains a 1:1 mapping between external IPs and
6390 ingress resources. Only one of `class`, `name` or `ingressClassName` may
6391 be specified.
6392 type: string
6393 podTemplate:
6394 description: |-
6395 Optional pod template used to configure the ACME challenge solver pods
6396 used for HTTP01 challenges.
6397 type: object
6398 properties:
6399 metadata:
6400 description: |-
6401 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
6402 Only the 'labels' and 'annotations' fields may be set.
6403 If labels or annotations overlap with in-built values, the values here
6404 will override the in-built values.
6405 type: object
6406 properties:
6407 annotations:
6408 description: Annotations that should be added to the created ACME HTTP01 solver pods.
6409 type: object
6410 additionalProperties:
6411 type: string
6412 labels:
6413 description: Labels that should be added to the created ACME HTTP01 solver pods.
6414 type: object
6415 additionalProperties:
6416 type: string
6417 spec:
6418 description: |-
6419 PodSpec defines overrides for the HTTP01 challenge solver pod.
6420 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
6421 All other fields will be ignored.
6422 type: object
6423 properties:
6424 affinity:
6425 description: If specified, the pod's scheduling constraints
6426 type: object
6427 properties:
6428 nodeAffinity:
6429 description: Describes node affinity scheduling rules for the pod.
6430 type: object
6431 properties:
6432 preferredDuringSchedulingIgnoredDuringExecution:
6433 description: |-
6434 The scheduler will prefer to schedule pods to nodes that satisfy
6435 the affinity expressions specified by this field, but it may choose
6436 a node that violates one or more of the expressions. The node that is
6437 most preferred is the one with the greatest sum of weights, i.e.
6438 for each node that meets all of the scheduling requirements (resource
6439 request, requiredDuringScheduling affinity expressions, etc.),
6440 compute a sum by iterating through the elements of this field and adding
6441 "weight" to the sum if the node matches the corresponding matchExpressions; the
6442 node(s) with the highest sum are the most preferred.
6443 type: array
6444 items:
6445 description: |-
6446 An empty preferred scheduling term matches all objects with implicit weight 0
6447 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
6448 type: object
6449 required:
6450 - preference
6451 - weight
6452 properties:
6453 preference:
6454 description: A node selector term, associated with the corresponding weight.
6455 type: object
6456 properties:
6457 matchExpressions:
6458 description: A list of node selector requirements by node's labels.
6459 type: array
6460 items:
6461 description: |-
6462 A node selector requirement is a selector that contains values, a key, and an operator
6463 that relates the key and values.
6464 type: object
6465 required:
6466 - key
6467 - operator
6468 properties:
6469 key:
6470 description: The label key that the selector applies to.
6471 type: string
6472 operator:
6473 description: |-
6474 Represents a key's relationship to a set of values.
6475 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6476 type: string
6477 values:
6478 description: |-
6479 An array of string values. If the operator is In or NotIn,
6480 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6481 the values array must be empty. If the operator is Gt or Lt, the values
6482 array must have a single element, which will be interpreted as an integer.
6483 This array is replaced during a strategic merge patch.
6484 type: array
6485 items:
6486 type: string
6487 x-kubernetes-list-type: atomic
6488 x-kubernetes-list-type: atomic
6489 matchFields:
6490 description: A list of node selector requirements by node's fields.
6491 type: array
6492 items:
6493 description: |-
6494 A node selector requirement is a selector that contains values, a key, and an operator
6495 that relates the key and values.
6496 type: object
6497 required:
6498 - key
6499 - operator
6500 properties:
6501 key:
6502 description: The label key that the selector applies to.
6503 type: string
6504 operator:
6505 description: |-
6506 Represents a key's relationship to a set of values.
6507 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6508 type: string
6509 values:
6510 description: |-
6511 An array of string values. If the operator is In or NotIn,
6512 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6513 the values array must be empty. If the operator is Gt or Lt, the values
6514 array must have a single element, which will be interpreted as an integer.
6515 This array is replaced during a strategic merge patch.
6516 type: array
6517 items:
6518 type: string
6519 x-kubernetes-list-type: atomic
6520 x-kubernetes-list-type: atomic
6521 x-kubernetes-map-type: atomic
6522 weight:
6523 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
6524 type: integer
6525 format: int32
6526 x-kubernetes-list-type: atomic
6527 requiredDuringSchedulingIgnoredDuringExecution:
6528 description: |-
6529 If the affinity requirements specified by this field are not met at
6530 scheduling time, the pod will not be scheduled onto the node.
6531 If the affinity requirements specified by this field cease to be met
6532 at some point during pod execution (e.g. due to an update), the system
6533 may or may not try to eventually evict the pod from its node.
6534 type: object
6535 required:
6536 - nodeSelectorTerms
6537 properties:
6538 nodeSelectorTerms:
6539 description: Required. A list of node selector terms. The terms are ORed.
6540 type: array
6541 items:
6542 description: |-
6543 A null or empty node selector term matches no objects. The requirements of
6544 them are ANDed.
6545 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
6546 type: object
6547 properties:
6548 matchExpressions:
6549 description: A list of node selector requirements by node's labels.
6550 type: array
6551 items:
6552 description: |-
6553 A node selector requirement is a selector that contains values, a key, and an operator
6554 that relates the key and values.
6555 type: object
6556 required:
6557 - key
6558 - operator
6559 properties:
6560 key:
6561 description: The label key that the selector applies to.
6562 type: string
6563 operator:
6564 description: |-
6565 Represents a key's relationship to a set of values.
6566 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6567 type: string
6568 values:
6569 description: |-
6570 An array of string values. If the operator is In or NotIn,
6571 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6572 the values array must be empty. If the operator is Gt or Lt, the values
6573 array must have a single element, which will be interpreted as an integer.
6574 This array is replaced during a strategic merge patch.
6575 type: array
6576 items:
6577 type: string
6578 x-kubernetes-list-type: atomic
6579 x-kubernetes-list-type: atomic
6580 matchFields:
6581 description: A list of node selector requirements by node's fields.
6582 type: array
6583 items:
6584 description: |-
6585 A node selector requirement is a selector that contains values, a key, and an operator
6586 that relates the key and values.
6587 type: object
6588 required:
6589 - key
6590 - operator
6591 properties:
6592 key:
6593 description: The label key that the selector applies to.
6594 type: string
6595 operator:
6596 description: |-
6597 Represents a key's relationship to a set of values.
6598 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
6599 type: string
6600 values:
6601 description: |-
6602 An array of string values. If the operator is In or NotIn,
6603 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6604 the values array must be empty. If the operator is Gt or Lt, the values
6605 array must have a single element, which will be interpreted as an integer.
6606 This array is replaced during a strategic merge patch.
6607 type: array
6608 items:
6609 type: string
6610 x-kubernetes-list-type: atomic
6611 x-kubernetes-list-type: atomic
6612 x-kubernetes-map-type: atomic
6613 x-kubernetes-list-type: atomic
6614 x-kubernetes-map-type: atomic
6615 podAffinity:
6616 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
6617 type: object
6618 properties:
6619 preferredDuringSchedulingIgnoredDuringExecution:
6620 description: |-
6621 The scheduler will prefer to schedule pods to nodes that satisfy
6622 the affinity expressions specified by this field, but it may choose
6623 a node that violates one or more of the expressions. The node that is
6624 most preferred is the one with the greatest sum of weights, i.e.
6625 for each node that meets all of the scheduling requirements (resource
6626 request, requiredDuringScheduling affinity expressions, etc.),
6627 compute a sum by iterating through the elements of this field and adding
6628 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
6629 node(s) with the highest sum are the most preferred.
6630 type: array
6631 items:
6632 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
6633 type: object
6634 required:
6635 - podAffinityTerm
6636 - weight
6637 properties:
6638 podAffinityTerm:
6639 description: Required. A pod affinity term, associated with the corresponding weight.
6640 type: object
6641 required:
6642 - topologyKey
6643 properties:
6644 labelSelector:
6645 description: |-
6646 A label query over a set of resources, in this case pods.
6647 If it's null, this PodAffinityTerm matches with no Pods.
6648 type: object
6649 properties:
6650 matchExpressions:
6651 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6652 type: array
6653 items:
6654 description: |-
6655 A label selector requirement is a selector that contains values, a key, and an operator that
6656 relates the key and values.
6657 type: object
6658 required:
6659 - key
6660 - operator
6661 properties:
6662 key:
6663 description: key is the label key that the selector applies to.
6664 type: string
6665 operator:
6666 description: |-
6667 operator represents a key's relationship to a set of values.
6668 Valid operators are In, NotIn, Exists and DoesNotExist.
6669 type: string
6670 values:
6671 description: |-
6672 values is an array of string values. If the operator is In or NotIn,
6673 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6674 the values array must be empty. This array is replaced during a strategic
6675 merge patch.
6676 type: array
6677 items:
6678 type: string
6679 x-kubernetes-list-type: atomic
6680 x-kubernetes-list-type: atomic
6681 matchLabels:
6682 description: |-
6683 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6684 map is equivalent to an element of matchExpressions, whose key field is "key", the
6685 operator is "In", and the values array contains only "value". The requirements are ANDed.
6686 type: object
6687 additionalProperties:
6688 type: string
6689 x-kubernetes-map-type: atomic
6690 matchLabelKeys:
6691 description: |-
6692 MatchLabelKeys is a set of pod label keys to select which pods will
6693 be taken into consideration. The keys are used to lookup values from the
6694 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
6695 to select the group of existing pods which pods will be taken into consideration
6696 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6697 pod labels will be ignored. The default value is empty.
6698 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6699 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6700 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6701 type: array
6702 items:
6703 type: string
6704 x-kubernetes-list-type: atomic
6705 mismatchLabelKeys:
6706 description: |-
6707 MismatchLabelKeys is a set of pod label keys to select which pods will
6708 be taken into consideration. The keys are used to lookup values from the
6709 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
6710 to select the group of existing pods which pods will be taken into consideration
6711 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6712 pod labels will be ignored. The default value is empty.
6713 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6714 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6715 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6716 type: array
6717 items:
6718 type: string
6719 x-kubernetes-list-type: atomic
6720 namespaceSelector:
6721 description: |-
6722 A label query over the set of namespaces that the term applies to.
6723 The term is applied to the union of the namespaces selected by this field
6724 and the ones listed in the namespaces field.
6725 null selector and null or empty namespaces list means "this pod's namespace".
6726 An empty selector ({}) matches all namespaces.
6727 type: object
6728 properties:
6729 matchExpressions:
6730 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6731 type: array
6732 items:
6733 description: |-
6734 A label selector requirement is a selector that contains values, a key, and an operator that
6735 relates the key and values.
6736 type: object
6737 required:
6738 - key
6739 - operator
6740 properties:
6741 key:
6742 description: key is the label key that the selector applies to.
6743 type: string
6744 operator:
6745 description: |-
6746 operator represents a key's relationship to a set of values.
6747 Valid operators are In, NotIn, Exists and DoesNotExist.
6748 type: string
6749 values:
6750 description: |-
6751 values is an array of string values. If the operator is In or NotIn,
6752 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6753 the values array must be empty. This array is replaced during a strategic
6754 merge patch.
6755 type: array
6756 items:
6757 type: string
6758 x-kubernetes-list-type: atomic
6759 x-kubernetes-list-type: atomic
6760 matchLabels:
6761 description: |-
6762 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6763 map is equivalent to an element of matchExpressions, whose key field is "key", the
6764 operator is "In", and the values array contains only "value". The requirements are ANDed.
6765 type: object
6766 additionalProperties:
6767 type: string
6768 x-kubernetes-map-type: atomic
6769 namespaces:
6770 description: |-
6771 namespaces specifies a static list of namespace names that the term applies to.
6772 The term is applied to the union of the namespaces listed in this field
6773 and the ones selected by namespaceSelector.
6774 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6775 type: array
6776 items:
6777 type: string
6778 x-kubernetes-list-type: atomic
6779 topologyKey:
6780 description: |-
6781 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6782 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6783 whose value of the label with key topologyKey matches that of any node on which any of the
6784 selected pods is running.
6785 Empty topologyKey is not allowed.
6786 type: string
6787 weight:
6788 description: |-
6789 weight associated with matching the corresponding podAffinityTerm,
6790 in the range 1-100.
6791 type: integer
6792 format: int32
6793 x-kubernetes-list-type: atomic
6794 requiredDuringSchedulingIgnoredDuringExecution:
6795 description: |-
6796 If the affinity requirements specified by this field are not met at
6797 scheduling time, the pod will not be scheduled onto the node.
6798 If the affinity requirements specified by this field cease to be met
6799 at some point during pod execution (e.g. due to a pod label update), the
6800 system may or may not try to eventually evict the pod from its node.
6801 When there are multiple elements, the lists of nodes corresponding to each
6802 podAffinityTerm are intersected, i.e. all terms must be satisfied.
6803 type: array
6804 items:
6805 description: |-
6806 Defines a set of pods (namely those matching the labelSelector
6807 relative to the given namespace(s)) that this pod should be
6808 co-located (affinity) or not co-located (anti-affinity) with,
6809 where co-located is defined as running on a node whose value of
6810 the label with key <topologyKey> matches that of any node on which
6811 a pod of the set of pods is running
6812 type: object
6813 required:
6814 - topologyKey
6815 properties:
6816 labelSelector:
6817 description: |-
6818 A label query over a set of resources, in this case pods.
6819 If it's null, this PodAffinityTerm matches with no Pods.
6820 type: object
6821 properties:
6822 matchExpressions:
6823 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6824 type: array
6825 items:
6826 description: |-
6827 A label selector requirement is a selector that contains values, a key, and an operator that
6828 relates the key and values.
6829 type: object
6830 required:
6831 - key
6832 - operator
6833 properties:
6834 key:
6835 description: key is the label key that the selector applies to.
6836 type: string
6837 operator:
6838 description: |-
6839 operator represents a key's relationship to a set of values.
6840 Valid operators are In, NotIn, Exists and DoesNotExist.
6841 type: string
6842 values:
6843 description: |-
6844 values is an array of string values. If the operator is In or NotIn,
6845 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6846 the values array must be empty. This array is replaced during a strategic
6847 merge patch.
6848 type: array
6849 items:
6850 type: string
6851 x-kubernetes-list-type: atomic
6852 x-kubernetes-list-type: atomic
6853 matchLabels:
6854 description: |-
6855 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6856 map is equivalent to an element of matchExpressions, whose key field is "key", the
6857 operator is "In", and the values array contains only "value". The requirements are ANDed.
6858 type: object
6859 additionalProperties:
6860 type: string
6861 x-kubernetes-map-type: atomic
6862 matchLabelKeys:
6863 description: |-
6864 MatchLabelKeys is a set of pod label keys to select which pods will
6865 be taken into consideration. The keys are used to lookup values from the
6866 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
6867 to select the group of existing pods which pods will be taken into consideration
6868 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6869 pod labels will be ignored. The default value is empty.
6870 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
6871 Also, matchLabelKeys cannot be set when labelSelector isn't set.
6872 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6873 type: array
6874 items:
6875 type: string
6876 x-kubernetes-list-type: atomic
6877 mismatchLabelKeys:
6878 description: |-
6879 MismatchLabelKeys is a set of pod label keys to select which pods will
6880 be taken into consideration. The keys are used to lookup values from the
6881 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
6882 to select the group of existing pods which pods will be taken into consideration
6883 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
6884 pod labels will be ignored. The default value is empty.
6885 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
6886 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
6887 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
6888 type: array
6889 items:
6890 type: string
6891 x-kubernetes-list-type: atomic
6892 namespaceSelector:
6893 description: |-
6894 A label query over the set of namespaces that the term applies to.
6895 The term is applied to the union of the namespaces selected by this field
6896 and the ones listed in the namespaces field.
6897 null selector and null or empty namespaces list means "this pod's namespace".
6898 An empty selector ({}) matches all namespaces.
6899 type: object
6900 properties:
6901 matchExpressions:
6902 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6903 type: array
6904 items:
6905 description: |-
6906 A label selector requirement is a selector that contains values, a key, and an operator that
6907 relates the key and values.
6908 type: object
6909 required:
6910 - key
6911 - operator
6912 properties:
6913 key:
6914 description: key is the label key that the selector applies to.
6915 type: string
6916 operator:
6917 description: |-
6918 operator represents a key's relationship to a set of values.
6919 Valid operators are In, NotIn, Exists and DoesNotExist.
6920 type: string
6921 values:
6922 description: |-
6923 values is an array of string values. If the operator is In or NotIn,
6924 the values array must be non-empty. If the operator is Exists or DoesNotExist,
6925 the values array must be empty. This array is replaced during a strategic
6926 merge patch.
6927 type: array
6928 items:
6929 type: string
6930 x-kubernetes-list-type: atomic
6931 x-kubernetes-list-type: atomic
6932 matchLabels:
6933 description: |-
6934 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
6935 map is equivalent to an element of matchExpressions, whose key field is "key", the
6936 operator is "In", and the values array contains only "value". The requirements are ANDed.
6937 type: object
6938 additionalProperties:
6939 type: string
6940 x-kubernetes-map-type: atomic
6941 namespaces:
6942 description: |-
6943 namespaces specifies a static list of namespace names that the term applies to.
6944 The term is applied to the union of the namespaces listed in this field
6945 and the ones selected by namespaceSelector.
6946 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
6947 type: array
6948 items:
6949 type: string
6950 x-kubernetes-list-type: atomic
6951 topologyKey:
6952 description: |-
6953 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
6954 the labelSelector in the specified namespaces, where co-located is defined as running on a node
6955 whose value of the label with key topologyKey matches that of any node on which any of the
6956 selected pods is running.
6957 Empty topologyKey is not allowed.
6958 type: string
6959 x-kubernetes-list-type: atomic
6960 podAntiAffinity:
6961 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
6962 type: object
6963 properties:
6964 preferredDuringSchedulingIgnoredDuringExecution:
6965 description: |-
6966 The scheduler will prefer to schedule pods to nodes that satisfy
6967 the anti-affinity expressions specified by this field, but it may choose
6968 a node that violates one or more of the expressions. The node that is
6969 most preferred is the one with the greatest sum of weights, i.e.
6970 for each node that meets all of the scheduling requirements (resource
6971 request, requiredDuringScheduling anti-affinity expressions, etc.),
6972 compute a sum by iterating through the elements of this field and adding
6973 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
6974 node(s) with the highest sum are the most preferred.
6975 type: array
6976 items:
6977 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
6978 type: object
6979 required:
6980 - podAffinityTerm
6981 - weight
6982 properties:
6983 podAffinityTerm:
6984 description: Required. A pod affinity term, associated with the corresponding weight.
6985 type: object
6986 required:
6987 - topologyKey
6988 properties:
6989 labelSelector:
6990 description: |-
6991 A label query over a set of resources, in this case pods.
6992 If it's null, this PodAffinityTerm matches with no Pods.
6993 type: object
6994 properties:
6995 matchExpressions:
6996 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
6997 type: array
6998 items:
6999 description: |-
7000 A label selector requirement is a selector that contains values, a key, and an operator that
7001 relates the key and values.
7002 type: object
7003 required:
7004 - key
7005 - operator
7006 properties:
7007 key:
7008 description: key is the label key that the selector applies to.
7009 type: string
7010 operator:
7011 description: |-
7012 operator represents a key's relationship to a set of values.
7013 Valid operators are In, NotIn, Exists and DoesNotExist.
7014 type: string
7015 values:
7016 description: |-
7017 values is an array of string values. If the operator is In or NotIn,
7018 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7019 the values array must be empty. This array is replaced during a strategic
7020 merge patch.
7021 type: array
7022 items:
7023 type: string
7024 x-kubernetes-list-type: atomic
7025 x-kubernetes-list-type: atomic
7026 matchLabels:
7027 description: |-
7028 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7029 map is equivalent to an element of matchExpressions, whose key field is "key", the
7030 operator is "In", and the values array contains only "value". The requirements are ANDed.
7031 type: object
7032 additionalProperties:
7033 type: string
7034 x-kubernetes-map-type: atomic
7035 matchLabelKeys:
7036 description: |-
7037 MatchLabelKeys is a set of pod label keys to select which pods will
7038 be taken into consideration. The keys are used to lookup values from the
7039 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
7040 to select the group of existing pods which pods will be taken into consideration
7041 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7042 pod labels will be ignored. The default value is empty.
7043 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
7044 Also, matchLabelKeys cannot be set when labelSelector isn't set.
7045 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7046 type: array
7047 items:
7048 type: string
7049 x-kubernetes-list-type: atomic
7050 mismatchLabelKeys:
7051 description: |-
7052 MismatchLabelKeys is a set of pod label keys to select which pods will
7053 be taken into consideration. The keys are used to lookup values from the
7054 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
7055 to select the group of existing pods which pods will be taken into consideration
7056 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7057 pod labels will be ignored. The default value is empty.
7058 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
7059 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
7060 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7061 type: array
7062 items:
7063 type: string
7064 x-kubernetes-list-type: atomic
7065 namespaceSelector:
7066 description: |-
7067 A label query over the set of namespaces that the term applies to.
7068 The term is applied to the union of the namespaces selected by this field
7069 and the ones listed in the namespaces field.
7070 null selector and null or empty namespaces list means "this pod's namespace".
7071 An empty selector ({}) matches all namespaces.
7072 type: object
7073 properties:
7074 matchExpressions:
7075 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7076 type: array
7077 items:
7078 description: |-
7079 A label selector requirement is a selector that contains values, a key, and an operator that
7080 relates the key and values.
7081 type: object
7082 required:
7083 - key
7084 - operator
7085 properties:
7086 key:
7087 description: key is the label key that the selector applies to.
7088 type: string
7089 operator:
7090 description: |-
7091 operator represents a key's relationship to a set of values.
7092 Valid operators are In, NotIn, Exists and DoesNotExist.
7093 type: string
7094 values:
7095 description: |-
7096 values is an array of string values. If the operator is In or NotIn,
7097 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7098 the values array must be empty. This array is replaced during a strategic
7099 merge patch.
7100 type: array
7101 items:
7102 type: string
7103 x-kubernetes-list-type: atomic
7104 x-kubernetes-list-type: atomic
7105 matchLabels:
7106 description: |-
7107 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7108 map is equivalent to an element of matchExpressions, whose key field is "key", the
7109 operator is "In", and the values array contains only "value". The requirements are ANDed.
7110 type: object
7111 additionalProperties:
7112 type: string
7113 x-kubernetes-map-type: atomic
7114 namespaces:
7115 description: |-
7116 namespaces specifies a static list of namespace names that the term applies to.
7117 The term is applied to the union of the namespaces listed in this field
7118 and the ones selected by namespaceSelector.
7119 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
7120 type: array
7121 items:
7122 type: string
7123 x-kubernetes-list-type: atomic
7124 topologyKey:
7125 description: |-
7126 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
7127 the labelSelector in the specified namespaces, where co-located is defined as running on a node
7128 whose value of the label with key topologyKey matches that of any node on which any of the
7129 selected pods is running.
7130 Empty topologyKey is not allowed.
7131 type: string
7132 weight:
7133 description: |-
7134 weight associated with matching the corresponding podAffinityTerm,
7135 in the range 1-100.
7136 type: integer
7137 format: int32
7138 x-kubernetes-list-type: atomic
7139 requiredDuringSchedulingIgnoredDuringExecution:
7140 description: |-
7141 If the anti-affinity requirements specified by this field are not met at
7142 scheduling time, the pod will not be scheduled onto the node.
7143 If the anti-affinity requirements specified by this field cease to be met
7144 at some point during pod execution (e.g. due to a pod label update), the
7145 system may or may not try to eventually evict the pod from its node.
7146 When there are multiple elements, the lists of nodes corresponding to each
7147 podAffinityTerm are intersected, i.e. all terms must be satisfied.
7148 type: array
7149 items:
7150 description: |-
7151 Defines a set of pods (namely those matching the labelSelector
7152 relative to the given namespace(s)) that this pod should be
7153 co-located (affinity) or not co-located (anti-affinity) with,
7154 where co-located is defined as running on a node whose value of
7155 the label with key <topologyKey> matches that of any node on which
7156 a pod of the set of pods is running
7157 type: object
7158 required:
7159 - topologyKey
7160 properties:
7161 labelSelector:
7162 description: |-
7163 A label query over a set of resources, in this case pods.
7164 If it's null, this PodAffinityTerm matches with no Pods.
7165 type: object
7166 properties:
7167 matchExpressions:
7168 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7169 type: array
7170 items:
7171 description: |-
7172 A label selector requirement is a selector that contains values, a key, and an operator that
7173 relates the key and values.
7174 type: object
7175 required:
7176 - key
7177 - operator
7178 properties:
7179 key:
7180 description: key is the label key that the selector applies to.
7181 type: string
7182 operator:
7183 description: |-
7184 operator represents a key's relationship to a set of values.
7185 Valid operators are In, NotIn, Exists and DoesNotExist.
7186 type: string
7187 values:
7188 description: |-
7189 values is an array of string values. If the operator is In or NotIn,
7190 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7191 the values array must be empty. This array is replaced during a strategic
7192 merge patch.
7193 type: array
7194 items:
7195 type: string
7196 x-kubernetes-list-type: atomic
7197 x-kubernetes-list-type: atomic
7198 matchLabels:
7199 description: |-
7200 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7201 map is equivalent to an element of matchExpressions, whose key field is "key", the
7202 operator is "In", and the values array contains only "value". The requirements are ANDed.
7203 type: object
7204 additionalProperties:
7205 type: string
7206 x-kubernetes-map-type: atomic
7207 matchLabelKeys:
7208 description: |-
7209 MatchLabelKeys is a set of pod label keys to select which pods will
7210 be taken into consideration. The keys are used to lookup values from the
7211 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
7212 to select the group of existing pods which pods will be taken into consideration
7213 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7214 pod labels will be ignored. The default value is empty.
7215 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
7216 Also, matchLabelKeys cannot be set when labelSelector isn't set.
7217 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7218 type: array
7219 items:
7220 type: string
7221 x-kubernetes-list-type: atomic
7222 mismatchLabelKeys:
7223 description: |-
7224 MismatchLabelKeys is a set of pod label keys to select which pods will
7225 be taken into consideration. The keys are used to lookup values from the
7226 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
7227 to select the group of existing pods which pods will be taken into consideration
7228 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
7229 pod labels will be ignored. The default value is empty.
7230 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
7231 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
7232 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
7233 type: array
7234 items:
7235 type: string
7236 x-kubernetes-list-type: atomic
7237 namespaceSelector:
7238 description: |-
7239 A label query over the set of namespaces that the term applies to.
7240 The term is applied to the union of the namespaces selected by this field
7241 and the ones listed in the namespaces field.
7242 null selector and null or empty namespaces list means "this pod's namespace".
7243 An empty selector ({}) matches all namespaces.
7244 type: object
7245 properties:
7246 matchExpressions:
7247 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
7248 type: array
7249 items:
7250 description: |-
7251 A label selector requirement is a selector that contains values, a key, and an operator that
7252 relates the key and values.
7253 type: object
7254 required:
7255 - key
7256 - operator
7257 properties:
7258 key:
7259 description: key is the label key that the selector applies to.
7260 type: string
7261 operator:
7262 description: |-
7263 operator represents a key's relationship to a set of values.
7264 Valid operators are In, NotIn, Exists and DoesNotExist.
7265 type: string
7266 values:
7267 description: |-
7268 values is an array of string values. If the operator is In or NotIn,
7269 the values array must be non-empty. If the operator is Exists or DoesNotExist,
7270 the values array must be empty. This array is replaced during a strategic
7271 merge patch.
7272 type: array
7273 items:
7274 type: string
7275 x-kubernetes-list-type: atomic
7276 x-kubernetes-list-type: atomic
7277 matchLabels:
7278 description: |-
7279 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
7280 map is equivalent to an element of matchExpressions, whose key field is "key", the
7281 operator is "In", and the values array contains only "value". The requirements are ANDed.
7282 type: object
7283 additionalProperties:
7284 type: string
7285 x-kubernetes-map-type: atomic
7286 namespaces:
7287 description: |-
7288 namespaces specifies a static list of namespace names that the term applies to.
7289 The term is applied to the union of the namespaces listed in this field
7290 and the ones selected by namespaceSelector.
7291 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
7292 type: array
7293 items:
7294 type: string
7295 x-kubernetes-list-type: atomic
7296 topologyKey:
7297 description: |-
7298 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
7299 the labelSelector in the specified namespaces, where co-located is defined as running on a node
7300 whose value of the label with key topologyKey matches that of any node on which any of the
7301 selected pods is running.
7302 Empty topologyKey is not allowed.
7303 type: string
7304 x-kubernetes-list-type: atomic
7305 imagePullSecrets:
7306 description: If specified, the pod's imagePullSecrets
7307 type: array
7308 items:
7309 description: |-
7310 LocalObjectReference contains enough information to let you locate the
7311 referenced object inside the same namespace.
7312 type: object
7313 properties:
7314 name:
7315 description: |-
7316 Name of the referent.
7317 This field is effectively required, but due to backwards compatibility is
7318 allowed to be empty. Instances of this type with an empty value here are
7319 almost certainly wrong.
7320 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7321 type: string
7322 default: ""
7323 x-kubernetes-map-type: atomic
7324 nodeSelector:
7325 description: |-
7326 NodeSelector is a selector which must be true for the pod to fit on a node.
7327 Selector which must match a node's labels for the pod to be scheduled on that node.
7328 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
7329 type: object
7330 additionalProperties:
7331 type: string
7332 priorityClassName:
7333 description: If specified, the pod's priorityClassName.
7334 type: string
7335 securityContext:
7336 description: If specified, the pod's security context
7337 type: object
7338 properties:
7339 fsGroup:
7340 description: |-
7341 A special supplemental group that applies to all containers in a pod.
7342 Some volume types allow the Kubelet to change the ownership of that volume
7343 to be owned by the pod:
7344
7345 1. The owning GID will be the FSGroup
7346 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
7347 3. The permission bits are OR'd with rw-rw----
7348
7349 If unset, the Kubelet will not modify the ownership and permissions of any volume.
7350 Note that this field cannot be set when spec.os.name is windows.
7351 type: integer
7352 format: int64
7353 fsGroupChangePolicy:
7354 description: |-
7355 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
7356 before being exposed inside Pod. This field will only apply to
7357 volume types which support fsGroup based ownership(and permissions).
7358 It will have no effect on ephemeral volume types such as: secret, configmaps
7359 and emptydir.
7360 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
7361 Note that this field cannot be set when spec.os.name is windows.
7362 type: string
7363 runAsGroup:
7364 description: |-
7365 The GID to run the entrypoint of the container process.
7366 Uses runtime default if unset.
7367 May also be set in SecurityContext. If set in both SecurityContext and
7368 PodSecurityContext, the value specified in SecurityContext takes precedence
7369 for that container.
7370 Note that this field cannot be set when spec.os.name is windows.
7371 type: integer
7372 format: int64
7373 runAsNonRoot:
7374 description: |-
7375 Indicates that the container must run as a non-root user.
7376 If true, the Kubelet will validate the image at runtime to ensure that it
7377 does not run as UID 0 (root) and fail to start the container if it does.
7378 If unset or false, no such validation will be performed.
7379 May also be set in SecurityContext. If set in both SecurityContext and
7380 PodSecurityContext, the value specified in SecurityContext takes precedence.
7381 type: boolean
7382 runAsUser:
7383 description: |-
7384 The UID to run the entrypoint of the container process.
7385 Defaults to user specified in image metadata if unspecified.
7386 May also be set in SecurityContext. If set in both SecurityContext and
7387 PodSecurityContext, the value specified in SecurityContext takes precedence
7388 for that container.
7389 Note that this field cannot be set when spec.os.name is windows.
7390 type: integer
7391 format: int64
7392 seLinuxOptions:
7393 description: |-
7394 The SELinux context to be applied to all containers.
7395 If unspecified, the container runtime will allocate a random SELinux context for each
7396 container. May also be set in SecurityContext. If set in
7397 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
7398 takes precedence for that container.
7399 Note that this field cannot be set when spec.os.name is windows.
7400 type: object
7401 properties:
7402 level:
7403 description: Level is SELinux level label that applies to the container.
7404 type: string
7405 role:
7406 description: Role is a SELinux role label that applies to the container.
7407 type: string
7408 type:
7409 description: Type is a SELinux type label that applies to the container.
7410 type: string
7411 user:
7412 description: User is a SELinux user label that applies to the container.
7413 type: string
7414 seccompProfile:
7415 description: |-
7416 The seccomp options to use by the containers in this pod.
7417 Note that this field cannot be set when spec.os.name is windows.
7418 type: object
7419 required:
7420 - type
7421 properties:
7422 localhostProfile:
7423 description: |-
7424 localhostProfile indicates a profile defined in a file on the node should be used.
7425 The profile must be preconfigured on the node to work.
7426 Must be a descending path, relative to the kubelet's configured seccomp profile location.
7427 Must be set if type is "Localhost". Must NOT be set for any other type.
7428 type: string
7429 type:
7430 description: |-
7431 type indicates which kind of seccomp profile will be applied.
7432 Valid options are:
7433
7434 Localhost - a profile defined in a file on the node should be used.
7435 RuntimeDefault - the container runtime default profile should be used.
7436 Unconfined - no profile should be applied.
7437 type: string
7438 supplementalGroups:
7439 description: |-
7440 A list of groups applied to the first process run in each container, in addition
7441 to the container's primary GID, the fsGroup (if specified), and group memberships
7442 defined in the container image for the uid of the container process. If unspecified,
7443 no additional groups are added to any container. Note that group memberships
7444 defined in the container image for the uid of the container process are still effective,
7445 even if they are not included in this list.
7446 Note that this field cannot be set when spec.os.name is windows.
7447 type: array
7448 items:
7449 type: integer
7450 format: int64
7451 sysctls:
7452 description: |-
7453 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
7454 sysctls (by the container runtime) might fail to launch.
7455 Note that this field cannot be set when spec.os.name is windows.
7456 type: array
7457 items:
7458 description: Sysctl defines a kernel parameter to be set
7459 type: object
7460 required:
7461 - name
7462 - value
7463 properties:
7464 name:
7465 description: Name of a property to set
7466 type: string
7467 value:
7468 description: Value of a property to set
7469 type: string
7470 serviceAccountName:
7471 description: If specified, the pod's service account
7472 type: string
7473 tolerations:
7474 description: If specified, the pod's tolerations.
7475 type: array
7476 items:
7477 description: |-
7478 The pod this Toleration is attached to tolerates any taint that matches
7479 the triple <key,value,effect> using the matching operator <operator>.
7480 type: object
7481 properties:
7482 effect:
7483 description: |-
7484 Effect indicates the taint effect to match. Empty means match all taint effects.
7485 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
7486 type: string
7487 key:
7488 description: |-
7489 Key is the taint key that the toleration applies to. Empty means match all taint keys.
7490 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
7491 type: string
7492 operator:
7493 description: |-
7494 Operator represents a key's relationship to the value.
7495 Valid operators are Exists and Equal. Defaults to Equal.
7496 Exists is equivalent to wildcard for value, so that a pod can
7497 tolerate all taints of a particular category.
7498 type: string
7499 tolerationSeconds:
7500 description: |-
7501 TolerationSeconds represents the period of time the toleration (which must be
7502 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
7503 it is not set, which means tolerate the taint forever (do not evict). Zero and
7504 negative values will be treated as 0 (evict immediately) by the system.
7505 type: integer
7506 format: int64
7507 value:
7508 description: |-
7509 Value is the taint value the toleration matches to.
7510 If the operator is Exists, the value should be empty, otherwise just a regular string.
7511 type: string
7512 serviceType:
7513 description: |-
7514 Optional service type for Kubernetes solver service. Supported values
7515 are NodePort or ClusterIP. If unset, defaults to NodePort.
7516 type: string
7517 selector:
7518 description: |-
7519 Selector selects a set of DNSNames on the Certificate resource that
7520 should be solved using this challenge solver.
7521 If not specified, the solver will be treated as the 'default' solver
7522 with the lowest priority, i.e. if any other solver has a more specific
7523 match, it will be used instead.
7524 type: object
7525 properties:
7526 dnsNames:
7527 description: |-
7528 List of DNSNames that this solver will be used to solve.
7529 If specified and a match is found, a dnsNames selector will take
7530 precedence over a dnsZones selector.
7531 If multiple solvers match with the same dnsNames value, the solver
7532 with the most matching labels in matchLabels will be selected.
7533 If neither has more matches, the solver defined earlier in the list
7534 will be selected.
7535 type: array
7536 items:
7537 type: string
7538 dnsZones:
7539 description: |-
7540 List of DNSZones that this solver will be used to solve.
7541 The most specific DNS zone match specified here will take precedence
7542 over other DNS zone matches, so a solver specifying sys.example.com
7543 will be selected over one specifying example.com for the domain
7544 www.sys.example.com.
7545 If multiple solvers match with the same dnsZones value, the solver
7546 with the most matching labels in matchLabels will be selected.
7547 If neither has more matches, the solver defined earlier in the list
7548 will be selected.
7549 type: array
7550 items:
7551 type: string
7552 matchLabels:
7553 description: |-
7554 A label selector that is used to refine the set of certificate's that
7555 this challenge solver will apply to.
7556 type: object
7557 additionalProperties:
7558 type: string
7559 ca:
7560 description: |-
7561 CA configures this issuer to sign certificates using a signing CA keypair
7562 stored in a Secret resource.
7563 This is used to build internal PKIs that are managed by cert-manager.
7564 type: object
7565 required:
7566 - secretName
7567 properties:
7568 crlDistributionPoints:
7569 description: |-
7570 The CRL distribution points is an X.509 v3 certificate extension which identifies
7571 the location of the CRL from which the revocation of this certificate can be checked.
7572 If not set, certificates will be issued without distribution points set.
7573 type: array
7574 items:
7575 type: string
7576 issuingCertificateURLs:
7577 description: |-
7578 IssuingCertificateURLs is a list of URLs which this issuer should embed into certificates
7579 it creates. See https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1 for more details.
7580 As an example, such a URL might be "http://ca.domain.com/ca.crt".
7581 type: array
7582 items:
7583 type: string
7584 ocspServers:
7585 description: |-
7586 The OCSP server list is an X.509 v3 extension that defines a list of
7587 URLs of OCSP responders. The OCSP responders can be queried for the
7588 revocation status of an issued certificate. If not set, the
7589 certificate will be issued with no OCSP servers set. For example, an
7590 OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
7591 type: array
7592 items:
7593 type: string
7594 secretName:
7595 description: |-
7596 SecretName is the name of the secret used to sign Certificates issued
7597 by this Issuer.
7598 type: string
7599 selfSigned:
7600 description: |-
7601 SelfSigned configures this issuer to 'self sign' certificates using the
7602 private key used to create the CertificateRequest object.
7603 type: object
7604 properties:
7605 crlDistributionPoints:
7606 description: |-
7607 The CRL distribution points is an X.509 v3 certificate extension which identifies
7608 the location of the CRL from which the revocation of this certificate can be checked.
7609 If not set certificate will be issued without CDP. Values are strings.
7610 type: array
7611 items:
7612 type: string
7613 vault:
7614 description: |-
7615 Vault configures this issuer to sign certificates using a HashiCorp Vault
7616 PKI backend.
7617 type: object
7618 required:
7619 - auth
7620 - path
7621 - server
7622 properties:
7623 auth:
7624 description: Auth configures how cert-manager authenticates with the Vault server.
7625 type: object
7626 properties:
7627 appRole:
7628 description: |-
7629 AppRole authenticates with Vault using the App Role auth mechanism,
7630 with the role and secret stored in a Kubernetes Secret resource.
7631 type: object
7632 required:
7633 - path
7634 - roleId
7635 - secretRef
7636 properties:
7637 path:
7638 description: |-
7639 Path where the App Role authentication backend is mounted in Vault, e.g:
7640 "approle"
7641 type: string
7642 roleId:
7643 description: |-
7644 RoleID configured in the App Role authentication backend when setting
7645 up the authentication backend in Vault.
7646 type: string
7647 secretRef:
7648 description: |-
7649 Reference to a key in a Secret that contains the App Role secret used
7650 to authenticate with Vault.
7651 The `key` field must be specified and denotes which entry within the Secret
7652 resource is used as the app role secret.
7653 type: object
7654 required:
7655 - name
7656 properties:
7657 key:
7658 description: |-
7659 The key of the entry in the Secret resource's `data` field to be used.
7660 Some instances of this field may be defaulted, in others it may be
7661 required.
7662 type: string
7663 name:
7664 description: |-
7665 Name of the resource being referred to.
7666 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7667 type: string
7668 clientCertificate:
7669 description: |-
7670 ClientCertificate authenticates with Vault by presenting a client
7671 certificate during the request's TLS handshake.
7672 Works only when using HTTPS protocol.
7673 type: object
7674 properties:
7675 mountPath:
7676 description: |-
7677 The Vault mountPath here is the mount path to use when authenticating with
7678 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
7679 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
7680 default value "/v1/auth/cert" will be used.
7681 type: string
7682 name:
7683 description: |-
7684 Name of the certificate role to authenticate against.
7685 If not set, matching any certificate role, if available.
7686 type: string
7687 secretName:
7688 description: |-
7689 Reference to Kubernetes Secret of type "kubernetes.io/tls" (hence containing
7690 tls.crt and tls.key) used to authenticate to Vault using TLS client
7691 authentication.
7692 type: string
7693 kubernetes:
7694 description: |-
7695 Kubernetes authenticates with Vault by passing the ServiceAccount
7696 token stored in the named Secret resource to the Vault server.
7697 type: object
7698 required:
7699 - role
7700 properties:
7701 mountPath:
7702 description: |-
7703 The Vault mountPath here is the mount path to use when authenticating with
7704 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
7705 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
7706 default value "/v1/auth/kubernetes" will be used.
7707 type: string
7708 role:
7709 description: |-
7710 A required field containing the Vault Role to assume. A Role binds a
7711 Kubernetes ServiceAccount with a set of Vault policies.
7712 type: string
7713 secretRef:
7714 description: |-
7715 The required Secret field containing a Kubernetes ServiceAccount JWT used
7716 for authenticating with Vault. Use of 'ambient credentials' is not
7717 supported.
7718 type: object
7719 required:
7720 - name
7721 properties:
7722 key:
7723 description: |-
7724 The key of the entry in the Secret resource's `data` field to be used.
7725 Some instances of this field may be defaulted, in others it may be
7726 required.
7727 type: string
7728 name:
7729 description: |-
7730 Name of the resource being referred to.
7731 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7732 type: string
7733 serviceAccountRef:
7734 description: |-
7735 A reference to a service account that will be used to request a bound
7736 token (also known as "projected token"). Compared to using "secretRef",
7737 using this field means that you don't rely on statically bound tokens. To
7738 use this field, you must configure an RBAC rule to let cert-manager
7739 request a token.
7740 type: object
7741 required:
7742 - name
7743 properties:
7744 audiences:
7745 description: |-
7746 TokenAudiences is an optional list of extra audiences to include in the token passed to Vault. The default token
7747 consisting of the issuer's namespace and name is always included.
7748 type: array
7749 items:
7750 type: string
7751 name:
7752 description: Name of the ServiceAccount used to request a token.
7753 type: string
7754 tokenSecretRef:
7755 description: TokenSecretRef authenticates with Vault by presenting a token.
7756 type: object
7757 required:
7758 - name
7759 properties:
7760 key:
7761 description: |-
7762 The key of the entry in the Secret resource's `data` field to be used.
7763 Some instances of this field may be defaulted, in others it may be
7764 required.
7765 type: string
7766 name:
7767 description: |-
7768 Name of the resource being referred to.
7769 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7770 type: string
7771 caBundle:
7772 description: |-
7773 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
7774 chain presented by Vault. Only used if using HTTPS to connect to Vault and
7775 ignored for HTTP connections.
7776 Mutually exclusive with CABundleSecretRef.
7777 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
7778 the cert-manager controller container is used to validate the TLS connection.
7779 type: string
7780 format: byte
7781 caBundleSecretRef:
7782 description: |-
7783 Reference to a Secret containing a bundle of PEM-encoded CAs to use when
7784 verifying the certificate chain presented by Vault when using HTTPS.
7785 Mutually exclusive with CABundle.
7786 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
7787 the cert-manager controller container is used to validate the TLS connection.
7788 If no key for the Secret is specified, cert-manager will default to 'ca.crt'.
7789 type: object
7790 required:
7791 - name
7792 properties:
7793 key:
7794 description: |-
7795 The key of the entry in the Secret resource's `data` field to be used.
7796 Some instances of this field may be defaulted, in others it may be
7797 required.
7798 type: string
7799 name:
7800 description: |-
7801 Name of the resource being referred to.
7802 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7803 type: string
7804 clientCertSecretRef:
7805 description: |-
7806 Reference to a Secret containing a PEM-encoded Client Certificate to use when the
7807 Vault server requires mTLS.
7808 type: object
7809 required:
7810 - name
7811 properties:
7812 key:
7813 description: |-
7814 The key of the entry in the Secret resource's `data` field to be used.
7815 Some instances of this field may be defaulted, in others it may be
7816 required.
7817 type: string
7818 name:
7819 description: |-
7820 Name of the resource being referred to.
7821 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7822 type: string
7823 clientKeySecretRef:
7824 description: |-
7825 Reference to a Secret containing a PEM-encoded Client Private Key to use when the
7826 Vault server requires mTLS.
7827 type: object
7828 required:
7829 - name
7830 properties:
7831 key:
7832 description: |-
7833 The key of the entry in the Secret resource's `data` field to be used.
7834 Some instances of this field may be defaulted, in others it may be
7835 required.
7836 type: string
7837 name:
7838 description: |-
7839 Name of the resource being referred to.
7840 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7841 type: string
7842 namespace:
7843 description: |-
7844 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"
7845 More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
7846 type: string
7847 path:
7848 description: |-
7849 Path is the mount path of the Vault PKI backend's `sign` endpoint, e.g:
7850 "my_pki_mount/sign/my-role-name".
7851 type: string
7852 server:
7853 description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
7854 type: string
7855 venafi:
7856 description: |-
7857 Venafi configures this issuer to sign certificates using a Venafi TPP
7858 or Venafi Cloud policy zone.
7859 type: object
7860 required:
7861 - zone
7862 properties:
7863 cloud:
7864 description: |-
7865 Cloud specifies the Venafi cloud configuration settings.
7866 Only one of TPP or Cloud may be specified.
7867 type: object
7868 required:
7869 - apiTokenSecretRef
7870 properties:
7871 apiTokenSecretRef:
7872 description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
7873 type: object
7874 required:
7875 - name
7876 properties:
7877 key:
7878 description: |-
7879 The key of the entry in the Secret resource's `data` field to be used.
7880 Some instances of this field may be defaulted, in others it may be
7881 required.
7882 type: string
7883 name:
7884 description: |-
7885 Name of the resource being referred to.
7886 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7887 type: string
7888 url:
7889 description: |-
7890 URL is the base URL for Venafi Cloud.
7891 Defaults to "https://api.venafi.cloud/v1".
7892 type: string
7893 tpp:
7894 description: |-
7895 TPP specifies Trust Protection Platform configuration settings.
7896 Only one of TPP or Cloud may be specified.
7897 type: object
7898 required:
7899 - credentialsRef
7900 - url
7901 properties:
7902 caBundle:
7903 description: |-
7904 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
7905 chain presented by the TPP server. Only used if using HTTPS; ignored for HTTP.
7906 If undefined, the certificate bundle in the cert-manager controller container
7907 is used to validate the chain.
7908 type: string
7909 format: byte
7910 caBundleSecretRef:
7911 description: |-
7912 Reference to a Secret containing a base64-encoded bundle of PEM CAs
7913 which will be used to validate the certificate chain presented by the TPP server.
7914 Only used if using HTTPS; ignored for HTTP. Mutually exclusive with CABundle.
7915 If neither CABundle nor CABundleSecretRef is defined, the certificate bundle in
7916 the cert-manager controller container is used to validate the TLS connection.
7917 type: object
7918 required:
7919 - name
7920 properties:
7921 key:
7922 description: |-
7923 The key of the entry in the Secret resource's `data` field to be used.
7924 Some instances of this field may be defaulted, in others it may be
7925 required.
7926 type: string
7927 name:
7928 description: |-
7929 Name of the resource being referred to.
7930 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7931 type: string
7932 credentialsRef:
7933 description: |-
7934 CredentialsRef is a reference to a Secret containing the Venafi TPP API credentials.
7935 The secret must contain the key 'access-token' for the Access Token Authentication,
7936 or two keys, 'username' and 'password' for the API Keys Authentication.
7937 type: object
7938 required:
7939 - name
7940 properties:
7941 name:
7942 description: |-
7943 Name of the resource being referred to.
7944 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
7945 type: string
7946 url:
7947 description: |-
7948 URL is the base URL for the vedsdk endpoint of the Venafi TPP instance,
7949 for example: "https://tpp.example.com/vedsdk".
7950 type: string
7951 zone:
7952 description: |-
7953 Zone is the Venafi Policy Zone to use for this issuer.
7954 All requests made to the Venafi platform will be restricted by the named
7955 zone policy.
7956 This field is required.
7957 type: string
7958 status:
7959 description: Status of the ClusterIssuer. This is set and managed automatically.
7960 type: object
7961 properties:
7962 acme:
7963 description: |-
7964 ACME specific status options.
7965 This field should only be set if the Issuer is configured to use an ACME
7966 server to issue certificates.
7967 type: object
7968 properties:
7969 lastPrivateKeyHash:
7970 description: |-
7971 LastPrivateKeyHash is a hash of the private key associated with the latest
7972 registered ACME account, in order to track changes made to registered account
7973 associated with the Issuer
7974 type: string
7975 lastRegisteredEmail:
7976 description: |-
7977 LastRegisteredEmail is the email associated with the latest registered
7978 ACME account, in order to track changes made to registered account
7979 associated with the Issuer
7980 type: string
7981 uri:
7982 description: |-
7983 URI is the unique account identifier, which can also be used to retrieve
7984 account details from the CA
7985 type: string
7986 conditions:
7987 description: |-
7988 List of status conditions to indicate the status of a CertificateRequest.
7989 Known condition types are `Ready`.
7990 type: array
7991 items:
7992 description: IssuerCondition contains condition information for an Issuer.
7993 type: object
7994 required:
7995 - status
7996 - type
7997 properties:
7998 lastTransitionTime:
7999 description: |-
8000 LastTransitionTime is the timestamp corresponding to the last status
8001 change of this condition.
8002 type: string
8003 format: date-time
8004 message:
8005 description: |-
8006 Message is a human readable description of the details of the last
8007 transition, complementing reason.
8008 type: string
8009 observedGeneration:
8010 description: |-
8011 If set, this represents the .metadata.generation that the condition was
8012 set based upon.
8013 For instance, if .metadata.generation is currently 12, but the
8014 .status.condition[x].observedGeneration is 9, the condition is out of date
8015 with respect to the current state of the Issuer.
8016 type: integer
8017 format: int64
8018 reason:
8019 description: |-
8020 Reason is a brief machine readable explanation for the condition's last
8021 transition.
8022 type: string
8023 status:
8024 description: Status of the condition, one of (`True`, `False`, `Unknown`).
8025 type: string
8026 enum:
8027 - "True"
8028 - "False"
8029 - Unknown
8030 type:
8031 description: Type of the condition, known values are (`Ready`).
8032 type: string
8033 x-kubernetes-list-map-keys:
8034 - type
8035 x-kubernetes-list-type: map
8036 served: true
8037 storage: true
8038
8039# END crd {{- end }}
8040
8041---
8042# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
8043apiVersion: apiextensions.k8s.io/v1
8044kind: CustomResourceDefinition
8045metadata:
8046 name: issuers.cert-manager.io
8047 # START annotations {{- if .Values.crds.keep }}
8048 annotations:
8049 helm.sh/resource-policy: keep
8050 # END annotations {{- end }}
8051 labels:
8052 app: '{{ template "cert-manager.name" . }}'
8053 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
8054 app.kubernetes.io/instance: '{{ .Release.Name }}'
8055 app.kubernetes.io/component: "crds"
8056 # Generated labels {{- include "labels" . | nindent 4 }}
8057spec:
8058 group: cert-manager.io
8059 names:
8060 kind: Issuer
8061 listKind: IssuerList
8062 plural: issuers
8063 singular: issuer
8064 categories:
8065 - cert-manager
8066 scope: Namespaced
8067 versions:
8068 - name: v1
8069 subresources:
8070 status: {}
8071 additionalPrinterColumns:
8072 - jsonPath: .status.conditions[?(@.type=="Ready")].status
8073 name: Ready
8074 type: string
8075 - jsonPath: .status.conditions[?(@.type=="Ready")].message
8076 name: Status
8077 priority: 1
8078 type: string
8079 - jsonPath: .metadata.creationTimestamp
8080 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.
8081 name: Age
8082 type: date
8083 schema:
8084 openAPIV3Schema:
8085 description: |-
8086 An Issuer represents a certificate issuing authority which can be
8087 referenced as part of `issuerRef` fields.
8088 It is scoped to a single namespace and can therefore only be referenced by
8089 resources within the same namespace.
8090 type: object
8091 required:
8092 - spec
8093 properties:
8094 apiVersion:
8095 description: |-
8096 APIVersion defines the versioned schema of this representation of an object.
8097 Servers should convert recognized schemas to the latest internal value, and
8098 may reject unrecognized values.
8099 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
8100 type: string
8101 kind:
8102 description: |-
8103 Kind is a string value representing the REST resource this object represents.
8104 Servers may infer this from the endpoint the client submits requests to.
8105 Cannot be updated.
8106 In CamelCase.
8107 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
8108 type: string
8109 metadata:
8110 type: object
8111 spec:
8112 description: Desired state of the Issuer resource.
8113 type: object
8114 properties:
8115 acme:
8116 description: |-
8117 ACME configures this issuer to communicate with a RFC8555 (ACME) server
8118 to obtain signed x509 certificates.
8119 type: object
8120 required:
8121 - privateKeySecretRef
8122 - server
8123 properties:
8124 caBundle:
8125 description: |-
8126 Base64-encoded bundle of PEM CAs which can be used to validate the certificate
8127 chain presented by the ACME server.
8128 Mutually exclusive with SkipTLSVerify; prefer using CABundle to prevent various
8129 kinds of security vulnerabilities.
8130 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
8131 the container is used to validate the TLS connection.
8132 type: string
8133 format: byte
8134 disableAccountKeyGeneration:
8135 description: |-
8136 Enables or disables generating a new ACME account key.
8137 If true, the Issuer resource will *not* request a new account but will expect
8138 the account key to be supplied via an existing secret.
8139 If false, the cert-manager system will generate a new ACME account key
8140 for the Issuer.
8141 Defaults to false.
8142 type: boolean
8143 email:
8144 description: |-
8145 Email is the email address to be associated with the ACME account.
8146 This field is optional, but it is strongly recommended to be set.
8147 It will be used to contact you in case of issues with your account or
8148 certificates, including expiry notification emails.
8149 This field may be updated after the account is initially registered.
8150 type: string
8151 enableDurationFeature:
8152 description: |-
8153 Enables requesting a Not After date on certificates that matches the
8154 duration of the certificate. This is not supported by all ACME servers
8155 like Let's Encrypt. If set to true when the ACME server does not support
8156 it, it will create an error on the Order.
8157 Defaults to false.
8158 type: boolean
8159 externalAccountBinding:
8160 description: |-
8161 ExternalAccountBinding is a reference to a CA external account of the ACME
8162 server.
8163 If set, upon registration cert-manager will attempt to associate the given
8164 external account credentials with the registered ACME account.
8165 type: object
8166 required:
8167 - keyID
8168 - keySecretRef
8169 properties:
8170 keyAlgorithm:
8171 description: |-
8172 Deprecated: keyAlgorithm field exists for historical compatibility
8173 reasons and should not be used. The algorithm is now hardcoded to HS256
8174 in golang/x/crypto/acme.
8175 type: string
8176 enum:
8177 - HS256
8178 - HS384
8179 - HS512
8180 keyID:
8181 description: keyID is the ID of the CA key that the External Account is bound to.
8182 type: string
8183 keySecretRef:
8184 description: |-
8185 keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes
8186 Secret which holds the symmetric MAC key of the External Account Binding.
8187 The `key` is the index string that is paired with the key data in the
8188 Secret and should not be confused with the key data itself, or indeed with
8189 the External Account Binding keyID above.
8190 The secret key stored in the Secret **must** be un-padded, base64 URL
8191 encoded data.
8192 type: object
8193 required:
8194 - name
8195 properties:
8196 key:
8197 description: |-
8198 The key of the entry in the Secret resource's `data` field to be used.
8199 Some instances of this field may be defaulted, in others it may be
8200 required.
8201 type: string
8202 name:
8203 description: |-
8204 Name of the resource being referred to.
8205 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8206 type: string
8207 preferredChain:
8208 description: |-
8209 PreferredChain is the chain to use if the ACME server outputs multiple.
8210 PreferredChain is no guarantee that this one gets delivered by the ACME
8211 endpoint.
8212 For example, for Let's Encrypt's DST crosssign you would use:
8213 "DST Root CA X3" or "ISRG Root X1" for the newer Let's Encrypt root CA.
8214 This value picks the first certificate bundle in the combined set of
8215 ACME default and alternative chains that has a root-most certificate with
8216 this value as its issuer's commonname.
8217 type: string
8218 maxLength: 64
8219 privateKeySecretRef:
8220 description: |-
8221 PrivateKey is the name of a Kubernetes Secret resource that will be used to
8222 store the automatically generated ACME account private key.
8223 Optionally, a `key` may be specified to select a specific entry within
8224 the named Secret resource.
8225 If `key` is not specified, a default of `tls.key` will be used.
8226 type: object
8227 required:
8228 - name
8229 properties:
8230 key:
8231 description: |-
8232 The key of the entry in the Secret resource's `data` field to be used.
8233 Some instances of this field may be defaulted, in others it may be
8234 required.
8235 type: string
8236 name:
8237 description: |-
8238 Name of the resource being referred to.
8239 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8240 type: string
8241 server:
8242 description: |-
8243 Server is the URL used to access the ACME server's 'directory' endpoint.
8244 For example, for Let's Encrypt's staging endpoint, you would use:
8245 "https://acme-staging-v02.api.letsencrypt.org/directory".
8246 Only ACME v2 endpoints (i.e. RFC 8555) are supported.
8247 type: string
8248 skipTLSVerify:
8249 description: |-
8250 INSECURE: Enables or disables validation of the ACME server TLS certificate.
8251 If true, requests to the ACME server will not have the TLS certificate chain
8252 validated.
8253 Mutually exclusive with CABundle; prefer using CABundle to prevent various
8254 kinds of security vulnerabilities.
8255 Only enable this option in development environments.
8256 If CABundle and SkipTLSVerify are unset, the system certificate bundle inside
8257 the container is used to validate the TLS connection.
8258 Defaults to false.
8259 type: boolean
8260 solvers:
8261 description: |-
8262 Solvers is a list of challenge solvers that will be used to solve
8263 ACME challenges for the matching domains.
8264 Solver configurations must be provided in order to obtain certificates
8265 from an ACME server.
8266 For more information, see: https://cert-manager.io/docs/configuration/acme/
8267 type: array
8268 items:
8269 description: |-
8270 An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of.
8271 A selector may be provided to use different solving strategies for different DNS names.
8272 Only one of HTTP01 or DNS01 must be provided.
8273 type: object
8274 properties:
8275 dns01:
8276 description: |-
8277 Configures cert-manager to attempt to complete authorizations by
8278 performing the DNS01 challenge flow.
8279 type: object
8280 properties:
8281 acmeDNS:
8282 description: |-
8283 Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage
8284 DNS01 challenge records.
8285 type: object
8286 required:
8287 - accountSecretRef
8288 - host
8289 properties:
8290 accountSecretRef:
8291 description: |-
8292 A reference to a specific 'key' within a Secret resource.
8293 In some instances, `key` is a required field.
8294 type: object
8295 required:
8296 - name
8297 properties:
8298 key:
8299 description: |-
8300 The key of the entry in the Secret resource's `data` field to be used.
8301 Some instances of this field may be defaulted, in others it may be
8302 required.
8303 type: string
8304 name:
8305 description: |-
8306 Name of the resource being referred to.
8307 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8308 type: string
8309 host:
8310 type: string
8311 akamai:
8312 description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
8313 type: object
8314 required:
8315 - accessTokenSecretRef
8316 - clientSecretSecretRef
8317 - clientTokenSecretRef
8318 - serviceConsumerDomain
8319 properties:
8320 accessTokenSecretRef:
8321 description: |-
8322 A reference to a specific 'key' within a Secret resource.
8323 In some instances, `key` is a required field.
8324 type: object
8325 required:
8326 - name
8327 properties:
8328 key:
8329 description: |-
8330 The key of the entry in the Secret resource's `data` field to be used.
8331 Some instances of this field may be defaulted, in others it may be
8332 required.
8333 type: string
8334 name:
8335 description: |-
8336 Name of the resource being referred to.
8337 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8338 type: string
8339 clientSecretSecretRef:
8340 description: |-
8341 A reference to a specific 'key' within a Secret resource.
8342 In some instances, `key` is a required field.
8343 type: object
8344 required:
8345 - name
8346 properties:
8347 key:
8348 description: |-
8349 The key of the entry in the Secret resource's `data` field to be used.
8350 Some instances of this field may be defaulted, in others it may be
8351 required.
8352 type: string
8353 name:
8354 description: |-
8355 Name of the resource being referred to.
8356 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8357 type: string
8358 clientTokenSecretRef:
8359 description: |-
8360 A reference to a specific 'key' within a Secret resource.
8361 In some instances, `key` is a required field.
8362 type: object
8363 required:
8364 - name
8365 properties:
8366 key:
8367 description: |-
8368 The key of the entry in the Secret resource's `data` field to be used.
8369 Some instances of this field may be defaulted, in others it may be
8370 required.
8371 type: string
8372 name:
8373 description: |-
8374 Name of the resource being referred to.
8375 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8376 type: string
8377 serviceConsumerDomain:
8378 type: string
8379 azureDNS:
8380 description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
8381 type: object
8382 required:
8383 - resourceGroupName
8384 - subscriptionID
8385 properties:
8386 clientID:
8387 description: |-
8388 Auth: Azure Service Principal:
8389 The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
8390 If set, ClientSecret and TenantID must also be set.
8391 type: string
8392 clientSecretSecretRef:
8393 description: |-
8394 Auth: Azure Service Principal:
8395 A reference to a Secret containing the password associated with the Service Principal.
8396 If set, ClientID and TenantID must also be set.
8397 type: object
8398 required:
8399 - name
8400 properties:
8401 key:
8402 description: |-
8403 The key of the entry in the Secret resource's `data` field to be used.
8404 Some instances of this field may be defaulted, in others it may be
8405 required.
8406 type: string
8407 name:
8408 description: |-
8409 Name of the resource being referred to.
8410 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8411 type: string
8412 environment:
8413 description: name of the Azure environment (default AzurePublicCloud)
8414 type: string
8415 enum:
8416 - AzurePublicCloud
8417 - AzureChinaCloud
8418 - AzureGermanCloud
8419 - AzureUSGovernmentCloud
8420 hostedZoneName:
8421 description: name of the DNS zone that should be used
8422 type: string
8423 managedIdentity:
8424 description: |-
8425 Auth: Azure Workload Identity or Azure Managed Service Identity:
8426 Settings to enable Azure Workload Identity or Azure Managed Service Identity
8427 If set, ClientID, ClientSecret and TenantID must not be set.
8428 type: object
8429 properties:
8430 clientID:
8431 description: client ID of the managed identity, can not be used at the same time as resourceID
8432 type: string
8433 resourceID:
8434 description: |-
8435 resource ID of the managed identity, can not be used at the same time as clientID
8436 Cannot be used for Azure Managed Service Identity
8437 type: string
8438 tenantID:
8439 description: tenant ID of the managed identity, can not be used at the same time as resourceID
8440 type: string
8441 resourceGroupName:
8442 description: resource group the DNS zone is located in
8443 type: string
8444 subscriptionID:
8445 description: ID of the Azure subscription
8446 type: string
8447 tenantID:
8448 description: |-
8449 Auth: Azure Service Principal:
8450 The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
8451 If set, ClientID and ClientSecret must also be set.
8452 type: string
8453 cloudDNS:
8454 description: Use the Google Cloud DNS API to manage DNS01 challenge records.
8455 type: object
8456 required:
8457 - project
8458 properties:
8459 hostedZoneName:
8460 description: |-
8461 HostedZoneName is an optional field that tells cert-manager in which
8462 Cloud DNS zone the challenge record has to be created.
8463 If left empty cert-manager will automatically choose a zone.
8464 type: string
8465 project:
8466 type: string
8467 serviceAccountSecretRef:
8468 description: |-
8469 A reference to a specific 'key' within a Secret resource.
8470 In some instances, `key` is a required field.
8471 type: object
8472 required:
8473 - name
8474 properties:
8475 key:
8476 description: |-
8477 The key of the entry in the Secret resource's `data` field to be used.
8478 Some instances of this field may be defaulted, in others it may be
8479 required.
8480 type: string
8481 name:
8482 description: |-
8483 Name of the resource being referred to.
8484 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8485 type: string
8486 cloudflare:
8487 description: Use the Cloudflare API to manage DNS01 challenge records.
8488 type: object
8489 properties:
8490 apiKeySecretRef:
8491 description: |-
8492 API key to use to authenticate with Cloudflare.
8493 Note: using an API token to authenticate is now the recommended method
8494 as it allows greater control of permissions.
8495 type: object
8496 required:
8497 - name
8498 properties:
8499 key:
8500 description: |-
8501 The key of the entry in the Secret resource's `data` field to be used.
8502 Some instances of this field may be defaulted, in others it may be
8503 required.
8504 type: string
8505 name:
8506 description: |-
8507 Name of the resource being referred to.
8508 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8509 type: string
8510 apiTokenSecretRef:
8511 description: API token used to authenticate with Cloudflare.
8512 type: object
8513 required:
8514 - name
8515 properties:
8516 key:
8517 description: |-
8518 The key of the entry in the Secret resource's `data` field to be used.
8519 Some instances of this field may be defaulted, in others it may be
8520 required.
8521 type: string
8522 name:
8523 description: |-
8524 Name of the resource being referred to.
8525 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8526 type: string
8527 email:
8528 description: Email of the account, only required when using API key based authentication.
8529 type: string
8530 cnameStrategy:
8531 description: |-
8532 CNAMEStrategy configures how the DNS01 provider should handle CNAME
8533 records when found in DNS zones.
8534 type: string
8535 enum:
8536 - None
8537 - Follow
8538 digitalocean:
8539 description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
8540 type: object
8541 required:
8542 - tokenSecretRef
8543 properties:
8544 tokenSecretRef:
8545 description: |-
8546 A reference to a specific 'key' within a Secret resource.
8547 In some instances, `key` is a required field.
8548 type: object
8549 required:
8550 - name
8551 properties:
8552 key:
8553 description: |-
8554 The key of the entry in the Secret resource's `data` field to be used.
8555 Some instances of this field may be defaulted, in others it may be
8556 required.
8557 type: string
8558 name:
8559 description: |-
8560 Name of the resource being referred to.
8561 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8562 type: string
8563 rfc2136:
8564 description: |-
8565 Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/)
8566 to manage DNS01 challenge records.
8567 type: object
8568 required:
8569 - nameserver
8570 properties:
8571 nameserver:
8572 description: |-
8573 The IP address or hostname of an authoritative DNS server supporting
8574 RFC2136 in the form host:port. If the host is an IPv6 address it must be
8575 enclosed in square brackets (e.g [2001:db8::1]) ; port is optional.
8576 This field is required.
8577 type: string
8578 tsigAlgorithm:
8579 description: |-
8580 The TSIG Algorithm configured in the DNS supporting RFC2136. Used only
8581 when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined.
8582 Supported values are (case-insensitive): ``HMACMD5`` (default),
8583 ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.
8584 type: string
8585 tsigKeyName:
8586 description: |-
8587 The TSIG Key name configured in the DNS.
8588 If ``tsigSecretSecretRef`` is defined, this field is required.
8589 type: string
8590 tsigSecretSecretRef:
8591 description: |-
8592 The name of the secret containing the TSIG value.
8593 If ``tsigKeyName`` is defined, this field is required.
8594 type: object
8595 required:
8596 - name
8597 properties:
8598 key:
8599 description: |-
8600 The key of the entry in the Secret resource's `data` field to be used.
8601 Some instances of this field may be defaulted, in others it may be
8602 required.
8603 type: string
8604 name:
8605 description: |-
8606 Name of the resource being referred to.
8607 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8608 type: string
8609 route53:
8610 description: Use the AWS Route53 API to manage DNS01 challenge records.
8611 type: object
8612 properties:
8613 accessKeyID:
8614 description: |-
8615 The AccessKeyID is used for authentication.
8616 Cannot be set when SecretAccessKeyID is set.
8617 If neither the Access Key nor Key ID are set, we fall-back to using env
8618 vars, shared credentials file or AWS Instance metadata,
8619 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
8620 type: string
8621 accessKeyIDSecretRef:
8622 description: |-
8623 The SecretAccessKey is used for authentication. If set, pull the AWS
8624 access key ID from a key within a Kubernetes Secret.
8625 Cannot be set when AccessKeyID is set.
8626 If neither the Access Key nor Key ID are set, we fall-back to using env
8627 vars, shared credentials file or AWS Instance metadata,
8628 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
8629 type: object
8630 required:
8631 - name
8632 properties:
8633 key:
8634 description: |-
8635 The key of the entry in the Secret resource's `data` field to be used.
8636 Some instances of this field may be defaulted, in others it may be
8637 required.
8638 type: string
8639 name:
8640 description: |-
8641 Name of the resource being referred to.
8642 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8643 type: string
8644 auth:
8645 description: Auth configures how cert-manager authenticates.
8646 type: object
8647 required:
8648 - kubernetes
8649 properties:
8650 kubernetes:
8651 description: |-
8652 Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
8653 by passing a bound ServiceAccount token.
8654 type: object
8655 required:
8656 - serviceAccountRef
8657 properties:
8658 serviceAccountRef:
8659 description: |-
8660 A reference to a service account that will be used to request a bound
8661 token (also known as "projected token"). To use this field, you must
8662 configure an RBAC rule to let cert-manager request a token.
8663 type: object
8664 required:
8665 - name
8666 properties:
8667 audiences:
8668 description: |-
8669 TokenAudiences is an optional list of audiences to include in the
8670 token passed to AWS. The default token consisting of the issuer's namespace
8671 and name is always included.
8672 If unset the audience defaults to `sts.amazonaws.com`.
8673 type: array
8674 items:
8675 type: string
8676 name:
8677 description: Name of the ServiceAccount used to request a token.
8678 type: string
8679 hostedZoneID:
8680 description: If set, the provider will manage only this zone in Route53 and will not do a lookup using the route53:ListHostedZonesByName api call.
8681 type: string
8682 region:
8683 description: |-
8684 Override the AWS region.
8685
8686 Route53 is a global service and does not have regional endpoints but the
8687 region specified here (or via environment variables) is used as a hint to
8688 help compute the correct AWS credential scope and partition when it
8689 connects to Route53. See:
8690 - [Amazon Route 53 endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/r53.html)
8691 - [Global services](https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html)
8692
8693 If you omit this region field, cert-manager will use the region from
8694 AWS_REGION and AWS_DEFAULT_REGION environment variables, if they are set
8695 in the cert-manager controller Pod.
8696
8697 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).
8698 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
8699 [Amazon EKS Pod Identity Webhook](https://github.com/aws/amazon-eks-pod-identity-webhook).
8700 In this case this `region` field value is ignored.
8701
8702 The `region` field is not needed if you use [EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
8703 Instead an AWS_REGION environment variable is added to the cert-manager controller Pod by:
8704 [Amazon EKS Pod Identity Agent](https://github.com/aws/eks-pod-identity-agent),
8705 In this case this `region` field value is ignored.
8706 type: string
8707 role:
8708 description: |-
8709 Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
8710 or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
8711 type: string
8712 secretAccessKeySecretRef:
8713 description: |-
8714 The SecretAccessKey is used for authentication.
8715 If neither the Access Key nor Key ID are set, we fall-back to using env
8716 vars, shared credentials file or AWS Instance metadata,
8717 see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
8718 type: object
8719 required:
8720 - name
8721 properties:
8722 key:
8723 description: |-
8724 The key of the entry in the Secret resource's `data` field to be used.
8725 Some instances of this field may be defaulted, in others it may be
8726 required.
8727 type: string
8728 name:
8729 description: |-
8730 Name of the resource being referred to.
8731 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
8732 type: string
8733 webhook:
8734 description: |-
8735 Configure an external webhook based DNS01 challenge solver to manage
8736 DNS01 challenge records.
8737 type: object
8738 required:
8739 - groupName
8740 - solverName
8741 properties:
8742 config:
8743 description: |-
8744 Additional configuration that should be passed to the webhook apiserver
8745 when challenges are processed.
8746 This can contain arbitrary JSON data.
8747 Secret values should not be specified in this stanza.
8748 If secret values are needed (e.g. credentials for a DNS service), you
8749 should use a SecretKeySelector to reference a Secret resource.
8750 For details on the schema of this field, consult the webhook provider
8751 implementation's documentation.
8752 x-kubernetes-preserve-unknown-fields: true
8753 groupName:
8754 description: |-
8755 The API group name that should be used when POSTing ChallengePayload
8756 resources to the webhook apiserver.
8757 This should be the same as the GroupName specified in the webhook
8758 provider implementation.
8759 type: string
8760 solverName:
8761 description: |-
8762 The name of the solver to use, as defined in the webhook provider
8763 implementation.
8764 This will typically be the name of the provider, e.g. 'cloudflare'.
8765 type: string
8766 http01:
8767 description: |-
8768 Configures cert-manager to attempt to complete authorizations by
8769 performing the HTTP01 challenge flow.
8770 It is not possible to obtain certificates for wildcard domain names
8771 (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
8772 type: object
8773 properties:
8774 gatewayHTTPRoute:
8775 description: |-
8776 The Gateway API is a sig-network community API that models service networking
8777 in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will
8778 create HTTPRoutes with the specified labels in the same namespace as the challenge.
8779 This solver is experimental, and fields / behaviour may change in the future.
8780 type: object
8781 properties:
8782 labels:
8783 description: |-
8784 Custom labels that will be applied to HTTPRoutes created by cert-manager
8785 while solving HTTP-01 challenges.
8786 type: object
8787 additionalProperties:
8788 type: string
8789 parentRefs:
8790 description: |-
8791 When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute.
8792 cert-manager needs to know which parentRefs should be used when creating
8793 the HTTPRoute. Usually, the parentRef references a Gateway. See:
8794 https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways
8795 type: array
8796 items:
8797 description: |-
8798 ParentReference identifies an API object (usually a Gateway) that can be considered
8799 a parent of this resource (usually a route). There are two kinds of parent resources
8800 with "Core" support:
8801
8802 * Gateway (Gateway conformance profile)
8803 * Service (Mesh conformance profile, ClusterIP Services only)
8804
8805 This API may be extended in the future to support additional kinds of parent
8806 resources.
8807
8808 The API object must be valid in the cluster; the Group and Kind must
8809 be registered in the cluster for this reference to be valid.
8810 type: object
8811 required:
8812 - name
8813 properties:
8814 group:
8815 description: |-
8816 Group is the group of the referent.
8817 When unspecified, "gateway.networking.k8s.io" is inferred.
8818 To set the core API group (such as for a "Service" kind referent),
8819 Group must be explicitly set to "" (empty string).
8820
8821 Support: Core
8822 type: string
8823 default: gateway.networking.k8s.io
8824 maxLength: 253
8825 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
8826 kind:
8827 description: |-
8828 Kind is kind of the referent.
8829
8830 There are two kinds of parent resources with "Core" support:
8831
8832 * Gateway (Gateway conformance profile)
8833 * Service (Mesh conformance profile, ClusterIP Services only)
8834
8835 Support for other resources is Implementation-Specific.
8836 type: string
8837 default: Gateway
8838 maxLength: 63
8839 minLength: 1
8840 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
8841 name:
8842 description: |-
8843 Name is the name of the referent.
8844
8845 Support: Core
8846 type: string
8847 maxLength: 253
8848 minLength: 1
8849 namespace:
8850 description: |-
8851 Namespace is the namespace of the referent. When unspecified, this refers
8852 to the local namespace of the Route.
8853
8854 Note that there are specific rules for ParentRefs which cross namespace
8855 boundaries. Cross-namespace references are only valid if they are explicitly
8856 allowed by something in the namespace they are referring to. For example:
8857 Gateway has the AllowedRoutes field, and ReferenceGrant provides a
8858 generic way to enable any other kind of cross-namespace reference.
8859
8860 <gateway:experimental:description>
8861 ParentRefs from a Route to a Service in the same namespace are "producer"
8862 routes, which apply default routing rules to inbound connections from
8863 any namespace to the Service.
8864
8865 ParentRefs from a Route to a Service in a different namespace are
8866 "consumer" routes, and these routing rules are only applied to outbound
8867 connections originating from the same namespace as the Route, for which
8868 the intended destination of the connections are a Service targeted as a
8869 ParentRef of the Route.
8870 </gateway:experimental:description>
8871
8872 Support: Core
8873 type: string
8874 maxLength: 63
8875 minLength: 1
8876 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
8877 port:
8878 description: |-
8879 Port is the network port this Route targets. It can be interpreted
8880 differently based on the type of parent resource.
8881
8882 When the parent resource is a Gateway, this targets all listeners
8883 listening on the specified port that also support this kind of Route(and
8884 select this Route). It's not recommended to set `Port` unless the
8885 networking behaviors specified in a Route must apply to a specific port
8886 as opposed to a listener(s) whose port(s) may be changed. When both Port
8887 and SectionName are specified, the name and port of the selected listener
8888 must match both specified values.
8889
8890 <gateway:experimental:description>
8891 When the parent resource is a Service, this targets a specific port in the
8892 Service spec. When both Port (experimental) and SectionName are specified,
8893 the name and port of the selected port must match both specified values.
8894 </gateway:experimental:description>
8895
8896 Implementations MAY choose to support other parent resources.
8897 Implementations supporting other types of parent resources MUST clearly
8898 document how/if Port is interpreted.
8899
8900 For the purpose of status, an attachment is considered successful as
8901 long as the parent resource accepts it partially. For example, Gateway
8902 listeners can restrict which Routes can attach to them by Route kind,
8903 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
8904 from the referencing Route, the Route MUST be considered successfully
8905 attached. If no Gateway listeners accept attachment from this Route,
8906 the Route MUST be considered detached from the Gateway.
8907
8908 Support: Extended
8909 type: integer
8910 format: int32
8911 maximum: 65535
8912 minimum: 1
8913 sectionName:
8914 description: |-
8915 SectionName is the name of a section within the target resource. In the
8916 following resources, SectionName is interpreted as the following:
8917
8918 * Gateway: Listener name. When both Port (experimental) and SectionName
8919 are specified, the name and port of the selected listener must match
8920 both specified values.
8921 * Service: Port name. When both Port (experimental) and SectionName
8922 are specified, the name and port of the selected listener must match
8923 both specified values.
8924
8925 Implementations MAY choose to support attaching Routes to other resources.
8926 If that is the case, they MUST clearly document how SectionName is
8927 interpreted.
8928
8929 When unspecified (empty string), this will reference the entire resource.
8930 For the purpose of status, an attachment is considered successful if at
8931 least one section in the parent resource accepts it. For example, Gateway
8932 listeners can restrict which Routes can attach to them by Route kind,
8933 namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
8934 the referencing Route, the Route MUST be considered successfully
8935 attached. If no Gateway listeners accept attachment from this Route, the
8936 Route MUST be considered detached from the Gateway.
8937
8938 Support: Core
8939 type: string
8940 maxLength: 253
8941 minLength: 1
8942 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
8943 podTemplate:
8944 description: |-
8945 Optional pod template used to configure the ACME challenge solver pods
8946 used for HTTP01 challenges.
8947 type: object
8948 properties:
8949 metadata:
8950 description: |-
8951 ObjectMeta overrides for the pod used to solve HTTP01 challenges.
8952 Only the 'labels' and 'annotations' fields may be set.
8953 If labels or annotations overlap with in-built values, the values here
8954 will override the in-built values.
8955 type: object
8956 properties:
8957 annotations:
8958 description: Annotations that should be added to the created ACME HTTP01 solver pods.
8959 type: object
8960 additionalProperties:
8961 type: string
8962 labels:
8963 description: Labels that should be added to the created ACME HTTP01 solver pods.
8964 type: object
8965 additionalProperties:
8966 type: string
8967 spec:
8968 description: |-
8969 PodSpec defines overrides for the HTTP01 challenge solver pod.
8970 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
8971 All other fields will be ignored.
8972 type: object
8973 properties:
8974 affinity:
8975 description: If specified, the pod's scheduling constraints
8976 type: object
8977 properties:
8978 nodeAffinity:
8979 description: Describes node affinity scheduling rules for the pod.
8980 type: object
8981 properties:
8982 preferredDuringSchedulingIgnoredDuringExecution:
8983 description: |-
8984 The scheduler will prefer to schedule pods to nodes that satisfy
8985 the affinity expressions specified by this field, but it may choose
8986 a node that violates one or more of the expressions. The node that is
8987 most preferred is the one with the greatest sum of weights, i.e.
8988 for each node that meets all of the scheduling requirements (resource
8989 request, requiredDuringScheduling affinity expressions, etc.),
8990 compute a sum by iterating through the elements of this field and adding
8991 "weight" to the sum if the node matches the corresponding matchExpressions; the
8992 node(s) with the highest sum are the most preferred.
8993 type: array
8994 items:
8995 description: |-
8996 An empty preferred scheduling term matches all objects with implicit weight 0
8997 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
8998 type: object
8999 required:
9000 - preference
9001 - weight
9002 properties:
9003 preference:
9004 description: A node selector term, associated with the corresponding weight.
9005 type: object
9006 properties:
9007 matchExpressions:
9008 description: A list of node selector requirements by node's labels.
9009 type: array
9010 items:
9011 description: |-
9012 A node selector requirement is a selector that contains values, a key, and an operator
9013 that relates the key and values.
9014 type: object
9015 required:
9016 - key
9017 - operator
9018 properties:
9019 key:
9020 description: The label key that the selector applies to.
9021 type: string
9022 operator:
9023 description: |-
9024 Represents a key's relationship to a set of values.
9025 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9026 type: string
9027 values:
9028 description: |-
9029 An array of string values. If the operator is In or NotIn,
9030 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9031 the values array must be empty. If the operator is Gt or Lt, the values
9032 array must have a single element, which will be interpreted as an integer.
9033 This array is replaced during a strategic merge patch.
9034 type: array
9035 items:
9036 type: string
9037 x-kubernetes-list-type: atomic
9038 x-kubernetes-list-type: atomic
9039 matchFields:
9040 description: A list of node selector requirements by node's fields.
9041 type: array
9042 items:
9043 description: |-
9044 A node selector requirement is a selector that contains values, a key, and an operator
9045 that relates the key and values.
9046 type: object
9047 required:
9048 - key
9049 - operator
9050 properties:
9051 key:
9052 description: The label key that the selector applies to.
9053 type: string
9054 operator:
9055 description: |-
9056 Represents a key's relationship to a set of values.
9057 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9058 type: string
9059 values:
9060 description: |-
9061 An array of string values. If the operator is In or NotIn,
9062 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9063 the values array must be empty. If the operator is Gt or Lt, the values
9064 array must have a single element, which will be interpreted as an integer.
9065 This array is replaced during a strategic merge patch.
9066 type: array
9067 items:
9068 type: string
9069 x-kubernetes-list-type: atomic
9070 x-kubernetes-list-type: atomic
9071 x-kubernetes-map-type: atomic
9072 weight:
9073 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
9074 type: integer
9075 format: int32
9076 x-kubernetes-list-type: atomic
9077 requiredDuringSchedulingIgnoredDuringExecution:
9078 description: |-
9079 If the affinity requirements specified by this field are not met at
9080 scheduling time, the pod will not be scheduled onto the node.
9081 If the affinity requirements specified by this field cease to be met
9082 at some point during pod execution (e.g. due to an update), the system
9083 may or may not try to eventually evict the pod from its node.
9084 type: object
9085 required:
9086 - nodeSelectorTerms
9087 properties:
9088 nodeSelectorTerms:
9089 description: Required. A list of node selector terms. The terms are ORed.
9090 type: array
9091 items:
9092 description: |-
9093 A null or empty node selector term matches no objects. The requirements of
9094 them are ANDed.
9095 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
9096 type: object
9097 properties:
9098 matchExpressions:
9099 description: A list of node selector requirements by node's labels.
9100 type: array
9101 items:
9102 description: |-
9103 A node selector requirement is a selector that contains values, a key, and an operator
9104 that relates the key and values.
9105 type: object
9106 required:
9107 - key
9108 - operator
9109 properties:
9110 key:
9111 description: The label key that the selector applies to.
9112 type: string
9113 operator:
9114 description: |-
9115 Represents a key's relationship to a set of values.
9116 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9117 type: string
9118 values:
9119 description: |-
9120 An array of string values. If the operator is In or NotIn,
9121 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9122 the values array must be empty. If the operator is Gt or Lt, the values
9123 array must have a single element, which will be interpreted as an integer.
9124 This array is replaced during a strategic merge patch.
9125 type: array
9126 items:
9127 type: string
9128 x-kubernetes-list-type: atomic
9129 x-kubernetes-list-type: atomic
9130 matchFields:
9131 description: A list of node selector requirements by node's fields.
9132 type: array
9133 items:
9134 description: |-
9135 A node selector requirement is a selector that contains values, a key, and an operator
9136 that relates the key and values.
9137 type: object
9138 required:
9139 - key
9140 - operator
9141 properties:
9142 key:
9143 description: The label key that the selector applies to.
9144 type: string
9145 operator:
9146 description: |-
9147 Represents a key's relationship to a set of values.
9148 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
9149 type: string
9150 values:
9151 description: |-
9152 An array of string values. If the operator is In or NotIn,
9153 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9154 the values array must be empty. If the operator is Gt or Lt, the values
9155 array must have a single element, which will be interpreted as an integer.
9156 This array is replaced during a strategic merge patch.
9157 type: array
9158 items:
9159 type: string
9160 x-kubernetes-list-type: atomic
9161 x-kubernetes-list-type: atomic
9162 x-kubernetes-map-type: atomic
9163 x-kubernetes-list-type: atomic
9164 x-kubernetes-map-type: atomic
9165 podAffinity:
9166 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
9167 type: object
9168 properties:
9169 preferredDuringSchedulingIgnoredDuringExecution:
9170 description: |-
9171 The scheduler will prefer to schedule pods to nodes that satisfy
9172 the affinity expressions specified by this field, but it may choose
9173 a node that violates one or more of the expressions. The node that is
9174 most preferred is the one with the greatest sum of weights, i.e.
9175 for each node that meets all of the scheduling requirements (resource
9176 request, requiredDuringScheduling affinity expressions, etc.),
9177 compute a sum by iterating through the elements of this field and adding
9178 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
9179 node(s) with the highest sum are the most preferred.
9180 type: array
9181 items:
9182 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
9183 type: object
9184 required:
9185 - podAffinityTerm
9186 - weight
9187 properties:
9188 podAffinityTerm:
9189 description: Required. A pod affinity term, associated with the corresponding weight.
9190 type: object
9191 required:
9192 - topologyKey
9193 properties:
9194 labelSelector:
9195 description: |-
9196 A label query over a set of resources, in this case pods.
9197 If it's null, this PodAffinityTerm matches with no Pods.
9198 type: object
9199 properties:
9200 matchExpressions:
9201 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9202 type: array
9203 items:
9204 description: |-
9205 A label selector requirement is a selector that contains values, a key, and an operator that
9206 relates the key and values.
9207 type: object
9208 required:
9209 - key
9210 - operator
9211 properties:
9212 key:
9213 description: key is the label key that the selector applies to.
9214 type: string
9215 operator:
9216 description: |-
9217 operator represents a key's relationship to a set of values.
9218 Valid operators are In, NotIn, Exists and DoesNotExist.
9219 type: string
9220 values:
9221 description: |-
9222 values is an array of string values. If the operator is In or NotIn,
9223 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9224 the values array must be empty. This array is replaced during a strategic
9225 merge patch.
9226 type: array
9227 items:
9228 type: string
9229 x-kubernetes-list-type: atomic
9230 x-kubernetes-list-type: atomic
9231 matchLabels:
9232 description: |-
9233 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9234 map is equivalent to an element of matchExpressions, whose key field is "key", the
9235 operator is "In", and the values array contains only "value". The requirements are ANDed.
9236 type: object
9237 additionalProperties:
9238 type: string
9239 x-kubernetes-map-type: atomic
9240 matchLabelKeys:
9241 description: |-
9242 MatchLabelKeys is a set of pod label keys to select which pods will
9243 be taken into consideration. The keys are used to lookup values from the
9244 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9245 to select the group of existing pods which pods will be taken into consideration
9246 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9247 pod labels will be ignored. The default value is empty.
9248 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9249 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9250 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9251 type: array
9252 items:
9253 type: string
9254 x-kubernetes-list-type: atomic
9255 mismatchLabelKeys:
9256 description: |-
9257 MismatchLabelKeys is a set of pod label keys to select which pods will
9258 be taken into consideration. The keys are used to lookup values from the
9259 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9260 to select the group of existing pods which pods will be taken into consideration
9261 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9262 pod labels will be ignored. The default value is empty.
9263 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9264 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9265 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9266 type: array
9267 items:
9268 type: string
9269 x-kubernetes-list-type: atomic
9270 namespaceSelector:
9271 description: |-
9272 A label query over the set of namespaces that the term applies to.
9273 The term is applied to the union of the namespaces selected by this field
9274 and the ones listed in the namespaces field.
9275 null selector and null or empty namespaces list means "this pod's namespace".
9276 An empty selector ({}) matches all namespaces.
9277 type: object
9278 properties:
9279 matchExpressions:
9280 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9281 type: array
9282 items:
9283 description: |-
9284 A label selector requirement is a selector that contains values, a key, and an operator that
9285 relates the key and values.
9286 type: object
9287 required:
9288 - key
9289 - operator
9290 properties:
9291 key:
9292 description: key is the label key that the selector applies to.
9293 type: string
9294 operator:
9295 description: |-
9296 operator represents a key's relationship to a set of values.
9297 Valid operators are In, NotIn, Exists and DoesNotExist.
9298 type: string
9299 values:
9300 description: |-
9301 values is an array of string values. If the operator is In or NotIn,
9302 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9303 the values array must be empty. This array is replaced during a strategic
9304 merge patch.
9305 type: array
9306 items:
9307 type: string
9308 x-kubernetes-list-type: atomic
9309 x-kubernetes-list-type: atomic
9310 matchLabels:
9311 description: |-
9312 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9313 map is equivalent to an element of matchExpressions, whose key field is "key", the
9314 operator is "In", and the values array contains only "value". The requirements are ANDed.
9315 type: object
9316 additionalProperties:
9317 type: string
9318 x-kubernetes-map-type: atomic
9319 namespaces:
9320 description: |-
9321 namespaces specifies a static list of namespace names that the term applies to.
9322 The term is applied to the union of the namespaces listed in this field
9323 and the ones selected by namespaceSelector.
9324 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9325 type: array
9326 items:
9327 type: string
9328 x-kubernetes-list-type: atomic
9329 topologyKey:
9330 description: |-
9331 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9332 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9333 whose value of the label with key topologyKey matches that of any node on which any of the
9334 selected pods is running.
9335 Empty topologyKey is not allowed.
9336 type: string
9337 weight:
9338 description: |-
9339 weight associated with matching the corresponding podAffinityTerm,
9340 in the range 1-100.
9341 type: integer
9342 format: int32
9343 x-kubernetes-list-type: atomic
9344 requiredDuringSchedulingIgnoredDuringExecution:
9345 description: |-
9346 If the affinity requirements specified by this field are not met at
9347 scheduling time, the pod will not be scheduled onto the node.
9348 If the affinity requirements specified by this field cease to be met
9349 at some point during pod execution (e.g. due to a pod label update), the
9350 system may or may not try to eventually evict the pod from its node.
9351 When there are multiple elements, the lists of nodes corresponding to each
9352 podAffinityTerm are intersected, i.e. all terms must be satisfied.
9353 type: array
9354 items:
9355 description: |-
9356 Defines a set of pods (namely those matching the labelSelector
9357 relative to the given namespace(s)) that this pod should be
9358 co-located (affinity) or not co-located (anti-affinity) with,
9359 where co-located is defined as running on a node whose value of
9360 the label with key <topologyKey> matches that of any node on which
9361 a pod of the set of pods is running
9362 type: object
9363 required:
9364 - topologyKey
9365 properties:
9366 labelSelector:
9367 description: |-
9368 A label query over a set of resources, in this case pods.
9369 If it's null, this PodAffinityTerm matches with no Pods.
9370 type: object
9371 properties:
9372 matchExpressions:
9373 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9374 type: array
9375 items:
9376 description: |-
9377 A label selector requirement is a selector that contains values, a key, and an operator that
9378 relates the key and values.
9379 type: object
9380 required:
9381 - key
9382 - operator
9383 properties:
9384 key:
9385 description: key is the label key that the selector applies to.
9386 type: string
9387 operator:
9388 description: |-
9389 operator represents a key's relationship to a set of values.
9390 Valid operators are In, NotIn, Exists and DoesNotExist.
9391 type: string
9392 values:
9393 description: |-
9394 values is an array of string values. If the operator is In or NotIn,
9395 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9396 the values array must be empty. This array is replaced during a strategic
9397 merge patch.
9398 type: array
9399 items:
9400 type: string
9401 x-kubernetes-list-type: atomic
9402 x-kubernetes-list-type: atomic
9403 matchLabels:
9404 description: |-
9405 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9406 map is equivalent to an element of matchExpressions, whose key field is "key", the
9407 operator is "In", and the values array contains only "value". The requirements are ANDed.
9408 type: object
9409 additionalProperties:
9410 type: string
9411 x-kubernetes-map-type: atomic
9412 matchLabelKeys:
9413 description: |-
9414 MatchLabelKeys is a set of pod label keys to select which pods will
9415 be taken into consideration. The keys are used to lookup values from the
9416 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9417 to select the group of existing pods which pods will be taken into consideration
9418 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9419 pod labels will be ignored. The default value is empty.
9420 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9421 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9422 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9423 type: array
9424 items:
9425 type: string
9426 x-kubernetes-list-type: atomic
9427 mismatchLabelKeys:
9428 description: |-
9429 MismatchLabelKeys is a set of pod label keys to select which pods will
9430 be taken into consideration. The keys are used to lookup values from the
9431 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9432 to select the group of existing pods which pods will be taken into consideration
9433 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9434 pod labels will be ignored. The default value is empty.
9435 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9436 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9437 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9438 type: array
9439 items:
9440 type: string
9441 x-kubernetes-list-type: atomic
9442 namespaceSelector:
9443 description: |-
9444 A label query over the set of namespaces that the term applies to.
9445 The term is applied to the union of the namespaces selected by this field
9446 and the ones listed in the namespaces field.
9447 null selector and null or empty namespaces list means "this pod's namespace".
9448 An empty selector ({}) matches all namespaces.
9449 type: object
9450 properties:
9451 matchExpressions:
9452 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9453 type: array
9454 items:
9455 description: |-
9456 A label selector requirement is a selector that contains values, a key, and an operator that
9457 relates the key and values.
9458 type: object
9459 required:
9460 - key
9461 - operator
9462 properties:
9463 key:
9464 description: key is the label key that the selector applies to.
9465 type: string
9466 operator:
9467 description: |-
9468 operator represents a key's relationship to a set of values.
9469 Valid operators are In, NotIn, Exists and DoesNotExist.
9470 type: string
9471 values:
9472 description: |-
9473 values is an array of string values. If the operator is In or NotIn,
9474 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9475 the values array must be empty. This array is replaced during a strategic
9476 merge patch.
9477 type: array
9478 items:
9479 type: string
9480 x-kubernetes-list-type: atomic
9481 x-kubernetes-list-type: atomic
9482 matchLabels:
9483 description: |-
9484 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9485 map is equivalent to an element of matchExpressions, whose key field is "key", the
9486 operator is "In", and the values array contains only "value". The requirements are ANDed.
9487 type: object
9488 additionalProperties:
9489 type: string
9490 x-kubernetes-map-type: atomic
9491 namespaces:
9492 description: |-
9493 namespaces specifies a static list of namespace names that the term applies to.
9494 The term is applied to the union of the namespaces listed in this field
9495 and the ones selected by namespaceSelector.
9496 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9497 type: array
9498 items:
9499 type: string
9500 x-kubernetes-list-type: atomic
9501 topologyKey:
9502 description: |-
9503 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9504 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9505 whose value of the label with key topologyKey matches that of any node on which any of the
9506 selected pods is running.
9507 Empty topologyKey is not allowed.
9508 type: string
9509 x-kubernetes-list-type: atomic
9510 podAntiAffinity:
9511 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
9512 type: object
9513 properties:
9514 preferredDuringSchedulingIgnoredDuringExecution:
9515 description: |-
9516 The scheduler will prefer to schedule pods to nodes that satisfy
9517 the anti-affinity expressions specified by this field, but it may choose
9518 a node that violates one or more of the expressions. The node that is
9519 most preferred is the one with the greatest sum of weights, i.e.
9520 for each node that meets all of the scheduling requirements (resource
9521 request, requiredDuringScheduling anti-affinity expressions, etc.),
9522 compute a sum by iterating through the elements of this field and adding
9523 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
9524 node(s) with the highest sum are the most preferred.
9525 type: array
9526 items:
9527 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
9528 type: object
9529 required:
9530 - podAffinityTerm
9531 - weight
9532 properties:
9533 podAffinityTerm:
9534 description: Required. A pod affinity term, associated with the corresponding weight.
9535 type: object
9536 required:
9537 - topologyKey
9538 properties:
9539 labelSelector:
9540 description: |-
9541 A label query over a set of resources, in this case pods.
9542 If it's null, this PodAffinityTerm matches with no Pods.
9543 type: object
9544 properties:
9545 matchExpressions:
9546 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9547 type: array
9548 items:
9549 description: |-
9550 A label selector requirement is a selector that contains values, a key, and an operator that
9551 relates the key and values.
9552 type: object
9553 required:
9554 - key
9555 - operator
9556 properties:
9557 key:
9558 description: key is the label key that the selector applies to.
9559 type: string
9560 operator:
9561 description: |-
9562 operator represents a key's relationship to a set of values.
9563 Valid operators are In, NotIn, Exists and DoesNotExist.
9564 type: string
9565 values:
9566 description: |-
9567 values is an array of string values. If the operator is In or NotIn,
9568 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9569 the values array must be empty. This array is replaced during a strategic
9570 merge patch.
9571 type: array
9572 items:
9573 type: string
9574 x-kubernetes-list-type: atomic
9575 x-kubernetes-list-type: atomic
9576 matchLabels:
9577 description: |-
9578 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9579 map is equivalent to an element of matchExpressions, whose key field is "key", the
9580 operator is "In", and the values array contains only "value". The requirements are ANDed.
9581 type: object
9582 additionalProperties:
9583 type: string
9584 x-kubernetes-map-type: atomic
9585 matchLabelKeys:
9586 description: |-
9587 MatchLabelKeys is a set of pod label keys to select which pods will
9588 be taken into consideration. The keys are used to lookup values from the
9589 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9590 to select the group of existing pods which pods will be taken into consideration
9591 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9592 pod labels will be ignored. The default value is empty.
9593 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9594 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9595 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9596 type: array
9597 items:
9598 type: string
9599 x-kubernetes-list-type: atomic
9600 mismatchLabelKeys:
9601 description: |-
9602 MismatchLabelKeys is a set of pod label keys to select which pods will
9603 be taken into consideration. The keys are used to lookup values from the
9604 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9605 to select the group of existing pods which pods will be taken into consideration
9606 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9607 pod labels will be ignored. The default value is empty.
9608 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9609 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9610 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9611 type: array
9612 items:
9613 type: string
9614 x-kubernetes-list-type: atomic
9615 namespaceSelector:
9616 description: |-
9617 A label query over the set of namespaces that the term applies to.
9618 The term is applied to the union of the namespaces selected by this field
9619 and the ones listed in the namespaces field.
9620 null selector and null or empty namespaces list means "this pod's namespace".
9621 An empty selector ({}) matches all namespaces.
9622 type: object
9623 properties:
9624 matchExpressions:
9625 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9626 type: array
9627 items:
9628 description: |-
9629 A label selector requirement is a selector that contains values, a key, and an operator that
9630 relates the key and values.
9631 type: object
9632 required:
9633 - key
9634 - operator
9635 properties:
9636 key:
9637 description: key is the label key that the selector applies to.
9638 type: string
9639 operator:
9640 description: |-
9641 operator represents a key's relationship to a set of values.
9642 Valid operators are In, NotIn, Exists and DoesNotExist.
9643 type: string
9644 values:
9645 description: |-
9646 values is an array of string values. If the operator is In or NotIn,
9647 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9648 the values array must be empty. This array is replaced during a strategic
9649 merge patch.
9650 type: array
9651 items:
9652 type: string
9653 x-kubernetes-list-type: atomic
9654 x-kubernetes-list-type: atomic
9655 matchLabels:
9656 description: |-
9657 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9658 map is equivalent to an element of matchExpressions, whose key field is "key", the
9659 operator is "In", and the values array contains only "value". The requirements are ANDed.
9660 type: object
9661 additionalProperties:
9662 type: string
9663 x-kubernetes-map-type: atomic
9664 namespaces:
9665 description: |-
9666 namespaces specifies a static list of namespace names that the term applies to.
9667 The term is applied to the union of the namespaces listed in this field
9668 and the ones selected by namespaceSelector.
9669 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9670 type: array
9671 items:
9672 type: string
9673 x-kubernetes-list-type: atomic
9674 topologyKey:
9675 description: |-
9676 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9677 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9678 whose value of the label with key topologyKey matches that of any node on which any of the
9679 selected pods is running.
9680 Empty topologyKey is not allowed.
9681 type: string
9682 weight:
9683 description: |-
9684 weight associated with matching the corresponding podAffinityTerm,
9685 in the range 1-100.
9686 type: integer
9687 format: int32
9688 x-kubernetes-list-type: atomic
9689 requiredDuringSchedulingIgnoredDuringExecution:
9690 description: |-
9691 If the anti-affinity requirements specified by this field are not met at
9692 scheduling time, the pod will not be scheduled onto the node.
9693 If the anti-affinity requirements specified by this field cease to be met
9694 at some point during pod execution (e.g. due to a pod label update), the
9695 system may or may not try to eventually evict the pod from its node.
9696 When there are multiple elements, the lists of nodes corresponding to each
9697 podAffinityTerm are intersected, i.e. all terms must be satisfied.
9698 type: array
9699 items:
9700 description: |-
9701 Defines a set of pods (namely those matching the labelSelector
9702 relative to the given namespace(s)) that this pod should be
9703 co-located (affinity) or not co-located (anti-affinity) with,
9704 where co-located is defined as running on a node whose value of
9705 the label with key <topologyKey> matches that of any node on which
9706 a pod of the set of pods is running
9707 type: object
9708 required:
9709 - topologyKey
9710 properties:
9711 labelSelector:
9712 description: |-
9713 A label query over a set of resources, in this case pods.
9714 If it's null, this PodAffinityTerm matches with no Pods.
9715 type: object
9716 properties:
9717 matchExpressions:
9718 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9719 type: array
9720 items:
9721 description: |-
9722 A label selector requirement is a selector that contains values, a key, and an operator that
9723 relates the key and values.
9724 type: object
9725 required:
9726 - key
9727 - operator
9728 properties:
9729 key:
9730 description: key is the label key that the selector applies to.
9731 type: string
9732 operator:
9733 description: |-
9734 operator represents a key's relationship to a set of values.
9735 Valid operators are In, NotIn, Exists and DoesNotExist.
9736 type: string
9737 values:
9738 description: |-
9739 values is an array of string values. If the operator is In or NotIn,
9740 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9741 the values array must be empty. This array is replaced during a strategic
9742 merge patch.
9743 type: array
9744 items:
9745 type: string
9746 x-kubernetes-list-type: atomic
9747 x-kubernetes-list-type: atomic
9748 matchLabels:
9749 description: |-
9750 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9751 map is equivalent to an element of matchExpressions, whose key field is "key", the
9752 operator is "In", and the values array contains only "value". The requirements are ANDed.
9753 type: object
9754 additionalProperties:
9755 type: string
9756 x-kubernetes-map-type: atomic
9757 matchLabelKeys:
9758 description: |-
9759 MatchLabelKeys is a set of pod label keys to select which pods will
9760 be taken into consideration. The keys are used to lookup values from the
9761 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
9762 to select the group of existing pods which pods will be taken into consideration
9763 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9764 pod labels will be ignored. The default value is empty.
9765 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
9766 Also, matchLabelKeys cannot be set when labelSelector isn't set.
9767 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9768 type: array
9769 items:
9770 type: string
9771 x-kubernetes-list-type: atomic
9772 mismatchLabelKeys:
9773 description: |-
9774 MismatchLabelKeys is a set of pod label keys to select which pods will
9775 be taken into consideration. The keys are used to lookup values from the
9776 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
9777 to select the group of existing pods which pods will be taken into consideration
9778 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
9779 pod labels will be ignored. The default value is empty.
9780 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
9781 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
9782 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
9783 type: array
9784 items:
9785 type: string
9786 x-kubernetes-list-type: atomic
9787 namespaceSelector:
9788 description: |-
9789 A label query over the set of namespaces that the term applies to.
9790 The term is applied to the union of the namespaces selected by this field
9791 and the ones listed in the namespaces field.
9792 null selector and null or empty namespaces list means "this pod's namespace".
9793 An empty selector ({}) matches all namespaces.
9794 type: object
9795 properties:
9796 matchExpressions:
9797 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
9798 type: array
9799 items:
9800 description: |-
9801 A label selector requirement is a selector that contains values, a key, and an operator that
9802 relates the key and values.
9803 type: object
9804 required:
9805 - key
9806 - operator
9807 properties:
9808 key:
9809 description: key is the label key that the selector applies to.
9810 type: string
9811 operator:
9812 description: |-
9813 operator represents a key's relationship to a set of values.
9814 Valid operators are In, NotIn, Exists and DoesNotExist.
9815 type: string
9816 values:
9817 description: |-
9818 values is an array of string values. If the operator is In or NotIn,
9819 the values array must be non-empty. If the operator is Exists or DoesNotExist,
9820 the values array must be empty. This array is replaced during a strategic
9821 merge patch.
9822 type: array
9823 items:
9824 type: string
9825 x-kubernetes-list-type: atomic
9826 x-kubernetes-list-type: atomic
9827 matchLabels:
9828 description: |-
9829 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
9830 map is equivalent to an element of matchExpressions, whose key field is "key", the
9831 operator is "In", and the values array contains only "value". The requirements are ANDed.
9832 type: object
9833 additionalProperties:
9834 type: string
9835 x-kubernetes-map-type: atomic
9836 namespaces:
9837 description: |-
9838 namespaces specifies a static list of namespace names that the term applies to.
9839 The term is applied to the union of the namespaces listed in this field
9840 and the ones selected by namespaceSelector.
9841 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
9842 type: array
9843 items:
9844 type: string
9845 x-kubernetes-list-type: atomic
9846 topologyKey:
9847 description: |-
9848 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
9849 the labelSelector in the specified namespaces, where co-located is defined as running on a node
9850 whose value of the label with key topologyKey matches that of any node on which any of the
9851 selected pods is running.
9852 Empty topologyKey is not allowed.
9853 type: string
9854 x-kubernetes-list-type: atomic
9855 imagePullSecrets:
9856 description: If specified, the pod's imagePullSecrets
9857 type: array
9858 items:
9859 description: |-
9860 LocalObjectReference contains enough information to let you locate the
9861 referenced object inside the same namespace.
9862 type: object
9863 properties:
9864 name:
9865 description: |-
9866 Name of the referent.
9867 This field is effectively required, but due to backwards compatibility is
9868 allowed to be empty. Instances of this type with an empty value here are
9869 almost certainly wrong.
9870 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
9871 type: string
9872 default: ""
9873 x-kubernetes-map-type: atomic
9874 nodeSelector:
9875 description: |-
9876 NodeSelector is a selector which must be true for the pod to fit on a node.
9877 Selector which must match a node's labels for the pod to be scheduled on that node.
9878 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
9879 type: object
9880 additionalProperties:
9881 type: string
9882 priorityClassName:
9883 description: If specified, the pod's priorityClassName.
9884 type: string
9885 securityContext:
9886 description: If specified, the pod's security context
9887 type: object
9888 properties:
9889 fsGroup:
9890 description: |-
9891 A special supplemental group that applies to all containers in a pod.
9892 Some volume types allow the Kubelet to change the ownership of that volume
9893 to be owned by the pod:
9894
9895 1. The owning GID will be the FSGroup
9896 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
9897 3. The permission bits are OR'd with rw-rw----
9898
9899 If unset, the Kubelet will not modify the ownership and permissions of any volume.
9900 Note that this field cannot be set when spec.os.name is windows.
9901 type: integer
9902 format: int64
9903 fsGroupChangePolicy:
9904 description: |-
9905 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
9906 before being exposed inside Pod. This field will only apply to
9907 volume types which support fsGroup based ownership(and permissions).
9908 It will have no effect on ephemeral volume types such as: secret, configmaps
9909 and emptydir.
9910 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
9911 Note that this field cannot be set when spec.os.name is windows.
9912 type: string
9913 runAsGroup:
9914 description: |-
9915 The GID to run the entrypoint of the container process.
9916 Uses runtime default if unset.
9917 May also be set in SecurityContext. If set in both SecurityContext and
9918 PodSecurityContext, the value specified in SecurityContext takes precedence
9919 for that container.
9920 Note that this field cannot be set when spec.os.name is windows.
9921 type: integer
9922 format: int64
9923 runAsNonRoot:
9924 description: |-
9925 Indicates that the container must run as a non-root user.
9926 If true, the Kubelet will validate the image at runtime to ensure that it
9927 does not run as UID 0 (root) and fail to start the container if it does.
9928 If unset or false, no such validation will be performed.
9929 May also be set in SecurityContext. If set in both SecurityContext and
9930 PodSecurityContext, the value specified in SecurityContext takes precedence.
9931 type: boolean
9932 runAsUser:
9933 description: |-
9934 The UID to run the entrypoint of the container process.
9935 Defaults to user specified in image metadata if unspecified.
9936 May also be set in SecurityContext. If set in both SecurityContext and
9937 PodSecurityContext, the value specified in SecurityContext takes precedence
9938 for that container.
9939 Note that this field cannot be set when spec.os.name is windows.
9940 type: integer
9941 format: int64
9942 seLinuxOptions:
9943 description: |-
9944 The SELinux context to be applied to all containers.
9945 If unspecified, the container runtime will allocate a random SELinux context for each
9946 container. May also be set in SecurityContext. If set in
9947 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
9948 takes precedence for that container.
9949 Note that this field cannot be set when spec.os.name is windows.
9950 type: object
9951 properties:
9952 level:
9953 description: Level is SELinux level label that applies to the container.
9954 type: string
9955 role:
9956 description: Role is a SELinux role label that applies to the container.
9957 type: string
9958 type:
9959 description: Type is a SELinux type label that applies to the container.
9960 type: string
9961 user:
9962 description: User is a SELinux user label that applies to the container.
9963 type: string
9964 seccompProfile:
9965 description: |-
9966 The seccomp options to use by the containers in this pod.
9967 Note that this field cannot be set when spec.os.name is windows.
9968 type: object
9969 required:
9970 - type
9971 properties:
9972 localhostProfile:
9973 description: |-
9974 localhostProfile indicates a profile defined in a file on the node should be used.
9975 The profile must be preconfigured on the node to work.
9976 Must be a descending path, relative to the kubelet's configured seccomp profile location.
9977 Must be set if type is "Localhost". Must NOT be set for any other type.
9978 type: string
9979 type:
9980 description: |-
9981 type indicates which kind of seccomp profile will be applied.
9982 Valid options are:
9983
9984 Localhost - a profile defined in a file on the node should be used.
9985 RuntimeDefault - the container runtime default profile should be used.
9986 Unconfined - no profile should be applied.
9987 type: string
9988 supplementalGroups:
9989 description: |-
9990 A list of groups applied to the first process run in each container, in addition
9991 to the container's primary GID, the fsGroup (if specified), and group memberships
9992 defined in the container image for the uid of the container process. If unspecified,
9993 no additional groups are added to any container. Note that group memberships
9994 defined in the container image for the uid of the container process are still effective,
9995 even if they are not included in this list.
9996 Note that this field cannot be set when spec.os.name is windows.
9997 type: array
9998 items:
9999 type: integer
10000 format: int64
10001 sysctls:
10002 description: |-
10003 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
10004 sysctls (by the container runtime) might fail to launch.
10005 Note that this field cannot be set when spec.os.name is windows.
10006 type: array
10007 items:
10008 description: Sysctl defines a kernel parameter to be set
10009 type: object
10010 required:
10011 - name
10012 - value
10013 properties:
10014 name:
10015 description: Name of a property to set
10016 type: string
10017 value:
10018 description: Value of a property to set
10019 type: string
10020 serviceAccountName:
10021 description: If specified, the pod's service account
10022 type: string
10023 tolerations:
10024 description: If specified, the pod's tolerations.
10025 type: array
10026 items:
10027 description: |-
10028 The pod this Toleration is attached to tolerates any taint that matches
10029 the triple <key,value,effect> using the matching operator <operator>.
10030 type: object
10031 properties:
10032 effect:
10033 description: |-
10034 Effect indicates the taint effect to match. Empty means match all taint effects.
10035 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
10036 type: string
10037 key:
10038 description: |-
10039 Key is the taint key that the toleration applies to. Empty means match all taint keys.
10040 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
10041 type: string
10042 operator:
10043 description: |-
10044 Operator represents a key's relationship to the value.
10045 Valid operators are Exists and Equal. Defaults to Equal.
10046 Exists is equivalent to wildcard for value, so that a pod can
10047 tolerate all taints of a particular category.
10048 type: string
10049 tolerationSeconds:
10050 description: |-
10051 TolerationSeconds represents the period of time the toleration (which must be
10052 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
10053 it is not set, which means tolerate the taint forever (do not evict). Zero and
10054 negative values will be treated as 0 (evict immediately) by the system.
10055 type: integer
10056 format: int64
10057 value:
10058 description: |-
10059 Value is the taint value the toleration matches to.
10060 If the operator is Exists, the value should be empty, otherwise just a regular string.
10061 type: string
10062 serviceType:
10063 description: |-
10064 Optional service type for Kubernetes solver service. Supported values
10065 are NodePort or ClusterIP. If unset, defaults to NodePort.
10066 type: string
10067 ingress:
10068 description: |-
10069 The ingress based HTTP01 challenge solver will solve challenges by
10070 creating or modifying Ingress resources in order to route requests for
10071 '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are
10072 provisioned by cert-manager for each Challenge to be completed.
10073 type: object
10074 properties:
10075 class:
10076 description: |-
10077 This field configures the annotation `kubernetes.io/ingress.class` when
10078 creating Ingress resources to solve ACME challenges that use this
10079 challenge solver. Only one of `class`, `name` or `ingressClassName` may
10080 be specified.
10081 type: string
10082 ingressClassName:
10083 description: |-
10084 This field configures the field `ingressClassName` on the created Ingress
10085 resources used to solve ACME challenges that use this challenge solver.
10086 This is the recommended way of configuring the ingress class. Only one of
10087 `class`, `name` or `ingressClassName` may be specified.
10088 type: string
10089 ingressTemplate:
10090 description: |-
10091 Optional ingress template used to configure the ACME challenge solver
10092 ingress used for HTTP01 challenges.
10093 type: object
10094 properties:
10095 metadata:
10096 description: |-
10097 ObjectMeta overrides for the ingress used to solve HTTP01 challenges.
10098 Only the 'labels' and 'annotations' fields may be set.
10099 If labels or annotations overlap with in-built values, the values here
10100 will override the in-built values.
10101 type: object
10102 properties:
10103 annotations:
10104 description: Annotations that should be added to the created ACME HTTP01 solver ingress.
10105 type: object
10106 additionalProperties:
10107 type: string
10108 labels:
10109 description: Labels that should be added to the created ACME HTTP01 solver ingress.
10110 type: object
10111 additionalProperties:
10112 type: string
10113 name:
10114 description: |-
10115 The name of the ingress resource that should have ACME challenge solving
10116 routes inserted into it in order to solve HTTP01 challenges.
10117 This is typically used in conjunction with ingress controllers like
10118 ingress-gce, which maintains a 1:1 mapping between external IPs and
10119 ingress resources. Only one of `class`, `name` or `ingressClassName` may
10120 be specified.
10121 type: string
10122 podTemplate:
10123 description: |-
10124 Optional pod template used to configure the ACME challenge solver pods
10125 used for HTTP01 challenges.
10126 type: object
10127 properties:
10128 metadata:
10129 description: |-
10130 ObjectMeta overrides for the pod 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 pods.
10138 type: object
10139 additionalProperties:
10140 type: string
10141 labels:
10142 description: Labels that should be added to the created ACME HTTP01 solver pods.
10143 type: object
10144 additionalProperties:
10145 type: string
10146 spec:
10147 description: |-
10148 PodSpec defines overrides for the HTTP01 challenge solver pod.
10149 Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
10150 All other fields will be ignored.
10151 type: object
10152 properties:
10153 affinity:
10154 description: If specified, the pod's scheduling constraints
10155 type: object
10156 properties:
10157 nodeAffinity:
10158 description: Describes node affinity scheduling rules for the pod.
10159 type: object
10160 properties:
10161 preferredDuringSchedulingIgnoredDuringExecution:
10162 description: |-
10163 The scheduler will prefer to schedule pods to nodes that satisfy
10164 the affinity expressions specified by this field, but it may choose
10165 a node that violates one or more of the expressions. The node that is
10166 most preferred is the one with the greatest sum of weights, i.e.
10167 for each node that meets all of the scheduling requirements (resource
10168 request, requiredDuringScheduling affinity expressions, etc.),
10169 compute a sum by iterating through the elements of this field and adding
10170 "weight" to the sum if the node matches the corresponding matchExpressions; the
10171 node(s) with the highest sum are the most preferred.
10172 type: array
10173 items:
10174 description: |-
10175 An empty preferred scheduling term matches all objects with implicit weight 0
10176 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
10177 type: object
10178 required:
10179 - preference
10180 - weight
10181 properties:
10182 preference:
10183 description: A node selector term, associated with the corresponding weight.
10184 type: object
10185 properties:
10186 matchExpressions:
10187 description: A list of node selector requirements by node's labels.
10188 type: array
10189 items:
10190 description: |-
10191 A node selector requirement is a selector that contains values, a key, and an operator
10192 that relates the key and values.
10193 type: object
10194 required:
10195 - key
10196 - operator
10197 properties:
10198 key:
10199 description: The label key that the selector applies to.
10200 type: string
10201 operator:
10202 description: |-
10203 Represents a key's relationship to a set of values.
10204 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10205 type: string
10206 values:
10207 description: |-
10208 An array of string values. If the operator is In or NotIn,
10209 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10210 the values array must be empty. If the operator is Gt or Lt, the values
10211 array must have a single element, which will be interpreted as an integer.
10212 This array is replaced during a strategic merge patch.
10213 type: array
10214 items:
10215 type: string
10216 x-kubernetes-list-type: atomic
10217 x-kubernetes-list-type: atomic
10218 matchFields:
10219 description: A list of node selector requirements by node's fields.
10220 type: array
10221 items:
10222 description: |-
10223 A node selector requirement is a selector that contains values, a key, and an operator
10224 that relates the key and values.
10225 type: object
10226 required:
10227 - key
10228 - operator
10229 properties:
10230 key:
10231 description: The label key that the selector applies to.
10232 type: string
10233 operator:
10234 description: |-
10235 Represents a key's relationship to a set of values.
10236 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10237 type: string
10238 values:
10239 description: |-
10240 An array of string values. If the operator is In or NotIn,
10241 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10242 the values array must be empty. If the operator is Gt or Lt, the values
10243 array must have a single element, which will be interpreted as an integer.
10244 This array is replaced during a strategic merge patch.
10245 type: array
10246 items:
10247 type: string
10248 x-kubernetes-list-type: atomic
10249 x-kubernetes-list-type: atomic
10250 x-kubernetes-map-type: atomic
10251 weight:
10252 description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
10253 type: integer
10254 format: int32
10255 x-kubernetes-list-type: atomic
10256 requiredDuringSchedulingIgnoredDuringExecution:
10257 description: |-
10258 If the affinity requirements specified by this field are not met at
10259 scheduling time, the pod will not be scheduled onto the node.
10260 If the affinity requirements specified by this field cease to be met
10261 at some point during pod execution (e.g. due to an update), the system
10262 may or may not try to eventually evict the pod from its node.
10263 type: object
10264 required:
10265 - nodeSelectorTerms
10266 properties:
10267 nodeSelectorTerms:
10268 description: Required. A list of node selector terms. The terms are ORed.
10269 type: array
10270 items:
10271 description: |-
10272 A null or empty node selector term matches no objects. The requirements of
10273 them are ANDed.
10274 The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
10275 type: object
10276 properties:
10277 matchExpressions:
10278 description: A list of node selector requirements by node's labels.
10279 type: array
10280 items:
10281 description: |-
10282 A node selector requirement is a selector that contains values, a key, and an operator
10283 that relates the key and values.
10284 type: object
10285 required:
10286 - key
10287 - operator
10288 properties:
10289 key:
10290 description: The label key that the selector applies to.
10291 type: string
10292 operator:
10293 description: |-
10294 Represents a key's relationship to a set of values.
10295 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10296 type: string
10297 values:
10298 description: |-
10299 An array of string values. If the operator is In or NotIn,
10300 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10301 the values array must be empty. If the operator is Gt or Lt, the values
10302 array must have a single element, which will be interpreted as an integer.
10303 This array is replaced during a strategic merge patch.
10304 type: array
10305 items:
10306 type: string
10307 x-kubernetes-list-type: atomic
10308 x-kubernetes-list-type: atomic
10309 matchFields:
10310 description: A list of node selector requirements by node's fields.
10311 type: array
10312 items:
10313 description: |-
10314 A node selector requirement is a selector that contains values, a key, and an operator
10315 that relates the key and values.
10316 type: object
10317 required:
10318 - key
10319 - operator
10320 properties:
10321 key:
10322 description: The label key that the selector applies to.
10323 type: string
10324 operator:
10325 description: |-
10326 Represents a key's relationship to a set of values.
10327 Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
10328 type: string
10329 values:
10330 description: |-
10331 An array of string values. If the operator is In or NotIn,
10332 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10333 the values array must be empty. If the operator is Gt or Lt, the values
10334 array must have a single element, which will be interpreted as an integer.
10335 This array is replaced during a strategic merge patch.
10336 type: array
10337 items:
10338 type: string
10339 x-kubernetes-list-type: atomic
10340 x-kubernetes-list-type: atomic
10341 x-kubernetes-map-type: atomic
10342 x-kubernetes-list-type: atomic
10343 x-kubernetes-map-type: atomic
10344 podAffinity:
10345 description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
10346 type: object
10347 properties:
10348 preferredDuringSchedulingIgnoredDuringExecution:
10349 description: |-
10350 The scheduler will prefer to schedule pods to nodes that satisfy
10351 the affinity expressions specified by this field, but it may choose
10352 a node that violates one or more of the expressions. The node that is
10353 most preferred is the one with the greatest sum of weights, i.e.
10354 for each node that meets all of the scheduling requirements (resource
10355 request, requiredDuringScheduling affinity expressions, etc.),
10356 compute a sum by iterating through the elements of this field and adding
10357 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
10358 node(s) with the highest sum are the most preferred.
10359 type: array
10360 items:
10361 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
10362 type: object
10363 required:
10364 - podAffinityTerm
10365 - weight
10366 properties:
10367 podAffinityTerm:
10368 description: Required. A pod affinity term, associated with the corresponding weight.
10369 type: object
10370 required:
10371 - topologyKey
10372 properties:
10373 labelSelector:
10374 description: |-
10375 A label query over a set of resources, in this case pods.
10376 If it's null, this PodAffinityTerm matches with no Pods.
10377 type: object
10378 properties:
10379 matchExpressions:
10380 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10381 type: array
10382 items:
10383 description: |-
10384 A label selector requirement is a selector that contains values, a key, and an operator that
10385 relates the key and values.
10386 type: object
10387 required:
10388 - key
10389 - operator
10390 properties:
10391 key:
10392 description: key is the label key that the selector applies to.
10393 type: string
10394 operator:
10395 description: |-
10396 operator represents a key's relationship to a set of values.
10397 Valid operators are In, NotIn, Exists and DoesNotExist.
10398 type: string
10399 values:
10400 description: |-
10401 values is an array of string values. If the operator is In or NotIn,
10402 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10403 the values array must be empty. This array is replaced during a strategic
10404 merge patch.
10405 type: array
10406 items:
10407 type: string
10408 x-kubernetes-list-type: atomic
10409 x-kubernetes-list-type: atomic
10410 matchLabels:
10411 description: |-
10412 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10413 map is equivalent to an element of matchExpressions, whose key field is "key", the
10414 operator is "In", and the values array contains only "value". The requirements are ANDed.
10415 type: object
10416 additionalProperties:
10417 type: string
10418 x-kubernetes-map-type: atomic
10419 matchLabelKeys:
10420 description: |-
10421 MatchLabelKeys is a set of pod label keys to select which pods will
10422 be taken into consideration. The keys are used to lookup values from the
10423 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10424 to select the group of existing pods which pods will be taken into consideration
10425 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10426 pod labels will be ignored. The default value is empty.
10427 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10428 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10429 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10430 type: array
10431 items:
10432 type: string
10433 x-kubernetes-list-type: atomic
10434 mismatchLabelKeys:
10435 description: |-
10436 MismatchLabelKeys is a set of pod label keys to select which pods will
10437 be taken into consideration. The keys are used to lookup values from the
10438 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10439 to select the group of existing pods which pods will be taken into consideration
10440 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10441 pod labels will be ignored. The default value is empty.
10442 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10443 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10444 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10445 type: array
10446 items:
10447 type: string
10448 x-kubernetes-list-type: atomic
10449 namespaceSelector:
10450 description: |-
10451 A label query over the set of namespaces that the term applies to.
10452 The term is applied to the union of the namespaces selected by this field
10453 and the ones listed in the namespaces field.
10454 null selector and null or empty namespaces list means "this pod's namespace".
10455 An empty selector ({}) matches all namespaces.
10456 type: object
10457 properties:
10458 matchExpressions:
10459 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10460 type: array
10461 items:
10462 description: |-
10463 A label selector requirement is a selector that contains values, a key, and an operator that
10464 relates the key and values.
10465 type: object
10466 required:
10467 - key
10468 - operator
10469 properties:
10470 key:
10471 description: key is the label key that the selector applies to.
10472 type: string
10473 operator:
10474 description: |-
10475 operator represents a key's relationship to a set of values.
10476 Valid operators are In, NotIn, Exists and DoesNotExist.
10477 type: string
10478 values:
10479 description: |-
10480 values is an array of string values. If the operator is In or NotIn,
10481 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10482 the values array must be empty. This array is replaced during a strategic
10483 merge patch.
10484 type: array
10485 items:
10486 type: string
10487 x-kubernetes-list-type: atomic
10488 x-kubernetes-list-type: atomic
10489 matchLabels:
10490 description: |-
10491 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10492 map is equivalent to an element of matchExpressions, whose key field is "key", the
10493 operator is "In", and the values array contains only "value". The requirements are ANDed.
10494 type: object
10495 additionalProperties:
10496 type: string
10497 x-kubernetes-map-type: atomic
10498 namespaces:
10499 description: |-
10500 namespaces specifies a static list of namespace names that the term applies to.
10501 The term is applied to the union of the namespaces listed in this field
10502 and the ones selected by namespaceSelector.
10503 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
10504 type: array
10505 items:
10506 type: string
10507 x-kubernetes-list-type: atomic
10508 topologyKey:
10509 description: |-
10510 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
10511 the labelSelector in the specified namespaces, where co-located is defined as running on a node
10512 whose value of the label with key topologyKey matches that of any node on which any of the
10513 selected pods is running.
10514 Empty topologyKey is not allowed.
10515 type: string
10516 weight:
10517 description: |-
10518 weight associated with matching the corresponding podAffinityTerm,
10519 in the range 1-100.
10520 type: integer
10521 format: int32
10522 x-kubernetes-list-type: atomic
10523 requiredDuringSchedulingIgnoredDuringExecution:
10524 description: |-
10525 If the affinity requirements specified by this field are not met at
10526 scheduling time, the pod will not be scheduled onto the node.
10527 If the affinity requirements specified by this field cease to be met
10528 at some point during pod execution (e.g. due to a pod label update), the
10529 system may or may not try to eventually evict the pod from its node.
10530 When there are multiple elements, the lists of nodes corresponding to each
10531 podAffinityTerm are intersected, i.e. all terms must be satisfied.
10532 type: array
10533 items:
10534 description: |-
10535 Defines a set of pods (namely those matching the labelSelector
10536 relative to the given namespace(s)) that this pod should be
10537 co-located (affinity) or not co-located (anti-affinity) with,
10538 where co-located is defined as running on a node whose value of
10539 the label with key <topologyKey> matches that of any node on which
10540 a pod of the set of pods is running
10541 type: object
10542 required:
10543 - topologyKey
10544 properties:
10545 labelSelector:
10546 description: |-
10547 A label query over a set of resources, in this case pods.
10548 If it's null, this PodAffinityTerm matches with no Pods.
10549 type: object
10550 properties:
10551 matchExpressions:
10552 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10553 type: array
10554 items:
10555 description: |-
10556 A label selector requirement is a selector that contains values, a key, and an operator that
10557 relates the key and values.
10558 type: object
10559 required:
10560 - key
10561 - operator
10562 properties:
10563 key:
10564 description: key is the label key that the selector applies to.
10565 type: string
10566 operator:
10567 description: |-
10568 operator represents a key's relationship to a set of values.
10569 Valid operators are In, NotIn, Exists and DoesNotExist.
10570 type: string
10571 values:
10572 description: |-
10573 values is an array of string values. If the operator is In or NotIn,
10574 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10575 the values array must be empty. This array is replaced during a strategic
10576 merge patch.
10577 type: array
10578 items:
10579 type: string
10580 x-kubernetes-list-type: atomic
10581 x-kubernetes-list-type: atomic
10582 matchLabels:
10583 description: |-
10584 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10585 map is equivalent to an element of matchExpressions, whose key field is "key", the
10586 operator is "In", and the values array contains only "value". The requirements are ANDed.
10587 type: object
10588 additionalProperties:
10589 type: string
10590 x-kubernetes-map-type: atomic
10591 matchLabelKeys:
10592 description: |-
10593 MatchLabelKeys is a set of pod label keys to select which pods will
10594 be taken into consideration. The keys are used to lookup values from the
10595 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10596 to select the group of existing pods which pods will be taken into consideration
10597 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10598 pod labels will be ignored. The default value is empty.
10599 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10600 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10601 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10602 type: array
10603 items:
10604 type: string
10605 x-kubernetes-list-type: atomic
10606 mismatchLabelKeys:
10607 description: |-
10608 MismatchLabelKeys is a set of pod label keys to select which pods will
10609 be taken into consideration. The keys are used to lookup values from the
10610 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10611 to select the group of existing pods which pods will be taken into consideration
10612 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10613 pod labels will be ignored. The default value is empty.
10614 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10615 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10616 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10617 type: array
10618 items:
10619 type: string
10620 x-kubernetes-list-type: atomic
10621 namespaceSelector:
10622 description: |-
10623 A label query over the set of namespaces that the term applies to.
10624 The term is applied to the union of the namespaces selected by this field
10625 and the ones listed in the namespaces field.
10626 null selector and null or empty namespaces list means "this pod's namespace".
10627 An empty selector ({}) matches all namespaces.
10628 type: object
10629 properties:
10630 matchExpressions:
10631 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10632 type: array
10633 items:
10634 description: |-
10635 A label selector requirement is a selector that contains values, a key, and an operator that
10636 relates the key and values.
10637 type: object
10638 required:
10639 - key
10640 - operator
10641 properties:
10642 key:
10643 description: key is the label key that the selector applies to.
10644 type: string
10645 operator:
10646 description: |-
10647 operator represents a key's relationship to a set of values.
10648 Valid operators are In, NotIn, Exists and DoesNotExist.
10649 type: string
10650 values:
10651 description: |-
10652 values is an array of string values. If the operator is In or NotIn,
10653 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10654 the values array must be empty. This array is replaced during a strategic
10655 merge patch.
10656 type: array
10657 items:
10658 type: string
10659 x-kubernetes-list-type: atomic
10660 x-kubernetes-list-type: atomic
10661 matchLabels:
10662 description: |-
10663 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10664 map is equivalent to an element of matchExpressions, whose key field is "key", the
10665 operator is "In", and the values array contains only "value". The requirements are ANDed.
10666 type: object
10667 additionalProperties:
10668 type: string
10669 x-kubernetes-map-type: atomic
10670 namespaces:
10671 description: |-
10672 namespaces specifies a static list of namespace names that the term applies to.
10673 The term is applied to the union of the namespaces listed in this field
10674 and the ones selected by namespaceSelector.
10675 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
10676 type: array
10677 items:
10678 type: string
10679 x-kubernetes-list-type: atomic
10680 topologyKey:
10681 description: |-
10682 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
10683 the labelSelector in the specified namespaces, where co-located is defined as running on a node
10684 whose value of the label with key topologyKey matches that of any node on which any of the
10685 selected pods is running.
10686 Empty topologyKey is not allowed.
10687 type: string
10688 x-kubernetes-list-type: atomic
10689 podAntiAffinity:
10690 description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
10691 type: object
10692 properties:
10693 preferredDuringSchedulingIgnoredDuringExecution:
10694 description: |-
10695 The scheduler will prefer to schedule pods to nodes that satisfy
10696 the anti-affinity expressions specified by this field, but it may choose
10697 a node that violates one or more of the expressions. The node that is
10698 most preferred is the one with the greatest sum of weights, i.e.
10699 for each node that meets all of the scheduling requirements (resource
10700 request, requiredDuringScheduling anti-affinity expressions, etc.),
10701 compute a sum by iterating through the elements of this field and adding
10702 "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
10703 node(s) with the highest sum are the most preferred.
10704 type: array
10705 items:
10706 description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
10707 type: object
10708 required:
10709 - podAffinityTerm
10710 - weight
10711 properties:
10712 podAffinityTerm:
10713 description: Required. A pod affinity term, associated with the corresponding weight.
10714 type: object
10715 required:
10716 - topologyKey
10717 properties:
10718 labelSelector:
10719 description: |-
10720 A label query over a set of resources, in this case pods.
10721 If it's null, this PodAffinityTerm matches with no Pods.
10722 type: object
10723 properties:
10724 matchExpressions:
10725 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10726 type: array
10727 items:
10728 description: |-
10729 A label selector requirement is a selector that contains values, a key, and an operator that
10730 relates the key and values.
10731 type: object
10732 required:
10733 - key
10734 - operator
10735 properties:
10736 key:
10737 description: key is the label key that the selector applies to.
10738 type: string
10739 operator:
10740 description: |-
10741 operator represents a key's relationship to a set of values.
10742 Valid operators are In, NotIn, Exists and DoesNotExist.
10743 type: string
10744 values:
10745 description: |-
10746 values is an array of string values. If the operator is In or NotIn,
10747 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10748 the values array must be empty. This array is replaced during a strategic
10749 merge patch.
10750 type: array
10751 items:
10752 type: string
10753 x-kubernetes-list-type: atomic
10754 x-kubernetes-list-type: atomic
10755 matchLabels:
10756 description: |-
10757 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10758 map is equivalent to an element of matchExpressions, whose key field is "key", the
10759 operator is "In", and the values array contains only "value". The requirements are ANDed.
10760 type: object
10761 additionalProperties:
10762 type: string
10763 x-kubernetes-map-type: atomic
10764 matchLabelKeys:
10765 description: |-
10766 MatchLabelKeys is a set of pod label keys to select which pods will
10767 be taken into consideration. The keys are used to lookup values from the
10768 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10769 to select the group of existing pods which pods will be taken into consideration
10770 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10771 pod labels will be ignored. The default value is empty.
10772 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10773 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10774 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10775 type: array
10776 items:
10777 type: string
10778 x-kubernetes-list-type: atomic
10779 mismatchLabelKeys:
10780 description: |-
10781 MismatchLabelKeys is a set of pod label keys to select which pods will
10782 be taken into consideration. The keys are used to lookup values from the
10783 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10784 to select the group of existing pods which pods will be taken into consideration
10785 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10786 pod labels will be ignored. The default value is empty.
10787 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10788 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10789 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10790 type: array
10791 items:
10792 type: string
10793 x-kubernetes-list-type: atomic
10794 namespaceSelector:
10795 description: |-
10796 A label query over the set of namespaces that the term applies to.
10797 The term is applied to the union of the namespaces selected by this field
10798 and the ones listed in the namespaces field.
10799 null selector and null or empty namespaces list means "this pod's namespace".
10800 An empty selector ({}) matches all namespaces.
10801 type: object
10802 properties:
10803 matchExpressions:
10804 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10805 type: array
10806 items:
10807 description: |-
10808 A label selector requirement is a selector that contains values, a key, and an operator that
10809 relates the key and values.
10810 type: object
10811 required:
10812 - key
10813 - operator
10814 properties:
10815 key:
10816 description: key is the label key that the selector applies to.
10817 type: string
10818 operator:
10819 description: |-
10820 operator represents a key's relationship to a set of values.
10821 Valid operators are In, NotIn, Exists and DoesNotExist.
10822 type: string
10823 values:
10824 description: |-
10825 values is an array of string values. If the operator is In or NotIn,
10826 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10827 the values array must be empty. This array is replaced during a strategic
10828 merge patch.
10829 type: array
10830 items:
10831 type: string
10832 x-kubernetes-list-type: atomic
10833 x-kubernetes-list-type: atomic
10834 matchLabels:
10835 description: |-
10836 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10837 map is equivalent to an element of matchExpressions, whose key field is "key", the
10838 operator is "In", and the values array contains only "value". The requirements are ANDed.
10839 type: object
10840 additionalProperties:
10841 type: string
10842 x-kubernetes-map-type: atomic
10843 namespaces:
10844 description: |-
10845 namespaces specifies a static list of namespace names that the term applies to.
10846 The term is applied to the union of the namespaces listed in this field
10847 and the ones selected by namespaceSelector.
10848 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
10849 type: array
10850 items:
10851 type: string
10852 x-kubernetes-list-type: atomic
10853 topologyKey:
10854 description: |-
10855 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
10856 the labelSelector in the specified namespaces, where co-located is defined as running on a node
10857 whose value of the label with key topologyKey matches that of any node on which any of the
10858 selected pods is running.
10859 Empty topologyKey is not allowed.
10860 type: string
10861 weight:
10862 description: |-
10863 weight associated with matching the corresponding podAffinityTerm,
10864 in the range 1-100.
10865 type: integer
10866 format: int32
10867 x-kubernetes-list-type: atomic
10868 requiredDuringSchedulingIgnoredDuringExecution:
10869 description: |-
10870 If the anti-affinity requirements specified by this field are not met at
10871 scheduling time, the pod will not be scheduled onto the node.
10872 If the anti-affinity requirements specified by this field cease to be met
10873 at some point during pod execution (e.g. due to a pod label update), the
10874 system may or may not try to eventually evict the pod from its node.
10875 When there are multiple elements, the lists of nodes corresponding to each
10876 podAffinityTerm are intersected, i.e. all terms must be satisfied.
10877 type: array
10878 items:
10879 description: |-
10880 Defines a set of pods (namely those matching the labelSelector
10881 relative to the given namespace(s)) that this pod should be
10882 co-located (affinity) or not co-located (anti-affinity) with,
10883 where co-located is defined as running on a node whose value of
10884 the label with key <topologyKey> matches that of any node on which
10885 a pod of the set of pods is running
10886 type: object
10887 required:
10888 - topologyKey
10889 properties:
10890 labelSelector:
10891 description: |-
10892 A label query over a set of resources, in this case pods.
10893 If it's null, this PodAffinityTerm matches with no Pods.
10894 type: object
10895 properties:
10896 matchExpressions:
10897 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10898 type: array
10899 items:
10900 description: |-
10901 A label selector requirement is a selector that contains values, a key, and an operator that
10902 relates the key and values.
10903 type: object
10904 required:
10905 - key
10906 - operator
10907 properties:
10908 key:
10909 description: key is the label key that the selector applies to.
10910 type: string
10911 operator:
10912 description: |-
10913 operator represents a key's relationship to a set of values.
10914 Valid operators are In, NotIn, Exists and DoesNotExist.
10915 type: string
10916 values:
10917 description: |-
10918 values is an array of string values. If the operator is In or NotIn,
10919 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10920 the values array must be empty. This array is replaced during a strategic
10921 merge patch.
10922 type: array
10923 items:
10924 type: string
10925 x-kubernetes-list-type: atomic
10926 x-kubernetes-list-type: atomic
10927 matchLabels:
10928 description: |-
10929 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
10930 map is equivalent to an element of matchExpressions, whose key field is "key", the
10931 operator is "In", and the values array contains only "value". The requirements are ANDed.
10932 type: object
10933 additionalProperties:
10934 type: string
10935 x-kubernetes-map-type: atomic
10936 matchLabelKeys:
10937 description: |-
10938 MatchLabelKeys is a set of pod label keys to select which pods will
10939 be taken into consideration. The keys are used to lookup values from the
10940 incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`
10941 to select the group of existing pods which pods will be taken into consideration
10942 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10943 pod labels will be ignored. The default value is empty.
10944 The same key is forbidden to exist in both matchLabelKeys and labelSelector.
10945 Also, matchLabelKeys cannot be set when labelSelector isn't set.
10946 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10947 type: array
10948 items:
10949 type: string
10950 x-kubernetes-list-type: atomic
10951 mismatchLabelKeys:
10952 description: |-
10953 MismatchLabelKeys is a set of pod label keys to select which pods will
10954 be taken into consideration. The keys are used to lookup values from the
10955 incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`
10956 to select the group of existing pods which pods will be taken into consideration
10957 for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming
10958 pod labels will be ignored. The default value is empty.
10959 The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.
10960 Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
10961 This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).
10962 type: array
10963 items:
10964 type: string
10965 x-kubernetes-list-type: atomic
10966 namespaceSelector:
10967 description: |-
10968 A label query over the set of namespaces that the term applies to.
10969 The term is applied to the union of the namespaces selected by this field
10970 and the ones listed in the namespaces field.
10971 null selector and null or empty namespaces list means "this pod's namespace".
10972 An empty selector ({}) matches all namespaces.
10973 type: object
10974 properties:
10975 matchExpressions:
10976 description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
10977 type: array
10978 items:
10979 description: |-
10980 A label selector requirement is a selector that contains values, a key, and an operator that
10981 relates the key and values.
10982 type: object
10983 required:
10984 - key
10985 - operator
10986 properties:
10987 key:
10988 description: key is the label key that the selector applies to.
10989 type: string
10990 operator:
10991 description: |-
10992 operator represents a key's relationship to a set of values.
10993 Valid operators are In, NotIn, Exists and DoesNotExist.
10994 type: string
10995 values:
10996 description: |-
10997 values is an array of string values. If the operator is In or NotIn,
10998 the values array must be non-empty. If the operator is Exists or DoesNotExist,
10999 the values array must be empty. This array is replaced during a strategic
11000 merge patch.
11001 type: array
11002 items:
11003 type: string
11004 x-kubernetes-list-type: atomic
11005 x-kubernetes-list-type: atomic
11006 matchLabels:
11007 description: |-
11008 matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
11009 map is equivalent to an element of matchExpressions, whose key field is "key", the
11010 operator is "In", and the values array contains only "value". The requirements are ANDed.
11011 type: object
11012 additionalProperties:
11013 type: string
11014 x-kubernetes-map-type: atomic
11015 namespaces:
11016 description: |-
11017 namespaces specifies a static list of namespace names that the term applies to.
11018 The term is applied to the union of the namespaces listed in this field
11019 and the ones selected by namespaceSelector.
11020 null or empty namespaces list and null namespaceSelector means "this pod's namespace".
11021 type: array
11022 items:
11023 type: string
11024 x-kubernetes-list-type: atomic
11025 topologyKey:
11026 description: |-
11027 This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
11028 the labelSelector in the specified namespaces, where co-located is defined as running on a node
11029 whose value of the label with key topologyKey matches that of any node on which any of the
11030 selected pods is running.
11031 Empty topologyKey is not allowed.
11032 type: string
11033 x-kubernetes-list-type: atomic
11034 imagePullSecrets:
11035 description: If specified, the pod's imagePullSecrets
11036 type: array
11037 items:
11038 description: |-
11039 LocalObjectReference contains enough information to let you locate the
11040 referenced object inside the same namespace.
11041 type: object
11042 properties:
11043 name:
11044 description: |-
11045 Name of the referent.
11046 This field is effectively required, but due to backwards compatibility is
11047 allowed to be empty. Instances of this type with an empty value here are
11048 almost certainly wrong.
11049 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11050 type: string
11051 default: ""
11052 x-kubernetes-map-type: atomic
11053 nodeSelector:
11054 description: |-
11055 NodeSelector is a selector which must be true for the pod to fit on a node.
11056 Selector which must match a node's labels for the pod to be scheduled on that node.
11057 More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
11058 type: object
11059 additionalProperties:
11060 type: string
11061 priorityClassName:
11062 description: If specified, the pod's priorityClassName.
11063 type: string
11064 securityContext:
11065 description: If specified, the pod's security context
11066 type: object
11067 properties:
11068 fsGroup:
11069 description: |-
11070 A special supplemental group that applies to all containers in a pod.
11071 Some volume types allow the Kubelet to change the ownership of that volume
11072 to be owned by the pod:
11073
11074 1. The owning GID will be the FSGroup
11075 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
11076 3. The permission bits are OR'd with rw-rw----
11077
11078 If unset, the Kubelet will not modify the ownership and permissions of any volume.
11079 Note that this field cannot be set when spec.os.name is windows.
11080 type: integer
11081 format: int64
11082 fsGroupChangePolicy:
11083 description: |-
11084 fsGroupChangePolicy defines behavior of changing ownership and permission of the volume
11085 before being exposed inside Pod. This field will only apply to
11086 volume types which support fsGroup based ownership(and permissions).
11087 It will have no effect on ephemeral volume types such as: secret, configmaps
11088 and emptydir.
11089 Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
11090 Note that this field cannot be set when spec.os.name is windows.
11091 type: string
11092 runAsGroup:
11093 description: |-
11094 The GID to run the entrypoint of the container process.
11095 Uses runtime default if unset.
11096 May also be set in SecurityContext. If set in both SecurityContext and
11097 PodSecurityContext, the value specified in SecurityContext takes precedence
11098 for that container.
11099 Note that this field cannot be set when spec.os.name is windows.
11100 type: integer
11101 format: int64
11102 runAsNonRoot:
11103 description: |-
11104 Indicates that the container must run as a non-root user.
11105 If true, the Kubelet will validate the image at runtime to ensure that it
11106 does not run as UID 0 (root) and fail to start the container if it does.
11107 If unset or false, no such validation will be performed.
11108 May also be set in SecurityContext. If set in both SecurityContext and
11109 PodSecurityContext, the value specified in SecurityContext takes precedence.
11110 type: boolean
11111 runAsUser:
11112 description: |-
11113 The UID to run the entrypoint of the container process.
11114 Defaults to user specified in image metadata if unspecified.
11115 May also be set in SecurityContext. If set in both SecurityContext and
11116 PodSecurityContext, the value specified in SecurityContext takes precedence
11117 for that container.
11118 Note that this field cannot be set when spec.os.name is windows.
11119 type: integer
11120 format: int64
11121 seLinuxOptions:
11122 description: |-
11123 The SELinux context to be applied to all containers.
11124 If unspecified, the container runtime will allocate a random SELinux context for each
11125 container. May also be set in SecurityContext. If set in
11126 both SecurityContext and PodSecurityContext, the value specified in SecurityContext
11127 takes precedence for that container.
11128 Note that this field cannot be set when spec.os.name is windows.
11129 type: object
11130 properties:
11131 level:
11132 description: Level is SELinux level label that applies to the container.
11133 type: string
11134 role:
11135 description: Role is a SELinux role label that applies to the container.
11136 type: string
11137 type:
11138 description: Type is a SELinux type label that applies to the container.
11139 type: string
11140 user:
11141 description: User is a SELinux user label that applies to the container.
11142 type: string
11143 seccompProfile:
11144 description: |-
11145 The seccomp options to use by the containers in this pod.
11146 Note that this field cannot be set when spec.os.name is windows.
11147 type: object
11148 required:
11149 - type
11150 properties:
11151 localhostProfile:
11152 description: |-
11153 localhostProfile indicates a profile defined in a file on the node should be used.
11154 The profile must be preconfigured on the node to work.
11155 Must be a descending path, relative to the kubelet's configured seccomp profile location.
11156 Must be set if type is "Localhost". Must NOT be set for any other type.
11157 type: string
11158 type:
11159 description: |-
11160 type indicates which kind of seccomp profile will be applied.
11161 Valid options are:
11162
11163 Localhost - a profile defined in a file on the node should be used.
11164 RuntimeDefault - the container runtime default profile should be used.
11165 Unconfined - no profile should be applied.
11166 type: string
11167 supplementalGroups:
11168 description: |-
11169 A list of groups applied to the first process run in each container, in addition
11170 to the container's primary GID, the fsGroup (if specified), and group memberships
11171 defined in the container image for the uid of the container process. If unspecified,
11172 no additional groups are added to any container. Note that group memberships
11173 defined in the container image for the uid of the container process are still effective,
11174 even if they are not included in this list.
11175 Note that this field cannot be set when spec.os.name is windows.
11176 type: array
11177 items:
11178 type: integer
11179 format: int64
11180 sysctls:
11181 description: |-
11182 Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
11183 sysctls (by the container runtime) might fail to launch.
11184 Note that this field cannot be set when spec.os.name is windows.
11185 type: array
11186 items:
11187 description: Sysctl defines a kernel parameter to be set
11188 type: object
11189 required:
11190 - name
11191 - value
11192 properties:
11193 name:
11194 description: Name of a property to set
11195 type: string
11196 value:
11197 description: Value of a property to set
11198 type: string
11199 serviceAccountName:
11200 description: If specified, the pod's service account
11201 type: string
11202 tolerations:
11203 description: If specified, the pod's tolerations.
11204 type: array
11205 items:
11206 description: |-
11207 The pod this Toleration is attached to tolerates any taint that matches
11208 the triple <key,value,effect> using the matching operator <operator>.
11209 type: object
11210 properties:
11211 effect:
11212 description: |-
11213 Effect indicates the taint effect to match. Empty means match all taint effects.
11214 When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
11215 type: string
11216 key:
11217 description: |-
11218 Key is the taint key that the toleration applies to. Empty means match all taint keys.
11219 If the key is empty, operator must be Exists; this combination means to match all values and all keys.
11220 type: string
11221 operator:
11222 description: |-
11223 Operator represents a key's relationship to the value.
11224 Valid operators are Exists and Equal. Defaults to Equal.
11225 Exists is equivalent to wildcard for value, so that a pod can
11226 tolerate all taints of a particular category.
11227 type: string
11228 tolerationSeconds:
11229 description: |-
11230 TolerationSeconds represents the period of time the toleration (which must be
11231 of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
11232 it is not set, which means tolerate the taint forever (do not evict). Zero and
11233 negative values will be treated as 0 (evict immediately) by the system.
11234 type: integer
11235 format: int64
11236 value:
11237 description: |-
11238 Value is the taint value the toleration matches to.
11239 If the operator is Exists, the value should be empty, otherwise just a regular string.
11240 type: string
11241 serviceType:
11242 description: |-
11243 Optional service type for Kubernetes solver service. Supported values
11244 are NodePort or ClusterIP. If unset, defaults to NodePort.
11245 type: string
11246 selector:
11247 description: |-
11248 Selector selects a set of DNSNames on the Certificate resource that
11249 should be solved using this challenge solver.
11250 If not specified, the solver will be treated as the 'default' solver
11251 with the lowest priority, i.e. if any other solver has a more specific
11252 match, it will be used instead.
11253 type: object
11254 properties:
11255 dnsNames:
11256 description: |-
11257 List of DNSNames that this solver will be used to solve.
11258 If specified and a match is found, a dnsNames selector will take
11259 precedence over a dnsZones selector.
11260 If multiple solvers match with the same dnsNames value, the solver
11261 with the most matching labels in matchLabels will be selected.
11262 If neither has more matches, the solver defined earlier in the list
11263 will be selected.
11264 type: array
11265 items:
11266 type: string
11267 dnsZones:
11268 description: |-
11269 List of DNSZones that this solver will be used to solve.
11270 The most specific DNS zone match specified here will take precedence
11271 over other DNS zone matches, so a solver specifying sys.example.com
11272 will be selected over one specifying example.com for the domain
11273 www.sys.example.com.
11274 If multiple solvers match with the same dnsZones value, the solver
11275 with the most matching labels in matchLabels will be selected.
11276 If neither has more matches, the solver defined earlier in the list
11277 will be selected.
11278 type: array
11279 items:
11280 type: string
11281 matchLabels:
11282 description: |-
11283 A label selector that is used to refine the set of certificate's that
11284 this challenge solver will apply to.
11285 type: object
11286 additionalProperties:
11287 type: string
11288 ca:
11289 description: |-
11290 CA configures this issuer to sign certificates using a signing CA keypair
11291 stored in a Secret resource.
11292 This is used to build internal PKIs that are managed by cert-manager.
11293 type: object
11294 required:
11295 - secretName
11296 properties:
11297 crlDistributionPoints:
11298 description: |-
11299 The CRL distribution points is an X.509 v3 certificate extension which identifies
11300 the location of the CRL from which the revocation of this certificate can be checked.
11301 If not set, certificates will be issued without distribution points set.
11302 type: array
11303 items:
11304 type: string
11305 issuingCertificateURLs:
11306 description: |-
11307 IssuingCertificateURLs is a list of URLs which this issuer should embed into certificates
11308 it creates. See https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1 for more details.
11309 As an example, such a URL might be "http://ca.domain.com/ca.crt".
11310 type: array
11311 items:
11312 type: string
11313 ocspServers:
11314 description: |-
11315 The OCSP server list is an X.509 v3 extension that defines a list of
11316 URLs of OCSP responders. The OCSP responders can be queried for the
11317 revocation status of an issued certificate. If not set, the
11318 certificate will be issued with no OCSP servers set. For example, an
11319 OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
11320 type: array
11321 items:
11322 type: string
11323 secretName:
11324 description: |-
11325 SecretName is the name of the secret used to sign Certificates issued
11326 by this Issuer.
11327 type: string
11328 selfSigned:
11329 description: |-
11330 SelfSigned configures this issuer to 'self sign' certificates using the
11331 private key used to create the CertificateRequest object.
11332 type: object
11333 properties:
11334 crlDistributionPoints:
11335 description: |-
11336 The CRL distribution points is an X.509 v3 certificate extension which identifies
11337 the location of the CRL from which the revocation of this certificate can be checked.
11338 If not set certificate will be issued without CDP. Values are strings.
11339 type: array
11340 items:
11341 type: string
11342 vault:
11343 description: |-
11344 Vault configures this issuer to sign certificates using a HashiCorp Vault
11345 PKI backend.
11346 type: object
11347 required:
11348 - auth
11349 - path
11350 - server
11351 properties:
11352 auth:
11353 description: Auth configures how cert-manager authenticates with the Vault server.
11354 type: object
11355 properties:
11356 appRole:
11357 description: |-
11358 AppRole authenticates with Vault using the App Role auth mechanism,
11359 with the role and secret stored in a Kubernetes Secret resource.
11360 type: object
11361 required:
11362 - path
11363 - roleId
11364 - secretRef
11365 properties:
11366 path:
11367 description: |-
11368 Path where the App Role authentication backend is mounted in Vault, e.g:
11369 "approle"
11370 type: string
11371 roleId:
11372 description: |-
11373 RoleID configured in the App Role authentication backend when setting
11374 up the authentication backend in Vault.
11375 type: string
11376 secretRef:
11377 description: |-
11378 Reference to a key in a Secret that contains the App Role secret used
11379 to authenticate with Vault.
11380 The `key` field must be specified and denotes which entry within the Secret
11381 resource is used as the app role secret.
11382 type: object
11383 required:
11384 - name
11385 properties:
11386 key:
11387 description: |-
11388 The key of the entry in the Secret resource's `data` field to be used.
11389 Some instances of this field may be defaulted, in others it may be
11390 required.
11391 type: string
11392 name:
11393 description: |-
11394 Name of the resource being referred to.
11395 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11396 type: string
11397 clientCertificate:
11398 description: |-
11399 ClientCertificate authenticates with Vault by presenting a client
11400 certificate during the request's TLS handshake.
11401 Works only when using HTTPS protocol.
11402 type: object
11403 properties:
11404 mountPath:
11405 description: |-
11406 The Vault mountPath here is the mount path to use when authenticating with
11407 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
11408 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
11409 default value "/v1/auth/cert" will be used.
11410 type: string
11411 name:
11412 description: |-
11413 Name of the certificate role to authenticate against.
11414 If not set, matching any certificate role, if available.
11415 type: string
11416 secretName:
11417 description: |-
11418 Reference to Kubernetes Secret of type "kubernetes.io/tls" (hence containing
11419 tls.crt and tls.key) used to authenticate to Vault using TLS client
11420 authentication.
11421 type: string
11422 kubernetes:
11423 description: |-
11424 Kubernetes authenticates with Vault by passing the ServiceAccount
11425 token stored in the named Secret resource to the Vault server.
11426 type: object
11427 required:
11428 - role
11429 properties:
11430 mountPath:
11431 description: |-
11432 The Vault mountPath here is the mount path to use when authenticating with
11433 Vault. For example, setting a value to `/v1/auth/foo`, will use the path
11434 `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the
11435 default value "/v1/auth/kubernetes" will be used.
11436 type: string
11437 role:
11438 description: |-
11439 A required field containing the Vault Role to assume. A Role binds a
11440 Kubernetes ServiceAccount with a set of Vault policies.
11441 type: string
11442 secretRef:
11443 description: |-
11444 The required Secret field containing a Kubernetes ServiceAccount JWT used
11445 for authenticating with Vault. Use of 'ambient credentials' is not
11446 supported.
11447 type: object
11448 required:
11449 - name
11450 properties:
11451 key:
11452 description: |-
11453 The key of the entry in the Secret resource's `data` field to be used.
11454 Some instances of this field may be defaulted, in others it may be
11455 required.
11456 type: string
11457 name:
11458 description: |-
11459 Name of the resource being referred to.
11460 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11461 type: string
11462 serviceAccountRef:
11463 description: |-
11464 A reference to a service account that will be used to request a bound
11465 token (also known as "projected token"). Compared to using "secretRef",
11466 using this field means that you don't rely on statically bound tokens. To
11467 use this field, you must configure an RBAC rule to let cert-manager
11468 request a token.
11469 type: object
11470 required:
11471 - name
11472 properties:
11473 audiences:
11474 description: |-
11475 TokenAudiences is an optional list of extra audiences to include in the token passed to Vault. The default token
11476 consisting of the issuer's namespace and name is always included.
11477 type: array
11478 items:
11479 type: string
11480 name:
11481 description: Name of the ServiceAccount used to request a token.
11482 type: string
11483 tokenSecretRef:
11484 description: TokenSecretRef authenticates with Vault by presenting a token.
11485 type: object
11486 required:
11487 - name
11488 properties:
11489 key:
11490 description: |-
11491 The key of the entry in the Secret resource's `data` field to be used.
11492 Some instances of this field may be defaulted, in others it may be
11493 required.
11494 type: string
11495 name:
11496 description: |-
11497 Name of the resource being referred to.
11498 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11499 type: string
11500 caBundle:
11501 description: |-
11502 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
11503 chain presented by Vault. Only used if using HTTPS to connect to Vault and
11504 ignored for HTTP connections.
11505 Mutually exclusive with CABundleSecretRef.
11506 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
11507 the cert-manager controller container is used to validate the TLS connection.
11508 type: string
11509 format: byte
11510 caBundleSecretRef:
11511 description: |-
11512 Reference to a Secret containing a bundle of PEM-encoded CAs to use when
11513 verifying the certificate chain presented by Vault when using HTTPS.
11514 Mutually exclusive with CABundle.
11515 If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in
11516 the cert-manager controller container is used to validate the TLS connection.
11517 If no key for the Secret is specified, cert-manager will default to 'ca.crt'.
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 clientCertSecretRef:
11534 description: |-
11535 Reference to a Secret containing a PEM-encoded Client Certificate to use when the
11536 Vault server requires mTLS.
11537 type: object
11538 required:
11539 - name
11540 properties:
11541 key:
11542 description: |-
11543 The key of the entry in the Secret resource's `data` field to be used.
11544 Some instances of this field may be defaulted, in others it may be
11545 required.
11546 type: string
11547 name:
11548 description: |-
11549 Name of the resource being referred to.
11550 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11551 type: string
11552 clientKeySecretRef:
11553 description: |-
11554 Reference to a Secret containing a PEM-encoded Client Private Key to use when the
11555 Vault server requires mTLS.
11556 type: object
11557 required:
11558 - name
11559 properties:
11560 key:
11561 description: |-
11562 The key of the entry in the Secret resource's `data` field to be used.
11563 Some instances of this field may be defaulted, in others it may be
11564 required.
11565 type: string
11566 name:
11567 description: |-
11568 Name of the resource being referred to.
11569 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11570 type: string
11571 namespace:
11572 description: |-
11573 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"
11574 More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
11575 type: string
11576 path:
11577 description: |-
11578 Path is the mount path of the Vault PKI backend's `sign` endpoint, e.g:
11579 "my_pki_mount/sign/my-role-name".
11580 type: string
11581 server:
11582 description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
11583 type: string
11584 venafi:
11585 description: |-
11586 Venafi configures this issuer to sign certificates using a Venafi TPP
11587 or Venafi Cloud policy zone.
11588 type: object
11589 required:
11590 - zone
11591 properties:
11592 cloud:
11593 description: |-
11594 Cloud specifies the Venafi cloud configuration settings.
11595 Only one of TPP or Cloud may be specified.
11596 type: object
11597 required:
11598 - apiTokenSecretRef
11599 properties:
11600 apiTokenSecretRef:
11601 description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
11602 type: object
11603 required:
11604 - name
11605 properties:
11606 key:
11607 description: |-
11608 The key of the entry in the Secret resource's `data` field to be used.
11609 Some instances of this field may be defaulted, in others it may be
11610 required.
11611 type: string
11612 name:
11613 description: |-
11614 Name of the resource being referred to.
11615 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11616 type: string
11617 url:
11618 description: |-
11619 URL is the base URL for Venafi Cloud.
11620 Defaults to "https://api.venafi.cloud/v1".
11621 type: string
11622 tpp:
11623 description: |-
11624 TPP specifies Trust Protection Platform configuration settings.
11625 Only one of TPP or Cloud may be specified.
11626 type: object
11627 required:
11628 - credentialsRef
11629 - url
11630 properties:
11631 caBundle:
11632 description: |-
11633 Base64-encoded bundle of PEM CAs which will be used to validate the certificate
11634 chain presented by the TPP server. Only used if using HTTPS; ignored for HTTP.
11635 If undefined, the certificate bundle in the cert-manager controller container
11636 is used to validate the chain.
11637 type: string
11638 format: byte
11639 caBundleSecretRef:
11640 description: |-
11641 Reference to a Secret containing a base64-encoded bundle of PEM CAs
11642 which will be used to validate the certificate chain presented by the TPP server.
11643 Only used if using HTTPS; ignored for HTTP. Mutually exclusive with CABundle.
11644 If neither CABundle nor CABundleSecretRef is defined, the certificate bundle in
11645 the cert-manager controller container is used to validate the TLS connection.
11646 type: object
11647 required:
11648 - name
11649 properties:
11650 key:
11651 description: |-
11652 The key of the entry in the Secret resource's `data` field to be used.
11653 Some instances of this field may be defaulted, in others it may be
11654 required.
11655 type: string
11656 name:
11657 description: |-
11658 Name of the resource being referred to.
11659 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11660 type: string
11661 credentialsRef:
11662 description: |-
11663 CredentialsRef is a reference to a Secret containing the Venafi TPP API credentials.
11664 The secret must contain the key 'access-token' for the Access Token Authentication,
11665 or two keys, 'username' and 'password' for the API Keys Authentication.
11666 type: object
11667 required:
11668 - name
11669 properties:
11670 name:
11671 description: |-
11672 Name of the resource being referred to.
11673 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
11674 type: string
11675 url:
11676 description: |-
11677 URL is the base URL for the vedsdk endpoint of the Venafi TPP instance,
11678 for example: "https://tpp.example.com/vedsdk".
11679 type: string
11680 zone:
11681 description: |-
11682 Zone is the Venafi Policy Zone to use for this issuer.
11683 All requests made to the Venafi platform will be restricted by the named
11684 zone policy.
11685 This field is required.
11686 type: string
11687 status:
11688 description: Status of the Issuer. This is set and managed automatically.
11689 type: object
11690 properties:
11691 acme:
11692 description: |-
11693 ACME specific status options.
11694 This field should only be set if the Issuer is configured to use an ACME
11695 server to issue certificates.
11696 type: object
11697 properties:
11698 lastPrivateKeyHash:
11699 description: |-
11700 LastPrivateKeyHash is a hash of the private key associated with the latest
11701 registered ACME account, in order to track changes made to registered account
11702 associated with the Issuer
11703 type: string
11704 lastRegisteredEmail:
11705 description: |-
11706 LastRegisteredEmail is the email associated with the latest registered
11707 ACME account, in order to track changes made to registered account
11708 associated with the Issuer
11709 type: string
11710 uri:
11711 description: |-
11712 URI is the unique account identifier, which can also be used to retrieve
11713 account details from the CA
11714 type: string
11715 conditions:
11716 description: |-
11717 List of status conditions to indicate the status of a CertificateRequest.
11718 Known condition types are `Ready`.
11719 type: array
11720 items:
11721 description: IssuerCondition contains condition information for an Issuer.
11722 type: object
11723 required:
11724 - status
11725 - type
11726 properties:
11727 lastTransitionTime:
11728 description: |-
11729 LastTransitionTime is the timestamp corresponding to the last status
11730 change of this condition.
11731 type: string
11732 format: date-time
11733 message:
11734 description: |-
11735 Message is a human readable description of the details of the last
11736 transition, complementing reason.
11737 type: string
11738 observedGeneration:
11739 description: |-
11740 If set, this represents the .metadata.generation that the condition was
11741 set based upon.
11742 For instance, if .metadata.generation is currently 12, but the
11743 .status.condition[x].observedGeneration is 9, the condition is out of date
11744 with respect to the current state of the Issuer.
11745 type: integer
11746 format: int64
11747 reason:
11748 description: |-
11749 Reason is a brief machine readable explanation for the condition's last
11750 transition.
11751 type: string
11752 status:
11753 description: Status of the condition, one of (`True`, `False`, `Unknown`).
11754 type: string
11755 enum:
11756 - "True"
11757 - "False"
11758 - Unknown
11759 type:
11760 description: Type of the condition, known values are (`Ready`).
11761 type: string
11762 x-kubernetes-list-map-keys:
11763 - type
11764 x-kubernetes-list-type: map
11765 served: true
11766 storage: true
11767
11768# END crd {{- end }}
11769
11770---
11771# START crd {{- if or .Values.crds.enabled .Values.installCRDs }}
11772apiVersion: apiextensions.k8s.io/v1
11773kind: CustomResourceDefinition
11774metadata:
11775 name: orders.acme.cert-manager.io
11776 # START annotations {{- if .Values.crds.keep }}
11777 annotations:
11778 helm.sh/resource-policy: keep
11779 # END annotations {{- end }}
11780 labels:
11781 app: '{{ template "cert-manager.name" . }}'
11782 app.kubernetes.io/name: '{{ template "cert-manager.name" . }}'
11783 app.kubernetes.io/instance: '{{ .Release.Name }}'
11784 app.kubernetes.io/component: "crds"
11785 # Generated labels {{- include "labels" . | nindent 4 }}
11786spec:
11787 group: acme.cert-manager.io
11788 names:
11789 kind: Order
11790 listKind: OrderList
11791 plural: orders
11792 singular: order
11793 categories:
11794 - cert-manager
11795 - cert-manager-acme
11796 scope: Namespaced
11797 versions:
11798 - name: v1
11799 subresources:
11800 status: {}
11801 additionalPrinterColumns:
11802 - jsonPath: .status.state
11803 name: State
11804 type: string
11805 - jsonPath: .spec.issuerRef.name
11806 name: Issuer
11807 priority: 1
11808 type: string
11809 - jsonPath: .status.reason
11810 name: Reason
11811 priority: 1
11812 type: string
11813 - jsonPath: .metadata.creationTimestamp
11814 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.
11815 name: Age
11816 type: date
11817 schema:
11818 openAPIV3Schema:
11819 description: Order is a type to represent an Order with an ACME server
11820 type: object
11821 required:
11822 - metadata
11823 - spec
11824 properties:
11825 apiVersion:
11826 description: |-
11827 APIVersion defines the versioned schema of this representation of an object.
11828 Servers should convert recognized schemas to the latest internal value, and
11829 may reject unrecognized values.
11830 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
11831 type: string
11832 kind:
11833 description: |-
11834 Kind is a string value representing the REST resource this object represents.
11835 Servers may infer this from the endpoint the client submits requests to.
11836 Cannot be updated.
11837 In CamelCase.
11838 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
11839 type: string
11840 metadata:
11841 type: object
11842 spec:
11843 type: object
11844 required:
11845 - issuerRef
11846 - request
11847 properties:
11848 commonName:
11849 description: |-
11850 CommonName is the common name as specified on the DER encoded CSR.
11851 If specified, this value must also be present in `dnsNames` or `ipAddresses`.
11852 This field must match the corresponding field on the DER encoded CSR.
11853 type: string
11854 dnsNames:
11855 description: |-
11856 DNSNames is a list of DNS names that should be included as part of the Order
11857 validation process.
11858 This field must match the corresponding field on the DER encoded CSR.
11859 type: array
11860 items:
11861 type: string
11862 duration:
11863 description: |-
11864 Duration is the duration for the not after date for the requested certificate.
11865 this is set on order creation as pe the ACME spec.
11866 type: string
11867 ipAddresses:
11868 description: |-
11869 IPAddresses is a list of IP addresses that should be included as part of the Order
11870 validation process.
11871 This field must match the corresponding field on the DER encoded CSR.
11872 type: array
11873 items:
11874 type: string
11875 issuerRef:
11876 description: |-
11877 IssuerRef references a properly configured ACME-type Issuer which should
11878 be used to create this Order.
11879 If the Issuer does not exist, processing will be retried.
11880 If the Issuer is not an 'ACME' Issuer, an error will be returned and the
11881 Order will be marked as failed.
11882 type: object
11883 required:
11884 - name
11885 properties:
11886 group:
11887 description: Group of the resource being referred to.
11888 type: string
11889 kind:
11890 description: Kind of the resource being referred to.
11891 type: string
11892 name:
11893 description: Name of the resource being referred to.
11894 type: string
11895 request:
11896 description: |-
11897 Certificate signing request bytes in DER encoding.
11898 This will be used when finalizing the order.
11899 This field must be set on the order.
11900 type: string
11901 format: byte
11902 status:
11903 type: object
11904 properties:
11905 authorizations:
11906 description: |-
11907 Authorizations contains data returned from the ACME server on what
11908 authorizations must be completed in order to validate the DNS names
11909 specified on the Order.
11910 type: array
11911 items:
11912 description: |-
11913 ACMEAuthorization contains data returned from the ACME server on an
11914 authorization that must be completed in order validate a DNS name on an ACME
11915 Order resource.
11916 type: object
11917 required:
11918 - url
11919 properties:
11920 challenges:
11921 description: |-
11922 Challenges specifies the challenge types offered by the ACME server.
11923 One of these challenge types will be selected when validating the DNS
11924 name and an appropriate Challenge resource will be created to perform
11925 the ACME challenge process.
11926 type: array
11927 items:
11928 description: |-
11929 Challenge specifies a challenge offered by the ACME server for an Order.
11930 An appropriate Challenge resource can be created to perform the ACME
11931 challenge process.
11932 type: object
11933 required:
11934 - token
11935 - type
11936 - url
11937 properties:
11938 token:
11939 description: |-
11940 Token is the token that must be presented for this challenge.
11941 This is used to compute the 'key' that must also be presented.
11942 type: string
11943 type:
11944 description: |-
11945 Type is the type of challenge being offered, e.g. 'http-01', 'dns-01',
11946 'tls-sni-01', etc.
11947 This is the raw value retrieved from the ACME server.
11948 Only 'http-01' and 'dns-01' are supported by cert-manager, other values
11949 will be ignored.
11950 type: string
11951 url:
11952 description: |-
11953 URL is the URL of this challenge. It can be used to retrieve additional
11954 metadata about the Challenge from the ACME server.
11955 type: string
11956 identifier:
11957 description: Identifier is the DNS name to be validated as part of this authorization
11958 type: string
11959 initialState:
11960 description: |-
11961 InitialState is the initial state of the ACME authorization when first
11962 fetched from the ACME server.
11963 If an Authorization is already 'valid', the Order controller will not
11964 create a Challenge resource for the authorization. This will occur when
11965 working with an ACME server that enables 'authz reuse' (such as Let's
11966 Encrypt's production endpoint).
11967 If not set and 'identifier' is set, the state is assumed to be pending
11968 and a Challenge will be created.
11969 type: string
11970 enum:
11971 - valid
11972 - ready
11973 - pending
11974 - processing
11975 - invalid
11976 - expired
11977 - errored
11978 url:
11979 description: URL is the URL of the Authorization that must be completed
11980 type: string
11981 wildcard:
11982 description: |-
11983 Wildcard will be true if this authorization is for a wildcard DNS name.
11984 If this is true, the identifier will be the *non-wildcard* version of
11985 the DNS name.
11986 For example, if '*.example.com' is the DNS name being validated, this
11987 field will be 'true' and the 'identifier' field will be 'example.com'.
11988 type: boolean
11989 certificate:
11990 description: |-
11991 Certificate is a copy of the PEM encoded certificate for this Order.
11992 This field will be populated after the order has been successfully
11993 finalized with the ACME server, and the order has transitioned to the
11994 'valid' state.
11995 type: string
11996 format: byte
11997 failureTime:
11998 description: |-
11999 FailureTime stores the time that this order failed.
12000 This is used to influence garbage collection and back-off.
12001 type: string
12002 format: date-time
12003 finalizeURL:
12004 description: |-
12005 FinalizeURL of the Order.
12006 This is used to obtain certificates for this order once it has been completed.
12007 type: string
12008 reason:
12009 description: |-
12010 Reason optionally provides more information about a why the order is in
12011 the current state.
12012 type: string
12013 state:
12014 description: |-
12015 State contains the current state of this Order resource.
12016 States 'success' and 'expired' are 'final'
12017 type: string
12018 enum:
12019 - valid
12020 - ready
12021 - pending
12022 - processing
12023 - invalid
12024 - expired
12025 - errored
12026 url:
12027 description: |-
12028 URL of the Order.
12029 This will initially be empty when the resource is first created.
12030 The Order controller will populate this field when the Order is first processed.
12031 This field will be immutable after it is initially set.
12032 type: string
12033 served: true
12034 storage: true
12035
12036# END crd {{- end }}