assay.certmanager
cert-manager certificate lifecycle. Certificates, issuers, ACME orders and challenges. Client:
certmanager.client(url, token).
Certificates
c.certificates:list(namespace)->{items}-- List certificates in namespacec.certificates:get(namespace, name)-> cert|nil -- Get certificate by namec.certificates:status(namespace, name)->{ready, not_after, not_before, renewal_time, revision, conditions}-- Get statusc.certificates:is_ready(namespace, name)-> bool -- Check if certificate has Ready=True conditionc.certificates:wait_ready(namespace, name, timeout_secs?)-> true -- Wait for readiness. Default 300s.c.certificates:all_ready(namespace)->{ready, not_ready, total, not_ready_names}-- Check all certificates
Issuers
c.issuers:list(namespace)->{items}-- List issuers in namespacec.issuers:get(namespace, name)-> issuer|nil -- Get issuer by namec.issuers:is_ready(namespace, name)-> bool -- Check if issuer is readyc.issuers:all_ready(namespace)->{ready, not_ready, total, not_ready_names}-- Check all issuers
ClusterIssuers
c.cluster_issuers:list()->{items}-- List cluster-scoped issuersc.cluster_issuers:get(name)-> issuer|nil -- Get cluster issuer by namec.cluster_issuers:is_ready(name)-> bool -- Check if cluster issuer is ready
Certificate Requests
c.requests:list(namespace)->{items}-- List certificate requestsc.requests:get(namespace, name)-> request|nil -- Get certificate requestc.requests:is_approved(namespace, name)-> bool -- Check if request is approved
ACME Orders & Challenges
c.orders:list(namespace)->{items}-- List ACME ordersc.orders:get(namespace, name)-> order|nil -- Get ACME orderc.challenges:list(namespace)->{items}-- List ACME challengesc.challenges:get(namespace, name)-> challenge|nil -- Get ACME challenge
Example:
local cm = require("assay.certmanager")
local c = cm.client("https://k8s-api:6443", env.get("K8S_TOKEN"))
c.certificates:wait_ready("default", "my-tls-cert", 600)
local status = c.certificates:all_ready("default")
assert.eq(status.not_ready, 0)