External Secrets Operator — оператор для Kubernetes, который интегрирует внешние системы управления секретами, такие как HashiCorp Vault. Оператор считывает информацию из внешних API и автоматически создаёт секреты Kubernetes.
Установка External Secrets Operator состоит из нескольких этапов:
- Загрузка Helm-чарта и конфигурационного файла External Secrets Operator.
- Заполнение конфигурационного файла External Secrets Operator.
- Установка External Secrets Operator с помощью Helm в Kubernetes-кластер.
- Настройка параметра создания секрета elma365-db-connections в Helm-чарте ELMA365.
Шаг 1: Загрузка Helm-чарта и конфигурационного файла External Secrets Operator
Для установки через интернет получите конфигурационный файл values-external-secrets.yaml
, выполнив команду:
helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/external-secrets > values-external-secrets.yaml
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет
helm repo add elma365 https://charts.elma365.tech Подробнее об этом читайте в статье «Загрузка образов ELMA365».
tar -xf external-secrets-X.Y.Z.tgz |
Шаг 2: Заполнение конфигурационного файла External Secrets Operator
Заполните конфигурационный файл values-external-secrets.yaml
для установки сервиса external-secrets:
- В параметре
namespace
укажитеnamespace
, в котором установлено приложение ELMA365. - В параметре
serverVault
вместо значения http://vault-server.vault:8200/ укажите адрес, по которому доступен сервис Vault. В примере ниже указан сервис Vault, установленный в Kubernetes вnamespace
vault. - В параметрах
kvPath
,keyPath
иkvVersion
укажите данные механизма секретовkv
в Vault. - В параметрах
authKubernetesRole
иauthKubernetesServiceAccount
укажите сервисный аккаунт и роль, которая связывает политику с сервисным аккаунтом Kubernetes. - В параметрах раздела
key
укажите ключи секрета в Vault.
// Настройки external-secrets
external-secrets:
// настройки секрета elma365-db-connections
elma365DBConnections:
// namespace, где будет установлена ELMA365 и создан секрет (перед установкой его необходимо создать)
namespace: elma365
// адрес сервера vault
serverVault: "http://vault-server.vault:8200"
// путь, по которому включен механизм секретов kv
kvPath: "secret"
// путь до секрета в vault
keyPath: "elma365/db"
// версия механизма секретов kv
kvVersion: "v2"
// роль, которая связывает политику с сервисным аккаунтом Kubernetes
authKubernetesRole: "read-secret-elma365"
// сервисный аккаунт в кластере Kubernetes
authKubernetesServiceAccount: "vault-auth"
// ключи секрета в vault
key:
psqlUrl: PSQL_URL
roPsqlUrl: RO_POSTGRES_URL
mongoUrl: MONGO_URL
amqpUrl: AMQP_URL
redisUrl: REDIS_URL
vahterMongoUrl: VAHTER_MONGO_URL
s3BackendAddress: S3_BACKEND_ADDRESS
s3BackendRegion: S3_REGION
s3Bucket: S3_BUCKET
s3Key: S3_KEY
s3SecretAccessKey: S3_SECRET
s3SslEnabled: S3_SSL_ENABLED
s3Method: S3_UPLOAD_METHOD
s3DumpUrl: S3_DUMP_URL
s3VirtualHostedStyleEnabled: S3_VIRTUAL_HOSTED_STYLE_ENABLED
// количество реплик для обеспечения высокой доступности
replicaCount: 1
// CRD применяются автоматически из директории /crds
installCRDs: false
...
Для подключения к приватному registry нужно:
// Настройки external-secrets где формат repository:
|
Шаг 3: Установка External Secrets Operator с помощью Helm в Kubernetes-кластер
Выполните установку сервиса external-secrets в отдельный namespace
, например, в external-secrets. Namespace
будет создан во время установки, если не был создан ранее.
Для установки через интернет выполните команду:
helm upgrade --install external-secrets elma365/external-secrets -f values-external-secrets.yaml -n external-secrets --create-namespace
Для офлайн-установки без доступа в интернет перейдите в каталог с загруженным чартом и выполните команду:
helm upgrade --install external-secrets ./external-secrets -f values-external-secrets.yaml -n external-secrets --create-namespace
Проверьте, что сервис external-secrets создан:
kubectl get external-secrets -n elma365
Проверьте созданный секрет:
kubectl describe secrets elma365-db-connections -n elma365
Шаг 4: Настройка параметра создания секрета elma365-db-connections в Helm-чарте ELMA365
Перед установкой или обновлением Helm-чарта ELMA365 необходимо отключить создание секрета elma365-db-connections
с параметрами конфигурационного файла values-elma365.yaml
. Для этого в values-elma365.yaml
в параметре db.enabled
установите значение false
.
Подробнее об установке и обновлении ELMA365 читайте в статьях «Установка ELMA365 Enterprise» и «Обновление версии ELMA365 Enterprise».
Удалить чарт External Secrets Operator с помощью Helm в Kubernetes-кластере
Чтобы удалить сервис external-secrets в namespace
external-secrets, выполните команду:
helm uninstall external-secrets -n external-secrets