Gestione esterna dei campi
Quando Config Connector crea una risorsa su Google Cloud, i campi lasciati non specificati nella specifica assumono valori dall'API, a meno che non siano leggibili (ad esempio, non sono disponibili utilizzando una richiesta HTTP GET).
In questo caso, il campo è considerato "gestito esternamente", poiché Kubernetes non è l'origine di riferimento per questo valore.
Comportamento con l'applicazione lato server
Se server-side apply è abilitato per la risorsa, i valori dei campi gestiti esternamente nell'oggetto vengono aggiornati continuamente in modo che corrispondano alla risorsa Google Cloudsottostante.
Se è presente un valore per un campo nelle specifiche nella configurazione applicata, il campo non è gestito esternamente.
Se il campo viene rimosso, viene gestito esternamente.
Comportamento senza applicazione lato server
Se l'applicazione lato server non è abilitata, i campi non specificati nella specifica della risorsa vengono compilati con il valore letto dall'API Google Cloud e Config Connector applica i valori inizialmente compilati.
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 in api-server viene compilata con questo 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 che bar
ora sia
baz-2
, l'API Google Cloud viene corretta con il valore inizialmente
inserito 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 per i campi elenco nella specifica della risorsa
A causa di una limitazione tecnica in 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 elenco nella specifica della risorsa, anche quando il campo non è specificato nella configurazione della risorsa originale.
Al momento dell'applicazione di una specifica di risorsa, Config Connector legge il valore dei campi elenco dall'API Google Cloud e tratta questo valore iniziale come fonte attendibile e stato desiderato. Se il valore nel campo dell'elenco viene modificato al di fuori di Config Connector, Config Connector tenta di ripristinarlo, il che potrebbe non essere auspicabile.
Per ignorare questa limitazione e consentire la gestione esterna dei campi elenco,
utilizza l'annotazione cnrm.cloud.google.com/state-into-spec
. Questa
annotazione non è supportata per tutte le risorse. Per verificare se la tua risorsa supporta l'annotazione, controlla la pagina di riferimento della risorsa corrispondente.
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 delle risorse. In questo modo, i campi
della risorsa vengono gestiti esternamente.
Precisazioni
I campi gestiti da Config Connector e aggiornati automaticamente da servizi esterni possono attivare aggiornamenti continui nell'API sottostante. Ciò può verificarsi se l'API sottostante dispone di campi di scalabilità automatica o aggiornamento automatico. Assicurati che questi campi vengano trattati come gestiti esternamente attivando l'applicazione lato server per la risorsa e lasciando il campo fuori dal file di configurazione durante l'applicazione.