我有一个 node.js (express) 项目已签入 gitlab ,它正在 Kubernetes 中运行。我知道我们可以在deployment.yaml文件中设置Kubernetes(在Azure上,aks)中的环境变量。
我如何将 gitlab ci/cd 环境变量传递给 kubernetes(aks) (deployment.yaml 文件)?
您可以开发自己的舵图。从长远来看,这将会带来回报。
其他方法:有一种简单且通用的方法是将${MY_VARIABLE}占位符放入deployment.yaml 文件中。接下来,在管道运行期间,在部署作业中使用envsubst命令将 vars 替换为相应的值并部署文件。
部署文件示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment-${MY_VARIABLE}
labels:
app: nginx
spec:
replicas: 3
(...)
Run Code Online (Sandbox Code Playgroud)
工作示例:
(...)
deploy:
stage: deploy
script:
- envsubst < deployment.yaml > deployment-${CI_JOB_NAME}.yaml
- kubectl apply -f deployment-${CI_JOB_NAME}.yaml
Run Code Online (Sandbox Code Playgroud)
我将为您提供一个简单的解决方案,它可能是也可能不是“解决方案”。
要执行您想要的操作,您只需在启动部署之前在 cd 期间将 gitlab 环境变量添加到机密中即可。这将允许您在部署中使用 env Secret。
如果你想这样做,你需要考虑当你想更新它们以实现幂等性时如何删除它们。
| 归档时间: |
|
| 查看次数: |
7856 次 |
| 最近记录: |