如何在 GitLab Omnibus 配置中使用环境变量

alt*_*tus 5 environment-variables gitlab gitlab-omnibus

我在 Kubernetes 集群上运行 GitLab。

我有一个包含所有综合配置的 ConfigMap。ConfigMap 安装到环境变量 GITLAB_OMNIBUS_CONFIG。

这会暴露敏感配置,例如源代码中的密码。

我想创建 Secrets 并将它们安装为附加环境变量,并从附加环境变量中读取综合配置,如下例所示。

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.hostedemail.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "username@domain.com"
gitlab_rails['smtp_password'] = $SMTP_PASSWORD
gitlab_rails['smtp_domain'] = "domain.com"
etc...
Run Code Online (Sandbox Code Playgroud)

Ela*_*ute 3

我在 docker-compose 中遇到了同样的问题,我通过 Ruby ENV 变量解决了这个问题:

  environment:
    SMTP_USER_PASSWORD: ${SMTP_PASSWORD}
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      gitlab_rails['smtp_password'] = ENV['SMTP_PASSWORD']

Run Code Online (Sandbox Code Playgroud)