Config Connector è uno strumento eccellente per gestire le risorse Google Cloud tramite manifest Kubernetes. Le mostriamo come ottenere un controllo più puntuale sostituendo l'installazione come add-on con una manuale.

Per un controllo più puntuale della versione di Config Connector, sostituisca l'installazione come add-on con una manuale
Con Config Connector può gestire le risorse GCP tramite manifest Kubernetes. È un ottimo strumento sviluppato da Google e disponibile come installazione add-on sui cluster GKE ( che soddisfano i requisiti). Ecco alcuni dei suoi vantaggi e casi d'uso:
- Creare l'infrastruttura sottostante per un servizio distribuito su GKE usando le stesse pipeline e gli stessi paradigmi (si tratta semplicemente di manifest YAML aggiuntivi)
- Usare un cluster centrale di "controllo" per avviare altri cluster, realizzando di fatto Infrastructure as Code tramite Kubernetes
- Avviare infrastrutture (ad esempio ambienti di sviluppo o persino un nuovo cluster di produzione) con un singolo kubectl apply
Config Connector funziona distribuendo un Operator StatefulSet (configconnector-operator-system/configconnector-operator), che a sua volta crea tutte le risorse CustomResourceDefinition (CRD) e tutti i workloads di supporto nel namespace cnrm-system.
Poiché Config Connector è in costante evoluzione, le nuove funzionalità arrivano spesso con il rilascio di nuove versioni (un nuovo tipo di risorsa gestibile da Config Connector o anche un campo aggiunto a una CRD). Purtroppo la versione di Config Connector installata tramite l'add-on di GKE è vincolata alla versione master di GKE. Questo significa che, per aggiornare la versione di Config Connector installata dall'add-on, dovrà aggiornare la versione di GKE (almeno alla minor successiva), cosa non sempre auspicabile. Inoltre, la versione inclusa è di solito indietro di qualche release rispetto all'ultima disponibile di Config Connector: anche dopo l'aggiornamento, quindi, potrebbe non avere a disposizione una nuova funzionalità o una correzione presente nell'ultima versione.
Dai test effettuati, posso confermare che con l'add-on di GKE vengono installate le seguenti versioni di Config Connector:
- v1.69.0 per GKE 1.21.x
- v1.71.0 per GKE 1.22.x
L'ultima versione di Config Connector al momento della stesura di questo articolo è la v1.83.0.
Installazione manuale
Per avere un controllo migliore sulla versione di Config Connector su un cluster GKE, può sostituire l'installazione come add-on con un'installazione manuale [1]. Tenga presente che, così facendo, la responsabilità dell'aggiornamento di Config Connector passa a lei, perché non verrà più aggiornato automaticamente insieme al cluster GKE.
Sostituire l'installazione come add-on con una manuale
1. disabiliti l'installazione come add-on sul cluster:
gcloud container clusters update <CLUSTER_NAME> --update-addons ConfigConnector=DISABLED
2. elimini lo StatefulSet dell'operator di Config Connector:
kubectl -nconfigconnector-operator-system delete statefulset configconnector-operator
- 3. installi l'ultima versione (o quella che desidera) dell'operator di Config Connector seguendo la documentazione [2]
Con questa procedura tutte le CRD restano intatte, così come l'oggetto ConfigConnector [3]: anche le risorse create con Config Connector non subiranno modifiche.
Verifichi che il nuovo pod dell'operator stia eseguendo la versione desiderata:
$ kubectl -nconfigconnector-operator-system get statefulsets configconnector-operator -oyaml |grep operator-version | head -n1
cnrm.cloud.google.com/operator-version: 1.83.0
e che abbia ricreato tutti i workloads in esecuzione nel namespace cnrm-system (la riconciliazione potrebbe richiedere un paio di minuti):
$ kubectl -ncnrm-system get po -oyaml |grep /version
cnrm.cloud.google.com/version: 1.83.0
cnrm.cloud.google.com/version: 1.83.0
cnrm.cloud.google.com/version: 1.83.0
cnrm.cloud.google.com/version: 1.83.0
D'ora in poi, per aggiornare Config Connector dovrà procedere manualmente come descritto nella documentazione [4].
Tornare all'installazione come add-on
Se aggiorna il cluster GKE a una versione che include nell'add-on la versione desiderata di Config Connector, può tornare all'installazione tramite add-on e affidare nuovamente la gestione a GKE.
La procedura ricalca al contrario le istruzioni precedenti:
- abiliti l'add-on di Config Connector sul cluster:
gcloud container clusters update <CLUSTER_NAME> --update-addons ConfigConnector=ENABLED
- elimini lo StatefulSet dell'operator di Config Connector:
kubectl -nconfigconnector-operator-system delete statefulset configconnector-operator
Tenendo d'occhio i pod nel namespace configconnector-operator-system, vedrà che il pod dell'operator viene riavviato (perché lo StatefulSet viene ricreato dall'add-on) ed esegue la versione gestita dall'add-on stesso. Anche i workloads nel namespace cnrm-system verranno sostituiti durante il primo ciclo di riconciliazione dell'operator.
[1] https://cloud.google.com/config-connector/docs/how-to/advanced-install#manual
[2] https://cloud.google.com/config-connector/docs/how-to/advanced-install#installing_the_operator
[3] https://cloud.google.com/config-connector/docs/how-to/install-upgrade-uninstall#addon-configuring
[4] https://cloud.google.com/config-connector/docs/how-to/advanced-install#upgrading