Как повесить свой сертификат на системные домены (Grafana, Dex и другие интерфейсы)

Viewed 32

Хочу, чтобы Grafana, Dex и прочие веб-интерфейсы Deckhouse работали с моим wildcard-сертификатом, а не с Let's Encrypt. Куда положить сертификат?

1 Answers
  1. Создайте TLS-секрет в пространстве имён d8-system:
d8 k -n d8-system create secret tls my-wildcard --cert=tls.crt --key=tls.key
  1. В ModuleConfig global (d8 k edit mc global) включите режим CustomCertificate (modules.https):
spec:
  settings:
    modules:
      https:
        mode: CustomCertificate
        customCertificate:
          secretName: my-wildcard

Сертификат должен покрывать все домены из publicDomainTemplate: для шаблона вида %s.kube.example.com нужен wildcard *.kube.example.com.

Если заодно меняете домен (modules.publicDomainTemplate в том же ModuleConfig), учтите:

  • модули пересоздадут Ingress с новыми хостами, старые адреса сразу перестанут работать;
  • заранее подготовьте DNS и сертификат под новый домен;
  • обновите адрес обратного вызова dex.…/callback во внешних провайдерах аутентификации;
  • изменится OIDC issuer у kube-apiserver, поэтому файлы kubeconfig, выданные через Dex, придётся выпустить заново.

Подробнее в документации: modules.https, publicDomainTemplate.