Questo documento descrive come eseguire l'upgrade dell'autorità di certificazione radice (CA) utilizzata per la convalida dei pacchetti nell'appliance air-gapped di Google Distributed Cloud (GDC)
La convalida dei pacchetti GDC utilizza un'autorità di certificazione radice (CA) per convalidare i certificati delle chiavi di rilascio. Devi eseguire l'upgrade di questa CA radice se un avviso di rilascio lo richiede o se visualizzi un messaggio di avviso durante l'upgrade del sistema.
Prima di iniziare
Per eseguire l'upgrade del certificato di convalida dei pacchetti, devi disporre dei ruoli di identità e accesso necessari:
- Assicurati di avere accesso in scrittura a
harbor-system/package-validation-root-certsConfigMap. - Chiedi all'Amministratore sicurezza di concederti il ruolo di debugger dell'upgrade (
upgrade-debugger-cp).
Verificare se è necessario l'upgrade del certificato
Prima di eseguire l'operazione, verifica se è necessario eseguire l'upgrade di un certificato di convalida dei pacchetti confrontando il ConfigMap attivo nel cluster con l'ultimo certificato radice di staging nel bundle di upgrade:
Imposta la variabile di ambiente
KUBECONFIG:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILESostituisci
PATH_TO_KUBECONFIG_FILEcon il percorso delkubeconfigfile che hai ottenuto eseguendogdcloud auth loginnel cluster di amministrazione radice.Determina se è necessario un upgrade confrontando il trust anchor attuale con l'ultimo trust anchor. I dati di
ConfigMapinharbor-system/package-validation-root-certsvengono confrontati con il trust anchor locale:$ CURRENT_TRUST_ANCHOR=$(kubectl --kubeconfig=$KUBECONFIG get cm package-validation-root-certs -n harbor-system -o jsonpath='{.data.ca\.crt}') $ LATEST_TRUST_ANCHOR=$(cat /root/release/staging_root_ca_certificate.crt) $ diff <( echo "$CURRENT_TRUST_ANCHOR" ) <( echo "$LATEST_TRUST_ANCHOR" ) && echo trust anchors are same || echo trust anchors are different, upgrade required!
Eseguire l'upgrade del certificato
Se è necessario un upgrade, aggiorna l'oggetto ConfigMap che si trova in harbor-system/package-validation-root-certs nel cluster di amministrazione radice. Per completare questa attività, devi avere accesso in scrittura a ConfigMap.
Imposta la variabile di ambiente
KUBECONFIG:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILESostituisci
PATH_TO_KUBECONFIG_FILEcon il percorso delkubeconfigfile che hai ottenuto eseguendogdcloud auth loginnel cluster di amministrazione radice.Crea e assegna valori alle seguenti variabili:
USERNAME=USER_NAME #IO TARGET_FOLDER=/tmp/${USERNAME} OUTPUT="${TARGET_FOLDER}/package-validation-root-certs.yaml" LATEST_TRUST_ANCHOR_CA_FILE=/root/release/staging_root_ca_certificate.crt CONFIGMAP_NAME=package-validation-root-certs NAMESPACE=harbor-systemSostituisci
USER_NAMEcon il nome utente IO.Crea la cartella di destinazione che conterrà i file di output del processo di upgrade del certificato:
mkdir -p "${TARGET_FOLDER}"Recupera il trust anchor attuale e archivialo nel file temporaneo locale:
CURRENT_TRUST_ANCHOR=$(kubectl --kubeconfig=$KUBECONFIG get configmap "${CONFIGMAP_NAME}" -n "${NAMESPACE}" -o jsonpath="{.data.ca\.crt}" ) CURRENT_TRUST_ANCHOR_CA_FILE=$(mktemp) echo "$CURRENT_TRUST_ANCHOR" > "${CURRENT_TRUST_ANCHOR_CA_FILE}"Genera il file del trust anchor aggiornato:
cat <<EOF > "${OUTPUT}" apiVersion: v1 kind: ConfigMap metadata: name: ${CONFIGMAP_NAME} namespace: ${NAMESPACE} data: ca.crt: | $(sed 's/^/ /' "${LATEST_TRUST_ANCHOR_CA_FILE}") $(sed 's/^/ /' "${CURRENT_TRUST_ANCHOR_CA_FILE}") EOFVerifica che il trust anchor sia stato aggiornato correttamente:
Il trust anchor deve contenere sia il certificato del trust anchor attuale sia quello più recente.
$ cat "${OUTPUT}" apiVersion: v1 data: ca.crt: | -----BEGIN CERTIFICATE----- (certificate content) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (certificate content) -----END CERTIFICATE----- (other certificate) kind: ConfigMap metadata: name: package-validation-root-certs namespace: harbor-systemApplica la nuova configurazione con
kubectl:kubectl --kubeconfig=$KUBECONFIG apply -f ${OUTPUT}Assicurati che il file ca.crt appena applicato sia presente all'interno di
ConfigMap:kubectl --kubeconfig=$KUBECONFIG describe configmap package-validation-root-certs -n harbor-system
In questo modo viene eseguito l'upgrade di un nuovo certificato in package-validation-root-cert.