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