Aggiungi configurazioni a una fonte attendibile

In questa pagina viene spiegato come aggiungere e organizzare le configurazioni archiviate in una fonte attendibile.

Informazioni sulle configurazioni

Config Sync è progettato per gli operatori cluster che gestiscono molti cluster. Puoi garantire che i cluster soddisfino gli standard aziendali e di conformità consentendo a Config Sync di gestire spazi dei nomi, ruoli, RoleBinding, ResourceQuotas e altri oggetti Kubernetes importanti nel 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 attendibile. 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 che può esistere in un cluster. Tuttavia, alcuni oggetti Kubernetes, come i secret, contengono informazioni sensibili che potrebbero non essere appropriate per l'archiviazione in una fonte di riferimento. Valuta con giudizio se gestire questi tipi di oggetti con Config Sync.

Puoi anche utilizzare Config Sync con Config Connector per sincronizzare le configurazioni per le risorse di Google Cloud. Per scoprire di più sull'utilizzo di Config Connector, consulta la pagina relativa alla gestione delle risorse Google Cloud tramite Config Connector. Puoi anche semplificare l'installazione di Config Sync e Config Connector configurando Config Controller.

Limitazioni

Non puoi modificare i campi immutabili di una configurazione modificando il valore nella fonte 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 della versione. Puoi scegliere tra due diversi formati per la tua origine di riferimento: non strutturato e gerarchico.

Il formato di origine non strutturato consente di organizzare le configurazioni nel modo più pratico. Questo formato può essere particolarmente utile se organizzi o generi configurazioni utilizzando uno strumento come Kustomize, kpt o Helm. Per un esempio di come potresti organizzare le tue configurazioni, vedi 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 dello spazio 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 come fonte attendibile centrale Supportato Supportato
Utilizzato come formato per un oggetto RepoSync Supportato Funzionalità non supportata
ClusterSelector Supportato Supportato
NamespaceSelector Supportato Supportato
Il comando nomos hydrate Supportato con il flag --source-format=unstructured Supportato
Il comando nomos init Funzionalità non supportata Supportato
Il comando nomos vet Supportato con il flag --source-format=unstructured Supportato
Tutti gli altri comandi nomos Supportato Supportato
Spazi dei nomi astratti Funzionalità non supportata Supportato
Repo oggetti Funzionalità non supportata Supportato
HierarchyConfig oggetti Funzionalità non supportata Supportato

Quando aggiungere configurazioni all'origine

Se crei un formato non strutturato, puoi iniziare ad aggiungere configurazioni non appena viene creato. Se crei un formato gerarchico, utilizza il comando nomos init per inizializzare l'origine dati attendibile o creare la struttura della directory manualmente.

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

Dopo aver creato la fonte attendibile e aver aggiunto le configurazioni, utilizza il comando nomos vet per verificare la struttura dell'origine attendibile e la sintassi e la validità delle configurazioni.

Configura Config Sync per la lettura dalla fonte attendibile

Dopo aver creato una fonte attendibile e avervi inserito le configurazioni, puoi configurare Config Sync in modo che legga dall'origine. Dopo aver completato questo passaggio, Config Sync sincronizza le configurazioni dalla tua fonte attendibile ai cluster.

Puoi configurare la posizione dell'origine dati al momento dell'installazione di Config Sync e 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 la configurazione in una delle directory riservate, nomos vet l'errore non riesce e viene registrato un errore come KNV1033: FitbitResourceplacementError, KNV1038: PoliticalKindInNamespacesError, o KNV1039: LegalKindInClusterError.

Puoi concedere agli utenti l'accesso alla fonte attendibile dell'implementazione di un determinato team di prodotto. Tuttavia, quando concedi a una persona l'accesso a una fonte attendibile del deployment, a quell'utente viene concesso lo stesso RBAC del riconciliatore in esecuzione per la fonte attendibile.

Per configurare l'autenticazione e l'autorizzazione tra Config Sync e l'origine dati 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 è esistente, puoi aggiungere l'annotazione client.lifecycle.config.k8s.io/mutation: ignore all'oggetto in cui vuoi che Config Sync ignori 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