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

如何通过GitHub Actions将GitHub Secret注入Kubernetes YAML文件

如何在GitHub Actions中注入密钥到Kubernetes Secret清单并部署到AKS

你可以通过两种常用方式将GitHub存储的密钥注入到Kubernetes Secret清单,再部署到AKS集群:

方法一:直接修改YAML文件(简单直接)

利用Shell命令将GitHub Secret编码为base64(Kubernetes Secret的data字段要求base64格式),再替换清单文件中的占位符。

修改工作流文件

在actions/checkout步骤之后、Deploys application步骤之前,添加以下步骤:

- name: 注入API密钥到Secret清单
  run: |
    # 将GitHub Secret编码为base64(-n避免添加换行符)
    ENCODED_KEY=$(echo -n "${{ secrets.API_KEY_DEV_QA }}" | base64)
    # 替换Secret清单中的api-key字段(请替换为你的Secret清单文件名)
    sed -i "s/api-key: /api-key: $ENCODED_KEY/" ${{ env.DEPLOYMENT_MANIFEST_PATH }}/secret.yaml

说明

  • 确保你的Secret清单文件(比如secret.yaml)在kustomize/overlay/uat目录下
  • sed命令会匹配api-key: 这一行,替换为带编码后密钥的内容

方法二:使用Kustomize SecretGenerator(推荐,符合Kustomize最佳实践)

如果你已经在用Kustomize管理清单,用SecretGenerator可以避免手动修改YAML,直接从环境变量注入密钥,更适合多环境管理。

1. 配置Kustomize的SecretGenerator

在kustomize/overlay/uat目录下的kustomization.yaml中添加以下内容:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

# 生成Secret,替代原有的Secret清单
secretGenerator:
- name: datadog-api-key
  type: Opaque
  literals:
  - api-key=${API_KEY}

注意:如果原来的目录下已有secret.yaml,可以删除它,因为SecretGenerator会自动生成对应的Secret资源。

2. 修改工作流文件

在actions/checkout步骤之后、Deploys application步骤之前,添加设置环境变量的步骤:

- name: 设置API密钥环境变量
  run: echo "API_KEY=${{ secrets.API_KEY_DEV_QA }}" >> $GITHUB_ENV

原有的Deploys application步骤无需修改,因为Azure/k8s-deploy会自动处理Kustomize配置,渲染出包含密钥的Secret清单。


验证部署

部署完成后,你可以在AKS集群中执行以下命令验证Secret内容:

kubectl get secret datadog-api-key -o jsonpath='{.data.api-key}' | base64 --decode

输出应该和你存储在GitHub Secret中的API_KEY_DEV_QA一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:03:03