Skip to content

Latest commit

 

History

History
84 lines (65 loc) · 2.66 KB

File metadata and controls

84 lines (65 loc) · 2.66 KB

Использование с Cloud.ru Secret Manager

Документация по сервису Cloud.ru Secret Manager

docker-compose.yaml
version: '3.8'

services:
  cloud-secrets:
    image: swarmdeployorg/cloud-secrets:v0.4.0
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    environment:
      - CS_REFRESH_INTERVAL=10s
      - CS_SECRET_NAME_FOLDER_DELIMITER=-
      - CLOUDRU_PROJECT_ID=<uuid>
      - CLOUDRU_IAM_CLIENT_ID=/var/run/secrets/iam_id
      - CLOUDRU_IAM_CLIENT_SECRET=/var/run/secrets/iam_secret
      - CLOUDRU_ROOT_FOLDER=""
      - CLOUDRU_ROOT_FOLDER_OMIT_PREFIX=false
      # Удаляет только managed secrets, которых больше нет в Cloud.ru
      # и которые не используются ни одним сервисом.
      - CS_CLEANUP_ORPHANED=true
    secrets:
      - iam_id
      - iam_secret
    deploy:
      labels:
        - prometheus.port=8000
      placement:
        constraints:
          - node.role == manager

secrets:
  iam_id:
    external: true
  iam_secret:
    external: true

»  1. Скопировать файл docker-compose.yaml

»  2. Заполнить ID проекта в переменной CLOUDRU_PROJECT_ID.

Опционально можно ограничить синхронизацию одной папкой и ее дочерними папками:

  • CLOUDRU_ROOT_FOLDER=prod/apps ограничивает поиск секретов указанной папкой.
  • CLOUDRU_ROOT_FOLDER_OMIT_PREFIX=true убирает префикс prod/apps/ из имен секретов в Docker Swarm.
3. Создать сервисный аккаунт с доступом к сервису Secret Manager и ролью scsm.user  

📚 Документация по созданию сервисного аккаунта

»  4. Создать ключ доступа для сервисного аккаунта

5. Полученные Key ID и Key Secret установить как секреты в кластере
echo "<client-id>" > iam_id
echo "<client-secret>" > iam_secret

docker secret create iam_id ./iam_id
docker secret create iam_secret ./iam_secret
6. Задеплоить стек
docker stack deploy -c docker-compose.yaml cloud-secrets --detach=false