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
- Scopri come gestire gli spazi dei nomi e gli oggetti con ambito dello spazio dei nomi.
- Per scoprire come pubblicare un'immagine OCI, consulta Sincronizzare gli artefatti OCI da Artifact Registry.
- Per scoprire come eseguire la sincronizzazione da un grafico Helm, consulta Sincronizzare i grafici Helm da Artifact Registry.