@@ -7,7 +7,7 @@ package v1
7
7
import (
8
8
cmmeta " github.com/cert-manager/cert-manager/pkg/apis/meta/v1 "
9
9
corev1 " k8s.io/api/core/v1 "
10
- gwapi " sigs.k8s.io/gateway-api/apis/v1beta1 "
10
+ gwapi " sigs.k8s.io/gateway-api/apis/v1 "
11
11
apiextensionsv1 " k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1 "
12
12
)
13
13
@@ -35,11 +35,12 @@ import (
35
35
// endpoint.
36
36
// For example, for Let's Encrypt's DST crosssign you would use:
37
37
// "DST Root CA X3" or "ISRG Root X1" for the newer Let's Encrypt root CA.
38
- // This value picks the first certificate bundle in the ACME alternative
39
- // chains that has a certificate with this value as its issuer's CN
38
+ // This value picks the first certificate bundle in the combined set of
39
+ // ACME default and alternative chains that has a root-most certificate with
40
+ // this value as its issuer's commonname.
40
41
// +optional
41
42
// +kubebuilder:validation:MaxLength=64
42
- preferredChain : string @go (PreferredChain )
43
+ preferredChain ? : string @go (PreferredChain )
43
44
44
45
// Base64-encoded bundle of PEM CAs which can be used to validate the certificate
45
46
// chain presented by the ACME server.
@@ -96,7 +97,7 @@ import (
96
97
// Enables requesting a Not After date on certificates that matches the
97
98
// duration of the certificate. This is not supported by all ACME servers
98
99
// like Let's Encrypt. If set to true when the ACME server does not support
99
- // it it will create an error on the Order.
100
+ // it, it will create an error on the Order.
100
101
// Defaults to false.
101
102
// +optional
102
103
enableDurationFeature ?: bool @go (EnableDurationFeature )
@@ -283,13 +284,13 @@ import (
283
284
// If labels or annotations overlap with in-built values, the values here
284
285
// will override the in-built values.
285
286
// +optional
286
- metadata : #ACMEChallengeSolverHTTP01IngressPodObjectMeta @go (ACMEChallengeSolverHTTP01IngressPodObjectMeta )
287
+ metadata ? : #ACMEChallengeSolverHTTP01IngressPodObjectMeta @go (ACMEChallengeSolverHTTP01IngressPodObjectMeta )
287
288
288
289
// PodSpec defines overrides for the HTTP01 challenge solver pod.
289
290
// Check ACMEChallengeSolverHTTP01IngressPodSpec to find out currently supported fields.
290
291
// All other fields will be ignored.
291
292
// +optional
292
- spec : #ACMEChallengeSolverHTTP01IngressPodSpec @go (Spec )
293
+ spec ? : #ACMEChallengeSolverHTTP01IngressPodSpec @go (Spec )
293
294
}
294
295
295
296
#ACMEChallengeSolverHTTP01IngressPodObjectMeta : {
@@ -336,7 +337,7 @@ import (
336
337
// If labels or annotations overlap with in-built values, the values here
337
338
// will override the in-built values.
338
339
// +optional
339
- metadata : #ACMEChallengeSolverHTTP01IngressObjectMeta @go (ACMEChallengeSolverHTTP01IngressObjectMeta )
340
+ metadata ? : #ACMEChallengeSolverHTTP01IngressObjectMeta @go (ACMEChallengeSolverHTTP01IngressObjectMeta )
340
341
}
341
342
342
343
#ACMEChallengeSolverHTTP01IngressObjectMeta : {
@@ -466,6 +467,10 @@ import (
466
467
// ACMEIssuerDNS01ProviderRoute53 is a structure containing the Route 53
467
468
// configuration for AWS
468
469
#ACMEIssuerDNS01ProviderRoute53 : {
470
+ // Auth configures how cert-manager authenticates.
471
+ // +optional
472
+ auth ?: null | #Route53Auth @go (Auth ,*Route53Auth )
473
+
469
474
// The AccessKeyID is used for authentication.
470
475
// Cannot be set when SecretAccessKeyID is set.
471
476
// If neither the Access Key nor Key ID are set, we fall-back to using env
@@ -488,7 +493,7 @@ import (
488
493
// vars, shared credentials file or AWS Instance metadata,
489
494
// see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials
490
495
// +optional
491
- secretAccessKeySecretRef : cmmeta .#SecretKeySelector @go (SecretAccessKey )
496
+ secretAccessKeySecretRef ? : cmmeta .#SecretKeySelector @go (SecretAccessKey )
492
497
493
498
// Role is a Role ARN which the Route53 provider will assume using either the explicit credentials AccessKeyID/SecretAccessKey
494
499
// or the inferred credentials from environment variables, shared credentials file or AWS Instance metadata
@@ -503,21 +508,57 @@ import (
503
508
region : string @go (Region )
504
509
}
505
510
511
+ // Route53Auth is configuration used to authenticate with a Route53.
512
+ #Route53Auth : {
513
+ // Kubernetes authenticates with Route53 using AssumeRoleWithWebIdentity
514
+ // by passing a bound ServiceAccount token.
515
+ kubernetes ?: null | #Route53KubernetesAuth @go (Kubernetes ,*Route53KubernetesAuth )
516
+ }
517
+
518
+ // Route53KubernetesAuth is a configuration to authenticate against Route53
519
+ // using a bound Kubernetes ServiceAccount token.
520
+ #Route53KubernetesAuth : {
521
+ // A reference to a service account that will be used to request a bound
522
+ // token (also known as "projected token"). To use this field, you must
523
+ // configure an RBAC rule to let cert-manager request a token.
524
+ serviceAccountRef ?: null | #ServiceAccountRef @go (ServiceAccountRef ,*ServiceAccountRef )
525
+ }
526
+
527
+ // ServiceAccountRef is a service account used by cert-manager to request a
528
+ // token. The expiration of the token is also set by cert-manager to 10 minutes.
529
+ #ServiceAccountRef : {
530
+ // Name of the ServiceAccount used to request a token.
531
+ name : string @go (Name )
532
+
533
+ // TokenAudiences is an optional list of audiences to include in the
534
+ // token passed to AWS. The default token consisting of the issuer's namespace
535
+ // and name is always included.
536
+ // If unset the audience defaults to `sts.amazonaws.com`.
537
+ // +optional
538
+ audiences ?: [...string ] @go (TokenAudiences ,[]string )
539
+ }
540
+
506
541
// ACMEIssuerDNS01ProviderAzureDNS is a structure containing the
507
542
// configuration for Azure DNS
508
543
#ACMEIssuerDNS01ProviderAzureDNS : {
509
- // if both this and ClientSecret are left unset MSI will be used
544
+ // Auth: Azure Service Principal:
545
+ // The ClientID of the Azure Service Principal used to authenticate with Azure DNS.
546
+ // If set, ClientSecret and TenantID must also be set.
510
547
// +optional
511
548
clientID ?: string @go (ClientID )
512
549
513
- // if both this and ClientID are left unset MSI will be used
550
+ // Auth: Azure Service Principal:
551
+ // A reference to a Secret containing the password associated with the Service Principal.
552
+ // If set, ClientID and TenantID must also be set.
514
553
// +optional
515
554
clientSecretSecretRef ?: null | cmmeta .#SecretKeySelector @go (ClientSecret ,*cmmeta.SecretKeySelector )
516
555
517
556
// ID of the Azure subscription
518
557
subscriptionID : string @go (SubscriptionID )
519
558
520
- // when specifying ClientID and ClientSecret then this field is also needed
559
+ // Auth: Azure Service Principal:
560
+ // The TenantID of the Azure Service Principal used to authenticate with Azure DNS.
561
+ // If set, ClientID and ClientSecret must also be set.
521
562
// +optional
522
563
tenantID ?: string @go (TenantID )
523
564
@@ -532,17 +573,23 @@ import (
532
573
// +optional
533
574
environment ?: #AzureDNSEnvironment @go (Environment )
534
575
535
- // managed identity configuration, can not be used at the same time as clientID, clientSecretSecretRef or tenantID
576
+ // Auth: Azure Workload Identity or Azure Managed Service Identity:
577
+ // Settings to enable Azure Workload Identity or Azure Managed Service Identity
578
+ // If set, ClientID, ClientSecret and TenantID must not be set.
536
579
// +optional
537
580
managedIdentity ?: null | #AzureManagedIdentity @go (ManagedIdentity ,*AzureManagedIdentity )
538
581
}
539
582
583
+ // AzureManagedIdentity contains the configuration for Azure Workload Identity or Azure Managed Service Identity
584
+ // If the AZURE_FEDERATED_TOKEN_FILE environment variable is set, the Azure Workload Identity will be used.
585
+ // Otherwise, we fall-back to using Azure Managed Service Identity.
540
586
#AzureManagedIdentity : {
541
587
// client ID of the managed identity, can not be used at the same time as resourceID
542
588
// +optional
543
589
clientID ?: string @go (ClientID )
544
590
545
591
// resource ID of the managed identity, can not be used at the same time as clientID
592
+ // Cannot be used for Azure Managed Service Identity
546
593
// +optional
547
594
resourceID ?: string @go (ResourceID )
548
595
}
0 commit comments