Zum Hauptinhalt springen

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: ""
VariableBedeutungÄnderbarkeit nach Erstinstallation
DOMAINzentrale Plattformdomain für gemeinsame Dienstenur mit Migrationsplanung
ENVIRONMENTtechnischer Umgebungspräfix, beispielsweise dev, stg oder prdnicht nachträglich umbenennen
kubeconfig_fileDatei unter $HOME/.kube/änderbar, wenn sie auf denselben Zielcluster zeigt
Proxyvariablenausgehender 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.

FeldBedeutungWas Sie eintragen
ansible_hostAdresse der Deployment-Umgebungfür den offiziellen lokalen Bereitstellungspfad 127.0.0.1 beibehalten
ansible_connectionArt der Ansible-Verbindunglocal, weil das Playbook auf derselben Deployment-Umgebung ausgeführt wird
ansible_python_interpreterPython-Laufzeit für die Ansible-Module{{ ansible_playbook_python }} verwendet dieselbe Python-Umgebung wie das gestartete Playbook
inv_k8s.config.contextKubeconfig-Context des Zielclustersexakt den mit kubectl config get-contexts geprüften Context
inv_k8s.gateway_api.enableaktiviert Gateway API und NGINX Gateway Fabric als Standardpfad für öffentliche Endpunktetrue
inv_k8s.gateway_api.gateway_namespaceNamespace des zentralen Gatewaysim Standard nginx-gateway
inv_k8s.gateway_api.gateway_cluster_issuerClusterIssuer für Gateway- und ListenerSet-ZertifikateDNS-konformer Name, beispielsweise letsencrypt-gateway-prod
inv_k8s.gateway_api.load_balancer_ipoptional reservierte externe IP des Gateway-LoadBalancersleer bei dynamischer Vergabe; sonst die providerseitig reservierte IP
inv_k8s.ingress_classLegacy-Fallback für eine Installation ohne Gateway APInur bei gateway_api.enable: false; beispielsweise public oder nginx
inv_k8s.disable_ipv6deaktiviert IPv6 in den dafür vorgesehenen APISIX-, Loki- und pgAdmin-Einstellungennur auf true setzen, wenn der Zielcluster beziehungsweise das Netzwerk kein IPv6 unterstützt
inv_k8s.storage_class.rwoStorageClass für reguläre ReadWriteOnce-Volumesden exakten Namen einer vorhandenen StorageClass
inv_k8s.storage_class.rwo_retainStorageClass für persistente Daten, die beim Löschen des Claims erhalten bleiben solleneine vorhandene StorageClass mit passender Retain-Strategie; in einer Sandbox kann sie mit rwo identisch sein
inv_k8s.storage_class.provisionerdokumentierter technischer CSI- beziehungsweise Storage-Provisionerden Provisioner der ausgewählten StorageClass eintragen, beispielsweise ebs.csi.aws.com; der aktuelle Rollout wählt seine Volumes über die beiden StorageClass-Namen aus
warnung

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.

FeldBedeutung
le_emailKontaktadresse für das Let's-Encrypt-Konto und wichtige Zertifikatsmeldungen
staging_issuer_nameName des ClusterIssuers für Tests ohne produktive Rate Limits
prod_issuer_nameName des produktiven ClusterIssuers für kompatible Legacy- oder Chart-Ressourcen
gateway_api.gateway_cluster_issuerName 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-PfadBedeutungErwarteter Wert
DOMAINBasisdomain der gemeinsamen Plattformdienste.Hostname ohne Protokoll oder Pfad
ENVIRONMENTStabiler technischer Präfix der Umgebung.dev, stg oder prd
kubeconfig_fileKubeconfig-Datei unter $HOME/.kube/.Dateiname, nicht der vollständige Pfad
HELM_REPOSITORYKompatibilitätsfeld für einen vorgeschalteten Helm-Proxy.Leer lassen, solange der verwendete Release es nicht auswertet
OPERATOR_STACKGemeinsamer Namespace der Plattformoperatoren.Üblicherweise {{ ENVIRONMENT }}-operator-stack
proxy_stateKompatibilitätsfeld für die Proxyverwaltung älterer Bereitstellungspfade.present oder absent; im aktuellen Plattform-Playbook ohne Wirkung
HTTP_PROXY / HTTPS_PROXYProxywerte für Komponenten und Tasks mit Großschreibung.Vollständige Proxy-URL oder leer
http_proxy / https_proxyDieselben Proxywerte für Werkzeuge mit Kleinschreibung.Vollständige Proxy-URL oder leer
NO_PROXY / no_proxyZiele, die den Proxy umgehen müssen.Kommagetrennte Hosts, Domains, Service- und Clusternetze
enterprise_root_certOptionale 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-PfadBedeutungErwarteter Wert
controller.hosts.localhost.ansible_hostLokale Controller-Adresse.127.0.0.1
controller.hosts.localhost.ansible_connectionVerbindungsart der offiziellen lokalen Bereitstellung.local
controller.hosts.localhost.ansible_python_interpreterPython-Interpreter der Ansible-Module.{{ ansible_playbook_python }} bei einer virtuellen Umgebung
inv_k8s.config.contextKubeconfig-Context des Zielclusters.Exakt vorhandener Context
inv_k8s.gateway_api.enableAktiviert den Standardpfad über Gateway API und NGINX Gateway Fabric.true
inv_k8s.gateway_api.gateway_namespaceNamespace des zentralen Gateways.nginx-gateway
inv_k8s.gateway_api.gateway_cluster_issuerClusterIssuer für Gateway- und ListenerSet-Zertifikate.DNS-konformer Kubernetes-Name
inv_k8s.gateway_api.load_balancer_ipOptional reservierte externe IP des Gateway-LoadBalancers.Providerabhängige IP oder leer
inv_k8s.ingress_classLegacy-IngressClass für den deaktivierten Gateway-API-Pfad.Nur bei gateway_api.enable: false; exakter Name im Zielcluster
inv_k8s.disable_ipv6Deaktiviert IPv6 in dafür vorgesehenen Komponenteneinstellungen.true oder false
inv_k8s.storage_class.rwoStorageClass für reguläre ReadWriteOnce-Volumes.Exakter StorageClass-Name
inv_k8s.storage_class.rwo_retainStorageClass für besonders zu erhaltende Daten.Exakter StorageClass-Name mit bewusst gewählter Reclaim Policy
inv_k8s.storage_class.provisionerDokumentierter CSI- beziehungsweise Storage-Provisioner.Provisioner-Name der StorageClass
inv_k8s.gitlab_access.user_emailE-Mail des mitgeführten GitLab-Zugangs.E-Mail-Adresse; aktueller Plattformpfad wertet das Feld nicht direkt aus
inv_k8s.gitlab_access.userBenutzer des mitgeführten GitLab-Zugangs.Benutzername; aktueller Plattformpfad wertet das Feld nicht direkt aus
inv_k8s.gitlab_access.tokenToken des mitgeführten GitLab-Zugangs.Geschütztes Token; aktueller Plattformpfad wertet das Feld nicht direkt aus
inv_k8s.cert_manager.le_emailKontaktadresse des ACME-Kontos.Gültige betriebliche E-Mail-Adresse
inv_k8s.cert_manager.staging_issuer_nameName des Test-ClusterIssuers.DNS-konformer Kubernetes-Name
inv_k8s.cert_manager.prod_issuer_nameName des produktiven ClusterIssuers.DNS-konformer Kubernetes-Name