Модуль по умолчанию выключен. Для включения добавьте в ConfigMap deckhouse
:
data:
openvpnEnabled: "true"
Параметры
- authобъект
Опции, связанные с аутентификацией или авторизацией в приложении.
- allowedUserGroupsмассив строк
Массив групп, пользователям которых позволен доступ в панель администратора openvpn.
Используется если включен модуль user-authn или параметр externalAuthentication.
Внимание! При использовании совместно с модулем user-authn необходимо так же добавить разрешенные группы в соответствующее поле в настройках DexProvider.
- externalAuthenticationобъект
Параметры для подключения внешней аутентификации (используется механизм Nginx Ingress external-auth, работающий на основе модуля Nginx auth_request).
Если включен модуль user-authn, параметры
externalAuthentication
настраиваются автоматически.- authSignInURLстрока
URL, куда будет перенаправлен пользователь для прохождения аутентификации (если сервис аутентификации вернул код ответа HTTP отличный от 200).
- authURLстрока
URL сервиса аутентификации. Если пользователь прошел аутентификацию, сервис должен возвращать код ответа HTTP 200.
- authSignInURLстрока
- passwordстрока
Пароль для HTTP-авторизации для пользователя
admin
(генерируется автоматически, но можно менять).Используется если не включен параметр externalAuthentication.
- whitelistSourceRangesмассив строк
Массив CIDR, которым разрешено проходить аутентификацию для доступа в openvpn.
- allowedUserGroupsмассив строк
- externalHostстрока
IP или домен по которому клиенты подключаются к OpenVPN серверу.
По умолчанию — используются данные из сервиса с именем
openvpn-external
. - externalIPстрока
IP одного из узлов кластера, который будет использоваться для подключения клиентов OpenVPN.
Требуется только при использовании inlet
ExternalIP
. - externalPortцелочисленный
Порт, который вывешивается наружу на
externalIP
или балансировщике.По умолчанию:
5416
- hostPortцелочисленный
Порт для подключения к openvpn-серверу, который будет доступен на узле, на котором запущен Pod openvpn.
Параметр доступен при выборе inlet
HostPort
.По умолчанию:
5416
- httpsобъект
Тип сертификата, используемого для панели администратора openvpn.
При использовании этого параметра полностью переопределяются глобальные настройки
global.modules.https
.- certManagerобъект
- clusterIssuerNameстрока
ClusterIssuer, используемый для панели администратора openvpn
Доступны
letsencrypt
,letsencrypt-staging
,selfsigned
, но вы можете определить свои.По умолчанию:
"letsencrypt"
- clusterIssuerNameстрока
- customCertificateобъект
- secretNameстрока
Указываем имя Secret’а в пространстве имен
d8-system
, который будет использоваться для панели администратора openvpn (данный Secret должен быть в формате kubernetes.io/tls).По умолчанию:
"false"
- secretNameстрока
- modeстрока
Режим работы HTTPS:
CertManager
— панель администратора openvpn будет работать по HTTPS, самостоятельно заказывая сертификат с помощью ClusterIssuer, заданного в параметреcertManager.clusterIssuerName
;CustomCertificate
— панель администратора openvpn будет работать по HTTPS используя сертификат из пространства именd8-system
;Disabled
— в данном режиме панель администратора openvpn будет работать только по HTTP;OnlyInURI
— панель администратора openvpn будет работать по HTTP (подразумевая, что перед ней стоит внешний HTTPS-балансировщик, который терминирует HTTPS) и все ссылки в user-authn будут генерироваться с HTTPS-схемой.
Допустимые значения:
Disabled
,CertManager
,CustomCertificate
,OnlyInURI
- certManagerобъект
- ingressClassстрока
Класс Ingress-контроллера, который используется для панели администратора openvpn.
По умолчанию — глобальное значение
modules.ingressClass
. - inletстрока
Способы подключения из внешнего мира.
Поддерживаются следующие inlet’ы:
ExternalIP
— когда имеются узлы с публичными IP. Используется в комбинации с параметромexternalIP
.LoadBalancer
— для всех облачных провайдеров и их схем размещения, в которых поддерживается заказ LoadBalancer’ов.HostPort
— порт сервера openvpn будет доступен на узле, на котором находится Pod. За выбор порта отвечает параметрhostPort
.Direct
— для нестандартных случаев. В пространстве именd8-openvpn
необходимо создать сервис с именемopenvpn-external
, который отправляет трафик в Pod с лейбломapp: openvpn
на порт с именемovpn-tcp
(или просто 1194). Из этого сервиса парсится externalIP, IP балансировщика или host балансировщика. Если ничего этого нет, то необходимо указать параметрexternalHost
.
Допустимые значения:
ExternalIP
,LoadBalancer
,HostPort
,Direct
- loadBalancerобъект
Секция опциональных настроек для inlet’а
LoadBalancer
.- annotationsобъект
Аннотации, которые будут проставлены сервису для гибкой настройки балансировщика.
Внимание! модуль не учитывает особенности указания аннотаций в различных облаках. Если аннотации для заказа load balancer’а применяются только при создании сервиса, то для обновления подобных параметров вам необходимо будет выключить и включить модуль.
- sourceRangesмассив строк
Список CIDR, которым разрешен доступ на балансировщик.
Облачный провайдер может не поддерживать данную опцию и игнорировать её.
- annotationsобъект
- nodeSelectorобъект
Структура, аналогичная
spec.nodeSelector
Kubernetes Pod.Если ничего не указано или указано
false
— будет использоваться автоматика. - pushToClientDNSстрока
Адрес DNS-сервера, который отправляется клиентам при подключении.
По умолчанию — IP сервиса
kube-system/kube-dns
. - pushToClientRoutesмассив строк
Список роутов, которые отправляются клиентам при подключении.
По умолчанию — генерируется автоматически из локальной сети кластера, сервисной подсети и подсети Pod’ов.
- pushToClientSearchDomainsмассив строк
Список доменов поиска, которые отправляются клиентам при подключении.
По умолчанию используется значение из переменной
global.discovery.clusterDomain
. - storageClassстрока
Параметр будет удален в следующих релизах, т.к. мы отказались от использования диска для хранения сертификатов.
- tolerationsмассив объектов
Структура, аналогичная
spec.tolerations
в Kubernetes Pod.Если ничего не указано или указано
false
— будет использоваться автоматика.- effectстрока
- keyстрока
- operatorстрока
- tolerationSecondsцелочисленный
- valueстрока
- tunnelNetworkстрока
Подсеть используемая для туннеля.
По умолчанию:
"172.25.175.0/255.255.255.0"