You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置FluxCD对所有自动提交(含镜像更新)进行GPG签名

解决FluxCD自动提交签名问题

要让FluxCD对镜像更新这类自动提交也进行GPG签名,你需要单独为ImageUpdateAutomation控制器配置签名密钥,步骤如下:

1. 创建GPG签名密钥的Kubernetes Secret

bootstrap时传入的密钥仅用于初始化提交,自动更新的提交需要单独把密钥存到集群的Secret里:

  • 先导出你的GPG私钥为ASCII格式(替换<your-key-id>为实际密钥ID):
    gpg --armor --export-secret-keys <your-key-id> > gpg-private.key
    
  • 在flux-system命名空间创建Secret,包含私钥和密码(如果密钥设置了密码):
    kubectl create secret generic flux-gpg-signing-key \
      --namespace=flux-system \
      --from-file=./gpg-private.key \
      --from-literal=passphrase=your-key-passphrase
    

2. 配置ImageUpdateAutomation启用签名

编辑你的ImageUpdateAutomation资源,添加spec.commit.signing字段关联刚才创建的Secret:

apiVersion: image.toolkit.fluxcd.io/v1beta1
kind: ImageUpdateAutomation
metadata:
  name: flux-system
  namespace: flux-system
spec:
  interval: 1m0s
  sourceRef:
    kind: GitRepository
    name: flux-system
  git:
    checkout:
      ref:
        branch: main
    commit:
      author:
        name: fluxbot
        email: fluxbot@example.com
      signing:
        secretRef:
          name: flux-gpg-signing-key
  update:
    strategy: Setters
    path: ./clusters/my-cluster
  • 替换path为你实际的清单文件路径,author信息可以根据需求修改。

3. 验证配置

  • 推送一个新的镜像标签到镜像仓库,触发Flux的自动更新
  • 查看代码仓库的提交历史,确认自动生成的提交已被GPG签名
  • 若出现问题,查看ImageUpdateAutomation控制器日志排查:
    kubectl logs -n flux-system deploy/image-automation-controller -f
    

常见问题排查

  • 确保Secret里的私钥是ASCII armor格式(开头有-----BEGIN PGP PRIVATE KEY BLOCK-----),二进制格式会导致签名失败
  • 检查密钥是否过期,若已过期需重新生成并更新Secret
  • 确认Flux的flux-image-automation ServiceAccount有权限读取该Secret(默认flux-system下的SA已有权限,自定义SA需配置RBAC)

内容的提问来源于stack exchange,提问作者shiva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:45:14