Настройка HTTPS в Kubernetes
Перед настройкой HTTPS нет необходимости проводить установку Test IT.
- Подготовьте файлы с сертификатом и ключом. Назвать их можно, например
tls.crt
иtls.key
. - Переведите содержимое файлов в формат base64:
cat tls.crt | base64 | tr -d "\n" > tls-encoded.crt cat tls.key | base64 | tr -d "\n" > tls-encoded.key
- Создайте секрет с закодированными файлами в нужном пространстве имен:
kubectl -n <namespace> create secret tls my-tls-secret --cert=tls-encoded.crt --key=tls-encoded.key
- Настройте ingress для выбранного доменного имени и tls-секрета:
# testit_frontend/values-override.yaml ingress: className: nginx host: "my.hostname.example.com" path: / pathType: Prefix tls: - secretName: "my-tls-secret" hosts: - "my.hostname.example.com"
- Если данная настройка проходит на этапе до установки Test IT, продолжайте следовать описанным шагам.
- Если Test IT был уже установлен, примените изменения:
cd ~/testit helm -n <namespace> -f testit_frontend/values-override.yaml upgrade testit-frontend testit_frontend/
- Опционально: Вы можете использовать готовые решения для настройки HTTPS в K8s, например cert-manager + Letsencrypt. Для этого добавьте соответствующие флаги и аннотации в ingress:
# testit_frontend/values-override.yaml ingress: service: annotations: cert-manager.io/cluster-issuer: letsencrypt-production cert-manager.io/common-name: "my.hostname.example.com" className: nginx host: "my.hostname.example.com" path: / pathType: Prefix tls: - secretName: "my-generic-tls" hosts: - "my.hostname.example.com"