Files
tf_registry/k8s

k8s 🔧

Кратко: Kubernetes‑манифесты для namespace terra — развёртывание registry-server, terraform-operator, Ingress, TLS и связанные ресурсы (S3, CRD, builder ConfigMap).

Важные файлы

  • 00-namespace.yaml — namespace terra
  • 00-rbac.yaml — RBAC для оператора
  • 02-crd.yaml — CRD для операторов (ProviderRelease)
  • 03-build-script.yaml — ConfigMap для сборщика Job'ов
  • 04-operator-deployment.yaml — Deployment для оператора
  • 05-registry-server.yaml, 06-registry-server-docs.yaml — Deployment, Service и Ingress для registry-server

Как перенести на новый домен (коротко)

  1. Ingress: в манифесте (обычно 05-* или registry-ingress) заменить host: terra.k8c.ru на новый домен и убедиться в корректной аннотации cert-manager.io/cluster-issuer (или задать другой secretName).
  2. Certificate: cert-manager автоматически выпустит/обновит TLS; проверьте kubectl -n terra get certificate registry-tls -o yaml и дождитесь status.conditions[*].type == Ready.
  3. Deployment env: заменить REGISTRY_HOSTNAME в 04-operator-deployment.yaml и в registry-server на новый домен.
  4. DNS: добавить A/CNAME запись для нового домена, указывающую на IP балансировщика (kubectl -n terra get ingress registry-ingress -o jsonpath='{.status.loadBalancer.ingress[0].ip}').
  5. Secrets & storage: используйте s3-credentials (S3_ENDPOINT/S3_ACCESS_KEY/S3_SECRET_KEY) и убедитесь в доступности S3.
  6. Apply & Verify:
    • kubectl apply -f manifests/
    • kubectl -n terra describe ingress registry-ingress
    • kubectl -n terra get certificate registry-tls
    • curl -vk https://<domain>/docs/<namespace>/<name>/<version>/

Проверки (read-only)

  • kubectl -n terra get ingress,svc,deploy,po,secret
  • kubectl -n terra get certificate registry-tls -o yaml
  • kubectl -n terra logs <registry-pod>

Примечание: это инструкция для операции вручную/CI; я ничего не меняю в кластере автоматически.