Установка в кластере Kubernetes¶
Совместимые версии ПО¶
| Рекомендуемое ПО | Версия рекомендуемого ПО | Альтернативное ПО | Версия альтернативного ПО |
|---|---|---|---|
| Helm | 3 | - | - |
| PostgreSQL | 16+ | Postgres DB (Platform V Pangolin SE) | 6.x.x * |
| MinIO | Latest * | Ceph | Latest * |
* Используются стандартные API
Подготовка к установке¶
Структура дистрибутива¶
В директории дистрибутива присутствуют следующие основные файлы и подкаталоги:
| Имя файла | Описание |
|---|---|
values.yaml |
Файл, содержащий значения переменных, требуемых для развертывания. Требуется ручное редактирование параметров перед развертыванием |
images/solidpoint-backend.tar |
Образ контейнера с серверной частью |
images/solidpoint-dashboard.tar |
Образ контейнера с веб-интерфейсом |
images/solidpoint-fuchsiad.tar |
Образ контейнера с сервисом сканирования |
chart.yaml |
Файл метаданных Helm-чарта |
templates/ |
Каталог, в котором содержатся манифесты |
Примечания
- Архивы образов опциональны и не всегда поставляются в дистрибутиве.
- Если производится обновление предыдущей инсталляции, достаточно переиспользовать ранее созданные параметры в
values.yamlдля баз данных и для S3-хранилища. Структуры данных и схемы будут автоматически обновлены при запуске новой версии. - Структура файла
values.yamlможет отличаться в разных версиях дистрибутива.
Развертывание баз данных PostgreSQL и S3-хранилища, как правило, производится заранее. При необходимости тестового развертывания, воспользуйтесь инструкцией, в которой для развёртывания используются заранее сформированные манифесты для MinIO и расширения TimescaleDB для PostgreSQL. Не рекомендуется развертывать базы данных в Kubernetes.
Развертывание базы данных для cервиса сканирования¶
Необходимо развернуть базу данных на основе PostgreSQL для cервиса сканирования со следующим списком параметров, затем занести значения в параметры файла values.yaml:
Параметр values.yaml |
Описание |
|---|---|
FUCHSIAD_POSTGRES_SERVER_URL |
URL-адрес базы данных cервиса в формате ip:port сканирования |
FUCHSIAD_POSTGRES_DB |
Имя базы данных cервиса сканирования |
FUCHSIAD_POSTGRES_USER |
Имя пользователя для базы данных cервиса сканирования |
FUCHSIAD_POSTGRES_PASSWORD |
Пароль пользователя |
FUCHSIAD_POSTGRES_SSL_MODE |
Регулирует использование протокола SSL для соединения с базой данных |
Развертывание базы данных для серверной части¶
Необходимо развернуть базу данных на основе PostgreSQL для серверной части со следующим списком параметров, затем занести значения в параметры файла values.yaml:
Параметр values.yaml |
Описание |
|---|---|
BACKEND_POSTGRES_SERVER_URL |
URL-адрес базы данных серверной части в формате ip:port |
BACKEND_POSTGRES_DB |
Имя базы данных серверной части |
BACKEND_POSTGRES_USER |
Имя пользователя для базы данных серверной части |
BACKEND_POSTGRES_PASSWORD |
Пароль пользователя |
BACKEND_POSTGRES_SSL_MODE |
Регулирует использование протокола SSL для соединения с базой данных |
Параметры S3-соединения для сервиса сканирования¶
Предварительное создание бакетов в S3-хранилище не требуется, они автоматически создаются сканером. Значения параметров нужно присвоить соответствующим параметрам файла values.yaml:
Параметр values.yaml |
Описание |
|---|---|
S3_SERVER_URL |
URL-адрес API S3-интерфейса |
S3_ROOT_USER |
Пользователь S3 с правами на создание bucket |
S3_ROOT_PASSWORD |
Пароль пользователя |
Загрузка образов контейнеров в корпоративный реестр образов¶
-
Создайте пространство имён
-
Загрузите три образа из архива в среду выполнения контейнеров (Имена образов можно найти в таблице после пункта 6).
-
Загрузите образы в корпоративный реестр.
-
Если корпоративный реестр доступен только с помощью аутентификации, создайте секрет в пространстве имён, в котором планируется установка приложения, например:
apiVersion: v1 kind: Secret metadata: name: registry namespace: solidpoint data: .dockerconfigjson: [config] type: kubernetes.io/dockerconfigjsonИмя данного секрета необходимо внести в файл
values.yaml.Параметр values.yamlПараметры в поставке. Необходимо сменить на актуальные Описание imagePullSecretsПараметры Секрет для доступа к корпоративному реестру -
Если загрузка образов планируется из корпоративного реестра поставщика, создайте секрет с данными для аутентификации (Имя пользователя и пароль при необходимости будут поставлены вместе с дистрибутивом).
-
Для всех трех образов отредактируйте содержимое файла
values.yamlкак указано ниже:Параметр values.yamlПараметры производителя. Необходимо сменить на актуальные для внутреннего реестра Описание dashboard.repositoryrepo.solidlab.ru/solidlab-dast/solidpoint-dashboardИмя образа панели управления dashboard.tag26.1.0Тег образа панели управления backend.repositoryrepo.solidlab.ru/solidlab-dast/solidpoint-backendИмя образа серверной части backend.tag26.1.0Тег образа серверной части fuchsiad.repositoryrepo.solidlab.ru/solidlab-dast/solidpoint-fuchsiadИмя образа сканера fuchsiad.tag26.1.0Тег образа сканера
Важно
- В случае предварительной загрузки и получения образов через корпоративный реестр необходимо сменить дефолтные данные поставщика на имя и тег образа, которые содержатся в вашем корпоративном реестре.
- После загрузки в корпоративный реестр при необходимости можно заменить значения параметров
values.yamlна пользовательские.
Установка в кластере Kubernetes¶
Развертывание с помощью Helm¶
На данном этапе уже должен быть отредактирован файл values.yaml c актуальными параметрами. Для развертывания на сервере выполните команду:
Доступность из внешней сети¶
Настройте Ingress для сервиса solidpoint-dast-dashboard, чтобы обеспеченить доступность веб-интерфейса. Для этого в файле values.yaml измените значения указанных ниже полей на пользовательские в зависимости от конфигурации кластера и требований.
| Параметр | По умолчанию | Примеры | Описание |
|---|---|---|---|
dashboard.ingress.enabled |
false |
true, false |
Включает или отключает создание ресурса Ingress. При значении false доступ возможен только через kubectl port-forward |
dashboard.ingress.hostname |
Не задано | https://solidpoint.example.com |
Адрес, по которому будет доступна панель управления. Необходимо указать, если dashboard.ingress.enabled: true |
dashboard.ingress.ingressClassName |
Не задано | nginx, traefik |
Указывает, какой Ingress-контроллер должен обслуживать этот ресурс. Если не указан, используется класс по умолчанию кластера |
Переменные окружения¶
Список всех доступных переменных окружения представлен в таблице ниже.
| Имя переменной | Значение по умолчанию | Описание |
|---|---|---|
FUCHSIAD_POSTGRES_SERVER_URL |
Не задано | Адрес сервера базы данных для сервиса сканирования fuchsiad в формате host:port |
FUCHSIAD_POSTGRES_DB |
Не задано | Имя базы данных PostgreSQL для сервиса сканирования fuchsiad |
FUCHSIAD_POSTGRES_USER |
Не задано | Имя пользователя PostgreSQL для сервиса сканирования fuchsiad |
FUCHSIAD_POSTGRES_PASSWORD |
Не задано | Пароль базы данных PostgreSQL для сервиса сканирования fuchsiad (используется только в первом варианте конфигурации) |
FUCHSIAD_POSTGRES_PASSWORD_FILE |
/tmp/secrets/fuchsiad_db_password |
Путь к файлу (внутри контейнера), где будет храниться пароль базы данных PostgreSQL для сервиса сканирования fuchsiad (используется только во втором варианте конфигурации) |
FUCHSIAD_POSTGRES_SSL_MODE |
require |
Регулирует использование протокола SSL для соединения с базой данных PostgreSQL для сервиса сканирования fuchsiad |
FUCHSIAD_SOCKET_PORT |
7075 |
Адрес TCP-порта сервиса сканирования fuchsiad |
FUCHSIAD_SOCKET_ADDR |
Вычисляется на основе заданного пространства имен | Адрес, по которому другие контейнеры могут взаимодействовать с fuchsiad |
FUCHSIAD_CONFIG_DIR |
/etc/fuchsia |
Директория, содержащая конфигурационные файлы сервиса сканирования fuchsiad |
FUCHSIAD_OMIT_JOB_LOGS |
false |
Если имеет значение true, то записи журнала задач сервиса сканирования не передаются на стандартные потоки вывода или ошибок (только сохраняются в S3-совместимое хранилище) |
FUCHSIAD_LOGS_FILE |
/var/log/fuchsia/fuchsiad.log |
Если значение задано, то записи журнала сервиса сканирования дублируются в указанный файл |
FUCHSIAD_CREDENTIALS_FILE |
/tmp/secrets/fuchsiad |
Если значение задано, то файл используется как дополнение к конфигурации сервиса сканирования fuchsiad. Необходимо для хранения чувствительной информации отдельно от основной конфиграционной директории, заданной переменной окружения FUCHSIAD_CONFIG_DIR (например, в директории только для чтения) |
BACKEND_POSTGRES_SERVER_URL |
Не задано | Адрес сервера базы данных для бэкенда в формате host:port |
BACKEND_POSTGRES_DB |
Не задано | Имя базы данных PostgreSQL для серверной части |
BACKEND_POSTGRES_USER |
Не задано | Имя пользователя PostgreSQL для серверной части |
BACKEND_POSTGRES_PASSWORD |
Не задано | Пароль базы данных PostgreSQL для серверной части (используется только в первом варианте конфигурации) |
BACKEND_POSTGRES_PASSWORD_FILE |
/tmp/secrets/backend_db_password |
Путь к файлу (внутри контейнера), где будет храниться пароль базы данных PostgreSQL для серверной части (используется только во втором варианте конфигурации) |
BACKEND_POSTGRES_SSL_MODE |
require |
Регулирует использование протокола SSL для соединения с базой данных PostgreSQL для серверной части |
BACKEND_STATE_DIRECTORY |
/tmp/solidpoint-backend |
Директория, в которой хранится состояние серверной части |
BACKEND_LISTEN_PORT |
8085 |
Адрес TCP-порта серверной части |
BACKEND_ADDR |
Вычисляется на основе заданного пространства имен | Адрес, по которому другие контейнеры могут взаимодействовать с серверной частью |
BACKEND_LOGS_FILE |
/var/log/solidpoint/solidpoint-backend.log |
Если значение задано, то записи журнала серверной части дублируются в указанный файл |
BACKEND_DATABASE_URI_FILE |
/tmp/secrets/backend |
Если значение задано, то строка подключения к PostgreSQL считывается из файла, путь к которому указан в данной переменной, а не из переменной окружения |
S3_SERVER_URL |
Не задано | Адрес сервера S3-совместимого хранилища в формате schema://host:port |
S3_ROOT_USER |
Не задано | Ключ доступа пользователя root к S3-совместимому хранилищу (используется только в первом варианте конфигурации) |
S3_ROOT_USER_FILE |
/tmp/secrets/s3_root_user |
Путь к файлу (внутри контейнера), где будет храниться ключ доступа пользователя root к S3-совместимому хранилищу (используется только во втором варианте конфигурации) |
S3_ROOT_PASSWORD |
Не задано | Пароль пользователя root к S3-совместимому хранилищу (используется только в первом варианте конфигурации) |
S3_ROOT_PASSWORD_FILE |
/tmp/secrets/s3_root_password |
Путь к файлу (внутри контейнера), где будет храниться пароль пользователя root к S3-совместимому хранилищу (используется только во втором варианте конфигурации) |
S3_NO_CHECK_CERT |
true |
Регулирует игнорирование самозаверенных серверных сертификатов при использовании протоколов SSL/TLS |
SCAN_REPORT_GENERATOR_ADDR |
Вычисляется на основе заданного пространства имен | Имя сервиса генерации отчётов, отображаемое во внутренней сети Docker Compose. В процессе развёртывания необходимо изменить на используемый адрес |
SCAN_REPORT_GENERATOR_PORT |
9090 |
Порт машины, на которой развёрнут сервис генерации отчётов. В процессе развёртывания необходимо изменить, если используется порт не по умолчанию |
SCAN_REPORT_GENERATOR_STATE_DIRECTORY |
/tmp/solidpoint-scan-report-generator |
Указывает директорию, в которой хранятся файлы, связанные с отчётами |
SCAN_REPORT_GENERATOR_LOGS_FILE |
Не задано | Если значение задано, то записи журнала сервиса генерации отчётов о сканировании дублируются в указанный файл |
INTERACTSH_DOMAIN |
Не задано | Домен сконфигурированного interactsh-сервера. Оставьте пустым для использования внутреннего заранее сконфигурированного interactsh-сервера |
INTERACTSH_TOKEN |
Не задано | Аутентификационный токен interactsh-сервера. • Если настроена аутентификация персонального заранее сконфигурированного interactsh-сервера, укажите его аутентификационный токен; • Если аутентификация не настроена или используется внутренний interactsh-сервер, оставьте пустым |
CHANNEL |
stable |
Указание канала репозитория deb-пакетов |
TOKEN |
Не задано | Токен для доступа к репозиторию deb-пакетов |
TZ |
Europe/Moscow |
Задаёт временную зону |