Установка с помощью Helm
Перед использованием установите менеджер пакетов «Helm» для Kubernetes и сконфигурируйте подключение к кластеру
Шаг 1: Добавьте пакет Helm
Добавьте на локальный компьютер пакет Helm:
helm repo add auditor https://gitlab.cybercodereview.ru/api/v4/projects/48/packages/helm/stable
Шаг 2: Обновите репозиторий с чартом
Это позволит получить информацию о последней версии нашего чарта
helm repo update
Шаг 3: Создайте файл values с настройками чарта
Перейдите в вашу рабочую папку, где впоследствии будете изменять некоторые параметры настройки чарта и создайте файл с любым наименованием, а также с расширением .yaml или .yml . Далее в качестве примера будет использоваться values.yaml.
Шаг 4: Задайте переменные настройки чарта
Далее необходимо заполнить файл values.yaml.
global: image: tag: "<актуальный_тег>" configs: configmap: variables: DOMAIN: "https://auditor.example.com" secret: variables: DB_HOST: "auditor-postgres" # имя Service в Kubernetes или внешний хост DB_PORT: "5432" DB_NAME: "auditor" DB_USER: "user" DB_PASS: "pass" REDIS_HOST: "auditor-redis-master" # имя Service в Kubernetes или внешний хост REDIS_PASSWORD: "11110000" # auditor-rabbitmq - имя Service в Kubernetes или внешний хост AMQP_HOST_STRING: "amqp://user:pass@auditor-rabbitmq:5672" # ACCESS_TOKEN: "<значение_из_веб_интерфейса>" kube: enabled: false ingress: enabled: true host: "auditor.example.com" class: nginx tls: enabled: true secretName: "" ## Имя Kubernetes секрета annotations: labels: {} path: "/" pathType: Prefix
Далее необходимо отредактировать values под ваши нужды.
Тег
Начнем с поля global.image.tag. Чтобы узнать актуальный тег, необходимо перейти в список релизов нашего репозитория. Актуальный тег находится сверху.
Например:
global: image: tag: "2.1.2"
Домен
Для указания доменного имени Вашего Auditor необходимо отредактировать поле configs.configmap.variables.DOMAIN. Например:
configs: configmap: variables: DOMAIN: "https://auditor.local"
Подключение к СУБД PostgreSQL
Для настройки подключения в PostgreSQL необходимо заполнить следующие поля:
configs.configmap.variables.DB_HOST- может быть как именем сервиса в kubernetes, так и внешним хостом;configs.configmap.variables.DB_PORT- порт, на котором PostgreSQL "слушает" подключения;configs.configmap.variables.DB_NAME- имя базы данных, созданной для Auditor;configs.configmap.variables.DB_USER- имя пользователя, имеющего доступ к базе данных для Auditor;configs.configmap.variables.DB_PASS- пароль пользователя из пункта выше.
Значения по умолчанию:
configs: secret: variables: DB_HOST: "auditor-postgres" # имя Service в Kubernetes или внешний хост DB_PORT: "5432" DB_NAME: "auditor" DB_USER: "user" DB_PASS: "pass"
Для изменения значений по умолчанию (которые принимает PostgreSQL), необходимо изменить следующие поля:
postgresql: auth: database: auditor username: user password: pass containerPorts: postgresql: 5432
Подключение к СУБД Redis
Для настройки подключения к Redis необходимо заполнить следующие поля:
configs.configmap.variables.REDIS_HOST- может быть как именем сервиса в Kubernetes, так и внешним хостом;configs.configmap.variables.REDIS_PASSWORD- пароль подключения к Redis.
Значения по умолчанию:
configs: secret: variables: REDIS_HOST: "auditor-redis-master" # имя Service в Kubernetes или внешний хост REDIS_PASSWORD: "11110000"
Чтобы поменять значения по умолчанию (которые принимает Redis), необходимо изменить следующие поля:
redis: auth: password: "11110000"
Подключение к брокеру сообщений RabbitMQ
Данная строка строится из нескольких частей:
amqp://- не изменяется, служебная часть;user- логин для подключения;:- разделитель логина и пароля;pass- пароль для подключения;@- разделитель для данных пользователя и хоста;auditor-rabbitmq- имя сервиса в Kubernetes или внешний хост;:- разделитель хоста и порта;5672- порт, на котором RabbitMQ "слушает" подключения.
Значения по умолчанию:
configs: secret: variables: AMQP_HOST_STRING: "amqp://user:pass@auditor-rabbitmq:5672" # "auditor-rabbitmq" - имя Service в Kubernetes или внешний хост
Чтобы поменять значения по умолчанию (которые принимает RabbitMQ), необходимо изменить следующие поля:
rabbitmq: auth: username: user password: pass
Ingress
Ingress-контроллер - компонент Kubernetes, который управляет входящим трафиком для сервисов.
ingress.host- доменное имя Вашего Auditor;ingress.class- класс контроллера в Вашем кластере;ingress.tls.enabled- включение TLS для Вашего Auditor;ingress.tls.secretName- имя Kubernetes-секрета, в котором лежит Ваш сертификат. Если полеingress.tls.enabledимеет значениеfalse, указывать значение секрета не требуется.
Значения по умолчанию:
ingress: enabled: true host: "auditor.example.com" class: nginx tls: enabled: true secretName: "" ## Имя секрета annotations: labels: {} path: "/" pathType: Prefix
Другие настройки
Сканеры в Kubernetes
После обновления 2.1.4 появилась возможность запускать сканеры в качестве pods в Kubernetes. Для этого нужно настроить следующие поля в values.yaml:
configs: secret: STORAGE_CLASS_NAME: "" kube: enabled: true namespace: ""
Поле configs.secret.STORAGE_CLASS_NAME отвечает за наименование storageClass Вашего кластера. Например longhorn.
Поле configs.kube.enabled отвечает за включение функции.
Поле configs.kube.namespace отвечает за namespace, в котором будут создаваться pods. Обязательно указывайте данный параметр, даже если в команде установки есть флаг -n <ваш_namespace>.
Секреты
При необходимости использования внешних хранилищ секретов необходимо выключить создание секретов при помощи Helm-чарта:
configs: secret: create: false
Шаг 5: Развертывание приложения в кластер Kubernetes
В примере по умолчанию используется установленный ранее ingress controller "nginx" и PostgreSQL, Redis и RabbitMQ из Helm-чарта от Bitnami:
helm upgrade --install auditor auditor/appsecauditor -n auditor --create-namespace -f ./values.yaml
После первого входа вы получите Access Token.
Скопируйте и задайте переменную Access Token, убрав # перед переменной.
configs: secret: variables: ACCESS_TOKEN: "<значение_из_веб_интерфейса>"
Обновите инсталляцию:
helm upgrade --install auditor auditor/appsecauditor -n auditor --create-namespace -f ./values.yaml
Сохраните значение Access Token в безопасном месте для дальнейшего использования при настройке Auditor.