720 字
4 分钟

DNSPod webhook 1.5.2 升到 1.5.3

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. 官方停在 1.5.3。 Artifact Hub 上 ibytechaos/ivatin 的 1.5.4 是别人的 fork,不用。
  2. ClusterIssuer 跟 webhook chart 一起出。 upgrade 会重渲 dnspod;privateKeySecretRef 名字不变就不会换 Let’s Encrypt 账号。
  3. 覆盖只写改过的键。 Harbor 仓库、clusterIssuer.enabled / selector / 凭据。groupName、TTL、1.5.2 那个嵌套 cert-manager: 块和上游相同,没写。1.5.3 已删掉嵌套块。
  4. 凭据不要写进正文。 chart 模板 enabled 时仍 required secretId / 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说明
106-04 13:551.5.2装上;ClusterIssuer dnspod 出现
2–306-04 14:02 / 14:20仍是 1.5.2当天连升两次,原因没记下
409-04 14:49仍是 1.5.2换裸机后原样 upgrade
509-15 16:401.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-dnspod
  • clusterIssuer.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.3

Chart.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:32cert-manager rev 6 / v1.21.1(上一篇)
16:40webhook rev 5 / 1.5.3,--wait 约 21 秒

upgrade:

Terminal window
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。文件监视会重试,不是签发链断了。