Felder zur Anwendung der Spezifikation mit gcloud

Auf dieser Seite werden die verschiedenen Felder erläutert, mit denen Sie Config Sync mit dem --config Flag im Google Cloud CLI apply Befehl und dem --fleet-default-member-config Flag im enable Befehl im beta Release-Track konfigurieren können. Dieses Feldschema wird jetzt im dem alpha Release-Track des enable Befehls zugunsten des neuen API-Schemas nicht mehr empfohlen.

Das mit diesen gcloud CLI-Flags verwendete Dateiformat ähnelt dem Format des ConfigManagement-Objekts. Die Formate sind jedoch unterschiedlich und die beiden sind nicht austauschbar.

Allgemeine Konfiguration für Config Management

Schlüssel Beschreibung
spec.version Die Version von Config Management. Wenn Sie Config Management für einen Cluster konfigurieren, ist die Standardversion die aktuelle Version der Config Management-Installation auf diesem Cluster. Andernfalls ist die Standardversion für die flottenweite Konfiguration oder wenn keine Installation auf dem Zielcluster vorhanden ist, die neueste Version.

Konfiguration für Config Sync

Schlüssel Beschreibung
spec.cluster Der Clustername, der von der Config Sync cluster-name-selector Annotation oder ClusterSelector, zum Anwenden von Konfigurationen auf nur eine Teilmenge von Clustern verwendet wird. Legen Sie dieses Feld fest, wenn ein anderer Name als der Name der Flottenmitgliedschaft für den Cluster von der Config Sync cluster-name-selector Annotation oder ClusterSelector verwendet wird.
spec.upgrades (Vorschau) Die Upgrade-Einstellung für Config Sync. Der Standardwert und der einzige unterstützte Wert ist manual.
spec.configSync.enabled Wenn true, wird Config Sync installiert und verwaltet . Wenn false, wird zuvor verwaltetes Config Sync deinstalliert und der Rest der .spec.configSync Konfiguration wird ignoriert. Für die gcloud CLI-Version 429.0.0 und früher erforderlich. Für die gcloud CLI-Version 430.0.0 und höher optional. Standard: true
spec.configSync.sourceType Der Typ der Quelle, von der Config Sync synchronisiert werden soll. Akzeptiert git oder oci. Standard: git.
spec.configSync.syncRepo Die URL des Git-Repositorys oder des OCI-Images, das als „Source of Truth“ verwendet werden soll. Sie können dieses Feld weglassen, wenn Sie kein Git-Repository vorbereitet haben.
spec.configSync.syncBranch Der Zweig des Git-Repositorys, von dem aus synchronisiert werden soll. Dieses Feld wird ignoriert, wenn .spec.configSync.sourceType auf oci gesetzt ist. Dieses Feld ist optional und der Standardwert ist master. Wir empfehlen, das spec.configSync.syncRev Feld zu verwenden, um einen Zweignamen anzugeben. Wenn beide Felder verwendet werden, hat das Feld spec.configSync.syncRev Vorrang vor spec.configSync.syncBranch.
spec.configSync.policyDir Der Pfad im Git-Repository oder OCI-Image zum Stammverzeichnis, das die Konfiguration enthält, die Sie synchronisieren möchten. Standard: Stammverzeichnis des Repositorys
spec.configSync.syncWait Zeitraum in Sekunden zwischen aufeinanderfolgenden Synchronisierungen. Standardeinstellung: 15.
spec.configSync.syncRev Git-Revision (Tag oder Hash) oder Zweig, von dem aus synchronisiert werden soll. Dieses Feld wird ignoriert, wenn .spec.configSync.sourceType auf oci gesetzt ist. Dieses Feld ist optional und der Standardwert ist HEAD. Wenn Sie einen Hash verwenden, es muss sich um einen vollständigen Hash (nicht um eine abgekürzte Form) handeln.
spec.configSync.preventDrift Bei true wird der Config Sync-Zulassungs-Webhook aktiviert, um Drifts zu verhindern indem Änderungskonflike nicht an Live-Cluster übertragen werden. Standardeinstellungen: false. Config Sync korrigiert Drifts immer, unabhängig vom Wert dieses Felds.
spec.configSync.stopSyncing Bei true werden die Konfigurationen für einen einzelnen Cluster nicht mehr synchronisiert. Die Standardeinstellung ist false.
spec.configSync.secretType Die Art des Secrets, das für den Zugriff auf die .spec.configSync.syncRepo konfiguriert ist. Wenn Sie git als Quelltyp ausgewählt haben,. muss der Wert ssh, cookiefile, gcenode, gcpserviceaccount, token odernone sein. Wenn Sie oci als Quelltyp ausgewählt haben, muss der Wert gcenode, gcpserviceaccount oder none sein. Bei der Validierung dieses Feldes wird zwischen Groß- und Kleinschreibung unterschieden. Erforderlich.
spec.configSync.gcpServiceAccountEmail Das Google Cloud Dienstkonto, das zum Annotieren des Kubernetes-Dienstkontos des RootSync- oder RepoSync-Controllers verwendet wird. Dieses Feld wird nur verwendet wenn spec.configSync.secretType den Wert gcpserviceaccount hat.
spec.configSync.metricsGcpServiceAccountEmail Eingestellt: Wenn die Workload Identity-Föderation für GKE aktiviert ist, Google Cloud ist kein Dienstkonto für den Export von Config Sync-Messwerten erforderlich. Verwenden Sie stattdessen ein Kubernetes Dienstkonto.
spec.configSync.sourceFormat Wenn dieser Parameter auf unstructured gesetzt ist, wird ein nicht hierarchisches Repository konfiguriert. Standard: hierarchy.
spec.configSync.deploymentOverrides Eine Liste der Konfigurationen für Ressourcenüberschreibungen für Config Sync-Bereitstellungen. Das Feld gilt nur für Config Sync-Bereitstellungen mit Containern, die kein Root- oder Namespace-Abgleich sind, z. B. reconciler-manager. Wenn Sie einen Root- oder Namespace Abgleich überschreiben müssen, verwenden Sie stattdessen die Felder rootsync oder reposync. Optional.
spec.configSync.deploymentOverrides.name Der Name der zu überschreibenden Config Sync-Bereitstellung. Der Wert darf nicht leer sein.
spec.configSync.deploymentOverrides.namespace Der Namespace der zu überschreibenden Config Sync-Bereitstellung. Der Wert darf nicht leer sein.
spec.configSync.deploymentOverrides.containers Eine Liste der Überschreibungskonfigurationen für die Anfragen und Limits von Config Sync Containern. Optional.
spec.configSync.deploymentOverrides.containers.name Der Name des zu überschreibenden Config Sync-Containers. Der Wert darf nicht leer sein.
spec.configSync.deploymentOverrides.containers.cpuRequest Die CPU-Anfrage für den Container. Verwenden Sie CPU-Ressourceneinheiten in Kubernetes. Optional.
spec.configSync.deploymentOverrides.containers.cpuLimit Das CPU-Limit für den Container. Verwenden Sie CPU-Ressourceneinheiten in Kubernetes. Optional.
spec.configSync.deploymentOverrides.containers.memoryRequest Die Speicheranfrage für den Container. Verwenden Sie Speicherressourceneinheiten in Kubernetes. Optional.
spec.configSync.deploymentOverrides.containers.memoryLimit Das Speicherlimit für den Container. Verwenden Sie Speicherressourceneinheiten in Kubernetes. Optional.

