Ce document explique comment mettre à niveau l'autorité de certification racine utilisée pour la validation des packages dans l'appliance isolée Google Distributed Cloud (GDC).
La validation des packages GDC utilise une autorité de certification racine pour valider les certificats de clé de version. Vous devez mettre à niveau cette autorité de certification racine si un avis de version l'exige ou si un message d'avertissement s'affiche lors d'une mise à niveau du système.
Avant de commencer
Pour mettre à niveau le certificat de validation des packages, vous devez disposer des rôles d'identité et d'accès nécessaires :
- Assurez-vous de disposer d'un accès en écriture à la ConfigMap
harbor-system/package-validation-root-certs. - Demandez à votre administrateur de sécurité de vous attribuer le rôle de débogueur de mise à niveau (
upgrade-debugger-cp).
Vérifier si une mise à niveau du certificat est requise
Avant d'effectuer l'opération, vérifiez si une mise à niveau du certificat de validation des packages est requise en comparant la ConfigMap active de votre cluster au dernier certificat racine de staging dans le bundle de mise à niveau :
Définissez la variable d'environnement
KUBECONFIG:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILERemplacez
PATH_TO_KUBECONFIG_FILEpar le chemin d'accès au fichierkubeconfigque vous avez obtenu en exécutantgdcloud auth logindans le cluster d'administrateur racine.Déterminez si une mise à niveau est requise en comparant l'ancre de confiance actuelle à la dernière ancre de confiance. Les données
ConfigMapdeharbor-system/package-validation-root-certssont comparées à l'ancre de confiance 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!
Mettre à niveau le certificat
Si une mise à niveau est requise, mettez à jour l'objet ConfigMap situé dans harbor-system/package-validation-root-certs dans le cluster d'administrateur racine. Vous devez disposer d'un accès en écriture à la ConfigMap pour effectuer cette tâche.
Définissez la variable d'environnement
KUBECONFIG:$ KUBECONFIG=PATH_TO_KUBECONFIG_FILERemplacez
PATH_TO_KUBECONFIG_FILEpar le chemin d'accès au fichierkubeconfigque vous avez obtenu en exécutantgdcloud auth logindans le cluster d'administrateur racine.Créez les variables suivantes et attribuez-leur des valeurs :
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-systemRemplacez
USER_NAMEpar le nom d'utilisateur IO.Créez le dossier cible qui contiendra les fichiers de sortie du processus de mise à niveau du certificat :
mkdir -p "${TARGET_FOLDER}"Obtenez l'ancre de confiance actuelle et stockez-la dans un fichier temporaire local :
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}"Générez le fichier d'ancre de confiance mis à jour :
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}") EOFVérifiez que l'ancre de confiance a été correctement mise à jour :
L'ancre de confiance doit contenir le certificat d'ancre de confiance actuel et le dernier.
$ 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-systemAppliquez la nouvelle configuration avec
kubectl:kubectl --kubeconfig=$KUBECONFIG apply -f ${OUTPUT}Assurez-vous que le fichier ca.crt nouvellement appliqué est présent dans la
ConfigMap:kubectl --kubeconfig=$KUBECONFIG describe configmap package-validation-root-certs -n harbor-system
Cela permet de mettre à niveau un nouveau certificat dans package-validation-root-cert.