Aggiungere configurazioni a una fonte attendibile

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

Informazioni sulle configurazioni

Config Sync è progettato per cluster e operatori che gestiscono molti cluster. Puoi assicurarti che i tuoi cluster soddisfino gli standard aziendali e di conformità consentendo a Config Sync di gestire gli spazi dei nomi, i ruoli, le associazioni di ruoli, le quote risorse e altri oggetti Kubernetes importanti nell'intero 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 di verità. Config Sync supporta i repository Git, le immagini OCI e i grafici Helm come fonte attendibile. 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, alcune Gli oggetti Kubernetes, come i secret, contengono informazioni sensibili che potrebbero essere inappropriati da memorizzare in una fonte di dati. Usa il buon senso quando prendi in considerazione se gestire questi tipi di oggetti usando Config Sync.

Puoi anche utilizzare Config Sync Config Connector per cui sincronizzare le configurazioni Risorse Google Cloud. Per scoprire di più sull'utilizzo di Config Connector, consulta la sezione sulla gestione delle risorse Google Cloud utilizzando 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 una fonte attendibile. Se devi aggiornare un campo immutabile, elimina manualmente il valore nel cluster. Config Sync può quindi ricreare l'oggetto con 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 fonte di riferimento: non strutturati e gerarchiche.

Il formato di origine non strutturato ti consente di organizzare le configurazioni nel modo più adatto alle tue esigenze 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 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 sistema configurazione, metadati del cluster, configurazione a livello di cluster e spazio dei nomi configurazione. 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 usare il formato di origine non strutturato.

Funzionalità supportate per i formati non strutturati e gerarchici

La seguente tabella evidenzia le differenze tra le colonne non strutturate e formati gerarchici:

Funzionalità Formato non strutturato (consigliato) Formato gerarchico
Utilizzato come formato per un oggetto RootSync o la fonte attendibile centrale Supportato Supportato
Utilizzato come formato per un oggetto RepoSync Supportato Non supportata
ClusterSelector Supportato Supportato
NamespaceSelector Supportato Supportato
Il comando nomos hydrate Supportato con il flag --source-format=unstructured Supportato
Il comando nomos init 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 Non supportata Supportato
Repo oggetti Non supportata Supportato
Oggetti HierarchyConfig 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 stai creando un formato gerarchico, utilizza il comando nomos init per inizializzare la fonte attendibile o crea la struttura della directory manualmente.

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

Dopo aver creato la fonte attendibile e aver aggiunto le configurazioni, utilizza nomos vet per verificare struttura della tua fonte di riferimento e controlla la sintassi e la validità configurazioni.

Configura Config Sync per la lettura dalla fonte attendibile

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

Configuri la località della fonte di riferimento quando installare Config Sync, e potrai modificare la configurazione di Config Sync in un secondo momento. Oltre alla posizione della fonte attendibile, puoi specificare un ramo o una sottodirectory da monitorare, se la sorgente contiene 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 una delle altre directory riservate come cluster/ o namespaces/. Se la config viene posizionata in una delle directory riservate, nomos vet non va a buon fine e viene registrato un errore come KNV1033: IllegalSystemResourcePlacementError, KNV1038: IllegalKindInNamespacesError o KNV1039: IllegalKindInClusterError.

Puoi concedere alle persone l'accesso alla fonte attendibile di un determinato team di prodotto. Tuttavia, quando concedi a una persona l'accesso a una fonte di verità di deployment, a questa viene concesso anche lo stesso RBAC del riconciliatore in esecuzione per la fonte di verità.

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

Ignora le mutazioni degli oggetti

Se non vuoi che Config Sync mantenga lo stato dell'oggetto nel esistente, puoi aggiungere il cluster client.lifecycle.config.k8s.io/mutation: ignore sull'oggetto che vuoi che Config Sync ignori le mutazioni.

Per utilizzare l'annotazione, devi attivare il parametro 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