3

我正在尝试 GitLab AutoDevOps,并试图了解 CI/CD 变量的工作原理。

在设置 UI 中,我可以设置创建文件和环境变量。

在此处输入图像描述

根据文档,如果一个变量带有前缀,K8S_SECRET_那么它会神奇地出现在部署中。我可以让它适用于环境变量,但不适用于文件变量。在这种情况下,我有两个问题:

  • 如果支持,我该怎么做?
  • 如果这不支持,您会推荐什么作为解决方法?具体来说,我需要能够在我的 pod 中安装 ssh 密钥。

谢谢!

4

1 回答 1

0

不,不支持。您不能将文件类型变量与K8S_SECRET_. 这是一种解决方法。

  1. 删除第一行 ( -----BEGIN RSA PRIVATE KEY-----) 和最后一行 ( -----END RSA PRIVATE KEY-----)

  2. 将其余键添加为K8S_SECRET_ Variable类型。举个例子K8S_SECRET_SECRET_KEY

  3. 这将使您的密钥在您的应用程序中作为环境变量可用。重要的是要注意新行(\n)将转换为空格。

  4. 在部署文件中使用类似于以下内容的脚本。

    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
于 2020-11-11T22:46:13.253 回答