Секреты

Секрет — это пара ключ-значение, где ключ — название секрета, а значение — конфиденциальные данные: пароли, ключи доступа, токены и т. д. Секреты хранятся в зашифрованном виде и могут быть использованы в CI/CD-процессах репозитория. Для этого в конфигурационном файле .sourcecraft/ci.yaml укажите секрет в формате ${{ secrets.<название_секрета> }}.

Пример использования секретов
# Для работы данного 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:
          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 изложены подробности работы с секретами.

Создание секрета

Если вы создаёте секрет впервые и у вас нет ни одного секрета, нажмите на кнопку Новый секрет, а если у вас уже есть секреты, то в правом верхнем углу нажмите Добавить секрет.

В открывшемся модальном окне введите:

create-new-secret

  1. В поле Название введите название секрета.
  2. В поле Секрет введите значение секрета.
  3. Нажмите Добавить секрет.

Изменение секрета

Примечание

Изменить можно только значение секрета. Название секрета изменить нельзя.

Напротив секрета, значение которого вы хотите изменить, нажмите и выберите Редактировать:

edit-secret

Откроется модальное окно Редактировать секрет:

  1. В поле Секрет введите новое значение секрета.
  2. Нажмите Сохранить.

Удаление секрета

del-secret

  1. Напротив секрета, который вы хотите удалить, нажмите и выберите Удалить секрет.

  2. В открывшемся окне нажмите Да, точно удалить секрет.

Предыдущая
Следующая