add gitlab
This commit is contained in:
10
.gitlab-ci.yml
Normal file
10
.gitlab-ci.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
read_secrets:
|
||||||
|
image: vault:latest
|
||||||
|
script:
|
||||||
|
- echo $CI_COMMIT_REF_NAME
|
||||||
|
- echo $CI_COMMIT_REF_PROTECTED
|
||||||
|
- export VAULT_ADDR=http://vault.bildme.ru
|
||||||
|
- export VAULT_TOKEN="$(vault write -field=token auth/jwt/login role=gitlabci-role jwt=$CI_JOB_JWT)"
|
||||||
|
- export PASSWORD="$(vault kv get -field=password secret/gitlab/db1)"
|
||||||
|
- echo $PASSWORD
|
||||||
|
when: manual
|
48
docs/vault-gitlab-ci.md
Normal file
48
docs/vault-gitlab-ci.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# Подключаем внешний вольт к Gitlab-CI
|
||||||
|
|
||||||
|
1. настраиваем метод jwt
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vault auth enable jwt
|
||||||
|
vault write auth/jwt/config \
|
||||||
|
jwks_url="https://git.realmanual.ru/-/jwks" \
|
||||||
|
bound_issuer="git.realmanual.ru"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. создаем тестовый секрет
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vault kv put secret/gitlab/db1 password='pa$$w0rd'
|
||||||
|
```
|
||||||
|
|
||||||
|
3. настраиваем политику доступа к конкретному секрету
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vault policy write gitlabci-policy - <<EOF
|
||||||
|
path "secret/data/gitlab/db1" {
|
||||||
|
capabilities = [ "read" ]
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
4. создаем роль
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vault write auth/jwt/role/gitlabci-role - <<EOF
|
||||||
|
{
|
||||||
|
"role_type": "jwt",
|
||||||
|
"policies": ["gitlabci-policy"],
|
||||||
|
"token_explicit_max_ttl": 60,
|
||||||
|
"user_claim": "user_email",
|
||||||
|
"bound_claims_type": "glob",
|
||||||
|
"bound_claims": {
|
||||||
|
"project_id": "42",
|
||||||
|
"ref_protected": "true",
|
||||||
|
"ref_type": "tag",
|
||||||
|
"ref": "auto-deploy-*"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
5. смотрим пример [.gitlab-ci.yml](../.gitlab-ci.yml)
|
Reference in New Issue
Block a user