我正在尝试 GitLab AutoDevOps,并试图了解 CI/CD 变量的工作原理。
在设置 UI 中,我可以设置创建文件和环境变量。
根据文档,如果一个变量带有前缀,K8S_SECRET_
那么它会神奇地出现在部署中。我可以让它适用于环境变量,但不适用于文件变量。在这种情况下,我有两个问题:
- 如果支持,我该怎么做?
- 如果这不支持,您会推荐什么作为解决方法?具体来说,我需要能够在我的 pod 中安装 ssh 密钥。
谢谢!
我正在尝试 GitLab AutoDevOps,并试图了解 CI/CD 变量的工作原理。
在设置 UI 中,我可以设置创建文件和环境变量。
根据文档,如果一个变量带有前缀,K8S_SECRET_
那么它会神奇地出现在部署中。我可以让它适用于环境变量,但不适用于文件变量。在这种情况下,我有两个问题:
谢谢!
不,不支持。您不能将文件类型变量与K8S_SECRET_
. 这是一种解决方法。
删除第一行 ( -----BEGIN RSA PRIVATE KEY-----
) 和最后一行 ( -----END RSA PRIVATE KEY-----
)
将其余键添加为K8S_SECRET_
Variable
类型。举个例子K8S_SECRET_SECRET_KEY
这将使您的密钥在您的应用程序中作为环境变量可用。重要的是要注意新行(\n)将转换为空格。
在部署文件中使用类似于以下内容的脚本。
command: ["/bin/bash", "-c"]
args:
- |
mkdir -p /home/certs
cd /home/certs
echo $SECRET_KEY > secret.key
sed -i 's/ /\n/g' secret.key
sed -i '1s/^/-----BEGIN RSA PRIVATE KEY-----\n/' secret.key
sed -i -e '$a-----END RSA PRIVATE KEY-----' secret.key