2026-09-15 16:40(CST)把 cert-manager-webhook-dnspod 从 1.5.2 升到 1.5.3,Helm rev 4 → 5。cert-manager 控制器当天下午 16:32 已经是 v1.21.1。1.5.3 的 Go 依赖对齐 1.21.1,修 IDNA 域名 TXT 删不掉。
ClusterIssuer dnspod 是这份 chart 渲的。这趟重渲了 Issuer,形没变:groupName: acme.dnspod.com、三区 selector、ttl 600、Let’s Encrypt 账号 Secret 仍是 06-04 那份。不要 uninstall。
签发链见 cert-manager 怎么接 DNSPod。控制器那趟:cert-manager 1.20.2 升到 1.21.1。
目录
要解决什么
读者读完应能分清:
- 官方停在 1.5.3。 Artifact Hub 上 ibytechaos/ivatin 的 1.5.4 是别人的 fork,不用。
- ClusterIssuer 跟 webhook chart 一起出。 upgrade 会重渲
dnspod;privateKeySecretRef名字不变就不会换 Let’s Encrypt 账号。 - 覆盖只写改过的键。 Harbor 仓库、
clusterIssuer.enabled/ selector / 凭据。groupName、TTL、1.5.2 那个嵌套cert-manager:块和上游相同,没写。1.5.3 已删掉嵌套块。 - 凭据不要写进正文。 chart 模板
enabled时仍 requiredsecretId/secretKey,覆盖里有,ops 和画布没有。
升之前
release 名叫 cert-manager-webhook-dnspod,命名空间 cert-manager。1 副本。镜像走 Harbor:harbor.cyxc.club/dockerhub/imroc/cert-manager-webhook-dnspod。
helm history(CST):
| rev | 何时 | chart | 说明 |
|---|---|---|---|
| 1 | 06-04 13:55 | 1.5.2 | 装上;ClusterIssuer dnspod 出现 |
| 2–3 | 06-04 14:02 / 14:20 | 仍是 1.5.2 | 当天连升两次,原因没记下 |
| 4 | 09-04 14:49 | 仍是 1.5.2 | 换裸机后原样 upgrade |
| 5 | 09-15 16:40 | 1.5.3 | 这趟 |
09-04 那次不要写成已经吃过 1.5.3。
覆盖是增量
升之前把改过的键从 values.yaml 拆到 cert-manager-webhook-dnspod.yaml,values.yaml 先还原成官方 1.5.2 原件,换包后再变成 1.5.3 原件。覆盖只写:
image.repository: harbor.cyxc.club/dockerhub/imroc/cert-manager-webhook-dnspodclusterIssuer.enabled: true、三区 selector、凭据(从现网 helm values 抄)
jumpserver-cyxc-club.yaml 是测试 Certificate,不是覆盖,换包时留下。不要拿它去重签现网 jumpserver。
本地 chart 从 GitHub Pages 换
包在 /root/helm-chart/cert-manager-webhook-dnspod。这趟 helm repo update 是通的:
helm pull cert-manager-webhook-dnspod/cert-manager-webhook-dnspod --version 1.5.3Chart.yaml:version: 1.5.3,appVersion: 1.5.3。换包时 --exclude 覆盖和 jumpserver-cyxc-club.yaml。旧 1.5.2 当时备份在 /tmp/cert-manager-webhook-dnspod-1.5.2,不进 Git。
1.5.3 values.yaml 补了 replicaCount: 1,删了嵌套 cert-manager: 块。覆盖没写这两处,跟新默认走。
不要 –reuse-values
和控制器那趟一样。--reuse-values 会把旧 dump 的死键钉住,1.5.3 的 replicaCount 默认也进不来。覆盖是增量,凭据已经在覆盖里。
dry-run 渲出来:镜像 :1.5.3、replicas: 1、groupName: acme.dnspod.com、ttl 600、生产目录、privateKeySecretRef 仍是 cert-manager-webhook-dnspod-letsencrypt,才正式 upgrade。
2026-09-15 下午(CST)
| 时间 | 发生了什么 |
|---|---|
| 覆盖 | values.yaml 还原上游;覆盖三处(Harbor / enabled+selector / 凭据) |
| 换包 | 本地 chart 1.5.3,覆盖和测试 Certificate 还在 |
| 16:32 | cert-manager rev 6 / v1.21.1(上一篇) |
| 16:40 | webhook rev 5 / 1.5.3,--wait 约 21 秒 |
upgrade:
helm upgrade cert-manager-webhook-dnspod /root/helm-chart/cert-manager-webhook-dnspod \ -n cert-manager \ -f /root/helm-chart/cert-manager-webhook-dnspod/cert-manager-webhook-dnspod.yaml \ --wait --timeout 10m镜像滚动时经 Harbor 代理拉,没有预推。ClusterIssuer dnspod 升前后 spec 逐项相同,仍 Ready=True / ACMEAccountRegistered。APIService v1alpha1.acme.dnspod.com 还是 06-04 那条(Available=True)。*-letsencrypt / *-secret / serving TLS 创建时间仍是 06-04,账号没换。24 张 Certificate 全 Ready=True。USER-SUPPLIED VALUES 只剩覆盖那些键。
升完那条 fsnotify
Pod 起来时打过一条 ERR:Failed to watch cert and key file ... too many open files,随后 Serving securely on [::]:443,cache 也 sync 了。APIService 仍 Available。文件监视会重试,不是签发链断了。