Поддерживает ли Gitlab AutoDevops секреты кубернетов в виде файла?
Я пробую GitLab AutoDevOps и пытаюсь понять, как работают переменные CI/CD.
В пользовательском интерфейсе настроек я могу установить переменные создания файла и среды.
Согласно документации, если переменная имеет префиксK8S_SECRET_
затем он волшебным образом появляется в развертывании. Я могу заставить это работать для переменных env, но не для файловых переменных. В связи с этим у меня есть два вопроса:
- Если это поддерживается, как мне это сделать?
- Если это не поддерживается, что бы вы порекомендовали как решение? В частности, мне нужно иметь возможность монтировать ключи ssh в моем модуле.
Спасибо!
0 ответов
Нет, не поддерживается. Вы не можете использовать переменные типа файла с
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