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

如何将GitHub Actions环境变量传递至Kubernetes索引文件?

将GitHub Actions环境变量传入Kubernetes清单文件的方法

下面是几种实用的实现方式,直接对应你的需求:

方法1:用envsubst替换变量

这是最直接的方式,利用系统自带的环境变量替换工具:

  1. 先修改你的Kubernetes清单文件,把占位符改成${imageTag}格式:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: my-image:${imageTag}
  1. 在GitHub Actions工作流里,添加步骤调用envsubst生成最终可用的清单:
- name: Taggig
  run: |
    echo "imageTag=${{ github.run_number }}" >> $GITHUB_ENV

- name: Generate Kubernetes manifest
  run: |
    envsubst < path/to/your/deployment.yaml > deployment-final.yaml

- name: Apply Kubernetes manifest
  run: |
    kubectl apply -f deployment-final.yaml

方法2:用sed命令直接替换

如果不想修改清单里的占位符格式,用sed做字符串替换也可以:

  1. 保持你原来的Kubernetes清单不变(占位符是{{ env.imageTag }})
  2. 在Actions里添加替换步骤:
- name: Taggig
  run: |
    echo "imageTag=${{ github.run_number }}" >> $GITHUB_ENV

- name: Replace image tag in manifest
  run: |
    sed -i "s/{{ env.imageTag }}/${{ env.imageTag }}/g" path/to/your/deployment.yaml

- name: Apply Kubernetes manifest
  run: |
    kubectl apply -f path/to/your/deployment.yaml

方法3:用Helm模板(适合用Helm管理K8s资源的场景)

如果你的项目用Helm管理,直接用Helm的参数传递更规范:

  1. 把Deployment改成Helm模板格式:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: my-image:{{ .Values.imageTag }}
  1. 在Actions里通过helm upgrade传入变量:
- name: Taggig
  run: |
    echo "imageTag=${{ github.run_number }}" >> $GITHUB_ENV

- name: Deploy with Helm
  run: |
    helm upgrade --install my-app ./helm-chart --set imageTag=${{ env.imageTag }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:05:26