Skip to main content

cert-manager-knowledge-patch

cert-manager

来源信息

仓库
Nevaberry/nevaberry-plugins
最近来源活动
2026年8月27日 08:46
检测到的 SKILL.md 语言
英语
星标
23
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
9 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
cert-manager-knowledge-patch
description
cert-manager
version
1.21
license
MIT
metadata
{"author":"Nevaberry"}
# cert-manager Knowledge Patch ## When to use Load this skill for cert-manager work involving upgrades, Certificate behavior, ACME solvers, issuers, Gateway or Ingress integration, Helm configuration, metrics, RBAC, or platform compatibility. First establish the installed cert-manager patch release, chart values, Kubernetes or OpenShift version, enabled feature gates, and relevant issuer and Certificate manifests. Patch-level fixes matter: do not assume every patch in a minor line has the same behavior. ## Reference index | Reference | Topics | |---|---| | [Upgrades and support](references/upgrades-and-support.md) | Upgrade defaults, removals, required patch releases, support and platform policy | | [Certificates and issuance](references/certificates-and-issuance.md) | Certificate fields, renewal, keystores, validation, output, reconciliation | | [ACME and DNS solvers](references/acme-and-dns-solvers.md) | HTTP-01, DNS-01, profiles, solver configuration, retry behavior | | [Gateway, Ingress, and shim](references/gateway-ingress-and-shim.md) | ListenerSet, Gateway listeners, generated Certificates, annotations | | [Helm, operations, and security](references/helm-operations-and-security.md) | Chart values, Pod settings, NetworkPolicy, RBAC, namespace scope | | [Issuers, integrations, and API clients](references/issuers-integrations-and-api.md) | Vault, Venafi, cainjector, issuer APIs, apply clients | | [Observability and reliability](references/observability-and-reliability.md) | Metrics, logging, backoff, recovery, diagnostics | ## Upgrade first: behavior changes and removals ### Preserve private keys explicitly when required The default `Certificate.spec.privateKey.rotationPolicy` is `Always`. Before an upgrade, set `Never` on Certificates that must retain their existing key: ```yaml spec: privateKey: rotationPolicy: Never ``` The feature gate that once disabled the `Always` default is no longer configurable. Per-Certificate policy is the supported control. ### Expect a bounded revision history An omitted `Certificate.spec.revisionHistoryLimit` defaults to `1`. Set the field explicitly if retaining more CertificateRequests is operationally important. ### Migrate removed Helm monitor values Remove these values before chart-schema validation: - `prometheus.servicemonitor.targetPort` - `prometheus.servicemonitor.path` - `prometheus.podmonitor.path` Metrics use `/metrics` and the `http-metrics` port name. Replace scrape rules that still refer to `tcp-prometheus-servicemonitor`. ### Supply issuer token RBAC deliberately The chart does not create the controller ServiceAccount `Role` and `RoleBinding` for token creation. If an issuer's `serviceAccountRef.name` uses that ServiceAccount, add explicit RBAC or move the issuer to a dedicated ServiceAccount with its own permissions. ### Update renamed metrics labels `certmanager_acme_client_request_count` and `certmanager_acme_client_request_duration_seconds` use bounded `action` labels, not `path`. Rewrite dashboards and alerts; use a recording or relabeling rule only when old path-level semantics are indispensable. ### Stop configuring obsolete feature gates and APIs - Do not enable deprecated `ValidateCAA`. - `CAInjectorMerging` is unconditional; replacement semantics cannot be restored with its old gate. - Cainjector always uses server-side apply; `ServerSideApply` is deprecated. - `AdditionalCertificateOutputFormats` is GA and needs no gate. - Migrate the removed `ObjectReference` API type. ### Account for security-context identity changes Default container UID and GID are both `65532`. Review admission rules, volume ownership, and policies that assumed UID `1000` or GID `0`. ## High-value configuration ### Avoid HTTP-01 path validation failures HTTP-01 solver Ingresses use `PathType: Exact`. With ingress-nginx strict path validation, use a fixed ingress-nginx release, disable strict path validation, or on a compatible cert-manager patch restore the former behavior: ```yaml config: featureGates: ACMEHTTP01IngressPathTypeExact: false ``` Configure exactly one of `class`, `ingressClassName`, and `name` in each HTTP-01 solver. ### Select ACME profiles and validation strategy An ACME issuer can request a CA-offered certificate profile such as `tlsserver` or `shortlived`. For split-horizon DNS or NAT hairpin environments, `waitInsteadOfSelfCheck` can skip the local self-check, wait for a configured duration, and then request ACME validation. Experimental RFC 9773 renewal information is enabled with `ACMEUseARI`; it lets the CA recommend renewal windows for events such as mass revocation or CA key rollover. ### Configure solver resources per issuer HTTP-01 solver Pods can override global resource flags in the issuer: ```yaml spec: acme: solvers: - http01: ingress: podTemplate: spec: resources: requests: cpu: 20m memory: 32Mi ``` ### Use modern PKCS#12 when FIPS compatibility matters The `Modern2026` profile uses AES-256 and SHA-256 KDFs rather than legacy 3DES or RC2 and is compatible with FIPS 140-3 requirements. ### Set retry ceilings to operational needs Failed CertificateRequests use exponential backoff with a default maximum of 32 hours. Configure the ceiling through `--certificate-request-maximum-backoff-duration`, the controller config, or: ```yaml config: certificateRequestMaximumBackoffDuration: 8h ``` ### Use current Gateway configuration keys Prefer the nested controller fields: ```yaml gatewayAPI: enabled: true enableListenerSet: true ``` The older `enableGatewayAPI` and `enableGatewayAPIListenerSet` fields still work but are deprecated. ListenerSet support is alpha and requires its feature gate. ### Isolate chart-managed workloads The chart can create NetworkPolicies for every cert-manager Deployment. Its default policy includes IPv6, and `global.nodeSelector` provides a common node selector across components. On Kubernetes 1.33 or later, `global.hostUsers: false` opts all chart-managed Pods into user namespaces. ## Diagnostic priorities 1. Identify the exact patch release, not only the minor line. 2. Check controller, webhook, cainjector, and solver events before changing manifests. 3. Validate feature-gate availability; GA gates may be ignored or rejected. 4. Compare generated child resources with the source Certificate, Ingress, Gateway, ListenerSet, Issuer, or ClusterIssuer. 5. For issuance loops, inspect CSR/public-key matching, certificate expiry, renewal policy, and issuer response before forcing reissuance. 6. For DNS-01 readiness, verify referenced Secrets and read Challenge events; current providers expose more complete diagnostics and recovery behavior. 7. For upgrade regressions, consult the patch-specific advisories in the references before applying a workaround.
在 GitHub 查看