Umgebung und Cluster
Domain, Umgebungspräfix, Zielcluster, Speicherklassen und TLS konfigurieren.
← Zur Übersicht der Plattformkonfiguration
Domain und Umgebungspräfix
all:
vars:
DOMAIN: "platform.example.org"
ENVIRONMENT: "prd"
kubeconfig_file: "customer-prod.conf"
HTTPS_PROXY: ""
HTTP_PROXY: ""
NO_PROXY: ""
https_proxy: ""
http_proxy: ""
no_proxy: ""
| Variable | Bedeutung | Änderbarkeit nach Erstinstallation |
|---|---|---|
DOMAIN | zentrale Plattformdomain für gemeinsame Dienste | nur mit Migrationsplanung |
ENVIRONMENT | technischer Umgebungspräfix, beispielsweise dev, stg oder prd | nicht nachträglich umbenennen |
kubeconfig_file | Datei unter $HOME/.kube/ | änderbar, wenn sie auf denselben Zielcluster zeigt |
| Proxyvariablen | ausgehender HTTP-/HTTPS-Zugriff für Deployment und Komponenten | änderbar; no_proxy sorgfältig pflegen |
Verwenden Sie für DOMAIN und Mandantendomains nur Hostnamen, kein https:// und keinen abschließenden Slash.
Deployment-Umgebung und Cluster
children:
controller:
hosts:
localhost:
ansible_host: 127.0.0.1
ansible_connection: local
ansible_python_interpreter: "{{ ansible_playbook_python }}"
vars:
inv_k8s:
config:
context: "customer-prod"
gateway_api:
enable: true
gateway_namespace: "nginx-gateway"
gateway_cluster_issuer: "letsencrypt-gateway-prod"
load_balancer_ip: ""
disable_ipv6: false
storage_class:
rwo: "fast-rwo"
rwo_retain: "fast-rwo-retain"
provisioner: "csi.example.org"
cert_manager:
le_email: "platform-operations@example.org"
staging_issuer_name: "letsencrypt-staging"
prod_issuer_name: "letsencrypt-production"
Die Namen für Context und StorageClasses müssen exakt mit dem Zielcluster übereinstimmen. Die StorageClasses werden vor dem Rollout automatisch geprüft; Gateway API und NGINX Gateway Fabric werden durch die Plattformautomatisierung installiert.
| Feld | Bedeutung | Was Sie eintragen |
|---|---|---|
ansible_host | Adresse der Deployment-Umgebung | für den offiziellen lokalen Bereitstellungspfad 127.0.0.1 beibehalten |
ansible_connection | Art der Ansible-Verbindung | local, weil das Playbook auf derselben Deployment-Umgebung ausgeführt wird |
ansible_python_interpreter | Python-Laufzeit für die Ansible-Module | {{ ansible_playbook_python }} verwendet dieselbe Python-Umgebung wie das gestartete Playbook |
inv_k8s.config.context | Kubeconfig-Context des Zielclusters | exakt den mit kubectl config get-contexts geprüften Context |
inv_k8s.gateway_api.enable | aktiviert Gateway API und NGINX Gateway Fabric als Standardpfad für öffentliche Endpunkte | true |
inv_k8s.gateway_api.gateway_namespace | Namespace des zentralen Gateways | im Standard nginx-gateway |
inv_k8s.gateway_api.gateway_cluster_issuer | ClusterIssuer für Gateway- und ListenerSet-Zertifikate | DNS-konformer Name, beispielsweise letsencrypt-gateway-prod |
inv_k8s.gateway_api.load_balancer_ip | optional reservierte externe IP des Gateway-LoadBalancers | leer bei dynamischer Vergabe; sonst die providerseitig reservierte IP |
inv_k8s.ingress_class | Legacy-Fallback für eine Installation ohne Gateway API | nur bei gateway_api.enable: false; beispielsweise public oder nginx |
inv_k8s.disable_ipv6 | deaktiviert IPv6 in den dafür vorgesehenen APISIX-, Loki- und pgAdmin-Einstellungen | nur auf true setzen, wenn der Zielcluster beziehungsweise das Netzwerk kein IPv6 unterstützt |
inv_k8s.storage_class.rwo | StorageClass für reguläre ReadWriteOnce-Volumes | den exakten Namen einer vorhandenen StorageClass |
inv_k8s.storage_class.rwo_retain | StorageClass für persistente Daten, die beim Löschen des Claims erhalten bleiben sollen | eine vorhandene StorageClass mit passender Retain-Strategie; in einer Sandbox kann sie mit rwo identisch sein |
inv_k8s.storage_class.provisioner | dokumentierter technischer CSI- beziehungsweise Storage-Provisioner | den Provisioner der ausgewählten StorageClass eintragen, beispielsweise ebs.csi.aws.com; der aktuelle Rollout wählt seine Volumes über die beiden StorageClass-Namen aus |
Stellen Sie sicher, dass die virtuelle Python-Umgebung aus Python-Umgebung erstellen aktiviert ist.
source .venv/bin/activate
Zertifikatsausstellung konfigurieren
Der standardmäßige Bereitstellungspfad installiert cert-manager und erzeugt einen Staging- sowie einen Produktions-Issuer für Let's Encrypt. Die Namen und die Kontaktadresse werden im Clusterabschnitt des Inventory festgelegt:
inv_k8s:
gateway_api:
enable: true
gateway_namespace: "nginx-gateway"
gateway_cluster_issuer: "letsencrypt-gateway-prod"
load_balancer_ip: ""
cert_manager:
le_email: "platform-operations@example.org"
staging_issuer_name: "letsencrypt-staging"
prod_issuer_name: "letsencrypt-production"
Der Gateway-LoadBalancer muss Port 80 für die ACME-HTTP-01-Challenge und Port 443 für die späteren HTTPS-Zugriffe erreichen. Die unter Voraussetzungen prüfen festgelegten Domains müssen bereits auf diesen Gateway-Endpunkt zeigen.
Prüfen Sie die Zertifikatsausstellung zunächst über den Staging-Issuer. Verwenden Sie den Gateway-Produktions-Issuer erst, nachdem DNS, Gateway-Endpunkt und Challenge erfolgreich verifiziert wurden.
| Feld | Bedeutung |
|---|---|
le_email | Kontaktadresse für das Let's-Encrypt-Konto und wichtige Zertifikatsmeldungen |
staging_issuer_name | Name des ClusterIssuers für Tests ohne produktive Rate Limits |
prod_issuer_name | Name des produktiven ClusterIssuers für kompatible Legacy- oder Chart-Ressourcen |
gateway_api.gateway_cluster_issuer | Name des ClusterIssuers, den Gateway und ListenerSets für öffentliche HTTPS-Endpunkte referenzieren |
Konfigurationsfelder
Diese Felder gehören zu den globalen Blöcken außerhalb von inv_tenants. Verwenden Sie die vollständige Vorlage des ausgewählten Releases; optionale und mitgeführte Kompatibilitätsfelder sind in der Tabelle gekennzeichnet.
Domain, Quellen und Proxy
| Inventory-Pfad | Bedeutung | Erwarteter Wert |
|---|---|---|
DOMAIN | Basisdomain der gemeinsamen Plattformdienste. | Hostname ohne Protokoll oder Pfad |
ENVIRONMENT | Stabiler technischer Präfix der Umgebung. | dev, stg oder prd |
kubeconfig_file | Kubeconfig-Datei unter $HOME/.kube/. | Dateiname, nicht der vollständige Pfad |
HELM_REPOSITORY | Kompatibilitätsfeld für einen vorgeschalteten Helm-Proxy. | Leer lassen, solange der verwendete Release es nicht auswertet |
OPERATOR_STACK | Gemeinsamer Namespace der Plattformoperatoren. | Üblicherweise {{ ENVIRONMENT }}-operator-stack |
proxy_state | Kompatibilitätsfeld für die Proxyverwaltung älterer Bereitstellungspfade. | present oder absent; im aktuellen Plattform-Playbook ohne Wirkung |
HTTP_PROXY / HTTPS_PROXY | Proxywerte für Komponenten und Tasks mit Großschreibung. | Vollständige Proxy-URL oder leer |
http_proxy / https_proxy | Dieselben Proxywerte für Werkzeuge mit Kleinschreibung. | Vollständige Proxy-URL oder leer |
NO_PROXY / no_proxy | Ziele, die den Proxy umgehen müssen. | Kommagetrennte Hosts, Domains, Service- und Clusternetze |
enterprise_root_cert | Optionale Unternehmens-CA für Komponenten wie Grafana, Node-RED, CKAN, Superset und GeoServer. | PEM-kodiertes Zertifikat; Feld weglassen, wenn nicht benötigt |
Deployment und Kubernetes
| Inventory-Pfad | Bedeutung | Erwarteter Wert |
|---|---|---|
controller.hosts.localhost.ansible_host | Lokale Controller-Adresse. | 127.0.0.1 |
controller.hosts.localhost.ansible_connection | Verbindungsart der offiziellen lokalen Bereitstellung. | local |
controller.hosts.localhost.ansible_python_interpreter | Python-Interpreter der Ansible-Module. | {{ ansible_playbook_python }} bei einer virtuellen Umgebung |
inv_k8s.config.context | Kubeconfig-Context des Zielclusters. | Exakt vorhandener Context |
inv_k8s.gateway_api.enable | Aktiviert den Standardpfad über Gateway API und NGINX Gateway Fabric. | true |
inv_k8s.gateway_api.gateway_namespace | Namespace des zentralen Gateways. | nginx-gateway |
inv_k8s.gateway_api.gateway_cluster_issuer | ClusterIssuer für Gateway- und ListenerSet-Zertifikate. | DNS-konformer Kubernetes-Name |
inv_k8s.gateway_api.load_balancer_ip | Optional reservierte externe IP des Gateway-LoadBalancers. | Providerabhängige IP oder leer |
inv_k8s.ingress_class | Legacy-IngressClass für den deaktivierten Gateway-API-Pfad. | Nur bei gateway_api.enable: false; exakter Name im Zielcluster |
inv_k8s.disable_ipv6 | Deaktiviert IPv6 in dafür vorgesehenen Komponenteneinstellungen. | true oder false |
inv_k8s.storage_class.rwo | StorageClass für reguläre ReadWriteOnce-Volumes. | Exakter StorageClass-Name |
inv_k8s.storage_class.rwo_retain | StorageClass für besonders zu erhaltende Daten. | Exakter StorageClass-Name mit bewusst gewählter Reclaim Policy |
inv_k8s.storage_class.provisioner | Dokumentierter CSI- beziehungsweise Storage-Provisioner. | Provisioner-Name der StorageClass |
inv_k8s.gitlab_access.user_email | E-Mail des mitgeführten GitLab-Zugangs. | E-Mail-Adresse; aktueller Plattformpfad wertet das Feld nicht direkt aus |
inv_k8s.gitlab_access.user | Benutzer des mitgeführten GitLab-Zugangs. | Benutzername; aktueller Plattformpfad wertet das Feld nicht direkt aus |
inv_k8s.gitlab_access.token | Token des mitgeführten GitLab-Zugangs. | Geschütztes Token; aktueller Plattformpfad wertet das Feld nicht direkt aus |
inv_k8s.cert_manager.le_email | Kontaktadresse des ACME-Kontos. | Gültige betriebliche E-Mail-Adresse |
inv_k8s.cert_manager.staging_issuer_name | Name des Test-ClusterIssuers. | DNS-konformer Kubernetes-Name |
inv_k8s.cert_manager.prod_issuer_name | Name des produktiven ClusterIssuers. | DNS-konformer Kubernetes-Name |