Управлять секретами в репозитории SourceCraft
С помощью секретов вы можете хранить в репозитории в зашифрованном виде конфиденциальные данные, например пароли, ключи доступа, токены и т. д.
Секрет представляет собой пару ключ-значение. Где ключ — название секрета, а значение — конфиденциальные данные.
Создать секрет
- Откройте главную страницу SourceCraft.
- На вкладке
- Выберите репозиторий, в котором хотите создать секрет.
- На странице репозитория в разделе
- На странице с секретами:
- Если у вас еще нет ни одного секрета, нажмите New secret.
- Если у вас уже есть секреты, в правом верхнем углу нажмите Add secret.
- В открывшемся окне:
- В поле Name введите название секрета.
- В поле Secret введите значение секрета.
- Нажмите Add secret.
Использовать значение секрета в CI/CD
Значения секретов можно использовать в CI/CD-процессах репозитория. Для этого в конфигурационном файле .src.ci.yaml
укажите секрет в формате ${{ secrets.<название_секрета> }}
.
Пример
В примере представлен конфигурационный файл .src.ci.yaml
для CI/CD-процесса, который запускается при создании пул-реквеста в ветку master
и выполняет следующее:
- Устанавливает Yandex Cloud CLI и аутентифицируется от имени сервисного аккаунта с помощью авторизованного ключа, хранящегося в секрете.
- Аутентифицируется в Yandex Container Registry из
docker
с помощью Docker credential helper. - Собирает Docker-образ из файла
Dockerfile
и отправляет его в реестр Container Registry. - Разворачивает контейнер в Yandex Serverless Containers из собранного Docker-образа.
# Для работы данного CI/CD создайте следующие ресурсы в Yandex Cloud:
# • Реестр Yandex Container Registry
# • Контейнер Yandex Serverless Containers
# • Сервисный аккаунт с ролями serverless-containers.editor,
# container-registry.images.pusher и iam.serviceAccounts.user
# • Авторизованный ключ для доступа к Container Registry и Serverless Containers
on:
#push:
# - workflows: ci-cd-container-registry-serverless
# filter:
# branches: ["master"]
pull_request:
- workflows: ci-cd-container-registry-serverless
filter:
source_branches: ["**", "!test**"]
target_branches: "master"
workflows:
ci-cd-container-registry-serverless:
tasks:
- build-push-deploy-serverless
tasks:
- name: build-push-deploy-serverless
env:
YC_DOCKER_REGISTRY_URI: cr.yandex/<идентификатор_реестра>
IMAGE_NAME: <имя_образа>
YC_SERVERLESS_CONTAINER_NAME: <имя_контейнера>
YC_SERVICE_ACCOUNT_ID: <идентификатор_сервисного_аккаунта>
YC_AUTHORIZED_KEY_JSON: ${{ secrets.<название_секрета> }}
YC_FOLDER_ID: <идентификатор_каталога>
cubes:
- name: install-yc
script:
- curl -o ./yc-install.sh -L https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash -s -- -a
- echo 'source /root/yandex-cloud/completion.zsh.inc' >> ~/.zshrc
- chmod +x ./yc-install.sh && ./yc-install.sh -i /tmp/yc -n && mv /tmp/yc/bin/yc /usr/bin/yc
- echo "$YC_AUTHORIZED_KEY_JSON" > key.json
- yc config profile create sa-profile
- yc config set service-account-key key.json
- yc config set format json
- yc config set folder-id $YC_FOLDER_ID
- name: docker-login
script:
- yc container registry configure-docker --profile sa-profile
- name: docker-build-push
script:
- docker build --tag $YC_DOCKER_REGISTRY_URI/$IMAGE_NAME --platform linux/amd64 .
- docker push $YC_DOCKER_REGISTRY_URI/$IMAGE_NAME:latest
- name: docker-logout
script:
- docker logout $YC_DOCKER_REGISTRY_URI
- name: create-serverless
script:
- yc serverless container revision deploy --container-name $YC_SERVERLESS_CONTAINER_NAME --image $YC_DOCKER_REGISTRY_URI/$IMAGE_NAME:latest --service-account-id $YC_SERVICE_ACCOUNT_ID
Подробнее см. в репозитории SourceCraft yc-ci-cd-serverless.
Посмотреть секрет в интерфейсе SourceCraft
- Откройте главную страницу SourceCraft.
- На вкладке
- Выберите репозиторий, в котором хотите посмотреть секрет.
- На странице репозитория в разделе
- Напротив секрета, значение которого вы хотите посмотреть, нажмите
- Скопируйте значение секрета.
Изменить секрет
- Откройте главную страницу SourceCraft.
- На вкладке
- Выберите репозиторий, в котором хотите изменить секрет.
- На странице репозитория в разделе
- Напротив секрета, значение которого вы хотите изменить, нажмите
- В поле Secret введите новое значение секрета.
- Нажмите Save.
Удалить секрет
- Откройте главную страницу SourceCraft.
- На вкладке
- Выберите репозиторий, в котором хотите удалить секрет.
- На странице репозитория в разделе
- Напротив секрета, который вы хотите удалить, нажмите
- В открывшемся окне нажмите I understand, delete secret.
См. также
Была ли статья полезна?
Предыдущая
Следующая