Gestione esterna dei campi

Quando Config Connector crea una risorsa su Google Cloud, i campi lasciati non specificati nella specifica acquisiscono valori dall'API, a meno che non siano leggibili, ad esempio non sono disponibili utilizzando una richiesta HTTP GET.

In questo caso, il campo viene considerato "gestito esternamente", poiché Kubernetes non è la fonte di riferimento per questo valore.

Comportamento con applicazione lato server

Se l'opzione Applica lato server è abilitata per la risorsa, i valori dei campi gestiti esternamente nell'oggetto vengono aggiornati di conseguenza in modo che corrispondano alla risorsa Google Cloud sottostante.

Se è presente un valore per un campo nella specifica nella configurazione applicata, questo non è gestito esternamente.

Se è stato rimosso, è gestito esternamente.

Comportamento senza applicazione lato server

Se l'applicazione lato server non è abilitata, i campi non specificati nella specifica della risorsa vengono completati con il valore letto dall'API Google Cloud e Config Connector applica tali valori inizialmente completati.

Ad esempio, se l'utente applica una configurazione delle risorse senza impostare un valore per bar nella specifica:

spec:
    foo: "foo"

Se il valore del campo bar è baz nell'API Google Cloud, la risorsa nel api-server viene compilata con quel valore:

# object in the api-server
spec:
    foo: "foo"
    bar: "baz"  # populated by first reconciliation

Se la risorsa Google Cloud viene modificata direttamente in modo tale che ora bar è baz-2, l'API Google Cloud viene corretta in base al valore che è stato inizialmente compilato nella specifica della risorsa: baz:

# object in the api-server
spec:
    foo: "foo"
    bar: "baz"  # still the originally populated value, and overrides the Google Cloud value

Comportamento dei campi di elenco nelle specifiche della risorsa

A causa di una limitazione tecnica di Config Connector, i campi elenco nella configurazione delle risorse non possono essere gestiti esternamente per impostazione predefinita. Ciò significa che Config Connector acquisisce sempre la proprietà dei campi degli elenchi nella specifica delle risorse, anche quando il campo non è specificato nella configurazione originale delle risorse.

Nel momento in cui viene applicata una specifica delle risorse, Config Connector legge il valore dei campi dell'elenco dall'API Google Cloud e considera questo valore iniziale come fonte di riferimento e stato desiderato. Se il valore del campo dell'elenco viene modificato al di fuori di Config Connector, Config Connector prova a ripristinarlo in modo diverso.

Per ignorare questo limite e consentire la gestione esterna dei campi dell'elenco, utilizza la seguente annotazione:

metadata:
  annotations:
    cnrm.cloud.google.com/state-into-spec: absent

Se imposti il valore di state-into-spec come absent, Config Connector ignora i campi elenco se non sono specificati nella configurazione della risorsa. Questo lascia l'elenco dei campi nella risorsa da gestire esternamente.

Avvertenze

I campi gestiti da Config Connector e aggiornati automaticamente dai servizi esterni possono attivare un aggiornamento infinito sull'API sottostante. Questo può verificarsi se l'API sottostante dispone di campi di scalabilità automatica o aggiornamento automatico. Assicurati che questi campi siano trattati come gestiti esternamente attivando l'applicazione lato server per la risorsa e escludendo il campo dal file di configurazione durante l'applicazione.