You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4710 lines
427 KiB

  1. # Copyright 2022 The cert-manager Authors.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. # Source: cert-manager/deploy/crds/crd-clusterissuers.yaml
  15. apiVersion: apiextensions.k8s.io/v1
  16. kind: CustomResourceDefinition
  17. metadata:
  18. name: clusterissuers.cert-manager.io
  19. labels:
  20. app: 'cert-manager'
  21. app.kubernetes.io/name: 'cert-manager'
  22. app.kubernetes.io/instance: "cert-manager"
  23. # Generated labels
  24. app.kubernetes.io/version: "{{ cert_manager_version }}"
  25. spec:
  26. group: cert-manager.io
  27. names:
  28. kind: ClusterIssuer
  29. listKind: ClusterIssuerList
  30. plural: clusterissuers
  31. singular: clusterissuer
  32. categories:
  33. - cert-manager
  34. scope: Cluster
  35. versions:
  36. - name: v1
  37. subresources:
  38. status: {}
  39. additionalPrinterColumns:
  40. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  41. name: Ready
  42. type: string
  43. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  44. name: Status
  45. priority: 1
  46. type: string
  47. - jsonPath: .metadata.creationTimestamp
  48. 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.
  49. name: Age
  50. type: date
  51. schema:
  52. openAPIV3Schema:
  53. description: A ClusterIssuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is similar to an Issuer, however it is cluster-scoped and therefore can be referenced by resources that exist in *any* namespace, not just the same namespace as the referent.
  54. type: object
  55. required:
  56. - spec
  57. properties:
  58. apiVersion:
  59. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  60. type: string
  61. kind:
  62. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  63. type: string
  64. metadata:
  65. type: object
  66. spec:
  67. description: Desired state of the ClusterIssuer resource.
  68. type: object
  69. properties:
  70. acme:
  71. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  72. type: object
  73. required:
  74. - privateKeySecretRef
  75. - server
  76. properties:
  77. caBundle:
  78. description: Base64-encoded bundle of PEM CAs which can be used to validate the certificate chain presented by the ACME server. Mutually exclusive with SkipTLSVerify; prefer using CABundle to prevent various kinds of security vulnerabilities. If CABundle and SkipTLSVerify are unset, the system certificate bundle inside the container is used to validate the TLS connection.
  79. type: string
  80. format: byte
  81. disableAccountKeyGeneration:
  82. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  83. type: boolean
  84. email:
  85. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  86. type: string
  87. enableDurationFeature:
  88. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  89. type: boolean
  90. externalAccountBinding:
  91. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  92. type: object
  93. required:
  94. - keyID
  95. - keySecretRef
  96. properties:
  97. keyAlgorithm:
  98. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  99. type: string
  100. enum:
  101. - HS256
  102. - HS384
  103. - HS512
  104. keyID:
  105. description: keyID is the ID of the CA key that the External Account is bound to.
  106. type: string
  107. keySecretRef:
  108. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  109. type: object
  110. required:
  111. - name
  112. properties:
  113. key:
  114. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  115. type: string
  116. name:
  117. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  118. type: string
  119. preferredChain:
  120. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  121. type: string
  122. maxLength: 64
  123. privateKeySecretRef:
  124. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  125. type: object
  126. required:
  127. - name
  128. properties:
  129. key:
  130. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  131. type: string
  132. name:
  133. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  134. type: string
  135. server:
  136. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  137. type: string
  138. skipTLSVerify:
  139. description: 'INSECURE: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have the TLS certificate chain validated. Mutually exclusive with CABundle; prefer using CABundle to prevent various kinds of security vulnerabilities. Only enable this option in development environments. If CABundle and SkipTLSVerify are unset, the system certificate bundle inside the container is used to validate the TLS connection. Defaults to false.'
  140. type: boolean
  141. solvers:
  142. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  143. type: array
  144. items:
  145. description: An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of. A selector may be provided to use different solving strategies for different DNS names. Only one of HTTP01 or DNS01 must be provided.
  146. type: object
  147. properties:
  148. dns01:
  149. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  150. type: object
  151. properties:
  152. acmeDNS:
  153. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  154. type: object
  155. required:
  156. - accountSecretRef
  157. - host
  158. properties:
  159. accountSecretRef:
  160. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  161. type: object
  162. required:
  163. - name
  164. properties:
  165. key:
  166. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  167. type: string
  168. name:
  169. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  170. type: string
  171. host:
  172. type: string
  173. akamai:
  174. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  175. type: object
  176. required:
  177. - accessTokenSecretRef
  178. - clientSecretSecretRef
  179. - clientTokenSecretRef
  180. - serviceConsumerDomain
  181. properties:
  182. accessTokenSecretRef:
  183. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  184. type: object
  185. required:
  186. - name
  187. properties:
  188. key:
  189. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  190. type: string
  191. name:
  192. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  193. type: string
  194. clientSecretSecretRef:
  195. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  196. type: object
  197. required:
  198. - name
  199. properties:
  200. key:
  201. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  202. type: string
  203. name:
  204. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  205. type: string
  206. clientTokenSecretRef:
  207. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  208. type: object
  209. required:
  210. - name
  211. properties:
  212. key:
  213. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  214. type: string
  215. name:
  216. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  217. type: string
  218. serviceConsumerDomain:
  219. type: string
  220. azureDNS:
  221. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  222. type: object
  223. required:
  224. - resourceGroupName
  225. - subscriptionID
  226. properties:
  227. clientID:
  228. description: 'Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set.'
  229. type: string
  230. clientSecretSecretRef:
  231. description: 'Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set.'
  232. type: object
  233. required:
  234. - name
  235. properties:
  236. key:
  237. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  238. type: string
  239. name:
  240. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  241. type: string
  242. environment:
  243. description: name of the Azure environment (default AzurePublicCloud)
  244. type: string
  245. enum:
  246. - AzurePublicCloud
  247. - AzureChinaCloud
  248. - AzureGermanCloud
  249. - AzureUSGovernmentCloud
  250. hostedZoneName:
  251. description: name of the DNS zone that should be used
  252. type: string
  253. managedIdentity:
  254. description: 'Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set.'
  255. type: object
  256. properties:
  257. clientID:
  258. description: client ID of the managed identity, can not be used at the same time as resourceID
  259. type: string
  260. resourceID:
  261. description: resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity
  262. type: string
  263. resourceGroupName:
  264. description: resource group the DNS zone is located in
  265. type: string
  266. subscriptionID:
  267. description: ID of the Azure subscription
  268. type: string
  269. tenantID:
  270. description: 'Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set.'
  271. type: string
  272. cloudDNS:
  273. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  274. type: object
  275. required:
  276. - project
  277. properties:
  278. hostedZoneName:
  279. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  280. type: string
  281. project:
  282. type: string
  283. serviceAccountSecretRef:
  284. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  285. type: object
  286. required:
  287. - name
  288. properties:
  289. key:
  290. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  291. type: string
  292. name:
  293. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  294. type: string
  295. cloudflare:
  296. description: Use the Cloudflare API to manage DNS01 challenge records.
  297. type: object
  298. properties:
  299. apiKeySecretRef:
  300. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  301. type: object
  302. required:
  303. - name
  304. properties:
  305. key:
  306. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  307. type: string
  308. name:
  309. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  310. type: string
  311. apiTokenSecretRef:
  312. description: API token used to authenticate with Cloudflare.
  313. type: object
  314. required:
  315. - name
  316. properties:
  317. key:
  318. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  319. type: string
  320. name:
  321. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  322. type: string
  323. email:
  324. description: Email of the account, only required when using API key based authentication.
  325. type: string
  326. cnameStrategy:
  327. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  328. type: string
  329. enum:
  330. - None
  331. - Follow
  332. digitalocean:
  333. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  334. type: object
  335. required:
  336. - tokenSecretRef
  337. properties:
  338. tokenSecretRef:
  339. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  340. type: object
  341. required:
  342. - name
  343. properties:
  344. key:
  345. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  346. type: string
  347. name:
  348. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  349. type: string
  350. rfc2136:
  351. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  352. type: object
  353. required:
  354. - nameserver
  355. properties:
  356. nameserver:
  357. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  358. type: string
  359. tsigAlgorithm:
  360. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  361. type: string
  362. tsigKeyName:
  363. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  364. type: string
  365. tsigSecretSecretRef:
  366. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  367. type: object
  368. required:
  369. - name
  370. properties:
  371. key:
  372. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  373. type: string
  374. name:
  375. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  376. type: string
  377. route53:
  378. description: Use the AWS Route53 API to manage DNS01 challenge records.
  379. type: object
  380. required:
  381. - region
  382. properties:
  383. accessKeyID:
  384. description: 'The AccessKeyID is used for authentication. Cannot be set when SecretAccessKeyID is set. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  385. type: string
  386. accessKeyIDSecretRef:
  387. description: 'The SecretAccessKey is used for authentication. If set, pull the AWS access key ID from a key within a Kubernetes Secret. Cannot be set when AccessKeyID is set. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  388. type: object
  389. required:
  390. - name
  391. properties:
  392. key:
  393. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  394. type: string
  395. name:
  396. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  397. type: string
  398. hostedZoneID:
  399. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  400. type: string
  401. region:
  402. description: Always set the region when using AccessKeyID and SecretAccessKey
  403. type: string
  404. role:
  405. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  406. type: string
  407. secretAccessKeySecretRef:
  408. description: 'The SecretAccessKey is used for authentication. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  409. type: object
  410. required:
  411. - name
  412. properties:
  413. key:
  414. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  415. type: string
  416. name:
  417. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  418. type: string
  419. webhook:
  420. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  421. type: object
  422. required:
  423. - groupName
  424. - solverName
  425. properties:
  426. config:
  427. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  428. x-kubernetes-preserve-unknown-fields: true
  429. groupName:
  430. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  431. type: string
  432. solverName:
  433. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  434. type: string
  435. http01:
  436. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  437. type: object
  438. properties:
  439. gatewayHTTPRoute:
  440. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  441. type: object
  442. properties:
  443. labels:
  444. description: Custom labels that will be applied to HTTPRoutes created by cert-manager while solving HTTP-01 challenges.
  445. type: object
  446. additionalProperties:
  447. type: string
  448. parentRefs:
  449. description: 'When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute. cert-manager needs to know which parentRefs should be used when creating the HTTPRoute. Usually, the parentRef references a Gateway. See: https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways'
  450. type: array
  451. items:
  452. description: "ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with \"Core\" support: \n * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) \n This API may be extended in the future to support additional kinds of parent resources. \n The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid."
  453. type: object
  454. required:
  455. - name
  456. properties:
  457. group:
  458. description: "Group is the group of the referent. When unspecified, \"gateway.networking.k8s.io\" is inferred. To set the core API group (such as for a \"Service\" kind referent), Group must be explicitly set to \"\" (empty string). \n Support: Core"
  459. type: string
  460. default: gateway.networking.k8s.io
  461. maxLength: 253
  462. pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  463. kind:
  464. description: "Kind is kind of the referent. \n There are two kinds of parent resources with \"Core\" support: \n * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) \n Support for other resources is Implementation-Specific."
  465. type: string
  466. default: Gateway
  467. maxLength: 63
  468. minLength: 1
  469. pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
  470. name:
  471. description: "Name is the name of the referent. \n Support: Core"
  472. type: string
  473. maxLength: 253
  474. minLength: 1
  475. namespace:
  476. description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. \n Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. \n <gateway:experimental:description> ParentRefs from a Route to a Service in the same namespace are \"producer\" routes, which apply default routing rules to inbound connections from any namespace to the Service. \n ParentRefs from a Route to a Service in a different namespace are \"consumer\" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. </gateway:experimental:description> \n Support: Core"
  477. type: string
  478. maxLength: 63
  479. minLength: 1
  480. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  481. port:
  482. description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. \n When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. \n <gateway:experimental:description> When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. </gateway:experimental:description> \n Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. \n For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. \n Support: Extended \n <gateway:experimental>"
  483. type: integer
  484. format: int32
  485. maximum: 65535
  486. minimum: 1
  487. sectionName:
  488. description: "SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: \n * Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. \n Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. \n When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. \n Support: Core"
  489. type: string
  490. maxLength: 253
  491. minLength: 1
  492. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  493. serviceType:
  494. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  495. type: string
  496. ingress:
  497. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  498. type: object
  499. properties:
  500. class:
  501. description: This field configures the annotation `kubernetes.io/ingress.class` when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of `class`, `name` or `ingressClassName` may be specified.
  502. type: string
  503. ingressClassName:
  504. description: This field configures the field `ingressClassName` on the created Ingress resources used to solve ACME challenges that use this challenge solver. This is the recommended way of configuring the ingress class. Only one of `class`, `name` or `ingressClassName` may be specified.
  505. type: string
  506. ingressTemplate:
  507. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  508. type: object
  509. properties:
  510. metadata:
  511. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  512. type: object
  513. properties:
  514. annotations:
  515. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  516. type: object
  517. additionalProperties:
  518. type: string
  519. labels:
  520. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  521. type: object
  522. additionalProperties:
  523. type: string
  524. name:
  525. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources. Only one of `class`, `name` or `ingressClassName` may be specified.
  526. type: string
  527. podTemplate:
  528. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  529. type: object
  530. properties:
  531. metadata:
  532. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  533. type: object
  534. properties:
  535. annotations:
  536. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  537. type: object
  538. additionalProperties:
  539. type: string
  540. labels:
  541. description: Labels that should be added to the created ACME HTTP01 solver pods.
  542. type: object
  543. additionalProperties:
  544. type: string
  545. spec:
  546. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields. All other fields will be ignored.
  547. type: object
  548. properties:
  549. affinity:
  550. description: If specified, the pod's scheduling constraints
  551. type: object
  552. properties:
  553. nodeAffinity:
  554. description: Describes node affinity scheduling rules for the pod.
  555. type: object
  556. properties:
  557. preferredDuringSchedulingIgnoredDuringExecution:
  558. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  559. type: array
  560. items:
  561. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  562. type: object
  563. required:
  564. - preference
  565. - weight
  566. properties:
  567. preference:
  568. description: A node selector term, associated with the corresponding weight.
  569. type: object
  570. properties:
  571. matchExpressions:
  572. description: A list of node selector requirements by node's labels.
  573. type: array
  574. items:
  575. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  576. type: object
  577. required:
  578. - key
  579. - operator
  580. properties:
  581. key:
  582. description: The label key that the selector applies to.
  583. type: string
  584. operator:
  585. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  586. type: string
  587. values:
  588. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  589. type: array
  590. items:
  591. type: string
  592. matchFields:
  593. description: A list of node selector requirements by node's fields.
  594. type: array
  595. items:
  596. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  597. type: object
  598. required:
  599. - key
  600. - operator
  601. properties:
  602. key:
  603. description: The label key that the selector applies to.
  604. type: string
  605. operator:
  606. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  607. type: string
  608. values:
  609. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  610. type: array
  611. items:
  612. type: string
  613. x-kubernetes-map-type: atomic
  614. weight:
  615. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  616. type: integer
  617. format: int32
  618. requiredDuringSchedulingIgnoredDuringExecution:
  619. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  620. type: object
  621. required:
  622. - nodeSelectorTerms
  623. properties:
  624. nodeSelectorTerms:
  625. description: Required. A list of node selector terms. The terms are ORed.
  626. type: array
  627. items:
  628. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  629. type: object
  630. properties:
  631. matchExpressions:
  632. description: A list of node selector requirements by node's labels.
  633. type: array
  634. items:
  635. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  636. type: object
  637. required:
  638. - key
  639. - operator
  640. properties:
  641. key:
  642. description: The label key that the selector applies to.
  643. type: string
  644. operator:
  645. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  646. type: string
  647. values:
  648. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  649. type: array
  650. items:
  651. type: string
  652. matchFields:
  653. description: A list of node selector requirements by node's fields.
  654. type: array
  655. items:
  656. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  657. type: object
  658. required:
  659. - key
  660. - operator
  661. properties:
  662. key:
  663. description: The label key that the selector applies to.
  664. type: string
  665. operator:
  666. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  667. type: string
  668. values:
  669. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  670. type: array
  671. items:
  672. type: string
  673. x-kubernetes-map-type: atomic
  674. x-kubernetes-map-type: atomic
  675. podAffinity:
  676. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  677. type: object
  678. properties:
  679. preferredDuringSchedulingIgnoredDuringExecution:
  680. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  681. type: array
  682. items:
  683. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  684. type: object
  685. required:
  686. - podAffinityTerm
  687. - weight
  688. properties:
  689. podAffinityTerm:
  690. description: Required. A pod affinity term, associated with the corresponding weight.
  691. type: object
  692. required:
  693. - topologyKey
  694. properties:
  695. labelSelector:
  696. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  697. type: object
  698. properties:
  699. matchExpressions:
  700. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  701. type: array
  702. items:
  703. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  704. type: object
  705. required:
  706. - key
  707. - operator
  708. properties:
  709. key:
  710. description: key is the label key that the selector applies to.
  711. type: string
  712. operator:
  713. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  714. type: string
  715. values:
  716. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  717. type: array
  718. items:
  719. type: string
  720. matchLabels:
  721. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  722. type: object
  723. additionalProperties:
  724. type: string
  725. x-kubernetes-map-type: atomic
  726. matchLabelKeys:
  727. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  728. type: array
  729. items:
  730. type: string
  731. x-kubernetes-list-type: atomic
  732. mismatchLabelKeys:
  733. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  734. type: array
  735. items:
  736. type: string
  737. x-kubernetes-list-type: atomic
  738. namespaceSelector:
  739. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  740. type: object
  741. properties:
  742. matchExpressions:
  743. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  744. type: array
  745. items:
  746. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  747. type: object
  748. required:
  749. - key
  750. - operator
  751. properties:
  752. key:
  753. description: key is the label key that the selector applies to.
  754. type: string
  755. operator:
  756. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  757. type: string
  758. values:
  759. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  760. type: array
  761. items:
  762. type: string
  763. matchLabels:
  764. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  765. type: object
  766. additionalProperties:
  767. type: string
  768. x-kubernetes-map-type: atomic
  769. namespaces:
  770. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  771. type: array
  772. items:
  773. type: string
  774. topologyKey:
  775. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  776. type: string
  777. weight:
  778. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  779. type: integer
  780. format: int32
  781. requiredDuringSchedulingIgnoredDuringExecution:
  782. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  783. type: array
  784. items:
  785. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  786. type: object
  787. required:
  788. - topologyKey
  789. properties:
  790. labelSelector:
  791. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  792. type: object
  793. properties:
  794. matchExpressions:
  795. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  796. type: array
  797. items:
  798. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  799. type: object
  800. required:
  801. - key
  802. - operator
  803. properties:
  804. key:
  805. description: key is the label key that the selector applies to.
  806. type: string
  807. operator:
  808. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  809. type: string
  810. values:
  811. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  812. type: array
  813. items:
  814. type: string
  815. matchLabels:
  816. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  817. type: object
  818. additionalProperties:
  819. type: string
  820. x-kubernetes-map-type: atomic
  821. matchLabelKeys:
  822. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  823. type: array
  824. items:
  825. type: string
  826. x-kubernetes-list-type: atomic
  827. mismatchLabelKeys:
  828. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  829. type: array
  830. items:
  831. type: string
  832. x-kubernetes-list-type: atomic
  833. namespaceSelector:
  834. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  835. type: object
  836. properties:
  837. matchExpressions:
  838. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  839. type: array
  840. items:
  841. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  842. type: object
  843. required:
  844. - key
  845. - operator
  846. properties:
  847. key:
  848. description: key is the label key that the selector applies to.
  849. type: string
  850. operator:
  851. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  852. type: string
  853. values:
  854. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  855. type: array
  856. items:
  857. type: string
  858. matchLabels:
  859. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  860. type: object
  861. additionalProperties:
  862. type: string
  863. x-kubernetes-map-type: atomic
  864. namespaces:
  865. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  866. type: array
  867. items:
  868. type: string
  869. topologyKey:
  870. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  871. type: string
  872. podAntiAffinity:
  873. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  874. type: object
  875. properties:
  876. preferredDuringSchedulingIgnoredDuringExecution:
  877. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  878. type: array
  879. items:
  880. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  881. type: object
  882. required:
  883. - podAffinityTerm
  884. - weight
  885. properties:
  886. podAffinityTerm:
  887. description: Required. A pod affinity term, associated with the corresponding weight.
  888. type: object
  889. required:
  890. - topologyKey
  891. properties:
  892. labelSelector:
  893. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  894. type: object
  895. properties:
  896. matchExpressions:
  897. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  898. type: array
  899. items:
  900. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  901. type: object
  902. required:
  903. - key
  904. - operator
  905. properties:
  906. key:
  907. description: key is the label key that the selector applies to.
  908. type: string
  909. operator:
  910. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  911. type: string
  912. values:
  913. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  914. type: array
  915. items:
  916. type: string
  917. matchLabels:
  918. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  919. type: object
  920. additionalProperties:
  921. type: string
  922. x-kubernetes-map-type: atomic
  923. matchLabelKeys:
  924. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  925. type: array
  926. items:
  927. type: string
  928. x-kubernetes-list-type: atomic
  929. mismatchLabelKeys:
  930. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  931. type: array
  932. items:
  933. type: string
  934. x-kubernetes-list-type: atomic
  935. namespaceSelector:
  936. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  937. type: object
  938. properties:
  939. matchExpressions:
  940. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  941. type: array
  942. items:
  943. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  944. type: object
  945. required:
  946. - key
  947. - operator
  948. properties:
  949. key:
  950. description: key is the label key that the selector applies to.
  951. type: string
  952. operator:
  953. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  954. type: string
  955. values:
  956. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  957. type: array
  958. items:
  959. type: string
  960. matchLabels:
  961. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  962. type: object
  963. additionalProperties:
  964. type: string
  965. x-kubernetes-map-type: atomic
  966. namespaces:
  967. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  968. type: array
  969. items:
  970. type: string
  971. topologyKey:
  972. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  973. type: string
  974. weight:
  975. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  976. type: integer
  977. format: int32
  978. requiredDuringSchedulingIgnoredDuringExecution:
  979. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  980. type: array
  981. items:
  982. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  983. type: object
  984. required:
  985. - topologyKey
  986. properties:
  987. labelSelector:
  988. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  989. type: object
  990. properties:
  991. matchExpressions:
  992. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  993. type: array
  994. items:
  995. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  996. type: object
  997. required:
  998. - key
  999. - operator
  1000. properties:
  1001. key:
  1002. description: key is the label key that the selector applies to.
  1003. type: string
  1004. operator:
  1005. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1006. type: string
  1007. values:
  1008. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  1009. type: array
  1010. items:
  1011. type: string
  1012. matchLabels:
  1013. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  1014. type: object
  1015. additionalProperties:
  1016. type: string
  1017. x-kubernetes-map-type: atomic
  1018. matchLabelKeys:
  1019. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  1020. type: array
  1021. items:
  1022. type: string
  1023. x-kubernetes-list-type: atomic
  1024. mismatchLabelKeys:
  1025. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  1026. type: array
  1027. items:
  1028. type: string
  1029. x-kubernetes-list-type: atomic
  1030. namespaceSelector:
  1031. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  1032. type: object
  1033. properties:
  1034. matchExpressions:
  1035. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  1036. type: array
  1037. items:
  1038. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1039. type: object
  1040. required:
  1041. - key
  1042. - operator
  1043. properties:
  1044. key:
  1045. description: key is the label key that the selector applies to.
  1046. type: string
  1047. operator:
  1048. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  1049. type: string
  1050. values:
  1051. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  1052. type: array
  1053. items:
  1054. type: string
  1055. matchLabels:
  1056. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  1057. type: object
  1058. additionalProperties:
  1059. type: string
  1060. x-kubernetes-map-type: atomic
  1061. namespaces:
  1062. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  1063. type: array
  1064. items:
  1065. type: string
  1066. topologyKey:
  1067. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  1068. type: string
  1069. imagePullSecrets:
  1070. description: If specified, the pod's imagePullSecrets
  1071. type: array
  1072. items:
  1073. description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
  1074. type: object
  1075. properties:
  1076. name:
  1077. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  1078. type: string
  1079. x-kubernetes-map-type: atomic
  1080. nodeSelector:
  1081. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  1082. type: object
  1083. additionalProperties:
  1084. type: string
  1085. priorityClassName:
  1086. description: If specified, the pod's priorityClassName.
  1087. type: string
  1088. serviceAccountName:
  1089. description: If specified, the pod's service account
  1090. type: string
  1091. tolerations:
  1092. description: If specified, the pod's tolerations.
  1093. type: array
  1094. items:
  1095. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  1096. type: object
  1097. properties:
  1098. effect:
  1099. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  1100. type: string
  1101. key:
  1102. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  1103. type: string
  1104. operator:
  1105. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  1106. type: string
  1107. tolerationSeconds:
  1108. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  1109. type: integer
  1110. format: int64
  1111. value:
  1112. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  1113. type: string
  1114. serviceType:
  1115. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  1116. type: string
  1117. selector:
  1118. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  1119. type: object
  1120. properties:
  1121. dnsNames:
  1122. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  1123. type: array
  1124. items:
  1125. type: string
  1126. dnsZones:
  1127. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  1128. type: array
  1129. items:
  1130. type: string
  1131. matchLabels:
  1132. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  1133. type: object
  1134. additionalProperties:
  1135. type: string
  1136. ca:
  1137. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  1138. type: object
  1139. required:
  1140. - secretName
  1141. properties:
  1142. crlDistributionPoints:
  1143. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  1144. type: array
  1145. items:
  1146. type: string
  1147. issuingCertificateURLs:
  1148. description: IssuingCertificateURLs is a list of URLs which this issuer should embed into certificates it creates. See https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1 for more details. As an example, such a URL might be "http://ca.domain.com/ca.crt".
  1149. type: array
  1150. items:
  1151. type: string
  1152. ocspServers:
  1153. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  1154. type: array
  1155. items:
  1156. type: string
  1157. secretName:
  1158. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  1159. type: string
  1160. selfSigned:
  1161. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  1162. type: object
  1163. properties:
  1164. crlDistributionPoints:
  1165. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  1166. type: array
  1167. items:
  1168. type: string
  1169. vault:
  1170. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  1171. type: object
  1172. required:
  1173. - auth
  1174. - path
  1175. - server
  1176. properties:
  1177. auth:
  1178. description: Auth configures how cert-manager authenticates with the Vault server.
  1179. type: object
  1180. properties:
  1181. appRole:
  1182. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  1183. type: object
  1184. required:
  1185. - path
  1186. - roleId
  1187. - secretRef
  1188. properties:
  1189. path:
  1190. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  1191. type: string
  1192. roleId:
  1193. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  1194. type: string
  1195. secretRef:
  1196. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  1197. type: object
  1198. required:
  1199. - name
  1200. properties:
  1201. key:
  1202. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1203. type: string
  1204. name:
  1205. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1206. type: string
  1207. kubernetes:
  1208. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  1209. type: object
  1210. required:
  1211. - role
  1212. properties:
  1213. mountPath:
  1214. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  1215. type: string
  1216. role:
  1217. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  1218. type: string
  1219. secretRef:
  1220. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  1221. type: object
  1222. required:
  1223. - name
  1224. properties:
  1225. key:
  1226. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1227. type: string
  1228. name:
  1229. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1230. type: string
  1231. serviceAccountRef:
  1232. description: A reference to a service account that will be used to request a bound token (also known as "projected token"). Compared to using "secretRef", using this field means that you don't rely on statically bound tokens. To use this field, you must configure an RBAC rule to let cert-manager request a token.
  1233. type: object
  1234. required:
  1235. - name
  1236. properties:
  1237. name:
  1238. description: Name of the ServiceAccount used to request a token.
  1239. type: string
  1240. tokenSecretRef:
  1241. description: TokenSecretRef authenticates with Vault by presenting a token.
  1242. type: object
  1243. required:
  1244. - name
  1245. properties:
  1246. key:
  1247. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1248. type: string
  1249. name:
  1250. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1251. type: string
  1252. caBundle:
  1253. description: Base64-encoded bundle of PEM CAs which will be used to validate the certificate chain presented by Vault. Only used if using HTTPS to connect to Vault and ignored for HTTP connections. Mutually exclusive with CABundleSecretRef. If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in the cert-manager controller container is used to validate the TLS connection.
  1254. type: string
  1255. format: byte
  1256. caBundleSecretRef:
  1257. description: Reference to a Secret containing a bundle of PEM-encoded CAs to use when verifying the certificate chain presented by Vault when using HTTPS. Mutually exclusive with CABundle. If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in the cert-manager controller container is used to validate the TLS connection. If no key for the Secret is specified, cert-manager will default to 'ca.crt'.
  1258. type: object
  1259. required:
  1260. - name
  1261. properties:
  1262. key:
  1263. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1264. type: string
  1265. name:
  1266. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1267. type: string
  1268. namespace:
  1269. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  1270. type: string
  1271. path:
  1272. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  1273. type: string
  1274. server:
  1275. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  1276. type: string
  1277. venafi:
  1278. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  1279. type: object
  1280. required:
  1281. - zone
  1282. properties:
  1283. cloud:
  1284. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  1285. type: object
  1286. required:
  1287. - apiTokenSecretRef
  1288. properties:
  1289. apiTokenSecretRef:
  1290. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  1291. type: object
  1292. required:
  1293. - name
  1294. properties:
  1295. key:
  1296. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1297. type: string
  1298. name:
  1299. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1300. type: string
  1301. url:
  1302. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  1303. type: string
  1304. tpp:
  1305. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  1306. type: object
  1307. required:
  1308. - credentialsRef
  1309. - url
  1310. properties:
  1311. caBundle:
  1312. description: Base64-encoded bundle of PEM CAs which will be used to validate the certificate chain presented by the TPP server. Only used if using HTTPS; ignored for HTTP. If undefined, the certificate bundle in the cert-manager controller container is used to validate the chain.
  1313. type: string
  1314. format: byte
  1315. credentialsRef:
  1316. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  1317. type: object
  1318. required:
  1319. - name
  1320. properties:
  1321. name:
  1322. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1323. type: string
  1324. url:
  1325. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  1326. type: string
  1327. zone:
  1328. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  1329. type: string
  1330. status:
  1331. description: Status of the ClusterIssuer. This is set and managed automatically.
  1332. type: object
  1333. properties:
  1334. acme:
  1335. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  1336. type: object
  1337. properties:
  1338. lastPrivateKeyHash:
  1339. description: LastPrivateKeyHash is a hash of the private key associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  1340. type: string
  1341. lastRegisteredEmail:
  1342. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  1343. type: string
  1344. uri:
  1345. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  1346. type: string
  1347. conditions:
  1348. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  1349. type: array
  1350. items:
  1351. description: IssuerCondition contains condition information for an Issuer.
  1352. type: object
  1353. required:
  1354. - status
  1355. - type
  1356. properties:
  1357. lastTransitionTime:
  1358. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  1359. type: string
  1360. format: date-time
  1361. message:
  1362. description: Message is a human readable description of the details of the last transition, complementing reason.
  1363. type: string
  1364. observedGeneration:
  1365. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  1366. type: integer
  1367. format: int64
  1368. reason:
  1369. description: Reason is a brief machine readable explanation for the condition's last transition.
  1370. type: string
  1371. status:
  1372. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  1373. type: string
  1374. enum:
  1375. - "True"
  1376. - "False"
  1377. - Unknown
  1378. type:
  1379. description: Type of the condition, known values are (`Ready`).
  1380. type: string
  1381. x-kubernetes-list-map-keys:
  1382. - type
  1383. x-kubernetes-list-type: map
  1384. served: true
  1385. storage: true
  1386. ---
  1387. # Source: cert-manager/deploy/crds/crd-challenges.yaml
  1388. apiVersion: apiextensions.k8s.io/v1
  1389. kind: CustomResourceDefinition
  1390. metadata:
  1391. name: challenges.acme.cert-manager.io
  1392. labels:
  1393. app: 'cert-manager'
  1394. app.kubernetes.io/name: 'cert-manager'
  1395. app.kubernetes.io/instance: 'cert-manager'
  1396. # Generated labels
  1397. app.kubernetes.io/version: "{{ cert_manager_version }}"
  1398. spec:
  1399. group: acme.cert-manager.io
  1400. names:
  1401. kind: Challenge
  1402. listKind: ChallengeList
  1403. plural: challenges
  1404. singular: challenge
  1405. categories:
  1406. - cert-manager
  1407. - cert-manager-acme
  1408. scope: Namespaced
  1409. versions:
  1410. - additionalPrinterColumns:
  1411. - jsonPath: .status.state
  1412. name: State
  1413. type: string
  1414. - jsonPath: .spec.dnsName
  1415. name: Domain
  1416. type: string
  1417. - jsonPath: .status.reason
  1418. name: Reason
  1419. priority: 1
  1420. type: string
  1421. - 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.
  1422. jsonPath: .metadata.creationTimestamp
  1423. name: Age
  1424. type: date
  1425. name: v1
  1426. schema:
  1427. openAPIV3Schema:
  1428. description: Challenge is a type to represent a Challenge request with an ACME server
  1429. type: object
  1430. required:
  1431. - metadata
  1432. - spec
  1433. properties:
  1434. apiVersion:
  1435. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1436. type: string
  1437. kind:
  1438. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1439. type: string
  1440. metadata:
  1441. type: object
  1442. spec:
  1443. type: object
  1444. required:
  1445. - authorizationURL
  1446. - dnsName
  1447. - issuerRef
  1448. - key
  1449. - solver
  1450. - token
  1451. - type
  1452. - url
  1453. properties:
  1454. authorizationURL:
  1455. description: The URL to the ACME Authorization resource that this challenge is a part of.
  1456. type: string
  1457. dnsName:
  1458. description: dnsName is the identifier that this challenge is for, e.g. example.com. If the requested DNSName is a 'wildcard', this field MUST be set to the non-wildcard domain, e.g. for `*.example.com`, it must be `example.com`.
  1459. type: string
  1460. issuerRef:
  1461. description: References a properly configured ACME-type Issuer which should be used to create this Challenge. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Challenge will be marked as failed.
  1462. type: object
  1463. required:
  1464. - name
  1465. properties:
  1466. group:
  1467. description: Group of the resource being referred to.
  1468. type: string
  1469. kind:
  1470. description: Kind of the resource being referred to.
  1471. type: string
  1472. name:
  1473. description: Name of the resource being referred to.
  1474. type: string
  1475. key:
  1476. description: 'The ACME challenge key for this challenge For HTTP01 challenges, this is the value that must be responded with to complete the HTTP01 challenge in the format: `<private key JWK thumbprint>.<key from acme server for challenge>`. For DNS01 challenges, this is the base64 encoded SHA256 sum of the `<private key JWK thumbprint>.<key from acme server for challenge>` text that must be set as the TXT record content.'
  1477. type: string
  1478. solver:
  1479. description: Contains the domain solving configuration that should be used to solve this challenge resource.
  1480. type: object
  1481. properties:
  1482. dns01:
  1483. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  1484. type: object
  1485. properties:
  1486. acmeDNS:
  1487. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  1488. type: object
  1489. required:
  1490. - accountSecretRef
  1491. - host
  1492. properties:
  1493. accountSecretRef:
  1494. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  1495. type: object
  1496. required:
  1497. - name
  1498. properties:
  1499. key:
  1500. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1501. type: string
  1502. name:
  1503. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1504. type: string
  1505. host:
  1506. type: string
  1507. akamai:
  1508. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  1509. type: object
  1510. required:
  1511. - accessTokenSecretRef
  1512. - clientSecretSecretRef
  1513. - clientTokenSecretRef
  1514. - serviceConsumerDomain
  1515. properties:
  1516. accessTokenSecretRef:
  1517. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  1518. type: object
  1519. required:
  1520. - name
  1521. properties:
  1522. key:
  1523. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1524. type: string
  1525. name:
  1526. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1527. type: string
  1528. clientSecretSecretRef:
  1529. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  1530. type: object
  1531. required:
  1532. - name
  1533. properties:
  1534. key:
  1535. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1536. type: string
  1537. name:
  1538. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1539. type: string
  1540. clientTokenSecretRef:
  1541. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  1542. type: object
  1543. required:
  1544. - name
  1545. properties:
  1546. key:
  1547. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1548. type: string
  1549. name:
  1550. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1551. type: string
  1552. serviceConsumerDomain:
  1553. type: string
  1554. azureDNS:
  1555. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  1556. type: object
  1557. required:
  1558. - resourceGroupName
  1559. - subscriptionID
  1560. properties:
  1561. clientID:
  1562. description: 'Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set.'
  1563. type: string
  1564. clientSecretSecretRef:
  1565. description: 'Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set.'
  1566. type: object
  1567. required:
  1568. - name
  1569. properties:
  1570. key:
  1571. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1572. type: string
  1573. name:
  1574. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1575. type: string
  1576. environment:
  1577. description: name of the Azure environment (default AzurePublicCloud)
  1578. type: string
  1579. enum:
  1580. - AzurePublicCloud
  1581. - AzureChinaCloud
  1582. - AzureGermanCloud
  1583. - AzureUSGovernmentCloud
  1584. hostedZoneName:
  1585. description: name of the DNS zone that should be used
  1586. type: string
  1587. managedIdentity:
  1588. description: 'Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set.'
  1589. type: object
  1590. properties:
  1591. clientID:
  1592. description: client ID of the managed identity, can not be used at the same time as resourceID
  1593. type: string
  1594. resourceID:
  1595. description: resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity
  1596. type: string
  1597. resourceGroupName:
  1598. description: resource group the DNS zone is located in
  1599. type: string
  1600. subscriptionID:
  1601. description: ID of the Azure subscription
  1602. type: string
  1603. tenantID:
  1604. description: 'Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set.'
  1605. type: string
  1606. cloudDNS:
  1607. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  1608. type: object
  1609. required:
  1610. - project
  1611. properties:
  1612. hostedZoneName:
  1613. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  1614. type: string
  1615. project:
  1616. type: string
  1617. serviceAccountSecretRef:
  1618. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  1619. type: object
  1620. required:
  1621. - name
  1622. properties:
  1623. key:
  1624. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1625. type: string
  1626. name:
  1627. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1628. type: string
  1629. cloudflare:
  1630. description: Use the Cloudflare API to manage DNS01 challenge records.
  1631. type: object
  1632. properties:
  1633. apiKeySecretRef:
  1634. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  1635. type: object
  1636. required:
  1637. - name
  1638. properties:
  1639. key:
  1640. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1641. type: string
  1642. name:
  1643. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1644. type: string
  1645. apiTokenSecretRef:
  1646. description: API token used to authenticate with Cloudflare.
  1647. type: object
  1648. required:
  1649. - name
  1650. properties:
  1651. key:
  1652. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1653. type: string
  1654. name:
  1655. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1656. type: string
  1657. email:
  1658. description: Email of the account, only required when using API key based authentication.
  1659. type: string
  1660. cnameStrategy:
  1661. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  1662. type: string
  1663. enum:
  1664. - None
  1665. - Follow
  1666. digitalocean:
  1667. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  1668. type: object
  1669. required:
  1670. - tokenSecretRef
  1671. properties:
  1672. tokenSecretRef:
  1673. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  1674. type: object
  1675. required:
  1676. - name
  1677. properties:
  1678. key:
  1679. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1680. type: string
  1681. name:
  1682. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1683. type: string
  1684. rfc2136:
  1685. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  1686. type: object
  1687. required:
  1688. - nameserver
  1689. properties:
  1690. nameserver:
  1691. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  1692. type: string
  1693. tsigAlgorithm:
  1694. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  1695. type: string
  1696. tsigKeyName:
  1697. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  1698. type: string
  1699. tsigSecretSecretRef:
  1700. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  1701. type: object
  1702. required:
  1703. - name
  1704. properties:
  1705. key:
  1706. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1707. type: string
  1708. name:
  1709. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1710. type: string
  1711. route53:
  1712. description: Use the AWS Route53 API to manage DNS01 challenge records.
  1713. type: object
  1714. required:
  1715. - region
  1716. properties:
  1717. accessKeyID:
  1718. description: 'The AccessKeyID is used for authentication. Cannot be set when SecretAccessKeyID is set. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  1719. type: string
  1720. accessKeyIDSecretRef:
  1721. description: 'The SecretAccessKey is used for authentication. If set, pull the AWS access key ID from a key within a Kubernetes Secret. Cannot be set when AccessKeyID is set. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  1722. type: object
  1723. required:
  1724. - name
  1725. properties:
  1726. key:
  1727. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1728. type: string
  1729. name:
  1730. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1731. type: string
  1732. hostedZoneID:
  1733. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  1734. type: string
  1735. region:
  1736. description: Always set the region when using AccessKeyID and SecretAccessKey
  1737. type: string
  1738. role:
  1739. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  1740. type: string
  1741. secretAccessKeySecretRef:
  1742. description: 'The SecretAccessKey is used for authentication. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  1743. type: object
  1744. required:
  1745. - name
  1746. properties:
  1747. key:
  1748. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  1749. type: string
  1750. name:
  1751. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1752. type: string
  1753. webhook:
  1754. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  1755. type: object
  1756. required:
  1757. - groupName
  1758. - solverName
  1759. properties:
  1760. config:
  1761. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  1762. x-kubernetes-preserve-unknown-fields: true
  1763. groupName:
  1764. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  1765. type: string
  1766. solverName:
  1767. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  1768. type: string
  1769. http01:
  1770. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  1771. type: object
  1772. properties:
  1773. gatewayHTTPRoute:
  1774. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  1775. type: object
  1776. properties:
  1777. labels:
  1778. description: Custom labels that will be applied to HTTPRoutes created by cert-manager while solving HTTP-01 challenges.
  1779. type: object
  1780. additionalProperties:
  1781. type: string
  1782. parentRefs:
  1783. description: 'When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute. cert-manager needs to know which parentRefs should be used when creating the HTTPRoute. Usually, the parentRef references a Gateway. See: https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways'
  1784. type: array
  1785. items:
  1786. description: "ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with \"Core\" support: \n * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) \n This API may be extended in the future to support additional kinds of parent resources. \n The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid."
  1787. type: object
  1788. required:
  1789. - name
  1790. properties:
  1791. group:
  1792. description: "Group is the group of the referent. When unspecified, \"gateway.networking.k8s.io\" is inferred. To set the core API group (such as for a \"Service\" kind referent), Group must be explicitly set to \"\" (empty string). \n Support: Core"
  1793. type: string
  1794. default: gateway.networking.k8s.io
  1795. maxLength: 253
  1796. pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1797. kind:
  1798. description: "Kind is kind of the referent. \n There are two kinds of parent resources with \"Core\" support: \n * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) \n Support for other resources is Implementation-Specific."
  1799. type: string
  1800. default: Gateway
  1801. maxLength: 63
  1802. minLength: 1
  1803. pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
  1804. name:
  1805. description: "Name is the name of the referent. \n Support: Core"
  1806. type: string
  1807. maxLength: 253
  1808. minLength: 1
  1809. namespace:
  1810. description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. \n Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. \n <gateway:experimental:description> ParentRefs from a Route to a Service in the same namespace are \"producer\" routes, which apply default routing rules to inbound connections from any namespace to the Service. \n ParentRefs from a Route to a Service in a different namespace are \"consumer\" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. </gateway:experimental:description> \n Support: Core"
  1811. type: string
  1812. maxLength: 63
  1813. minLength: 1
  1814. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1815. port:
  1816. description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. \n When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. \n <gateway:experimental:description> When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. </gateway:experimental:description> \n Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. \n For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. \n Support: Extended \n <gateway:experimental>"
  1817. type: integer
  1818. format: int32
  1819. maximum: 65535
  1820. minimum: 1
  1821. sectionName:
  1822. description: "SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: \n * Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. \n Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. \n When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. \n Support: Core"
  1823. type: string
  1824. maxLength: 253
  1825. minLength: 1
  1826. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1827. serviceType:
  1828. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  1829. type: string
  1830. ingress:
  1831. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  1832. type: object
  1833. properties:
  1834. class:
  1835. description: This field configures the annotation `kubernetes.io/ingress.class` when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of `class`, `name` or `ingressClassName` may be specified.
  1836. type: string
  1837. ingressClassName:
  1838. description: This field configures the field `ingressClassName` on the created Ingress resources used to solve ACME challenges that use this challenge solver. This is the recommended way of configuring the ingress class. Only one of `class`, `name` or `ingressClassName` may be specified.
  1839. type: string
  1840. ingressTemplate:
  1841. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  1842. type: object
  1843. properties:
  1844. metadata:
  1845. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  1846. type: object
  1847. properties:
  1848. annotations:
  1849. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  1850. type: object
  1851. additionalProperties:
  1852. type: string
  1853. labels:
  1854. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  1855. type: object
  1856. additionalProperties:
  1857. type: string
  1858. name:
  1859. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources. Only one of `class`, `name` or `ingressClassName` may be specified.
  1860. type: string
  1861. podTemplate:
  1862. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  1863. type: object
  1864. properties:
  1865. metadata:
  1866. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  1867. type: object
  1868. properties:
  1869. annotations:
  1870. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  1871. type: object
  1872. additionalProperties:
  1873. type: string
  1874. labels:
  1875. description: Labels that should be added to the created ACME HTTP01 solver pods.
  1876. type: object
  1877. additionalProperties:
  1878. type: string
  1879. spec:
  1880. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields. All other fields will be ignored.
  1881. type: object
  1882. properties:
  1883. affinity:
  1884. description: If specified, the pod's scheduling constraints
  1885. type: object
  1886. properties:
  1887. nodeAffinity:
  1888. description: Describes node affinity scheduling rules for the pod.
  1889. type: object
  1890. properties:
  1891. preferredDuringSchedulingIgnoredDuringExecution:
  1892. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  1893. type: array
  1894. items:
  1895. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  1896. type: object
  1897. required:
  1898. - preference
  1899. - weight
  1900. properties:
  1901. preference:
  1902. description: A node selector term, associated with the corresponding weight.
  1903. type: object
  1904. properties:
  1905. matchExpressions:
  1906. description: A list of node selector requirements by node's labels.
  1907. type: array
  1908. items:
  1909. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1910. type: object
  1911. required:
  1912. - key
  1913. - operator
  1914. properties:
  1915. key:
  1916. description: The label key that the selector applies to.
  1917. type: string
  1918. operator:
  1919. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  1920. type: string
  1921. values:
  1922. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  1923. type: array
  1924. items:
  1925. type: string
  1926. matchFields:
  1927. description: A list of node selector requirements by node's fields.
  1928. type: array
  1929. items:
  1930. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1931. type: object
  1932. required:
  1933. - key
  1934. - operator
  1935. properties:
  1936. key:
  1937. description: The label key that the selector applies to.
  1938. type: string
  1939. operator:
  1940. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  1941. type: string
  1942. values:
  1943. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  1944. type: array
  1945. items:
  1946. type: string
  1947. x-kubernetes-map-type: atomic
  1948. weight:
  1949. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  1950. type: integer
  1951. format: int32
  1952. requiredDuringSchedulingIgnoredDuringExecution:
  1953. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  1954. type: object
  1955. required:
  1956. - nodeSelectorTerms
  1957. properties:
  1958. nodeSelectorTerms:
  1959. description: Required. A list of node selector terms. The terms are ORed.
  1960. type: array
  1961. items:
  1962. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  1963. type: object
  1964. properties:
  1965. matchExpressions:
  1966. description: A list of node selector requirements by node's labels.
  1967. type: array
  1968. items:
  1969. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1970. type: object
  1971. required:
  1972. - key
  1973. - operator
  1974. properties:
  1975. key:
  1976. description: The label key that the selector applies to.
  1977. type: string
  1978. operator:
  1979. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  1980. type: string
  1981. values:
  1982. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  1983. type: array
  1984. items:
  1985. type: string
  1986. matchFields:
  1987. description: A list of node selector requirements by node's fields.
  1988. type: array
  1989. items:
  1990. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  1991. type: object
  1992. required:
  1993. - key
  1994. - operator
  1995. properties:
  1996. key:
  1997. description: The label key that the selector applies to.
  1998. type: string
  1999. operator:
  2000. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2001. type: string
  2002. values:
  2003. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  2004. type: array
  2005. items:
  2006. type: string
  2007. x-kubernetes-map-type: atomic
  2008. x-kubernetes-map-type: atomic
  2009. podAffinity:
  2010. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  2011. type: object
  2012. properties:
  2013. preferredDuringSchedulingIgnoredDuringExecution:
  2014. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  2015. type: array
  2016. items:
  2017. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2018. type: object
  2019. required:
  2020. - podAffinityTerm
  2021. - weight
  2022. properties:
  2023. podAffinityTerm:
  2024. description: Required. A pod affinity term, associated with the corresponding weight.
  2025. type: object
  2026. required:
  2027. - topologyKey
  2028. properties:
  2029. labelSelector:
  2030. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  2031. type: object
  2032. properties:
  2033. matchExpressions:
  2034. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2035. type: array
  2036. items:
  2037. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2038. type: object
  2039. required:
  2040. - key
  2041. - operator
  2042. properties:
  2043. key:
  2044. description: key is the label key that the selector applies to.
  2045. type: string
  2046. operator:
  2047. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2048. type: string
  2049. values:
  2050. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2051. type: array
  2052. items:
  2053. type: string
  2054. matchLabels:
  2055. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2056. type: object
  2057. additionalProperties:
  2058. type: string
  2059. x-kubernetes-map-type: atomic
  2060. matchLabelKeys:
  2061. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2062. type: array
  2063. items:
  2064. type: string
  2065. x-kubernetes-list-type: atomic
  2066. mismatchLabelKeys:
  2067. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2068. type: array
  2069. items:
  2070. type: string
  2071. x-kubernetes-list-type: atomic
  2072. namespaceSelector:
  2073. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2074. type: object
  2075. properties:
  2076. matchExpressions:
  2077. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2078. type: array
  2079. items:
  2080. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2081. type: object
  2082. required:
  2083. - key
  2084. - operator
  2085. properties:
  2086. key:
  2087. description: key is the label key that the selector applies to.
  2088. type: string
  2089. operator:
  2090. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2091. type: string
  2092. values:
  2093. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2094. type: array
  2095. items:
  2096. type: string
  2097. matchLabels:
  2098. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2099. type: object
  2100. additionalProperties:
  2101. type: string
  2102. x-kubernetes-map-type: atomic
  2103. namespaces:
  2104. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2105. type: array
  2106. items:
  2107. type: string
  2108. topologyKey:
  2109. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2110. type: string
  2111. weight:
  2112. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2113. type: integer
  2114. format: int32
  2115. requiredDuringSchedulingIgnoredDuringExecution:
  2116. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  2117. type: array
  2118. items:
  2119. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  2120. type: object
  2121. required:
  2122. - topologyKey
  2123. properties:
  2124. labelSelector:
  2125. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  2126. type: object
  2127. properties:
  2128. matchExpressions:
  2129. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2130. type: array
  2131. items:
  2132. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2133. type: object
  2134. required:
  2135. - key
  2136. - operator
  2137. properties:
  2138. key:
  2139. description: key is the label key that the selector applies to.
  2140. type: string
  2141. operator:
  2142. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2143. type: string
  2144. values:
  2145. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2146. type: array
  2147. items:
  2148. type: string
  2149. matchLabels:
  2150. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2151. type: object
  2152. additionalProperties:
  2153. type: string
  2154. x-kubernetes-map-type: atomic
  2155. matchLabelKeys:
  2156. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2157. type: array
  2158. items:
  2159. type: string
  2160. x-kubernetes-list-type: atomic
  2161. mismatchLabelKeys:
  2162. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2163. type: array
  2164. items:
  2165. type: string
  2166. x-kubernetes-list-type: atomic
  2167. namespaceSelector:
  2168. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2169. type: object
  2170. properties:
  2171. matchExpressions:
  2172. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2173. type: array
  2174. items:
  2175. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2176. type: object
  2177. required:
  2178. - key
  2179. - operator
  2180. properties:
  2181. key:
  2182. description: key is the label key that the selector applies to.
  2183. type: string
  2184. operator:
  2185. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2186. type: string
  2187. values:
  2188. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2189. type: array
  2190. items:
  2191. type: string
  2192. matchLabels:
  2193. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2194. type: object
  2195. additionalProperties:
  2196. type: string
  2197. x-kubernetes-map-type: atomic
  2198. namespaces:
  2199. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2200. type: array
  2201. items:
  2202. type: string
  2203. topologyKey:
  2204. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2205. type: string
  2206. podAntiAffinity:
  2207. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  2208. type: object
  2209. properties:
  2210. preferredDuringSchedulingIgnoredDuringExecution:
  2211. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  2212. type: array
  2213. items:
  2214. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2215. type: object
  2216. required:
  2217. - podAffinityTerm
  2218. - weight
  2219. properties:
  2220. podAffinityTerm:
  2221. description: Required. A pod affinity term, associated with the corresponding weight.
  2222. type: object
  2223. required:
  2224. - topologyKey
  2225. properties:
  2226. labelSelector:
  2227. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  2228. type: object
  2229. properties:
  2230. matchExpressions:
  2231. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2232. type: array
  2233. items:
  2234. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2235. type: object
  2236. required:
  2237. - key
  2238. - operator
  2239. properties:
  2240. key:
  2241. description: key is the label key that the selector applies to.
  2242. type: string
  2243. operator:
  2244. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2245. type: string
  2246. values:
  2247. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2248. type: array
  2249. items:
  2250. type: string
  2251. matchLabels:
  2252. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2253. type: object
  2254. additionalProperties:
  2255. type: string
  2256. x-kubernetes-map-type: atomic
  2257. matchLabelKeys:
  2258. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2259. type: array
  2260. items:
  2261. type: string
  2262. x-kubernetes-list-type: atomic
  2263. mismatchLabelKeys:
  2264. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2265. type: array
  2266. items:
  2267. type: string
  2268. x-kubernetes-list-type: atomic
  2269. namespaceSelector:
  2270. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2271. type: object
  2272. properties:
  2273. matchExpressions:
  2274. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2275. type: array
  2276. items:
  2277. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2278. type: object
  2279. required:
  2280. - key
  2281. - operator
  2282. properties:
  2283. key:
  2284. description: key is the label key that the selector applies to.
  2285. type: string
  2286. operator:
  2287. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2288. type: string
  2289. values:
  2290. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2291. type: array
  2292. items:
  2293. type: string
  2294. matchLabels:
  2295. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2296. type: object
  2297. additionalProperties:
  2298. type: string
  2299. x-kubernetes-map-type: atomic
  2300. namespaces:
  2301. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2302. type: array
  2303. items:
  2304. type: string
  2305. topologyKey:
  2306. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2307. type: string
  2308. weight:
  2309. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  2310. type: integer
  2311. format: int32
  2312. requiredDuringSchedulingIgnoredDuringExecution:
  2313. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  2314. type: array
  2315. items:
  2316. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  2317. type: object
  2318. required:
  2319. - topologyKey
  2320. properties:
  2321. labelSelector:
  2322. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  2323. type: object
  2324. properties:
  2325. matchExpressions:
  2326. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2327. type: array
  2328. items:
  2329. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2330. type: object
  2331. required:
  2332. - key
  2333. - operator
  2334. properties:
  2335. key:
  2336. description: key is the label key that the selector applies to.
  2337. type: string
  2338. operator:
  2339. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2340. type: string
  2341. values:
  2342. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2343. type: array
  2344. items:
  2345. type: string
  2346. matchLabels:
  2347. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2348. type: object
  2349. additionalProperties:
  2350. type: string
  2351. x-kubernetes-map-type: atomic
  2352. matchLabelKeys:
  2353. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2354. type: array
  2355. items:
  2356. type: string
  2357. x-kubernetes-list-type: atomic
  2358. mismatchLabelKeys:
  2359. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  2360. type: array
  2361. items:
  2362. type: string
  2363. x-kubernetes-list-type: atomic
  2364. namespaceSelector:
  2365. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  2366. type: object
  2367. properties:
  2368. matchExpressions:
  2369. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2370. type: array
  2371. items:
  2372. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2373. type: object
  2374. required:
  2375. - key
  2376. - operator
  2377. properties:
  2378. key:
  2379. description: key is the label key that the selector applies to.
  2380. type: string
  2381. operator:
  2382. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2383. type: string
  2384. values:
  2385. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  2386. type: array
  2387. items:
  2388. type: string
  2389. matchLabels:
  2390. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  2391. type: object
  2392. additionalProperties:
  2393. type: string
  2394. x-kubernetes-map-type: atomic
  2395. namespaces:
  2396. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  2397. type: array
  2398. items:
  2399. type: string
  2400. topologyKey:
  2401. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  2402. type: string
  2403. imagePullSecrets:
  2404. description: If specified, the pod's imagePullSecrets
  2405. type: array
  2406. items:
  2407. description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
  2408. type: object
  2409. properties:
  2410. name:
  2411. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2412. type: string
  2413. x-kubernetes-map-type: atomic
  2414. nodeSelector:
  2415. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  2416. type: object
  2417. additionalProperties:
  2418. type: string
  2419. priorityClassName:
  2420. description: If specified, the pod's priorityClassName.
  2421. type: string
  2422. serviceAccountName:
  2423. description: If specified, the pod's service account
  2424. type: string
  2425. tolerations:
  2426. description: If specified, the pod's tolerations.
  2427. type: array
  2428. items:
  2429. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  2430. type: object
  2431. properties:
  2432. effect:
  2433. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  2434. type: string
  2435. key:
  2436. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  2437. type: string
  2438. operator:
  2439. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  2440. type: string
  2441. tolerationSeconds:
  2442. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  2443. type: integer
  2444. format: int64
  2445. value:
  2446. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  2447. type: string
  2448. serviceType:
  2449. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  2450. type: string
  2451. selector:
  2452. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  2453. type: object
  2454. properties:
  2455. dnsNames:
  2456. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  2457. type: array
  2458. items:
  2459. type: string
  2460. dnsZones:
  2461. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  2462. type: array
  2463. items:
  2464. type: string
  2465. matchLabels:
  2466. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  2467. type: object
  2468. additionalProperties:
  2469. type: string
  2470. token:
  2471. description: The ACME challenge token for this challenge. This is the raw value returned from the ACME server.
  2472. type: string
  2473. type:
  2474. description: The type of ACME challenge this resource represents. One of "HTTP-01" or "DNS-01".
  2475. type: string
  2476. enum:
  2477. - HTTP-01
  2478. - DNS-01
  2479. url:
  2480. description: The URL of the ACME Challenge resource for this challenge. This can be used to lookup details about the status of this challenge.
  2481. type: string
  2482. wildcard:
  2483. description: wildcard will be true if this challenge is for a wildcard identifier, for example '*.example.com'.
  2484. type: boolean
  2485. status:
  2486. type: object
  2487. properties:
  2488. presented:
  2489. description: presented will be set to true if the challenge values for this challenge are currently 'presented'. This *does not* imply the self check is passing. Only that the values have been 'submitted' for the appropriate challenge mechanism (i.e. the DNS01 TXT record has been presented, or the HTTP01 configuration has been configured).
  2490. type: boolean
  2491. processing:
  2492. description: Used to denote whether this challenge should be processed or not. This field will only be set to true by the 'scheduling' component. It will only be set to false by the 'challenges' controller, after the challenge has reached a final state or timed out. If this field is set to false, the challenge controller will not take any more action.
  2493. type: boolean
  2494. reason:
  2495. description: Contains human readable information on why the Challenge is in the current state.
  2496. type: string
  2497. state:
  2498. description: Contains the current 'state' of the challenge. If not set, the state of the challenge is unknown.
  2499. type: string
  2500. enum:
  2501. - valid
  2502. - ready
  2503. - pending
  2504. - processing
  2505. - invalid
  2506. - expired
  2507. - errored
  2508. served: true
  2509. storage: true
  2510. subresources:
  2511. status: {}
  2512. ---
  2513. # Source: cert-manager/deploy/crds/crd-certificaterequests.yaml
  2514. apiVersion: apiextensions.k8s.io/v1
  2515. kind: CustomResourceDefinition
  2516. metadata:
  2517. name: certificaterequests.cert-manager.io
  2518. labels:
  2519. app: 'cert-manager'
  2520. app.kubernetes.io/name: 'cert-manager'
  2521. app.kubernetes.io/instance: 'cert-manager'
  2522. # Generated labels
  2523. app.kubernetes.io/version: "{{ cert_manager_version }}"
  2524. spec:
  2525. group: cert-manager.io
  2526. names:
  2527. kind: CertificateRequest
  2528. listKind: CertificateRequestList
  2529. plural: certificaterequests
  2530. shortNames:
  2531. - cr
  2532. - crs
  2533. singular: certificaterequest
  2534. categories:
  2535. - cert-manager
  2536. scope: Namespaced
  2537. versions:
  2538. - name: v1
  2539. subresources:
  2540. status: {}
  2541. additionalPrinterColumns:
  2542. - jsonPath: .status.conditions[?(@.type=="Approved")].status
  2543. name: Approved
  2544. type: string
  2545. - jsonPath: .status.conditions[?(@.type=="Denied")].status
  2546. name: Denied
  2547. type: string
  2548. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  2549. name: Ready
  2550. type: string
  2551. - jsonPath: .spec.issuerRef.name
  2552. name: Issuer
  2553. type: string
  2554. - jsonPath: .spec.username
  2555. name: Requestor
  2556. type: string
  2557. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  2558. name: Status
  2559. priority: 1
  2560. type: string
  2561. - jsonPath: .metadata.creationTimestamp
  2562. 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.
  2563. name: Age
  2564. type: date
  2565. schema:
  2566. openAPIV3Schema:
  2567. description: "A CertificateRequest is used to request a signed certificate from one of the configured issuers. \n All fields within the CertificateRequest's `spec` are immutable after creation. A CertificateRequest will either succeed or fail, as denoted by its `Ready` status condition and its `status.failureTime` field. \n A CertificateRequest is a one-shot resource, meaning it represents a single point in time request for a certificate and cannot be re-used."
  2568. type: object
  2569. properties:
  2570. apiVersion:
  2571. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2572. type: string
  2573. kind:
  2574. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2575. type: string
  2576. metadata:
  2577. type: object
  2578. spec:
  2579. description: Specification of the desired state of the CertificateRequest resource. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  2580. type: object
  2581. required:
  2582. - issuerRef
  2583. - request
  2584. properties:
  2585. duration:
  2586. description: Requested 'duration' (i.e. lifetime) of the Certificate. Note that the issuer may choose to ignore the requested duration, just like any other requested attribute.
  2587. type: string
  2588. extra:
  2589. description: Extra contains extra attributes of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2590. type: object
  2591. additionalProperties:
  2592. type: array
  2593. items:
  2594. type: string
  2595. groups:
  2596. description: Groups contains group membership of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2597. type: array
  2598. items:
  2599. type: string
  2600. x-kubernetes-list-type: atomic
  2601. isCA:
  2602. description: "Requested basic constraints isCA value. Note that the issuer may choose to ignore the requested isCA value, just like any other requested attribute. \n NOTE: If the CSR in the `Request` field has a BasicConstraints extension, it must have the same isCA value as specified here. \n If true, this will automatically add the `cert sign` usage to the list of requested `usages`."
  2603. type: boolean
  2604. issuerRef:
  2605. description: "Reference to the issuer responsible for issuing the certificate. If the issuer is namespace-scoped, it must be in the same namespace as the Certificate. If the issuer is cluster-scoped, it can be used from any namespace. \n The `name` field of the reference must always be specified."
  2606. type: object
  2607. required:
  2608. - name
  2609. properties:
  2610. group:
  2611. description: Group of the resource being referred to.
  2612. type: string
  2613. kind:
  2614. description: Kind of the resource being referred to.
  2615. type: string
  2616. name:
  2617. description: Name of the resource being referred to.
  2618. type: string
  2619. request:
  2620. description: "The PEM-encoded X.509 certificate signing request to be submitted to the issuer for signing. \n If the CSR has a BasicConstraints extension, its isCA attribute must match the `isCA` value of this CertificateRequest. If the CSR has a KeyUsage extension, its key usages must match the key usages in the `usages` field of this CertificateRequest. If the CSR has a ExtKeyUsage extension, its extended key usages must match the extended key usages in the `usages` field of this CertificateRequest."
  2621. type: string
  2622. format: byte
  2623. uid:
  2624. description: UID contains the uid of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2625. type: string
  2626. usages:
  2627. description: "Requested key usages and extended key usages. \n NOTE: If the CSR in the `Request` field has uses the KeyUsage or ExtKeyUsage extension, these extensions must have the same values as specified here without any additional values. \n If unset, defaults to `digital signature` and `key encipherment`."
  2628. type: array
  2629. items:
  2630. description: "KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 \n Valid KeyUsage values are as follows: \"signing\", \"digital signature\", \"content commitment\", \"key encipherment\", \"key agreement\", \"data encipherment\", \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\", \"server auth\", \"client auth\", \"code signing\", \"email protection\", \"s/mime\", \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\", \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\""
  2631. type: string
  2632. enum:
  2633. - signing
  2634. - digital signature
  2635. - content commitment
  2636. - key encipherment
  2637. - key agreement
  2638. - data encipherment
  2639. - cert sign
  2640. - crl sign
  2641. - encipher only
  2642. - decipher only
  2643. - any
  2644. - server auth
  2645. - client auth
  2646. - code signing
  2647. - email protection
  2648. - s/mime
  2649. - ipsec end system
  2650. - ipsec tunnel
  2651. - ipsec user
  2652. - timestamping
  2653. - ocsp signing
  2654. - microsoft sgc
  2655. - netscape sgc
  2656. username:
  2657. description: Username contains the name of the user that created the CertificateRequest. Populated by the cert-manager webhook on creation and immutable.
  2658. type: string
  2659. status:
  2660. description: 'Status of the CertificateRequest. This is set and managed automatically. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  2661. type: object
  2662. properties:
  2663. ca:
  2664. description: The PEM encoded X.509 certificate of the signer, also known as the CA (Certificate Authority). This is set on a best-effort basis by different issuers. If not set, the CA is assumed to be unknown/not available.
  2665. type: string
  2666. format: byte
  2667. certificate:
  2668. description: The PEM encoded X.509 certificate resulting from the certificate signing request. If not set, the CertificateRequest has either not been completed or has failed. More information on failure can be found by checking the `conditions` field.
  2669. type: string
  2670. format: byte
  2671. conditions:
  2672. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`, `InvalidRequest`, `Approved` and `Denied`.
  2673. type: array
  2674. items:
  2675. description: CertificateRequestCondition contains condition information for a CertificateRequest.
  2676. type: object
  2677. required:
  2678. - status
  2679. - type
  2680. properties:
  2681. lastTransitionTime:
  2682. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  2683. type: string
  2684. format: date-time
  2685. message:
  2686. description: Message is a human readable description of the details of the last transition, complementing reason.
  2687. type: string
  2688. reason:
  2689. description: Reason is a brief machine readable explanation for the condition's last transition.
  2690. type: string
  2691. status:
  2692. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  2693. type: string
  2694. enum:
  2695. - "True"
  2696. - "False"
  2697. - Unknown
  2698. type:
  2699. description: Type of the condition, known values are (`Ready`, `InvalidRequest`, `Approved`, `Denied`).
  2700. type: string
  2701. x-kubernetes-list-map-keys:
  2702. - type
  2703. x-kubernetes-list-type: map
  2704. failureTime:
  2705. description: FailureTime stores the time that this CertificateRequest failed. This is used to influence garbage collection and back-off.
  2706. type: string
  2707. format: date-time
  2708. served: true
  2709. storage: true
  2710. ---
  2711. # Source: cert-manager/deploy/crds/crd-issuers.yaml
  2712. apiVersion: apiextensions.k8s.io/v1
  2713. kind: CustomResourceDefinition
  2714. metadata:
  2715. name: issuers.cert-manager.io
  2716. labels:
  2717. app: 'cert-manager'
  2718. app.kubernetes.io/name: 'cert-manager'
  2719. app.kubernetes.io/instance: "cert-manager"
  2720. # Generated labels
  2721. app.kubernetes.io/version: "{{ cert_manager_version }}"
  2722. spec:
  2723. group: cert-manager.io
  2724. names:
  2725. kind: Issuer
  2726. listKind: IssuerList
  2727. plural: issuers
  2728. singular: issuer
  2729. categories:
  2730. - cert-manager
  2731. scope: Namespaced
  2732. versions:
  2733. - name: v1
  2734. subresources:
  2735. status: {}
  2736. additionalPrinterColumns:
  2737. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  2738. name: Ready
  2739. type: string
  2740. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  2741. name: Status
  2742. priority: 1
  2743. type: string
  2744. - jsonPath: .metadata.creationTimestamp
  2745. 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.
  2746. name: Age
  2747. type: date
  2748. schema:
  2749. openAPIV3Schema:
  2750. description: An Issuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is scoped to a single namespace and can therefore only be referenced by resources within the same namespace.
  2751. type: object
  2752. required:
  2753. - spec
  2754. properties:
  2755. apiVersion:
  2756. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2757. type: string
  2758. kind:
  2759. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2760. type: string
  2761. metadata:
  2762. type: object
  2763. spec:
  2764. description: Desired state of the Issuer resource.
  2765. type: object
  2766. properties:
  2767. acme:
  2768. description: ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.
  2769. type: object
  2770. required:
  2771. - privateKeySecretRef
  2772. - server
  2773. properties:
  2774. caBundle:
  2775. description: Base64-encoded bundle of PEM CAs which can be used to validate the certificate chain presented by the ACME server. Mutually exclusive with SkipTLSVerify; prefer using CABundle to prevent various kinds of security vulnerabilities. If CABundle and SkipTLSVerify are unset, the system certificate bundle inside the container is used to validate the TLS connection.
  2776. type: string
  2777. format: byte
  2778. disableAccountKeyGeneration:
  2779. description: Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.
  2780. type: boolean
  2781. email:
  2782. description: Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.
  2783. type: string
  2784. enableDurationFeature:
  2785. description: Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.
  2786. type: boolean
  2787. externalAccountBinding:
  2788. description: ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.
  2789. type: object
  2790. required:
  2791. - keyID
  2792. - keySecretRef
  2793. properties:
  2794. keyAlgorithm:
  2795. description: 'Deprecated: keyAlgorithm field exists for historical compatibility reasons and should not be used. The algorithm is now hardcoded to HS256 in golang/x/crypto/acme.'
  2796. type: string
  2797. enum:
  2798. - HS256
  2799. - HS384
  2800. - HS512
  2801. keyID:
  2802. description: keyID is the ID of the CA key that the External Account is bound to.
  2803. type: string
  2804. keySecretRef:
  2805. description: keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.
  2806. type: object
  2807. required:
  2808. - name
  2809. properties:
  2810. key:
  2811. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2812. type: string
  2813. name:
  2814. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2815. type: string
  2816. preferredChain:
  2817. description: 'PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let''s Encrypt''s DST crosssign you would use: "DST Root CA X3" or "ISRG Root X1" for the newer Let''s Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer''s CN'
  2818. type: string
  2819. maxLength: 64
  2820. privateKeySecretRef:
  2821. description: PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.
  2822. type: object
  2823. required:
  2824. - name
  2825. properties:
  2826. key:
  2827. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2828. type: string
  2829. name:
  2830. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2831. type: string
  2832. server:
  2833. description: 'Server is the URL used to access the ACME server''s ''directory'' endpoint. For example, for Let''s Encrypt''s staging endpoint, you would use: "https://acme-staging-v02.api.letsencrypt.org/directory". Only ACME v2 endpoints (i.e. RFC 8555) are supported.'
  2834. type: string
  2835. skipTLSVerify:
  2836. description: 'INSECURE: Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have the TLS certificate chain validated. Mutually exclusive with CABundle; prefer using CABundle to prevent various kinds of security vulnerabilities. Only enable this option in development environments. If CABundle and SkipTLSVerify are unset, the system certificate bundle inside the container is used to validate the TLS connection. Defaults to false.'
  2837. type: boolean
  2838. solvers:
  2839. description: 'Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/'
  2840. type: array
  2841. items:
  2842. description: An ACMEChallengeSolver describes how to solve ACME challenges for the issuer it is part of. A selector may be provided to use different solving strategies for different DNS names. Only one of HTTP01 or DNS01 must be provided.
  2843. type: object
  2844. properties:
  2845. dns01:
  2846. description: Configures cert-manager to attempt to complete authorizations by performing the DNS01 challenge flow.
  2847. type: object
  2848. properties:
  2849. acmeDNS:
  2850. description: Use the 'ACME DNS' (https://github.com/joohoi/acme-dns) API to manage DNS01 challenge records.
  2851. type: object
  2852. required:
  2853. - accountSecretRef
  2854. - host
  2855. properties:
  2856. accountSecretRef:
  2857. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  2858. type: object
  2859. required:
  2860. - name
  2861. properties:
  2862. key:
  2863. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2864. type: string
  2865. name:
  2866. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2867. type: string
  2868. host:
  2869. type: string
  2870. akamai:
  2871. description: Use the Akamai DNS zone management API to manage DNS01 challenge records.
  2872. type: object
  2873. required:
  2874. - accessTokenSecretRef
  2875. - clientSecretSecretRef
  2876. - clientTokenSecretRef
  2877. - serviceConsumerDomain
  2878. properties:
  2879. accessTokenSecretRef:
  2880. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  2881. type: object
  2882. required:
  2883. - name
  2884. properties:
  2885. key:
  2886. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2887. type: string
  2888. name:
  2889. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2890. type: string
  2891. clientSecretSecretRef:
  2892. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  2893. type: object
  2894. required:
  2895. - name
  2896. properties:
  2897. key:
  2898. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2899. type: string
  2900. name:
  2901. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2902. type: string
  2903. clientTokenSecretRef:
  2904. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  2905. type: object
  2906. required:
  2907. - name
  2908. properties:
  2909. key:
  2910. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2911. type: string
  2912. name:
  2913. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2914. type: string
  2915. serviceConsumerDomain:
  2916. type: string
  2917. azureDNS:
  2918. description: Use the Microsoft Azure DNS API to manage DNS01 challenge records.
  2919. type: object
  2920. required:
  2921. - resourceGroupName
  2922. - subscriptionID
  2923. properties:
  2924. clientID:
  2925. description: 'Auth: Azure Service Principal: The ClientID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientSecret and TenantID must also be set.'
  2926. type: string
  2927. clientSecretSecretRef:
  2928. description: 'Auth: Azure Service Principal: A reference to a Secret containing the password associated with the Service Principal. If set, ClientID and TenantID must also be set.'
  2929. type: object
  2930. required:
  2931. - name
  2932. properties:
  2933. key:
  2934. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2935. type: string
  2936. name:
  2937. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2938. type: string
  2939. environment:
  2940. description: name of the Azure environment (default AzurePublicCloud)
  2941. type: string
  2942. enum:
  2943. - AzurePublicCloud
  2944. - AzureChinaCloud
  2945. - AzureGermanCloud
  2946. - AzureUSGovernmentCloud
  2947. hostedZoneName:
  2948. description: name of the DNS zone that should be used
  2949. type: string
  2950. managedIdentity:
  2951. description: 'Auth: Azure Workload Identity or Azure Managed Service Identity: Settings to enable Azure Workload Identity or Azure Managed Service Identity If set, ClientID, ClientSecret and TenantID must not be set.'
  2952. type: object
  2953. properties:
  2954. clientID:
  2955. description: client ID of the managed identity, can not be used at the same time as resourceID
  2956. type: string
  2957. resourceID:
  2958. description: resource ID of the managed identity, can not be used at the same time as clientID Cannot be used for Azure Managed Service Identity
  2959. type: string
  2960. resourceGroupName:
  2961. description: resource group the DNS zone is located in
  2962. type: string
  2963. subscriptionID:
  2964. description: ID of the Azure subscription
  2965. type: string
  2966. tenantID:
  2967. description: 'Auth: Azure Service Principal: The TenantID of the Azure Service Principal used to authenticate with Azure DNS. If set, ClientID and ClientSecret must also be set.'
  2968. type: string
  2969. cloudDNS:
  2970. description: Use the Google Cloud DNS API to manage DNS01 challenge records.
  2971. type: object
  2972. required:
  2973. - project
  2974. properties:
  2975. hostedZoneName:
  2976. description: HostedZoneName is an optional field that tells cert-manager in which Cloud DNS zone the challenge record has to be created. If left empty cert-manager will automatically choose a zone.
  2977. type: string
  2978. project:
  2979. type: string
  2980. serviceAccountSecretRef:
  2981. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  2982. type: object
  2983. required:
  2984. - name
  2985. properties:
  2986. key:
  2987. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  2988. type: string
  2989. name:
  2990. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2991. type: string
  2992. cloudflare:
  2993. description: Use the Cloudflare API to manage DNS01 challenge records.
  2994. type: object
  2995. properties:
  2996. apiKeySecretRef:
  2997. description: 'API key to use to authenticate with Cloudflare. Note: using an API token to authenticate is now the recommended method as it allows greater control of permissions.'
  2998. type: object
  2999. required:
  3000. - name
  3001. properties:
  3002. key:
  3003. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3004. type: string
  3005. name:
  3006. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3007. type: string
  3008. apiTokenSecretRef:
  3009. description: API token used to authenticate with Cloudflare.
  3010. type: object
  3011. required:
  3012. - name
  3013. properties:
  3014. key:
  3015. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3016. type: string
  3017. name:
  3018. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3019. type: string
  3020. email:
  3021. description: Email of the account, only required when using API key based authentication.
  3022. type: string
  3023. cnameStrategy:
  3024. description: CNAMEStrategy configures how the DNS01 provider should handle CNAME records when found in DNS zones.
  3025. type: string
  3026. enum:
  3027. - None
  3028. - Follow
  3029. digitalocean:
  3030. description: Use the DigitalOcean DNS API to manage DNS01 challenge records.
  3031. type: object
  3032. required:
  3033. - tokenSecretRef
  3034. properties:
  3035. tokenSecretRef:
  3036. description: A reference to a specific 'key' within a Secret resource. In some instances, `key` is a required field.
  3037. type: object
  3038. required:
  3039. - name
  3040. properties:
  3041. key:
  3042. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3043. type: string
  3044. name:
  3045. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3046. type: string
  3047. rfc2136:
  3048. description: Use RFC2136 ("Dynamic Updates in the Domain Name System") (https://datatracker.ietf.org/doc/rfc2136/) to manage DNS01 challenge records.
  3049. type: object
  3050. required:
  3051. - nameserver
  3052. properties:
  3053. nameserver:
  3054. description: The IP address or hostname of an authoritative DNS server supporting RFC2136 in the form host:port. If the host is an IPv6 address it must be enclosed in square brackets (e.g [2001:db8::1]) ; port is optional. This field is required.
  3055. type: string
  3056. tsigAlgorithm:
  3057. description: 'The TSIG Algorithm configured in the DNS supporting RFC2136. Used only when ``tsigSecretSecretRef`` and ``tsigKeyName`` are defined. Supported values are (case-insensitive): ``HMACMD5`` (default), ``HMACSHA1``, ``HMACSHA256`` or ``HMACSHA512``.'
  3058. type: string
  3059. tsigKeyName:
  3060. description: The TSIG Key name configured in the DNS. If ``tsigSecretSecretRef`` is defined, this field is required.
  3061. type: string
  3062. tsigSecretSecretRef:
  3063. description: The name of the secret containing the TSIG value. If ``tsigKeyName`` is defined, this field is required.
  3064. type: object
  3065. required:
  3066. - name
  3067. properties:
  3068. key:
  3069. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3070. type: string
  3071. name:
  3072. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3073. type: string
  3074. route53:
  3075. description: Use the AWS Route53 API to manage DNS01 challenge records.
  3076. type: object
  3077. required:
  3078. - region
  3079. properties:
  3080. accessKeyID:
  3081. description: 'The AccessKeyID is used for authentication. Cannot be set when SecretAccessKeyID is set. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  3082. type: string
  3083. accessKeyIDSecretRef:
  3084. description: 'The SecretAccessKey is used for authentication. If set, pull the AWS access key ID from a key within a Kubernetes Secret. Cannot be set when AccessKeyID is set. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  3085. type: object
  3086. required:
  3087. - name
  3088. properties:
  3089. key:
  3090. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3091. type: string
  3092. name:
  3093. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3094. type: string
  3095. hostedZoneID:
  3096. description: If set, the provider will manage only this zone in Route53 and will not do an lookup using the route53:ListHostedZonesByName api call.
  3097. type: string
  3098. region:
  3099. description: Always set the region when using AccessKeyID and SecretAccessKey
  3100. type: string
  3101. role:
  3102. description: Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
  3103. type: string
  3104. secretAccessKeySecretRef:
  3105. description: 'The SecretAccessKey is used for authentication. If neither the Access Key nor Key ID are set, we fall-back to using env vars, shared credentials file or AWS Instance metadata, see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  3106. type: object
  3107. required:
  3108. - name
  3109. properties:
  3110. key:
  3111. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3112. type: string
  3113. name:
  3114. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3115. type: string
  3116. webhook:
  3117. description: Configure an external webhook based DNS01 challenge solver to manage DNS01 challenge records.
  3118. type: object
  3119. required:
  3120. - groupName
  3121. - solverName
  3122. properties:
  3123. config:
  3124. description: Additional configuration that should be passed to the webhook apiserver when challenges are processed. This can contain arbitrary JSON data. Secret values should not be specified in this stanza. If secret values are needed (e.g. credentials for a DNS service), you should use a SecretKeySelector to reference a Secret resource. For details on the schema of this field, consult the webhook provider implementation's documentation.
  3125. x-kubernetes-preserve-unknown-fields: true
  3126. groupName:
  3127. description: The API group name that should be used when POSTing ChallengePayload resources to the webhook apiserver. This should be the same as the GroupName specified in the webhook provider implementation.
  3128. type: string
  3129. solverName:
  3130. description: The name of the solver to use, as defined in the webhook provider implementation. This will typically be the name of the provider, e.g. 'cloudflare'.
  3131. type: string
  3132. http01:
  3133. description: Configures cert-manager to attempt to complete authorizations by performing the HTTP01 challenge flow. It is not possible to obtain certificates for wildcard domain names (e.g. `*.example.com`) using the HTTP01 challenge mechanism.
  3134. type: object
  3135. properties:
  3136. gatewayHTTPRoute:
  3137. description: The Gateway API is a sig-network community API that models service networking in Kubernetes (https://gateway-api.sigs.k8s.io/). The Gateway solver will create HTTPRoutes with the specified labels in the same namespace as the challenge. This solver is experimental, and fields / behaviour may change in the future.
  3138. type: object
  3139. properties:
  3140. labels:
  3141. description: Custom labels that will be applied to HTTPRoutes created by cert-manager while solving HTTP-01 challenges.
  3142. type: object
  3143. additionalProperties:
  3144. type: string
  3145. parentRefs:
  3146. description: 'When solving an HTTP-01 challenge, cert-manager creates an HTTPRoute. cert-manager needs to know which parentRefs should be used when creating the HTTPRoute. Usually, the parentRef references a Gateway. See: https://gateway-api.sigs.k8s.io/api-types/httproute/#attaching-to-gateways'
  3147. type: array
  3148. items:
  3149. description: "ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with \"Core\" support: \n * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) \n This API may be extended in the future to support additional kinds of parent resources. \n The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid."
  3150. type: object
  3151. required:
  3152. - name
  3153. properties:
  3154. group:
  3155. description: "Group is the group of the referent. When unspecified, \"gateway.networking.k8s.io\" is inferred. To set the core API group (such as for a \"Service\" kind referent), Group must be explicitly set to \"\" (empty string). \n Support: Core"
  3156. type: string
  3157. default: gateway.networking.k8s.io
  3158. maxLength: 253
  3159. pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  3160. kind:
  3161. description: "Kind is kind of the referent. \n There are two kinds of parent resources with \"Core\" support: \n * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, experimental, ClusterIP Services only) \n Support for other resources is Implementation-Specific."
  3162. type: string
  3163. default: Gateway
  3164. maxLength: 63
  3165. minLength: 1
  3166. pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
  3167. name:
  3168. description: "Name is the name of the referent. \n Support: Core"
  3169. type: string
  3170. maxLength: 253
  3171. minLength: 1
  3172. namespace:
  3173. description: "Namespace is the namespace of the referent. When unspecified, this refers to the local namespace of the Route. \n Note that there are specific rules for ParentRefs which cross namespace boundaries. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example: Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable any other kind of cross-namespace reference. \n <gateway:experimental:description> ParentRefs from a Route to a Service in the same namespace are \"producer\" routes, which apply default routing rules to inbound connections from any namespace to the Service. \n ParentRefs from a Route to a Service in a different namespace are \"consumer\" routes, and these routing rules are only applied to outbound connections originating from the same namespace as the Route, for which the intended destination of the connections are a Service targeted as a ParentRef of the Route. </gateway:experimental:description> \n Support: Core"
  3174. type: string
  3175. maxLength: 63
  3176. minLength: 1
  3177. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  3178. port:
  3179. description: "Port is the network port this Route targets. It can be interpreted differently based on the type of parent resource. \n When the parent resource is a Gateway, this targets all listeners listening on the specified port that also support this kind of Route(and select this Route). It's not recommended to set `Port` unless the networking behaviors specified in a Route must apply to a specific port as opposed to a listener(s) whose port(s) may be changed. When both Port and SectionName are specified, the name and port of the selected listener must match both specified values. \n <gateway:experimental:description> When the parent resource is a Service, this targets a specific port in the Service spec. When both Port (experimental) and SectionName are specified, the name and port of the selected port must match both specified values. </gateway:experimental:description> \n Implementations MAY choose to support other parent resources. Implementations supporting other types of parent resources MUST clearly document how/if Port is interpreted. \n For the purpose of status, an attachment is considered successful as long as the parent resource accepts it partially. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. \n Support: Extended \n <gateway:experimental>"
  3180. type: integer
  3181. format: int32
  3182. maximum: 65535
  3183. minimum: 1
  3184. sectionName:
  3185. description: "SectionName is the name of a section within the target resource. In the following resources, SectionName is interpreted as the following: \n * Gateway: Listener Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. * Service: Port Name. When both Port (experimental) and SectionName are specified, the name and port of the selected listener must match both specified values. Note that attaching Routes to Services as Parents is part of experimental Mesh support and is not supported for any other purpose. \n Implementations MAY choose to support attaching Routes to other resources. If that is the case, they MUST clearly document how SectionName is interpreted. \n When unspecified (empty string), this will reference the entire resource. For the purpose of status, an attachment is considered successful if at least one section in the parent resource accepts it. For example, Gateway listeners can restrict which Routes can attach to them by Route kind, namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from the referencing Route, the Route MUST be considered successfully attached. If no Gateway listeners accept attachment from this Route, the Route MUST be considered detached from the Gateway. \n Support: Core"
  3186. type: string
  3187. maxLength: 253
  3188. minLength: 1
  3189. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  3190. serviceType:
  3191. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  3192. type: string
  3193. ingress:
  3194. description: The ingress based HTTP01 challenge solver will solve challenges by creating or modifying Ingress resources in order to route requests for '/.well-known/acme-challenge/XYZ' to 'challenge solver' pods that are provisioned by cert-manager for each Challenge to be completed.
  3195. type: object
  3196. properties:
  3197. class:
  3198. description: This field configures the annotation `kubernetes.io/ingress.class` when creating Ingress resources to solve ACME challenges that use this challenge solver. Only one of `class`, `name` or `ingressClassName` may be specified.
  3199. type: string
  3200. ingressClassName:
  3201. description: This field configures the field `ingressClassName` on the created Ingress resources used to solve ACME challenges that use this challenge solver. This is the recommended way of configuring the ingress class. Only one of `class`, `name` or `ingressClassName` may be specified.
  3202. type: string
  3203. ingressTemplate:
  3204. description: Optional ingress template used to configure the ACME challenge solver ingress used for HTTP01 challenges.
  3205. type: object
  3206. properties:
  3207. metadata:
  3208. description: ObjectMeta overrides for the ingress used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  3209. type: object
  3210. properties:
  3211. annotations:
  3212. description: Annotations that should be added to the created ACME HTTP01 solver ingress.
  3213. type: object
  3214. additionalProperties:
  3215. type: string
  3216. labels:
  3217. description: Labels that should be added to the created ACME HTTP01 solver ingress.
  3218. type: object
  3219. additionalProperties:
  3220. type: string
  3221. name:
  3222. description: The name of the ingress resource that should have ACME challenge solving routes inserted into it in order to solve HTTP01 challenges. This is typically used in conjunction with ingress controllers like ingress-gce, which maintains a 1:1 mapping between external IPs and ingress resources. Only one of `class`, `name` or `ingressClassName` may be specified.
  3223. type: string
  3224. podTemplate:
  3225. description: Optional pod template used to configure the ACME challenge solver pods used for HTTP01 challenges.
  3226. type: object
  3227. properties:
  3228. metadata:
  3229. description: ObjectMeta overrides for the pod used to solve HTTP01 challenges. Only the 'labels' and 'annotations' fields may be set. If labels or annotations overlap with in-built values, the values here will override the in-built values.
  3230. type: object
  3231. properties:
  3232. annotations:
  3233. description: Annotations that should be added to the create ACME HTTP01 solver pods.
  3234. type: object
  3235. additionalProperties:
  3236. type: string
  3237. labels:
  3238. description: Labels that should be added to the created ACME HTTP01 solver pods.
  3239. type: object
  3240. additionalProperties:
  3241. type: string
  3242. spec:
  3243. description: PodSpec defines overrides for the HTTP01 challenge solver pod. Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields. All other fields will be ignored.
  3244. type: object
  3245. properties:
  3246. affinity:
  3247. description: If specified, the pod's scheduling constraints
  3248. type: object
  3249. properties:
  3250. nodeAffinity:
  3251. description: Describes node affinity scheduling rules for the pod.
  3252. type: object
  3253. properties:
  3254. preferredDuringSchedulingIgnoredDuringExecution:
  3255. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
  3256. type: array
  3257. items:
  3258. description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
  3259. type: object
  3260. required:
  3261. - preference
  3262. - weight
  3263. properties:
  3264. preference:
  3265. description: A node selector term, associated with the corresponding weight.
  3266. type: object
  3267. properties:
  3268. matchExpressions:
  3269. description: A list of node selector requirements by node's labels.
  3270. type: array
  3271. items:
  3272. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3273. type: object
  3274. required:
  3275. - key
  3276. - operator
  3277. properties:
  3278. key:
  3279. description: The label key that the selector applies to.
  3280. type: string
  3281. operator:
  3282. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3283. type: string
  3284. values:
  3285. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3286. type: array
  3287. items:
  3288. type: string
  3289. matchFields:
  3290. description: A list of node selector requirements by node's fields.
  3291. type: array
  3292. items:
  3293. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3294. type: object
  3295. required:
  3296. - key
  3297. - operator
  3298. properties:
  3299. key:
  3300. description: The label key that the selector applies to.
  3301. type: string
  3302. operator:
  3303. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3304. type: string
  3305. values:
  3306. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3307. type: array
  3308. items:
  3309. type: string
  3310. x-kubernetes-map-type: atomic
  3311. weight:
  3312. description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  3313. type: integer
  3314. format: int32
  3315. requiredDuringSchedulingIgnoredDuringExecution:
  3316. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
  3317. type: object
  3318. required:
  3319. - nodeSelectorTerms
  3320. properties:
  3321. nodeSelectorTerms:
  3322. description: Required. A list of node selector terms. The terms are ORed.
  3323. type: array
  3324. items:
  3325. description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
  3326. type: object
  3327. properties:
  3328. matchExpressions:
  3329. description: A list of node selector requirements by node's labels.
  3330. type: array
  3331. items:
  3332. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3333. type: object
  3334. required:
  3335. - key
  3336. - operator
  3337. properties:
  3338. key:
  3339. description: The label key that the selector applies to.
  3340. type: string
  3341. operator:
  3342. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3343. type: string
  3344. values:
  3345. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3346. type: array
  3347. items:
  3348. type: string
  3349. matchFields:
  3350. description: A list of node selector requirements by node's fields.
  3351. type: array
  3352. items:
  3353. description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3354. type: object
  3355. required:
  3356. - key
  3357. - operator
  3358. properties:
  3359. key:
  3360. description: The label key that the selector applies to.
  3361. type: string
  3362. operator:
  3363. description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  3364. type: string
  3365. values:
  3366. description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
  3367. type: array
  3368. items:
  3369. type: string
  3370. x-kubernetes-map-type: atomic
  3371. x-kubernetes-map-type: atomic
  3372. podAffinity:
  3373. description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  3374. type: object
  3375. properties:
  3376. preferredDuringSchedulingIgnoredDuringExecution:
  3377. description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  3378. type: array
  3379. items:
  3380. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3381. type: object
  3382. required:
  3383. - podAffinityTerm
  3384. - weight
  3385. properties:
  3386. podAffinityTerm:
  3387. description: Required. A pod affinity term, associated with the corresponding weight.
  3388. type: object
  3389. required:
  3390. - topologyKey
  3391. properties:
  3392. labelSelector:
  3393. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  3394. type: object
  3395. properties:
  3396. matchExpressions:
  3397. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3398. type: array
  3399. items:
  3400. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3401. type: object
  3402. required:
  3403. - key
  3404. - operator
  3405. properties:
  3406. key:
  3407. description: key is the label key that the selector applies to.
  3408. type: string
  3409. operator:
  3410. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3411. type: string
  3412. values:
  3413. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3414. type: array
  3415. items:
  3416. type: string
  3417. matchLabels:
  3418. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3419. type: object
  3420. additionalProperties:
  3421. type: string
  3422. x-kubernetes-map-type: atomic
  3423. matchLabelKeys:
  3424. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3425. type: array
  3426. items:
  3427. type: string
  3428. x-kubernetes-list-type: atomic
  3429. mismatchLabelKeys:
  3430. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3431. type: array
  3432. items:
  3433. type: string
  3434. x-kubernetes-list-type: atomic
  3435. namespaceSelector:
  3436. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3437. type: object
  3438. properties:
  3439. matchExpressions:
  3440. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3441. type: array
  3442. items:
  3443. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3444. type: object
  3445. required:
  3446. - key
  3447. - operator
  3448. properties:
  3449. key:
  3450. description: key is the label key that the selector applies to.
  3451. type: string
  3452. operator:
  3453. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3454. type: string
  3455. values:
  3456. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3457. type: array
  3458. items:
  3459. type: string
  3460. matchLabels:
  3461. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3462. type: object
  3463. additionalProperties:
  3464. type: string
  3465. x-kubernetes-map-type: atomic
  3466. namespaces:
  3467. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3468. type: array
  3469. items:
  3470. type: string
  3471. topologyKey:
  3472. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3473. type: string
  3474. weight:
  3475. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3476. type: integer
  3477. format: int32
  3478. requiredDuringSchedulingIgnoredDuringExecution:
  3479. description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  3480. type: array
  3481. items:
  3482. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  3483. type: object
  3484. required:
  3485. - topologyKey
  3486. properties:
  3487. labelSelector:
  3488. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  3489. type: object
  3490. properties:
  3491. matchExpressions:
  3492. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3493. type: array
  3494. items:
  3495. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3496. type: object
  3497. required:
  3498. - key
  3499. - operator
  3500. properties:
  3501. key:
  3502. description: key is the label key that the selector applies to.
  3503. type: string
  3504. operator:
  3505. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3506. type: string
  3507. values:
  3508. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3509. type: array
  3510. items:
  3511. type: string
  3512. matchLabels:
  3513. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3514. type: object
  3515. additionalProperties:
  3516. type: string
  3517. x-kubernetes-map-type: atomic
  3518. matchLabelKeys:
  3519. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3520. type: array
  3521. items:
  3522. type: string
  3523. x-kubernetes-list-type: atomic
  3524. mismatchLabelKeys:
  3525. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3526. type: array
  3527. items:
  3528. type: string
  3529. x-kubernetes-list-type: atomic
  3530. namespaceSelector:
  3531. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3532. type: object
  3533. properties:
  3534. matchExpressions:
  3535. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3536. type: array
  3537. items:
  3538. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3539. type: object
  3540. required:
  3541. - key
  3542. - operator
  3543. properties:
  3544. key:
  3545. description: key is the label key that the selector applies to.
  3546. type: string
  3547. operator:
  3548. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3549. type: string
  3550. values:
  3551. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3552. type: array
  3553. items:
  3554. type: string
  3555. matchLabels:
  3556. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3557. type: object
  3558. additionalProperties:
  3559. type: string
  3560. x-kubernetes-map-type: atomic
  3561. namespaces:
  3562. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3563. type: array
  3564. items:
  3565. type: string
  3566. topologyKey:
  3567. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3568. type: string
  3569. podAntiAffinity:
  3570. description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  3571. type: object
  3572. properties:
  3573. preferredDuringSchedulingIgnoredDuringExecution:
  3574. description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
  3575. type: array
  3576. items:
  3577. description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3578. type: object
  3579. required:
  3580. - podAffinityTerm
  3581. - weight
  3582. properties:
  3583. podAffinityTerm:
  3584. description: Required. A pod affinity term, associated with the corresponding weight.
  3585. type: object
  3586. required:
  3587. - topologyKey
  3588. properties:
  3589. labelSelector:
  3590. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  3591. type: object
  3592. properties:
  3593. matchExpressions:
  3594. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3595. type: array
  3596. items:
  3597. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3598. type: object
  3599. required:
  3600. - key
  3601. - operator
  3602. properties:
  3603. key:
  3604. description: key is the label key that the selector applies to.
  3605. type: string
  3606. operator:
  3607. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3608. type: string
  3609. values:
  3610. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3611. type: array
  3612. items:
  3613. type: string
  3614. matchLabels:
  3615. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3616. type: object
  3617. additionalProperties:
  3618. type: string
  3619. x-kubernetes-map-type: atomic
  3620. matchLabelKeys:
  3621. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3622. type: array
  3623. items:
  3624. type: string
  3625. x-kubernetes-list-type: atomic
  3626. mismatchLabelKeys:
  3627. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3628. type: array
  3629. items:
  3630. type: string
  3631. x-kubernetes-list-type: atomic
  3632. namespaceSelector:
  3633. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3634. type: object
  3635. properties:
  3636. matchExpressions:
  3637. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3638. type: array
  3639. items:
  3640. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3641. type: object
  3642. required:
  3643. - key
  3644. - operator
  3645. properties:
  3646. key:
  3647. description: key is the label key that the selector applies to.
  3648. type: string
  3649. operator:
  3650. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3651. type: string
  3652. values:
  3653. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3654. type: array
  3655. items:
  3656. type: string
  3657. matchLabels:
  3658. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3659. type: object
  3660. additionalProperties:
  3661. type: string
  3662. x-kubernetes-map-type: atomic
  3663. namespaces:
  3664. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3665. type: array
  3666. items:
  3667. type: string
  3668. topologyKey:
  3669. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3670. type: string
  3671. weight:
  3672. description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3673. type: integer
  3674. format: int32
  3675. requiredDuringSchedulingIgnoredDuringExecution:
  3676. description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
  3677. type: array
  3678. items:
  3679. description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
  3680. type: object
  3681. required:
  3682. - topologyKey
  3683. properties:
  3684. labelSelector:
  3685. description: A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
  3686. type: object
  3687. properties:
  3688. matchExpressions:
  3689. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3690. type: array
  3691. items:
  3692. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3693. type: object
  3694. required:
  3695. - key
  3696. - operator
  3697. properties:
  3698. key:
  3699. description: key is the label key that the selector applies to.
  3700. type: string
  3701. operator:
  3702. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3703. type: string
  3704. values:
  3705. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3706. type: array
  3707. items:
  3708. type: string
  3709. matchLabels:
  3710. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3711. type: object
  3712. additionalProperties:
  3713. type: string
  3714. x-kubernetes-map-type: atomic
  3715. matchLabelKeys:
  3716. description: MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3717. type: array
  3718. items:
  3719. type: string
  3720. x-kubernetes-list-type: atomic
  3721. mismatchLabelKeys:
  3722. description: MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.
  3723. type: array
  3724. items:
  3725. type: string
  3726. x-kubernetes-list-type: atomic
  3727. namespaceSelector:
  3728. description: A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
  3729. type: object
  3730. properties:
  3731. matchExpressions:
  3732. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3733. type: array
  3734. items:
  3735. description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3736. type: object
  3737. required:
  3738. - key
  3739. - operator
  3740. properties:
  3741. key:
  3742. description: key is the label key that the selector applies to.
  3743. type: string
  3744. operator:
  3745. description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3746. type: string
  3747. values:
  3748. description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
  3749. type: array
  3750. items:
  3751. type: string
  3752. matchLabels:
  3753. description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
  3754. type: object
  3755. additionalProperties:
  3756. type: string
  3757. x-kubernetes-map-type: atomic
  3758. namespaces:
  3759. description: namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
  3760. type: array
  3761. items:
  3762. type: string
  3763. topologyKey:
  3764. description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
  3765. type: string
  3766. imagePullSecrets:
  3767. description: If specified, the pod's imagePullSecrets
  3768. type: array
  3769. items:
  3770. description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
  3771. type: object
  3772. properties:
  3773. name:
  3774. description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  3775. type: string
  3776. x-kubernetes-map-type: atomic
  3777. nodeSelector:
  3778. description: 'NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node''s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
  3779. type: object
  3780. additionalProperties:
  3781. type: string
  3782. priorityClassName:
  3783. description: If specified, the pod's priorityClassName.
  3784. type: string
  3785. serviceAccountName:
  3786. description: If specified, the pod's service account
  3787. type: string
  3788. tolerations:
  3789. description: If specified, the pod's tolerations.
  3790. type: array
  3791. items:
  3792. description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  3793. type: object
  3794. properties:
  3795. effect:
  3796. description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  3797. type: string
  3798. key:
  3799. description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  3800. type: string
  3801. operator:
  3802. description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  3803. type: string
  3804. tolerationSeconds:
  3805. description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  3806. type: integer
  3807. format: int64
  3808. value:
  3809. description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  3810. type: string
  3811. serviceType:
  3812. description: Optional service type for Kubernetes solver service. Supported values are NodePort or ClusterIP. If unset, defaults to NodePort.
  3813. type: string
  3814. selector:
  3815. description: Selector selects a set of DNSNames on the Certificate resource that should be solved using this challenge solver. If not specified, the solver will be treated as the 'default' solver with the lowest priority, i.e. if any other solver has a more specific match, it will be used instead.
  3816. type: object
  3817. properties:
  3818. dnsNames:
  3819. description: List of DNSNames that this solver will be used to solve. If specified and a match is found, a dnsNames selector will take precedence over a dnsZones selector. If multiple solvers match with the same dnsNames value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  3820. type: array
  3821. items:
  3822. type: string
  3823. dnsZones:
  3824. description: List of DNSZones that this solver will be used to solve. The most specific DNS zone match specified here will take precedence over other DNS zone matches, so a solver specifying sys.example.com will be selected over one specifying example.com for the domain www.sys.example.com. If multiple solvers match with the same dnsZones value, the solver with the most matching labels in matchLabels will be selected. If neither has more matches, the solver defined earlier in the list will be selected.
  3825. type: array
  3826. items:
  3827. type: string
  3828. matchLabels:
  3829. description: A label selector that is used to refine the set of certificate's that this challenge solver will apply to.
  3830. type: object
  3831. additionalProperties:
  3832. type: string
  3833. ca:
  3834. description: CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.
  3835. type: object
  3836. required:
  3837. - secretName
  3838. properties:
  3839. crlDistributionPoints:
  3840. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.
  3841. type: array
  3842. items:
  3843. type: string
  3844. issuingCertificateURLs:
  3845. description: IssuingCertificateURLs is a list of URLs which this issuer should embed into certificates it creates. See https://www.rfc-editor.org/rfc/rfc5280#section-4.2.2.1 for more details. As an example, such a URL might be "http://ca.domain.com/ca.crt".
  3846. type: array
  3847. items:
  3848. type: string
  3849. ocspServers:
  3850. description: The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".
  3851. type: array
  3852. items:
  3853. type: string
  3854. secretName:
  3855. description: SecretName is the name of the secret used to sign Certificates issued by this Issuer.
  3856. type: string
  3857. selfSigned:
  3858. description: SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.
  3859. type: object
  3860. properties:
  3861. crlDistributionPoints:
  3862. description: The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.
  3863. type: array
  3864. items:
  3865. type: string
  3866. vault:
  3867. description: Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.
  3868. type: object
  3869. required:
  3870. - auth
  3871. - path
  3872. - server
  3873. properties:
  3874. auth:
  3875. description: Auth configures how cert-manager authenticates with the Vault server.
  3876. type: object
  3877. properties:
  3878. appRole:
  3879. description: AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.
  3880. type: object
  3881. required:
  3882. - path
  3883. - roleId
  3884. - secretRef
  3885. properties:
  3886. path:
  3887. description: 'Path where the App Role authentication backend is mounted in Vault, e.g: "approle"'
  3888. type: string
  3889. roleId:
  3890. description: RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.
  3891. type: string
  3892. secretRef:
  3893. description: Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.
  3894. type: object
  3895. required:
  3896. - name
  3897. properties:
  3898. key:
  3899. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3900. type: string
  3901. name:
  3902. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3903. type: string
  3904. kubernetes:
  3905. description: Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.
  3906. type: object
  3907. required:
  3908. - role
  3909. properties:
  3910. mountPath:
  3911. description: The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.
  3912. type: string
  3913. role:
  3914. description: A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.
  3915. type: string
  3916. secretRef:
  3917. description: The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.
  3918. type: object
  3919. required:
  3920. - name
  3921. properties:
  3922. key:
  3923. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3924. type: string
  3925. name:
  3926. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3927. type: string
  3928. serviceAccountRef:
  3929. description: A reference to a service account that will be used to request a bound token (also known as "projected token"). Compared to using "secretRef", using this field means that you don't rely on statically bound tokens. To use this field, you must configure an RBAC rule to let cert-manager request a token.
  3930. type: object
  3931. required:
  3932. - name
  3933. properties:
  3934. name:
  3935. description: Name of the ServiceAccount used to request a token.
  3936. type: string
  3937. tokenSecretRef:
  3938. description: TokenSecretRef authenticates with Vault by presenting a token.
  3939. type: object
  3940. required:
  3941. - name
  3942. properties:
  3943. key:
  3944. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3945. type: string
  3946. name:
  3947. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3948. type: string
  3949. caBundle:
  3950. description: Base64-encoded bundle of PEM CAs which will be used to validate the certificate chain presented by Vault. Only used if using HTTPS to connect to Vault and ignored for HTTP connections. Mutually exclusive with CABundleSecretRef. If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in the cert-manager controller container is used to validate the TLS connection.
  3951. type: string
  3952. format: byte
  3953. caBundleSecretRef:
  3954. description: Reference to a Secret containing a bundle of PEM-encoded CAs to use when verifying the certificate chain presented by Vault when using HTTPS. Mutually exclusive with CABundle. If neither CABundle nor CABundleSecretRef are defined, the certificate bundle in the cert-manager controller container is used to validate the TLS connection. If no key for the Secret is specified, cert-manager will default to 'ca.crt'.
  3955. type: object
  3956. required:
  3957. - name
  3958. properties:
  3959. key:
  3960. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3961. type: string
  3962. name:
  3963. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3964. type: string
  3965. namespace:
  3966. description: 'Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  3967. type: string
  3968. path:
  3969. description: 'Path is the mount path of the Vault PKI backend''s `sign` endpoint, e.g: "my_pki_mount/sign/my-role-name".'
  3970. type: string
  3971. server:
  3972. description: 'Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".'
  3973. type: string
  3974. venafi:
  3975. description: Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.
  3976. type: object
  3977. required:
  3978. - zone
  3979. properties:
  3980. cloud:
  3981. description: Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.
  3982. type: object
  3983. required:
  3984. - apiTokenSecretRef
  3985. properties:
  3986. apiTokenSecretRef:
  3987. description: APITokenSecretRef is a secret key selector for the Venafi Cloud API token.
  3988. type: object
  3989. required:
  3990. - name
  3991. properties:
  3992. key:
  3993. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  3994. type: string
  3995. name:
  3996. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  3997. type: string
  3998. url:
  3999. description: URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".
  4000. type: string
  4001. tpp:
  4002. description: TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.
  4003. type: object
  4004. required:
  4005. - credentialsRef
  4006. - url
  4007. properties:
  4008. caBundle:
  4009. description: Base64-encoded bundle of PEM CAs which will be used to validate the certificate chain presented by the TPP server. Only used if using HTTPS; ignored for HTTP. If undefined, the certificate bundle in the cert-manager controller container is used to validate the chain.
  4010. type: string
  4011. format: byte
  4012. credentialsRef:
  4013. description: CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.
  4014. type: object
  4015. required:
  4016. - name
  4017. properties:
  4018. name:
  4019. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4020. type: string
  4021. url:
  4022. description: 'URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".'
  4023. type: string
  4024. zone:
  4025. description: Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.
  4026. type: string
  4027. status:
  4028. description: Status of the Issuer. This is set and managed automatically.
  4029. type: object
  4030. properties:
  4031. acme:
  4032. description: ACME specific status options. This field should only be set if the Issuer is configured to use an ACME server to issue certificates.
  4033. type: object
  4034. properties:
  4035. lastPrivateKeyHash:
  4036. description: LastPrivateKeyHash is a hash of the private key associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  4037. type: string
  4038. lastRegisteredEmail:
  4039. description: LastRegisteredEmail is the email associated with the latest registered ACME account, in order to track changes made to registered account associated with the Issuer
  4040. type: string
  4041. uri:
  4042. description: URI is the unique account identifier, which can also be used to retrieve account details from the CA
  4043. type: string
  4044. conditions:
  4045. description: List of status conditions to indicate the status of a CertificateRequest. Known condition types are `Ready`.
  4046. type: array
  4047. items:
  4048. description: IssuerCondition contains condition information for an Issuer.
  4049. type: object
  4050. required:
  4051. - status
  4052. - type
  4053. properties:
  4054. lastTransitionTime:
  4055. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  4056. type: string
  4057. format: date-time
  4058. message:
  4059. description: Message is a human readable description of the details of the last transition, complementing reason.
  4060. type: string
  4061. observedGeneration:
  4062. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Issuer.
  4063. type: integer
  4064. format: int64
  4065. reason:
  4066. description: Reason is a brief machine readable explanation for the condition's last transition.
  4067. type: string
  4068. status:
  4069. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  4070. type: string
  4071. enum:
  4072. - "True"
  4073. - "False"
  4074. - Unknown
  4075. type:
  4076. description: Type of the condition, known values are (`Ready`).
  4077. type: string
  4078. x-kubernetes-list-map-keys:
  4079. - type
  4080. x-kubernetes-list-type: map
  4081. served: true
  4082. storage: true
  4083. ---
  4084. # Source: cert-manager/deploy/crds/crd-certificates.yaml
  4085. apiVersion: apiextensions.k8s.io/v1
  4086. kind: CustomResourceDefinition
  4087. metadata:
  4088. name: certificates.cert-manager.io
  4089. labels:
  4090. app: 'cert-manager'
  4091. app.kubernetes.io/name: 'cert-manager'
  4092. app.kubernetes.io/instance: 'cert-manager'
  4093. # Generated labels
  4094. app.kubernetes.io/version: "{{ cert_manager_version }}"
  4095. spec:
  4096. group: cert-manager.io
  4097. names:
  4098. kind: Certificate
  4099. listKind: CertificateList
  4100. plural: certificates
  4101. shortNames:
  4102. - cert
  4103. - certs
  4104. singular: certificate
  4105. categories:
  4106. - cert-manager
  4107. scope: Namespaced
  4108. versions:
  4109. - name: v1
  4110. subresources:
  4111. status: {}
  4112. additionalPrinterColumns:
  4113. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  4114. name: Ready
  4115. type: string
  4116. - jsonPath: .spec.secretName
  4117. name: Secret
  4118. type: string
  4119. - jsonPath: .spec.issuerRef.name
  4120. name: Issuer
  4121. priority: 1
  4122. type: string
  4123. - jsonPath: .status.conditions[?(@.type=="Ready")].message
  4124. name: Status
  4125. priority: 1
  4126. type: string
  4127. - jsonPath: .metadata.creationTimestamp
  4128. 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.
  4129. name: Age
  4130. type: date
  4131. schema:
  4132. openAPIV3Schema:
  4133. description: "A Certificate resource should be created to ensure an up to date and signed X.509 certificate is stored in the Kubernetes Secret resource named in `spec.secretName`. \n The stored certificate will be renewed before it expires (as configured by `spec.renewBefore`)."
  4134. type: object
  4135. properties:
  4136. apiVersion:
  4137. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4138. type: string
  4139. kind:
  4140. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4141. type: string
  4142. metadata:
  4143. type: object
  4144. spec:
  4145. description: Specification of the desired state of the Certificate resource. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  4146. type: object
  4147. required:
  4148. - issuerRef
  4149. - secretName
  4150. properties:
  4151. additionalOutputFormats:
  4152. description: "Defines extra output formats of the private key and signed certificate chain to be written to this Certificate's target Secret. \n This is an Alpha Feature and is only enabled with the `--feature-gates=AdditionalCertificateOutputFormats=true` option set on both the controller and webhook components."
  4153. type: array
  4154. items:
  4155. description: CertificateAdditionalOutputFormat defines an additional output format of a Certificate resource. These contain supplementary data formats of the signed certificate chain and paired private key.
  4156. type: object
  4157. required:
  4158. - type
  4159. properties:
  4160. type:
  4161. description: Type is the name of the format type that should be written to the Certificate's target Secret.
  4162. type: string
  4163. enum:
  4164. - DER
  4165. - CombinedPEM
  4166. commonName:
  4167. description: "Requested common name X509 certificate subject attribute. More info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6 NOTE: TLS clients will ignore this value when any subject alternative name is set (see https://tools.ietf.org/html/rfc6125#section-6.4.4). \n Should have a length of 64 characters or fewer to avoid generating invalid CSRs. Cannot be set if the `literalSubject` field is set."
  4168. type: string
  4169. dnsNames:
  4170. description: Requested DNS subject alternative names.
  4171. type: array
  4172. items:
  4173. type: string
  4174. duration:
  4175. description: "Requested 'duration' (i.e. lifetime) of the Certificate. Note that the issuer may choose to ignore the requested duration, just like any other requested attribute. \n If unset, this defaults to 90 days. Minimum accepted duration is 1 hour. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration."
  4176. type: string
  4177. emailAddresses:
  4178. description: Requested email subject alternative names.
  4179. type: array
  4180. items:
  4181. type: string
  4182. encodeUsagesInRequest:
  4183. description: "Whether the KeyUsage and ExtKeyUsage extensions should be set in the encoded CSR. \n This option defaults to true, and should only be disabled if the target issuer does not support CSRs with these X509 KeyUsage/ ExtKeyUsage extensions."
  4184. type: boolean
  4185. ipAddresses:
  4186. description: Requested IP address subject alternative names.
  4187. type: array
  4188. items:
  4189. type: string
  4190. isCA:
  4191. description: "Requested basic constraints isCA value. The isCA value is used to set the `isCA` field on the created CertificateRequest resources. Note that the issuer may choose to ignore the requested isCA value, just like any other requested attribute. \n If true, this will automatically add the `cert sign` usage to the list of requested `usages`."
  4192. type: boolean
  4193. issuerRef:
  4194. description: "Reference to the issuer responsible for issuing the certificate. If the issuer is namespace-scoped, it must be in the same namespace as the Certificate. If the issuer is cluster-scoped, it can be used from any namespace. \n The `name` field of the reference must always be specified."
  4195. type: object
  4196. required:
  4197. - name
  4198. properties:
  4199. group:
  4200. description: Group of the resource being referred to.
  4201. type: string
  4202. kind:
  4203. description: Kind of the resource being referred to.
  4204. type: string
  4205. name:
  4206. description: Name of the resource being referred to.
  4207. type: string
  4208. keystores:
  4209. description: Additional keystore output formats to be stored in the Certificate's Secret.
  4210. type: object
  4211. properties:
  4212. jks:
  4213. description: JKS configures options for storing a JKS keystore in the `spec.secretName` Secret resource.
  4214. type: object
  4215. required:
  4216. - create
  4217. - passwordSecretRef
  4218. properties:
  4219. create:
  4220. description: Create enables JKS keystore creation for the Certificate. If true, a file named `keystore.jks` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will be updated immediately. If the issuer provided a CA certificate, a file named `truststore.jks` will also be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef` containing the issuing Certificate Authority
  4221. type: boolean
  4222. passwordSecretRef:
  4223. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the JKS keystore.
  4224. type: object
  4225. required:
  4226. - name
  4227. properties:
  4228. key:
  4229. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4230. type: string
  4231. name:
  4232. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4233. type: string
  4234. pkcs12:
  4235. description: PKCS12 configures options for storing a PKCS12 keystore in the `spec.secretName` Secret resource.
  4236. type: object
  4237. required:
  4238. - create
  4239. - passwordSecretRef
  4240. properties:
  4241. create:
  4242. description: Create enables PKCS12 keystore creation for the Certificate. If true, a file named `keystore.p12` will be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef`. The keystore file will be updated immediately. If the issuer provided a CA certificate, a file named `truststore.p12` will also be created in the target Secret resource, encrypted using the password stored in `passwordSecretRef` containing the issuing Certificate Authority
  4243. type: boolean
  4244. passwordSecretRef:
  4245. description: PasswordSecretRef is a reference to a key in a Secret resource containing the password used to encrypt the PKCS12 keystore.
  4246. type: object
  4247. required:
  4248. - name
  4249. properties:
  4250. key:
  4251. description: The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.
  4252. type: string
  4253. name:
  4254. description: 'Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4255. type: string
  4256. profile:
  4257. description: "Profile specifies the key and certificate encryption algorithms and the HMAC algorithm used to create the PKCS12 keystore. Default value is `LegacyRC2` for backward compatibility. \n If provided, allowed values are: `LegacyRC2`: Deprecated. Not supported by default in OpenSSL 3 or Java 20. `LegacyDES`: Less secure algorithm. Use this option for maximal compatibility. `Modern2023`: Secure algorithm. Use this option in case you have to always use secure algorithms (eg. because of company policy). Please note that the security of the algorithm is not that important in reality, because the unencrypted certificate and private key are also stored in the Secret."
  4258. type: string
  4259. enum:
  4260. - LegacyRC2
  4261. - LegacyDES
  4262. - Modern2023
  4263. literalSubject:
  4264. description: "Requested X.509 certificate subject, represented using the LDAP \"String Representation of a Distinguished Name\" [1]. Important: the LDAP string format also specifies the order of the attributes in the subject, this is important when issuing certs for LDAP authentication. Example: `CN=foo,DC=corp,DC=example,DC=com` More info [1]: https://datatracker.ietf.org/doc/html/rfc4514 More info: https://github.com/cert-manager/cert-manager/issues/3203 More info: https://github.com/cert-manager/cert-manager/issues/4424 \n Cannot be set if the `subject` or `commonName` field is set. This is an Alpha Feature and is only enabled with the `--feature-gates=LiteralCertificateSubject=true` option set on both the controller and webhook components."
  4265. type: string
  4266. nameConstraints:
  4267. description: "x.509 certificate NameConstraint extension which MUST NOT be used in a non-CA certificate. More Info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10 \n This is an Alpha Feature and is only enabled with the `--feature-gates=NameConstraints=true` option set on both the controller and webhook components."
  4268. type: object
  4269. properties:
  4270. critical:
  4271. description: if true then the name constraints are marked critical.
  4272. type: boolean
  4273. excluded:
  4274. description: Excluded contains the constraints which must be disallowed. Any name matching a restriction in the excluded field is invalid regardless of information appearing in the permitted
  4275. type: object
  4276. properties:
  4277. dnsDomains:
  4278. description: DNSDomains is a list of DNS domains that are permitted or excluded.
  4279. type: array
  4280. items:
  4281. type: string
  4282. emailAddresses:
  4283. description: EmailAddresses is a list of Email Addresses that are permitted or excluded.
  4284. type: array
  4285. items:
  4286. type: string
  4287. ipRanges:
  4288. description: IPRanges is a list of IP Ranges that are permitted or excluded. This should be a valid CIDR notation.
  4289. type: array
  4290. items:
  4291. type: string
  4292. uriDomains:
  4293. description: URIDomains is a list of URI domains that are permitted or excluded.
  4294. type: array
  4295. items:
  4296. type: string
  4297. permitted:
  4298. description: Permitted contains the constraints in which the names must be located.
  4299. type: object
  4300. properties:
  4301. dnsDomains:
  4302. description: DNSDomains is a list of DNS domains that are permitted or excluded.
  4303. type: array
  4304. items:
  4305. type: string
  4306. emailAddresses:
  4307. description: EmailAddresses is a list of Email Addresses that are permitted or excluded.
  4308. type: array
  4309. items:
  4310. type: string
  4311. ipRanges:
  4312. description: IPRanges is a list of IP Ranges that are permitted or excluded. This should be a valid CIDR notation.
  4313. type: array
  4314. items:
  4315. type: string
  4316. uriDomains:
  4317. description: URIDomains is a list of URI domains that are permitted or excluded.
  4318. type: array
  4319. items:
  4320. type: string
  4321. otherNames:
  4322. description: '`otherNames` is an escape hatch for SAN that allows any type. We currently restrict the support to string like otherNames, cf RFC 5280 p 37 Any UTF8 String valued otherName can be passed with by setting the keys oid: x.x.x.x and UTF8Value: somevalue for `otherName`. Most commonly this would be UPN set with oid: 1.3.6.1.4.1.311.20.2.3 You should ensure that any OID passed is valid for the UTF8String type as we do not explicitly validate this.'
  4323. type: array
  4324. items:
  4325. type: object
  4326. properties:
  4327. oid:
  4328. description: OID is the object identifier for the otherName SAN. The object identifier must be expressed as a dotted string, for example, "1.2.840.113556.1.4.221".
  4329. type: string
  4330. utf8Value:
  4331. description: utf8Value is the string value of the otherName SAN. The utf8Value accepts any valid UTF8 string to set as value for the otherName SAN.
  4332. type: string
  4333. privateKey:
  4334. description: Private key options. These include the key algorithm and size, the used encoding and the rotation policy.
  4335. type: object
  4336. properties:
  4337. algorithm:
  4338. description: "Algorithm is the private key algorithm of the corresponding private key for this certificate. \n If provided, allowed values are either `RSA`, `ECDSA` or `Ed25519`. If `algorithm` is specified and `size` is not provided, key size of 2048 will be used for `RSA` key algorithm and key size of 256 will be used for `ECDSA` key algorithm. key size is ignored when using the `Ed25519` key algorithm."
  4339. type: string
  4340. enum:
  4341. - RSA
  4342. - ECDSA
  4343. - Ed25519
  4344. encoding:
  4345. description: "The private key cryptography standards (PKCS) encoding for this certificate's private key to be encoded in. \n If provided, allowed values are `PKCS1` and `PKCS8` standing for PKCS#1 and PKCS#8, respectively. Defaults to `PKCS1` if not specified."
  4346. type: string
  4347. enum:
  4348. - PKCS1
  4349. - PKCS8
  4350. rotationPolicy:
  4351. description: "RotationPolicy controls how private keys should be regenerated when a re-issuance is being processed. \n If set to `Never`, a private key will only be generated if one does not already exist in the target `spec.secretName`. If one does exists but it does not have the correct algorithm or size, a warning will be raised to await user intervention. If set to `Always`, a private key matching the specified requirements will be generated whenever a re-issuance occurs. Default is `Never` for backward compatibility."
  4352. type: string
  4353. enum:
  4354. - Never
  4355. - Always
  4356. size:
  4357. description: "Size is the key bit size of the corresponding private key for this certificate. \n If `algorithm` is set to `RSA`, valid values are `2048`, `4096` or `8192`, and will default to `2048` if not specified. If `algorithm` is set to `ECDSA`, valid values are `256`, `384` or `521`, and will default to `256` if not specified. If `algorithm` is set to `Ed25519`, Size is ignored. No other values are allowed."
  4358. type: integer
  4359. renewBefore:
  4360. description: "How long before the currently issued certificate's expiry cert-manager should renew the certificate. For example, if a certificate is valid for 60 minutes, and `renewBefore=10m`, cert-manager will begin to attempt to renew the certificate 50 minutes after it was issued (i.e. when there are 10 minutes remaining until the certificate is no longer valid). \n NOTE: The actual lifetime of the issued certificate is used to determine the renewal time. If an issuer returns a certificate with a different lifetime than the one requested, cert-manager will use the lifetime of the issued certificate. \n If unset, this defaults to 1/3 of the issued certificate's lifetime. Minimum accepted value is 5 minutes. Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration."
  4361. type: string
  4362. revisionHistoryLimit:
  4363. description: "The maximum number of CertificateRequest revisions that are maintained in the Certificate's history. Each revision represents a single `CertificateRequest` created by this Certificate, either when it was created, renewed, or Spec was changed. Revisions will be removed by oldest first if the number of revisions exceeds this number. \n If set, revisionHistoryLimit must be a value of `1` or greater. If unset (`nil`), revisions will not be garbage collected. Default value is `nil`."
  4364. type: integer
  4365. format: int32
  4366. secretName:
  4367. description: Name of the Secret resource that will be automatically created and managed by this Certificate resource. It will be populated with a private key and certificate, signed by the denoted issuer. The Secret resource lives in the same namespace as the Certificate resource.
  4368. type: string
  4369. secretTemplate:
  4370. description: Defines annotations and labels to be copied to the Certificate's Secret. Labels and annotations on the Secret will be changed as they appear on the SecretTemplate when added or removed. SecretTemplate annotations are added in conjunction with, and cannot overwrite, the base set of annotations cert-manager sets on the Certificate's Secret.
  4371. type: object
  4372. properties:
  4373. annotations:
  4374. description: Annotations is a key value map to be copied to the target Kubernetes Secret.
  4375. type: object
  4376. additionalProperties:
  4377. type: string
  4378. labels:
  4379. description: Labels is a key value map to be copied to the target Kubernetes Secret.
  4380. type: object
  4381. additionalProperties:
  4382. type: string
  4383. subject:
  4384. description: "Requested set of X509 certificate subject attributes. More info: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6 \n The common name attribute is specified separately in the `commonName` field. Cannot be set if the `literalSubject` field is set."
  4385. type: object
  4386. properties:
  4387. countries:
  4388. description: Countries to be used on the Certificate.
  4389. type: array
  4390. items:
  4391. type: string
  4392. localities:
  4393. description: Cities to be used on the Certificate.
  4394. type: array
  4395. items:
  4396. type: string
  4397. organizationalUnits:
  4398. description: Organizational Units to be used on the Certificate.
  4399. type: array
  4400. items:
  4401. type: string
  4402. organizations:
  4403. description: Organizations to be used on the Certificate.
  4404. type: array
  4405. items:
  4406. type: string
  4407. postalCodes:
  4408. description: Postal codes to be used on the Certificate.
  4409. type: array
  4410. items:
  4411. type: string
  4412. provinces:
  4413. description: State/Provinces to be used on the Certificate.
  4414. type: array
  4415. items:
  4416. type: string
  4417. serialNumber:
  4418. description: Serial number to be used on the Certificate.
  4419. type: string
  4420. streetAddresses:
  4421. description: Street addresses to be used on the Certificate.
  4422. type: array
  4423. items:
  4424. type: string
  4425. uris:
  4426. description: Requested URI subject alternative names.
  4427. type: array
  4428. items:
  4429. type: string
  4430. usages:
  4431. description: "Requested key usages and extended key usages. These usages are used to set the `usages` field on the created CertificateRequest resources. If `encodeUsagesInRequest` is unset or set to `true`, the usages will additionally be encoded in the `request` field which contains the CSR blob. \n If unset, defaults to `digital signature` and `key encipherment`."
  4432. type: array
  4433. items:
  4434. description: "KeyUsage specifies valid usage contexts for keys. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12 \n Valid KeyUsage values are as follows: \"signing\", \"digital signature\", \"content commitment\", \"key encipherment\", \"key agreement\", \"data encipherment\", \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\", \"server auth\", \"client auth\", \"code signing\", \"email protection\", \"s/mime\", \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\", \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\""
  4435. type: string
  4436. enum:
  4437. - signing
  4438. - digital signature
  4439. - content commitment
  4440. - key encipherment
  4441. - key agreement
  4442. - data encipherment
  4443. - cert sign
  4444. - crl sign
  4445. - encipher only
  4446. - decipher only
  4447. - any
  4448. - server auth
  4449. - client auth
  4450. - code signing
  4451. - email protection
  4452. - s/mime
  4453. - ipsec end system
  4454. - ipsec tunnel
  4455. - ipsec user
  4456. - timestamping
  4457. - ocsp signing
  4458. - microsoft sgc
  4459. - netscape sgc
  4460. status:
  4461. description: 'Status of the Certificate. This is set and managed automatically. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status'
  4462. type: object
  4463. properties:
  4464. conditions:
  4465. description: List of status conditions to indicate the status of certificates. Known condition types are `Ready` and `Issuing`.
  4466. type: array
  4467. items:
  4468. description: CertificateCondition contains condition information for an Certificate.
  4469. type: object
  4470. required:
  4471. - status
  4472. - type
  4473. properties:
  4474. lastTransitionTime:
  4475. description: LastTransitionTime is the timestamp corresponding to the last status change of this condition.
  4476. type: string
  4477. format: date-time
  4478. message:
  4479. description: Message is a human readable description of the details of the last transition, complementing reason.
  4480. type: string
  4481. observedGeneration:
  4482. description: If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the Certificate.
  4483. type: integer
  4484. format: int64
  4485. reason:
  4486. description: Reason is a brief machine readable explanation for the condition's last transition.
  4487. type: string
  4488. status:
  4489. description: Status of the condition, one of (`True`, `False`, `Unknown`).
  4490. type: string
  4491. enum:
  4492. - "True"
  4493. - "False"
  4494. - Unknown
  4495. type:
  4496. description: Type of the condition, known values are (`Ready`, `Issuing`).
  4497. type: string
  4498. x-kubernetes-list-map-keys:
  4499. - type
  4500. x-kubernetes-list-type: map
  4501. failedIssuanceAttempts:
  4502. description: The number of continuous failed issuance attempts up till now. This field gets removed (if set) on a successful issuance and gets set to 1 if unset and an issuance has failed. If an issuance has failed, the delay till the next issuance will be calculated using formula time.Hour * 2 ^ (failedIssuanceAttempts - 1).
  4503. type: integer
  4504. lastFailureTime:
  4505. description: LastFailureTime is set only if the lastest issuance for this Certificate failed and contains the time of the failure. If an issuance has failed, the delay till the next issuance will be calculated using formula time.Hour * 2 ^ (failedIssuanceAttempts - 1). If the latest issuance has succeeded this field will be unset.
  4506. type: string
  4507. format: date-time
  4508. nextPrivateKeySecretName:
  4509. description: The name of the Secret resource containing the private key to be used for the next certificate iteration. The keymanager controller will automatically set this field if the `Issuing` condition is set to `True`. It will automatically unset this field when the Issuing condition is not set or False.
  4510. type: string
  4511. notAfter:
  4512. description: The expiration time of the certificate stored in the secret named by this resource in `spec.secretName`.
  4513. type: string
  4514. format: date-time
  4515. notBefore:
  4516. description: The time after which the certificate stored in the secret named by this resource in `spec.secretName` is valid.
  4517. type: string
  4518. format: date-time
  4519. renewalTime:
  4520. description: RenewalTime is the time at which the certificate will be next renewed. If not set, no upcoming renewal is scheduled.
  4521. type: string
  4522. format: date-time
  4523. revision:
  4524. description: "The current 'revision' of the certificate as issued. \n When a CertificateRequest resource is created, it will have the `cert-manager.io/certificate-revision` set to one greater than the current value of this field. \n Upon issuance, this field will be set to the value of the annotation on the CertificateRequest resource used to issue the certificate. \n Persisting the value on the CertificateRequest resource allows the certificates controller to know whether a request is part of an old issuance or if it is part of the ongoing revision's issuance by checking if the revision value in the annotation is greater than this field."
  4525. type: integer
  4526. served: true
  4527. storage: true
  4528. ---
  4529. # Source: cert-manager/deploy/crds/crd-orders.yaml
  4530. apiVersion: apiextensions.k8s.io/v1
  4531. kind: CustomResourceDefinition
  4532. metadata:
  4533. name: orders.acme.cert-manager.io
  4534. labels:
  4535. app: 'cert-manager'
  4536. app.kubernetes.io/name: 'cert-manager'
  4537. app.kubernetes.io/instance: 'cert-manager'
  4538. # Generated labels
  4539. app.kubernetes.io/version: "{{ cert_manager_version }}"
  4540. spec:
  4541. group: acme.cert-manager.io
  4542. names:
  4543. kind: Order
  4544. listKind: OrderList
  4545. plural: orders
  4546. singular: order
  4547. categories:
  4548. - cert-manager
  4549. - cert-manager-acme
  4550. scope: Namespaced
  4551. versions:
  4552. - name: v1
  4553. subresources:
  4554. status: {}
  4555. additionalPrinterColumns:
  4556. - jsonPath: .status.state
  4557. name: State
  4558. type: string
  4559. - jsonPath: .spec.issuerRef.name
  4560. name: Issuer
  4561. priority: 1
  4562. type: string
  4563. - jsonPath: .status.reason
  4564. name: Reason
  4565. priority: 1
  4566. type: string
  4567. - jsonPath: .metadata.creationTimestamp
  4568. 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.
  4569. name: Age
  4570. type: date
  4571. schema:
  4572. openAPIV3Schema:
  4573. description: Order is a type to represent an Order with an ACME server
  4574. type: object
  4575. required:
  4576. - metadata
  4577. - spec
  4578. properties:
  4579. apiVersion:
  4580. description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4581. type: string
  4582. kind:
  4583. description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4584. type: string
  4585. metadata:
  4586. type: object
  4587. spec:
  4588. type: object
  4589. required:
  4590. - issuerRef
  4591. - request
  4592. properties:
  4593. commonName:
  4594. description: CommonName is the common name as specified on the DER encoded CSR. If specified, this value must also be present in `dnsNames` or `ipAddresses`. This field must match the corresponding field on the DER encoded CSR.
  4595. type: string
  4596. dnsNames:
  4597. description: DNSNames is a list of DNS names that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  4598. type: array
  4599. items:
  4600. type: string
  4601. duration:
  4602. description: Duration is the duration for the not after date for the requested certificate. this is set on order creation as pe the ACME spec.
  4603. type: string
  4604. ipAddresses:
  4605. description: IPAddresses is a list of IP addresses that should be included as part of the Order validation process. This field must match the corresponding field on the DER encoded CSR.
  4606. type: array
  4607. items:
  4608. type: string
  4609. issuerRef:
  4610. description: IssuerRef references a properly configured ACME-type Issuer which should be used to create this Order. If the Issuer does not exist, processing will be retried. If the Issuer is not an 'ACME' Issuer, an error will be returned and the Order will be marked as failed.
  4611. type: object
  4612. required:
  4613. - name
  4614. properties:
  4615. group:
  4616. description: Group of the resource being referred to.
  4617. type: string
  4618. kind:
  4619. description: Kind of the resource being referred to.
  4620. type: string
  4621. name:
  4622. description: Name of the resource being referred to.
  4623. type: string
  4624. request:
  4625. description: Certificate signing request bytes in DER encoding. This will be used when finalizing the order. This field must be set on the order.
  4626. type: string
  4627. format: byte
  4628. status:
  4629. type: object
  4630. properties:
  4631. authorizations:
  4632. description: Authorizations contains data returned from the ACME server on what authorizations must be completed in order to validate the DNS names specified on the Order.
  4633. type: array
  4634. items:
  4635. description: ACMEAuthorization contains data returned from the ACME server on an authorization that must be completed in order validate a DNS name on an ACME Order resource.
  4636. type: object
  4637. required:
  4638. - url
  4639. properties:
  4640. challenges:
  4641. description: Challenges specifies the challenge types offered by the ACME server. One of these challenge types will be selected when validating the DNS name and an appropriate Challenge resource will be created to perform the ACME challenge process.
  4642. type: array
  4643. items:
  4644. description: Challenge specifies a challenge offered by the ACME server for an Order. An appropriate Challenge resource can be created to perform the ACME challenge process.
  4645. type: object
  4646. required:
  4647. - token
  4648. - type
  4649. - url
  4650. properties:
  4651. token:
  4652. description: Token is the token that must be presented for this challenge. This is used to compute the 'key' that must also be presented.
  4653. type: string
  4654. type:
  4655. description: Type is the type of challenge being offered, e.g. 'http-01', 'dns-01', 'tls-sni-01', etc. This is the raw value retrieved from the ACME server. Only 'http-01' and 'dns-01' are supported by cert-manager, other values will be ignored.
  4656. type: string
  4657. url:
  4658. description: URL is the URL of this challenge. It can be used to retrieve additional metadata about the Challenge from the ACME server.
  4659. type: string
  4660. identifier:
  4661. description: Identifier is the DNS name to be validated as part of this authorization
  4662. type: string
  4663. initialState:
  4664. description: InitialState is the initial state of the ACME authorization when first fetched from the ACME server. If an Authorization is already 'valid', the Order controller will not create a Challenge resource for the authorization. This will occur when working with an ACME server that enables 'authz reuse' (such as Let's Encrypt's production endpoint). If not set and 'identifier' is set, the state is assumed to be pending and a Challenge will be created.
  4665. type: string
  4666. enum:
  4667. - valid
  4668. - ready
  4669. - pending
  4670. - processing
  4671. - invalid
  4672. - expired
  4673. - errored
  4674. url:
  4675. description: URL is the URL of the Authorization that must be completed
  4676. type: string
  4677. wildcard:
  4678. description: Wildcard will be true if this authorization is for a wildcard DNS name. If this is true, the identifier will be the *non-wildcard* version of the DNS name. For example, if '*.example.com' is the DNS name being validated, this field will be 'true' and the 'identifier' field will be 'example.com'.
  4679. type: boolean
  4680. certificate:
  4681. description: Certificate is a copy of the PEM encoded certificate for this Order. This field will be populated after the order has been successfully finalized with the ACME server, and the order has transitioned to the 'valid' state.
  4682. type: string
  4683. format: byte
  4684. failureTime:
  4685. description: FailureTime stores the time that this order failed. This is used to influence garbage collection and back-off.
  4686. type: string
  4687. format: date-time
  4688. finalizeURL:
  4689. description: FinalizeURL of the Order. This is used to obtain certificates for this order once it has been completed.
  4690. type: string
  4691. reason:
  4692. description: Reason optionally provides more information about a why the order is in the current state.
  4693. type: string
  4694. state:
  4695. description: State contains the current state of this Order resource. States 'success' and 'expired' are 'final'
  4696. type: string
  4697. enum:
  4698. - valid
  4699. - ready
  4700. - pending
  4701. - processing
  4702. - invalid
  4703. - expired
  4704. - errored
  4705. url:
  4706. description: URL of the Order. This will initially be empty when the resource is first created. The Order controller will populate this field when the Order is first processed. This field will be immutable after it is initially set.
  4707. type: string
  4708. served: true
  4709. storage: true