NAME
IO::K8s::CertManager - cert-manager CRD resource map provider for IO::K8s
VERSION
version 1.108
SYNOPSIS
my $k8s = IO::K8s->new(with => ['IO::K8s::CertManager']);
my $cert = $k8s->new_object('Certificate',
metadata => { name => 'my-cert', namespace => 'default' },
spec => {
secretName => 'my-cert-tls',
issuerRef => { name => 'letsencrypt', kind => 'ClusterIssuer' },
dnsNames => ['example.com'],
},
);
print $cert->to_yaml;
DESCRIPTION
Resource map provider for cert-manager Custom Resource Definitions. Registers 6 CRD classes covering cert-manager.io/v1 and acme.cert-manager.io/v1, modeled to full depth: spec (and, where upstream declares one, status) is a typed object graph of 71 further IO::K8s::CertManager::V1::* classes, one per upstream Go structure, named after the upstream Go types (IO::K8s::CertManager::V1::Certificate's issuerRef is an IO::K8s::CertManager::V1::IssuerReference, and so on down) rather than an opaque hashref. Embedded core and Gateway API types are referenced, not re-modeled. A Go type used by more than one Kind (SecretKeySelector, IssuerReference, LocalObjectReference, ServiceAccountRef, the whole ACMEChallengeSolver family) is one shared class, not a copy per Kind -- most notably IssuerSpec/IssuerStatus themselves, the literal same Go types embedded by both Issuer and ClusterIssuer, so those two Kinds share their entire spec/status tree.
Not loaded by default — opt in via the with constructor parameter of IO::K8s or by calling $k8s->add('IO::K8s::CertManager') at runtime.
Included CRDs (cert-manager.io/v1)
Certificate(namespaced) -- a human-readable request that an up to date, signed X.509 certificate be kept stored in the Kubernetes Secret named inspec.secretName.CertificateRequest(namespaced) -- the single-shot request cert-manager generates from aCertificateto actually obtain one signed certificate from the referenced issuer; disposable, and re-created on each renewal.Issuer(namespaced) -- a certificate-issuing authority (ACME, CA, Vault, self-signed, ...), usable only byCertificates in its own namespace.ClusterIssuer(cluster-scoped) -- the same issuer abstraction asIssuer, but referenceable fromCertificates in any namespace.IssuerandClusterIssuerembed the identical upstreamIssuerSpec/IssuerStatusGo types, which is why this distribution models them as one shared spec/status class tree (see above).
Included CRDs (acme.cert-manager.io/v1)
Order(namespaced) -- represents a single ACME certificate order, created automatically once aCertificateRequestreferencing an ACME issuer exists.Challenge(namespaced) -- represents one ACME challenge (HTTP-01, DNS-01, ...) that must be completed to authorize a single DNS name/identifier within anOrder.
SEE ALSO
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/pplu/io-k8s-p5/issues.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHORS
Torsten Raudssus <getty@cpan.org>
Jose Luis Martinez Torres <jlmartin@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2018-2026 by Jose Luis Martinez Torres <jlmartin@cpan.org>.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004