Proxykonfiguration für das Git-Repository

Wenn Sie gemäß den Sicherheitsrichtlinien Ihrer Organisation Traffic über einen HTTP(S)-Proxy weiterleiten müssen, können Sie Config Sync für die Kommunikation mit Ihrem Git-Host über den URI des Proxys konfigurieren. Der Proxy wird nur unterstützt, wenn der Autorisierungstyp cookiefile, none oder token verwendet wird.

Schlüssel Beschreibung
spec.configSync.httpsProxy Definiert eine Umgebungsvariable HTTPS_PROXY für den Zugriff auf das Git-Repository. Beispiel: https://proxy.internal.business.co:443.
Der HTTPS-Proxy akzeptiert nur https oder ungeschmückte URLs. URLs mit http:// werden abgelehnt.
Wenn Sie eine ungeschmückte URL verwenden, müssen Sie die Kommunikation zwischen Ihrem Proxyserver und dem Git-Host sicher machen.

Beispiel für gcloud apply spec

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    sourceFormat: unstructured
    syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
    syncBranch: main
    secretType: none
    policyDir: config-sync-quickstart/multirepo/root

Beispiel für gcloud apply spec mit Überschreibungen für Bereitstellungsressourcen

Wenn Sie die Ressourcenanfragen und ‑limits von Config Sync anpassen möchten, fügen Sie das Feld deploymentOverrides in Ihrer Apply-Spezifikation hinzu. Mit dem folgenden YAML-Code werden beispielsweise die CPU- und Speicherlimits für den Container reconciler-manager überschrieben:

applySpecVersion: 1
spec:
  configSync:
    enabled: true
    deploymentOverrides:
    - name: reconciler-manager
      namespace: config-management-system
      containers:
      - name: reconciler-manager
        cpuRequest: 50m
        cpuLimit: 100m
        memoryRequest: 256Mi
        memoryLimit: 512Mi