Class V1CertificateSigningRequestSpec
CertificateSigningRequestSpec contains the certificate request.
Inheritance
V1CertificateSigningRequestSpec
Assembly: KubernetesClient.dll
Syntax
public record V1CertificateSigningRequestSpec : IEquatable<V1CertificateSigningRequestSpec>
Constructors
View Source
V1CertificateSigningRequestSpec()
Declaration
public V1CertificateSigningRequestSpec()
View Source
V1CertificateSigningRequestSpec(V1CertificateSigningRequestSpec)
Declaration
protected V1CertificateSigningRequestSpec(V1CertificateSigningRequestSpec original)
Parameters
Properties
View Source
EqualityContract
Declaration
protected virtual Type EqualityContract { get; }
Property Value
View Source
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.
Declaration
[JsonPropertyName("expirationSeconds")]
public int? ExpirationSeconds { get; set; }
Property Value
View Source
extra contains extra attributes of the user that created the
CertificateSigningRequest. Populated by the API server on creation and
immutable.
Declaration
[JsonPropertyName("extra")]
public IDictionary<string, IList<string>> Extra { get; set; }
Property Value
View Source
Groups
groups contains group membership of the user that created the
CertificateSigningRequest. Populated by the API server on creation and
immutable.
Declaration
[JsonPropertyName("groups")]
public IList<string> Groups { get; set; }
Property Value
View Source
Request
request contains an x509 certificate signing request encoded in a "CERTIFICATE
REQUEST" PEM block. When serialized as JSON or YAML, the data is additionally
base64-encoded.
Declaration
[JsonPropertyName("request")]
public byte[] Request { get; set; }
Property Value
View Source
SignerName
signerName indicates the requested signer, and is a qualified name.
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.
Declaration
[JsonPropertyName("signerName")]
public string SignerName { get; set; }
Property Value
View Source
Uid
uid contains the uid of the user that created the CertificateSigningRequest.
Populated by the API server on creation and immutable.
Declaration
[JsonPropertyName("uid")]
public string Uid { get; set; }
Property Value
View Source
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"
Declaration
[JsonPropertyName("usages")]
public IList<string> Usages { get; set; }
Property Value
View Source
Username
username contains the name of the user that created the
CertificateSigningRequest. Populated by the API server on creation and
immutable.
Declaration
[JsonPropertyName("username")]
public string Username { get; set; }
Property Value
Methods
View Source
Equals(object?)
Declaration
public override bool Equals(object? obj)
Parameters
| Type |
Name |
Description |
| object |
obj |
|
Returns
Overrides
View Source
Equals(V1CertificateSigningRequestSpec?)
Declaration
public virtual bool Equals(V1CertificateSigningRequestSpec? other)
Parameters
Returns
View Source
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Overrides
View Source
PrintMembers(StringBuilder)
Declaration
protected virtual bool PrintMembers(StringBuilder builder)
Parameters
Returns
View Source
ToString()
Declaration
public override string ToString()
Returns
Overrides
Operators
View Source
operator ==(V1CertificateSigningRequestSpec?, V1CertificateSigningRequestSpec?)
Declaration
public static bool operator ==(V1CertificateSigningRequestSpec? left, V1CertificateSigningRequestSpec? right)
Parameters
Returns
View Source
operator !=(V1CertificateSigningRequestSpec?, V1CertificateSigningRequestSpec?)
Declaration
public static bool operator !=(V1CertificateSigningRequestSpec? left, V1CertificateSigningRequestSpec? right)
Parameters
Returns
Implements