Skip to content

Approver Policy Enterprise API reference

Resource Types:

CertificateRequestPolicy

CertificateRequestPolicy is an object for describing a "policy profile" that makes decisions on whether to approve or deny applicable CertificateRequests.

Name Type Description Required
apiVersion string policy.cert-manager.io/v1alpha1 true
kind string CertificateRequestPolicy true
metadata object Refer to the Kubernetes API documentation for the fields of the metadata field. true
spec object CertificateRequestPolicySpec defines the desired state of CertificateRequestPolicy. false
status object CertificateRequestPolicyStatus defines the observed state of the CertificateRequestPolicy. false

CertificateRequestPolicy.spec

CertificateRequestPolicySpec defines the desired state of CertificateRequestPolicy.

Name Type Description Required
selector object You use Selector for selecting over which CertificateRequests this CertificateRequestPolicy is appropriate for and so are used for its approval evaluation. true
allowed object Allowed is the set of attributes that are "allowed" by this policy. A CertificateRequest is only considered permissible for this policy if the CertificateRequest has the same or less as that allowed. Empty or nil allowed fields mean CertificateRequests are not allowed to have that field present to be permissible. false
constraints object Constraints is the set of attributes that must be satisfied by the CertificateRequest for the request to be permissible by the policy. Empty or nil constraint fields mean CertificateRequests satisfy that field with any value of their corresponding attribute. false
plugins map[string]object Plugins define a set of plugins and their configuration that must be executed when this policy is evaluated against a CertificateRequest. A plugin must already exist within Approver Policy for it to be available. false

CertificateRequestPolicy.spec.selector

You use Selector to select which CertificateRequests this CertificateRequestPolicy is appropriate for and are used for its approval evaluation.

Name Type Description Required
issuerRef object You use IssuerRef to match this CertificateRequestPolicy against processed CertificateRequests. This policy will only be evaluated against a CertificateRequest whose spec.issuerRef field matches spec.selector.issuerRef. CertificateRequests are not processed on unmatched issuerRef if defined, regardless of whether the requestor is bound by RBAC. Accepts wildcards *. Omitted values are equivalent to *. The following value will match all issuerRefs: issuerRef: {} false
namespace object You use Namespace to select on Namespaces. This means that the CertificateRequestPolicy will only match on CertificateRequests that have been created in matching selected Namespaces. If this field is omitted, all Namespaces are selected. false

CertificateRequestPolicy.spec.selector.issuerRef

You use IssuerRef to match this CertificateRequestPolicy against processed CertificateRequests. This policy will only be evaluated against a CertificateRequest whose spec.issuerRef field matches spec.selector.issuerRef. CertificateRequests will not be processed on unmatched issuerRef if defined, regardless of whether the requestor is bound by RBAC. Accepts wildcards *. Omitted values are equivalent to *. The following value will match all issuerRefs: issuerRef: {}

Name Type Description Required
group string Group is the wildcard selector to match the spec.issuerRef.group field on requests. Accepts wildcards "*". An omitted field or value of nil matches all. false
kind string Kind is the wildcard selector to match the spec.issuerRef.kind field on requests. Accepts wildcards "*". An omitted field or value of nil matches all. false
name string Name is the wildcard selector to match the spec.issuerRef.name field on requests. Accepts wildcards "*". An omitted field or value of nil matches all. false

CertificateRequestPolicy.spec.selector.namespace

You use Namespace to select on Namespaces, meaning the CertificateRequestPolicy only match on CertificateRequests that have been created in matching selected Namespaces. If this field is omitted, all Namespaces are selected.

Name Type Description Required
matchLabels map[string]string MatchLabels is the set of Namespace labels that select on CertificateRequests which have been created in a Namespace matching the selector. false
matchNames []string MatchNames are the set of Namespace names that select on CertificateRequests that have been created in a matching Namespace. Accepts wildcards *. false

CertificateRequestPolicy.spec.allowed

Allowed is the set of attributes that are "allowed" by this policy. A CertificateRequest is only considered permissible for this policy if the CertificateRequest has the same or less as is allowed. Empty or nil allowed fields mean CertificateRequests are not allowed to have that field present to be permissible.

Name Type Description Required
commonName object CommonName defines the X.509 Common Name that is permissible. false
dnsNames object DNSNames defines the X.509 DNS SANs that may be requested. Accepts wildcard *. false
emailAddresses object EmailAddresses defines the X.509 Email SANs that may be requested. false
ipAddresses object IPAddresses defines the X.509 IP SANs that may be requested. false
isCA boolean IsCA defines whether it is permissible for a CertificateRequest to have the spec.IsCA field set to true. An omitted field, value of nil or false, forbids the spec.IsCA field from bring true. A value of true permits CertificateRequests sets the spec.IsCA field to true. false
subject object Subject defines the X.509 subject that is permissible. An omitted field or value of nil forbids any Subject being requested. false
uris object URIs defines the X.509 URI SANs that may be requested. false
usages []enum Usages defines the list of permissible key usages that may appear on the CertificateRequest spec.keyUsages field. An omitted field or value of nil forbids any Usages being requested. An empty slice [] is equivalent to nil. false

CertificateRequestPolicy.spec.allowed.commonName

CommonName defines the X.509 Common Name that is permissible.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if Value is also defined. false
value string Value defines the value that is permissible on the request. Accepts wildcard *. An omitted field or value of nil forbids the value from being requested. An empty string is equivalent to nil. However, an empty string paired with Required as true is an impossible condition that always denies. Value may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.dnsNames

