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.