Восстановление доступа при сбое внешнего сервиса

Допустим, в платформе “Штурвал” для аутентификации вы подключили внешний сервис, например, Keycloak или Blitz (см. инструкцию по подключению). Возникают ситуации, когда на стороне внешнего сервиса аутентификации может произойти сбой. В этом случае есть возможность выключить внешний сервис аутентификации и возобновить доступ всех пользователей в платформу.

Чтобы при сбое внешнего сервиса работа в платформе не прерывалась, выполните:

  1. Подключитесь в кластер управления по kubeconfig, полученному при инсталляции платформы. Также Kubeconfig можно взять с Control Plane узла платформы /etc/kubernetes/admin.conf.
Дальнейшие шаги выполняйте в зависимости от того, как OIDC-провайдер был подключен в платформе.
  1. В Secret auth-provider измените значение параметра active на false.
Команда — иллюстрация
kubectl patch secret auth-provider -n shturval-backend --type=merge -p '{"stringData":{"active":"false"}}'

В команде используется stringData, поэтому значение false не нужно кодировать в base64. Команда изменит только параметр active, параметры external_idp и skip_internal_auth переопределять не требуется.

  1. Проверьте, что в Secret установлено значение false.
Команда — иллюстрация
kubectl get secret auth-provider -n shturval-backend -o jsonpath='{.data.active}' | base64 --decode

Команда должна вернуть значение false.

  1. Подготовьте YAML-файл, например, с именем shturval-auth.yaml и с манифестом объекта ShturvalServicePatch (ShturvalServicePatch) для применения к спецификации (ssc) shturval-auth. В ShturvalServicePatch укажите falseв параметре AUTH_IDP_ACTIVE и задайте приоритетность применения в параметре order, как в приведенном примере ниже.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: shturval-auth-disable
spec:
  shturvalServiceConfigName: shturval-auth
  patchOrder: 1
  customvalues:
    AUTH_IDP_ACTIVE: false
Обратите внимание! Значение параметра patchOrder в ShturvalServicePatch для отключения внешнего провайдера должно быть меньше, чем в примененном ShturvalServicePatch c конфигурацией подключения для внешнего провайдера аутентификации (keycloak, blitz).
  1. Примените изменения.
Команда — иллюстрация
kubectl apply -f УКАЖИТЕ-ФАЙЛ-С-МАНИФЕСТОМ-ShturvalServicePatch

Пример имени файла с манифестом - shturval-auth-disable.yaml.

  1. По завершении применения изменений аутентификация должна отработать корректно.