DNSNames defines the X.509 DNS SANs that may be requested for. Accepts wildcard *.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if Values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.emailAddresses

EmailAddresses defines the X.509 Email SANs that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if Values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.ipAddresses

IPAddresses defines the X.509 IP SANs that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if Values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible on the request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject

Subject defines the X.509 subject that is permissible. An omitted field or value of nil forbids any Subject being requested.

Name Type Description Required
countries object Countries defines the X.509 Subject Countries that may be requested. false
localities object Localities defines the X.509 Subject Localities that may be requested. false
organizationalUnits object OrganizationalUnits defines the X.509 Subject Organizational Units that may be requested. false
organizations object Organizations defines the X.509 Subject Organizations that may be requested. false
postalCodes object PostalCodes defines the X.509 Subject Postal Codes that may be requested. false
provinces object Provinces defines the X.509 Subject Provinces that may be requested. false
serialNumber object SerialNumber defines the X.509 Subject Serial Number that may be requested. false
streetAddresses object StreetAddresses defines the X.509 Subject Street Addresses that may be requested. false

CertificateRequestPolicy.spec.allowed.subject.countries

Countries define the X.509 Subject Countries that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if Values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject.localities

Localities defines the X.509 Subject Localities that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject.organizationalUnits

OrganizationalUnits defines the X.509 Subject Organizational Units that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject.organizations

Organizations define the X.509 Subject Organizations that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject.postalCodes

PostalCodes defines the X.509 Subject Postal Codes that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject.provinces

Provinces defines the X.509 Subject Provinces that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject.serialNumber

SerialNumber defines the X.509 Subject Serial Number that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.subject.streetAddresses

StreetAddresses defines the X.509 Subject Street Addresses that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.allowed.uris

URIs defines the X.509 URI SANs that may be requested for.

Name Type Description Required
required boolean Required marks this field as being a required value on the request. May only be set to true if values is also defined. Default is nil which marks the field as not required. false
values []string Defines the values that are permissible to be present on request. Accepts wildcard *. An omitted field or value of nil forbids any value on the related field in the request from being requested. An empty slice [] is equivalent to nil, however an empty slice pared with Required true is an impossible condition that always denies. Values may not be nil if Required is true. false

CertificateRequestPolicy.spec.constraints

Constraints is the set of attributes that must be satisfied by the CertificateRequest for the request to be permissible by the policy. Empty or nil constraint fields mean CertificateRequests satisfy that field with any value of their corresponding attribute.

Name Type Description Required
maxDuration string MaxDuration defines the maximum duration for which a certificate may be requested. Values are inclusive (i.e. a max value of 1h will accept a duration of 1h). MaxDuration and MinDuration may be the same value. An omitted field or value of nil permits any maximum duration. If MaxDuration is defined, a duration must be requested on the CertificateRequest. false
minDuration string MinDuration defines the minimum duration for which a certificate may be requested. Values are inclusive (i.e. a min value of 1h will accept a duration of 1h). MinDuration and MaxDuration may be the same value. An omitted field or value of nil permits any minimum duration. If MinDuration is defined, a duration must be requested on the CertificateRequest. false
privateKey object PrivateKey defines the shape of permissible private keys that may be used for the request with this policy. An omitted field or value of nil permits the use of any private key by the requestor. false

CertificateRequestPolicy.spec.constraints.privateKey

PrivateKey defines the shape of permissible private keys that may be used for the request with this policy. An omitted field or value of nil permits the use of any private key by the requestor.

Name Type Description Required
algorithm enum Algorithm defines the allowed crypto algorithm that is used by the requestor for their private key in their request. An omitted field or value of nil permits any Algorithm. Enum: RSA, ECDSA, Ed25519. false
maxSize integer MaxSize defines the maximum key size a requestor may use for their private key. Values are inclusive (i.e. a min value of 2048 will accept a size of 2048). MaxSize and MinSize may be the same value. An omitted field or value of nil permits any maximum size. false
minSize integer MinSize defines the minimum key size a requestor may use for their private key. Values are inclusive (i.e. a min value of 2048 will accept a size of 2048). MinSize and MaxSize may be the same value. An omitted field or value of nil permits any minimum size. false

CertificateRequestPolicy.spec.plugins[key]

CertificateRequestPolicyPluginData is configuration needed by the plugin approver to evaluate a CertificateRequest on this policy.

Name Type Description Required
values map[string]string Values define a set of well-known, to the plugin, key value pairs that are required for the plugin to successfully evaluate a request based on this policy. false

CertificateRequestPolicy.status

CertificateRequestPolicyStatus defines the observed state of the CertificateRequestPolicy.

Name Type Description Required
conditions []object List of status conditions to indicate the status of the CertificateRequestPolicy. Known condition types are Ready. false

CertificateRequestPolicy.status.conditions[index]

CertificateRequestPolicyCondition contains condition information for a CertificateRequestPolicyStatus.

Name Type Description Required
status string Status of the condition, one of ('True', 'False', 'Unknown'). true
type string Type of the condition, known values are (Ready). true
lastTransitionTime string LastTransitionTime is the timestamp corresponding to the last status change of this condition. Format: date-time false
message string Message is a human readable description of the details of the last transition, complementing reason. false
observedGeneration integer 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 CertificateRequestPolicy. Format: int64 false
reason string Reason is a brief machine readable explanation for the condition's last transition. false