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