Mettre à jour Kf

Ce document explique comment mettre à niveau une installation Kf existante et ses dépendances.

Avant de commencer

Vous avez alors besoin de :

  • Un cluster existant sur lequel Kf est installé.
  • Un accès à un ordinateur sur lequel gcloud, kf et kubectl sont installés.

Validez l'installation Kf existante

  1. Obtenez des identifiants d'authentification pour interagir avec le cluster :

    gcloud container clusters get-credentials CLUSTER_NAME \
      --zone CLUSTER_ZONE \
      --project CLUSTER_PROJECT_ID
  2. Exécutez kf debug et validez la correspondance entre les versions CLI et serveur de Kf.

    • La version de la CLI apparaît sous Kf Client.
    • La version du serveur Kf apparaît sous kf["app.kubernetes.io/version"].
    $ kf debug
    ...
    Version:
      Kf Client:                        v2.0.0
      Server version:                   v1.17.13-gke.1401
      kf["app.kubernetes.io/version"]:  v2.0.0
    ...
    

    Si les valeurs du client Kf et du serveur Kf ne coïncident pas, téléchargez et installez la version de la CLI Kf correspondant à la version du serveur, puis répétez la vérification avec la nouvelle CLI. La version de la CLI doit correspondre à la version du serveur pour que vous puissiez continuer.

  3. Exécutez kf doctor pour vérifier l'état de votre cluster. Avant de continuer, assurez-vous que tous les tests sont concluants.

    $ kf doctor
    ...
    === RUN doctor/user
    === RUN doctor/user/ContainerRegistry
    --- PASS: doctor/user
       --- PASS: doctor/user/ContainerRegistry
    ...
    

    Si le message Error: environment failed checks s'affiche, suivez les instructions fournies dans le résultat doctor pour résoudre le problème et relancez la commande jusqu'à ce qu'elle aboutisse.

Mettre à niveau

Pour mettre à niveau Kf, procédez comme suit :

  • Préparez l'environnement local et la mise à niveau
  • Mettez à niveau les dépendances de Kf
  • Mettez à niveau Kf et vérifiez que la mise à niveau a réussi.

Préparez la mise à niveau

  1. Exécutez kf version pour obtenir la version actuelle de Kf.

    $ kf version
    kf version v2.0.0 linux
    
  2. Recherchez la version de Kf qui suit immédiatement cette version actuelle sur la page des téléchargements.

    1. Téléchargez le fichier YAML de la version de Kf et enregistrez-le sous le nom kf-release.yaml.

    2. Téléchargez la version de Kf correspondant à votre système d'exploitation et nommez-la kf-next.

    3. Exécutez chmod pour rendre kf-next exécutable :

      chmod +x kf-next
    4. Exécutez kf-next version pour vous assurer que la version téléchargée correspond à la version de Kf que vous souhaitez installer:

      $ kf-next version
      kf version v2.1.0 linux
      
  3. Effectuez une sauvegarde du fichier ConfigMap config-defaults en exécutant la commande suivante :

    kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
  4. Exécutez kubectl diff -f kf-release.yaml et inspectez les modifications que la mise à niveau apporterait à votre cluster.

  5. Modifiez kf-release.yaml pour conserver toutes les modifications que vous souhaitez.

    Par exemple, si vous définissez la propriété spaceDefaultToV3Stackdu configmap config-defaults sur "false" dans le v2.0.0 de Kf, la version de v2.1.0 aura la valeur par défaut true.

  6. Exécutez à nouveau kubectl diff -f kf-release.yaml pour vous assurer que les modifications que vous avez apportées ont produit le résultat attendu.

Mettez à niveau les dépendances Kf

  1. Ouvrez la page des téléchargements et recherchez la matrice de dépendances de la version de Kf vers laquelle vous effectuez la mise à niveau.

  2. Mettez à niveau Tekton :

    1. Ouvrez la page des versions de Tekton.

    2. Recherchez la version de Tekton répertoriée dans la matrice de dépendances de Kf.

    3. Exécutez la commande qui figure sous l'en-tête "Installation one-liner" (installation en une ligne) pour mettre à niveau Tekton.

  3. Mettre à niveau Cloud Service Mesh :

    1. Ouvrez le guide de mise à niveau de Cloud Service Mesh.

    2. Dans la liste déroulante "Version", sélectionnez la version de Cloud Service Mesh répertoriée dans la matrice de dépendances de Kf.

    3. Suivez le guide pour mettre à jour ASM.

Mettez à jour et validez Kf

  1. Installez les composants Kf mis à niveau à l'aide de la configuration de version modifiée :

    kubectl apply -f kf-release.yaml
  2. Exécutez doctor pour vous assurer que la version qui vient d'être installée est opérationnelle:

    kf-next doctor --retries=12 --delay=5s

    La commande exécute à plusieurs reprises des vérifications du cluster. Il est normal que certaines tentatives échouent lors du démarrage des nouveaux contrôleurs.

    Si la commande échoue avec le message Error: environment failed checks, suivez les instructions fournies dans le résultat doctor pour résoudre le problème et relancez la commande jusqu'à ce qu'elle aboutisse.

  3. Remplacez la CLI kf existante de votre système par la CLI kf-next.

    chmod +x kf-next
    mv kf-next $(which kf)
  4. Comparez le fichier config-defaults-backup.yaml à l'aide de la commande kubectl diff -f config-defaults-backup.yaml pour vous assurer que votre cluster est toujours correctement configuré.

    Par exemple, si vous avez conservé toutes les modifications de votre ancienne version de Kf et approuvé l'utilisation d'un nouveau pack de création fourni avec la version suivante :

    $ kubectl diff -f config-defaults-backup.yaml
    diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults
    +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults
    @@ -131,6 +131,8 @@
         enable_route_services: false
       spaceBuildpacksV2: |
    -    - name: new_buildpack
    -      url: https://github.com/cloudfoundry/new-buildpack
         - name: staticfile_buildpack
           url: https://github.com/cloudfoundry/staticfile-buildpack
         - name: java_buildpack
    exit status 1