Aggiungi configurazioni a una fonte attendibile

Questa pagina spiega come aggiungere e organizzare le configurazioni memorizzate in una fonte attendibile.

Informazioni sulle configurazioni

Config Sync è progettato per gli operatori di cluster che gestiscono molti cluster. Per garantire che i tuoi cluster soddisfino gli standard aziendali e di conformità, consenti a Config Sync di gestire spazi dei nomi, Role, RoleBindings, ResourceQuotas e altri importanti oggetti Kubernetes all'interno del tuo parco risorse.

Quando Config Sync gestisce queste risorse, mantiene sincronizzati i cluster registrati utilizzando le configurazioni. Una configurazione è un file YAML o JSON archiviato in una fonte attendibile. Config Sync supporta repository Git, immagini OCI e grafici Helm come fonte di riferimento. Le configurazioni contengono lo stesso tipo di dettagli di configurazione che puoi applicare manualmente a un cluster utilizzando il comando kubectl apply. Puoi creare una configurazione per qualsiasi oggetto Kubernetes presente in un cluster. Tuttavia, alcuni oggetti Kubernetes, come i secret, contengono informazioni sensibili che potrebbero essere inappropriate per essere archiviate in una fonte attendibile. Usa il tuo giudizio per decidere se gestire questi tipi di oggetti con Config Sync.

Puoi anche utilizzare Config Sync con Config Connector per sincronizzare le configurazioni per le risorse Google Cloud. Per saperne di più sull'utilizzo di Config Connector, consulta Gestire le risorse Google Cloud utilizzando Config Connector. Puoi anche semplificare l'installazione di Config Sync e Config Connector configurando Config Controller.

Limitazioni

Non puoi modificare alcun campo immutabile in una configurazione cambiando il valore nell'origine attendibile. Se devi aggiornare un campo immutabile, elimina manualmente l'oggetto nel cluster. Config Sync può quindi ricreare l'oggetto con il nuovo valore del campo.

Seleziona come organizzare le configurazioni

Config Sync utilizza una fonte attendibile per l'archiviazione della configurazione e il controllo delle versioni. Puoi scegliere due diversi formati per la tua fonte attendibile: non strutturato e gerarchico.

Il formato di origine non strutturata consente di organizzare le configurazioni nel modo più pratico. Questo formato può essere particolarmente utile se stai organizzando o generando configurazioni utilizzando uno strumento come Kustomize, kpt o Helm. Per un esempio di come organizzare le configurazioni, consulta Formato di esempio per un repository non strutturato.

Il formato di origine gerarchico, o strutturato, separa le configurazioni in categorie distinte per aiutarti a organizzarle. Le categorie sono configurazione del sistema, metadati del cluster, configurazione a livello di cluster e configurazione degli spazi dei nomi. Per ulteriori informazioni sul formato di origine gerarchico, consulta Struttura del repository gerarchico.

Non strutturato è il formato consigliato per la maggior parte degli utenti. Inoltre, quando configuri gli oggetti RepoSync, devi utilizzare il formato di origine non strutturato.

Funzionalità supportate per i formati non strutturati e gerarchici

La seguente tabella evidenzia le differenze tra i formati non strutturati e gerarchici:

Funzionalità Formato non strutturato (consigliato) Formato gerarchico
Utilizzato come formato per un oggetto RootSync o per la fonte di riferimento centrale Supportato Supportato
Utilizzato come formato per un oggetto RepoSync Supportato Non supportata
ClusterSelector Supportato Supportato
NamespaceSelector Supportato Supportato
Il comando nomos hydrate Supportata con il flag --source-format=unstructured Supportato
Il comando nomos init Non supportata Supportato
Il comando nomos vet Supportata con il flag --source-format=unstructured Supportato
Tutti gli altri comandi di nomos Supportato Supportato
Spazi dei nomi astratti Non supportata Supportato
Repo oggetti Non supportata Supportato
HierarchyConfig oggetti Non supportata Supportato

Quando aggiungere configurazioni all'origine

Se stai creando un formato non strutturato, puoi iniziare ad aggiungere configurazioni non appena viene creato. Se intendi creare un formato gerarchico, utilizza il comando nomos init per inizializzare la fonte attendibile o creare manualmente la struttura di directory.

Non è possibile eseguire il commit di directory vuote in un repository Git, quindi prima di configurare Config Sync, devi creare configurazioni e aggiungerle al repository.

Dopo aver creato la sorgente di dati e aver aggiunto le configurazioni, usa il comando nomos vet per verificare la struttura della tua fonte di attendibilità e la sintassi e la validità delle tue configurazioni.

Configura Config Sync per leggere dall'origine attendibile

Dopo aver creato una fonte attendibile e avervi inserito le configurazioni, puoi configurare Config Sync per la lettura dall'origine. Dopo aver completato questo passaggio, Config Sync sincronizza le configurazioni dalla tua origine di riferimento ai tuoi cluster.

Puoi configurare la posizione dell'origine dati quando installi Config Sync e puoi modificare la configurazione di Config Sync in un secondo momento. Oltre alla posizione dell'origine attendibile, puoi specificare un ramo o una sottodirectory da monitorare, se l'origine ha contenuti diversi dalle configurazioni.

Se utilizzi un formato gerarchico e installi Config Sync manualmente con kubectl, non inserire la configurazione dell'operatore nella directory system/ o in qualsiasi altra directory riservata come cluster/ o namespaces/. Se posizioni il file di configurazione in una delle directory riservate, nomos vet non riuscirà e registra un errore come KNV1033: IndividualSystemResourceplacementError, KNV1038: YahooKindInNamespacesError, o KNV1039: LegalKindInClusterError.

Puoi concedere agli utenti l'accesso alla fonte attendibile di deployment di un determinato team di prodotto. Tuttavia, quando concedi a una persona l'accesso a una fonte attendibile di deployment, questa persona riceve anche lo stesso RBAC del riconciliatore in esecuzione per quella fonte attendibile.

Per configurare l'autenticazione e l'autorizzazione tra Config Sync e la fonte attendibile, consulta il passaggio di installazione relativo alla configurazione del secret di git-creds.

Ignora le mutazioni degli oggetti

Se non vuoi che Config Sync mantenga lo stato dell'oggetto nel cluster dopo che esiste, puoi aggiungere l'annotazione client.lifecycle.config.k8s.io/mutation: ignore all'oggetto in cui Config Sync deve ignorare le mutazioni.

Per utilizzare l'annotazione, devi abilitare le API RootSync e RepoSync.

L'esempio seguente mostra come aggiungere l'annotazione a un oggetto:

metadata:
  annotations:
    client.lifecycle.config.k8s.io/mutation: ignore 

Non puoi modificare manualmente questa annotazione sugli oggetti gestiti nel cluster.

Passaggi successivi