Class CertificateSigningRequestSpec.Builder
- java.lang.Object
-
- org.cdk8s.plus24.k8s.CertificateSigningRequestSpec.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<CertificateSigningRequestSpec>
- Enclosing interface:
- CertificateSigningRequestSpec
@Stability(Stable) public static final class CertificateSigningRequestSpec.Builder extends Object implements software.amazon.jsii.Builder<CertificateSigningRequestSpec>
A builder forCertificateSigningRequestSpec
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
-
-
-
Method Detail
-
request
@Stability(Stable) public CertificateSigningRequestSpec.Builder request(String request)
Sets the value ofCertificateSigningRequestSpec.getRequest()
- Parameters:
request
- request contains an x509 certificate signing request encoded in a "CERTIFICATE REQUEST" PEM block. This parameter is required. When serialized as JSON or YAML, the data is additionally base64-encoded.- Returns:
this
-
signerName
@Stability(Stable) public CertificateSigningRequestSpec.Builder signerName(String signerName)
Sets the value ofCertificateSigningRequestSpec.getSignerName()
- Parameters:
signerName
- signerName indicates the requested signer, and is a qualified name. This parameter is required. List/watch requests for CertificateSigningRequests can filter on this field using a "spec.signerName=NAME" fieldSelector.Well-known Kubernetes signers are:
- "kubernetes.io/kube-apiserver-client": issues client certificates that can be used to authenticate to kube-apiserver. Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the "csrsigning" controller in kube-controller-manager.
- "kubernetes.io/kube-apiserver-client-kubelet": issues client certificates that kubelets use to authenticate to kube-apiserver. Requests for this signer can be auto-approved by the "csrapproving" controller in kube-controller-manager, and can be issued by the "csrsigning" controller in kube-controller-manager.
- "kubernetes.io/kubelet-serving" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely. Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the "csrsigning" controller in kube-controller-manager.
More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers
Custom signerNames can also be specified. The signer defines:
- Trust distribution: how trust (CA bundles) are distributed.
- Permitted subjects: and behavior when a disallowed subject is requested.
- Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.
- Required, permitted, or forbidden key usages / extended key usages.
- Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.
- Whether or not requests for CA certificates are allowed.
- Returns:
this
-
expirationSeconds
@Stability(Stable) public CertificateSigningRequestSpec.Builder expirationSeconds(Number expirationSeconds)
Sets the value ofCertificateSigningRequestSpec.getExpirationSeconds()
- Parameters:
expirationSeconds
- expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.The v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.
Certificate signers may not honor this field for various reasons:
- Old signer that is unaware of the field (such as the in-tree implementations prior to v1.22)
- Signer whose configured maximum is shorter than the requested duration
- Signer whose configured minimum is longer than the requested duration
The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.
- Returns:
this
-
extra
@Stability(Stable) public CertificateSigningRequestSpec.Builder extra(Map<String,? extends List<String>> extra)
Sets the value ofCertificateSigningRequestSpec.getExtra()
- Parameters:
extra
- extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- Returns:
this
-
groups
@Stability(Stable) public CertificateSigningRequestSpec.Builder groups(List<String> groups)
Sets the value ofCertificateSigningRequestSpec.getGroups()
- Parameters:
groups
- groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- Returns:
this
-
uid
@Stability(Stable) public CertificateSigningRequestSpec.Builder uid(String uid)
Sets the value ofCertificateSigningRequestSpec.getUid()
- Parameters:
uid
- uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- Returns:
this
-
usages
@Stability(Stable) public CertificateSigningRequestSpec.Builder usages(List<String> usages)
Sets the value ofCertificateSigningRequestSpec.getUsages()
- Parameters:
usages
- usages specifies a set of key usages requested in the issued certificate. Requests for TLS client certificates typically request: "digital signature", "key encipherment", "client auth".Requests for TLS serving certificates typically request: "key encipherment", "digital signature", "server auth".
Valid values are: "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"
- Returns:
this
-
username
@Stability(Stable) public CertificateSigningRequestSpec.Builder username(String username)
Sets the value ofCertificateSigningRequestSpec.getUsername()
- Parameters:
username
- username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.- Returns:
this
-
build
@Stability(Stable) public CertificateSigningRequestSpec build()
Builds the configured instance.- Specified by:
build
in interfacesoftware.amazon.jsii.Builder<CertificateSigningRequestSpec>
- Returns:
- a new instance of
CertificateSigningRequestSpec
- Throws:
NullPointerException
- if any required attribute was not provided
-
-