Étape 4 : Installez la version hybride sur GKE

Appliquer la configuration au cluster

Pour installer Apigee hybride dans votre cluster, procédez comme suit :

  1. Vérifiez que vous êtes bien dans le répertoire hybrid-base-directory/hybrid-files.
  2. Vérifiez que kubectl est défini sur le bon contexte. Le contexte actuel doit être défini sur le cluster sur lequel vous déployez :
    kubectl config get-contexts
  3. Exécutez la commande init :
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    La commande init installe les services de déploiement Apigee, le contrôleur de déploiement Apigee ainsi que le webhook d'admission Apigee, et déploie des composants non-Apigee tels qu'Istio et Cert Manager.

  4. Pour vérifier l'état du déploiement, vous pouvez utiliser les commandes suivantes :
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    et

    kubectl get pods -n apigee-system

    et

    kubectl get pods -n istio-system

    Lorsque les pods sont prêts, passez à l'étape suivante.

  5. Procédez à une installation de simulation. Exécutez la commande apply avec l'option --dry-run=true. L'exécution d'une simulation vous permet de rechercher les erreurs éventuelles avant que des modifications ne soient apportées au cluster.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. Si aucune erreur ne s'affiche, vous pouvez appliquer les composants d'exécution spécifiques à Apigee au cluster :
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. Pour vérifier l'état du déploiement :
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    Répétez cette étape jusqu'à ce que tous les pods soient prêts. Le démarrage des pods peut prendre plusieurs minutes.

Activer l'accès au synchronisateur

  1. Créez un compte de service GCP et ajoutez-y le rôle Administrateur de l'organisation Apigee. Ce compte de service sera utilisé pour authentifier un appel d'API que vous effectuerez ultérieurement. La console GCP permet de créer facilement le compte de service. Pour obtenir des instructions, consultez la page Créer et gérer des comptes de service dans la documentation de GCP.
  2. Téléchargez la clé du compte de service sur votre système. Suivez les instructions de la section Créer des clés de compte de service dans la documentation de GCP.
  3. Déplacez la clé du compte de service téléchargé dans le répertoire de vos comptes de service : /hybrid-base-directory/hybrid-files/service-accounts.
  4. Exécutez ces deux commandes pour obtenir un jeton :
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    org-admin-service-account-file correspond au chemin d'accès de votre système vers la clé de compte de service que vous avez téléchargée avec le rôle Administrateur d'organisation Apigee.

  5. Appelez l'API setSyncAuthorization pour activer les autorisations requises pour l'outil de synchronisation :
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
    

    Où :

    • your_org_name : nom de votre organisation hybride.
    • synchronizer-manager-service-account-email : nom d'un compte de service ayant le rôle Gestionnaire de synchronisateur Apigee. Le nom se présente comme une adresse e-mail. Par exemple, apigee-synchronizer@my-project.iam.gserviceaccount.com.

    Exemple :

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
    
  6. Pour vérifier que le compte de service a été défini, appelez l'API suivante pour obtenir la liste des comptes de service :
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''
    

    Le résultat ressemble à ceci :

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }
        

Ajouter l'alias d'hôte MART à votre organisation

Vous devez ajouter l'alias d'hôte du point de terminaison MART à votre organisation Apigee. Vous avez défini cette valeur précédemment lors de la définition de la propriété mart.hostAlias dans votre fichier de remplacement. Le plan de gestion a besoin de cette adresse afin de pouvoir communiquer avec le plan d'exécution via MART.

Pour ajouter l'alias d'hôte MART à votre organisation, procédez comme suit :

  1. Obtenez la valeur que vous avez définie précédemment dans votre fichier de remplacement pour la propriété mart.hostAlias. Pour que MART fonctionne, l'alias d'hôte doit être un nom de domaine complet.
  2. Localisez la clé du compte de service avec le rôle Administrateur de l'organisation Apigee que vous avez téléchargé précédemment, dans la section Activer l'accès au synchronisateur.
  3. Exécutez ces deux commandes pour obtenir un jeton :
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    org-admin-service-account-file correspond au chemin d'accès de votre système vers la clé de compte de service que vous avez téléchargée avec le rôle Administrateur d'organisation Apigee.

  4. Appelez l'API de gestion suivante pour mettre à jour votre organisation avec le point de terminaison MART :
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://HOST_ALIAS_DNS"
        } ]
      }
    }'

    Voici un exemple : Veillez à ajouter le préfixe "https://" à l'alias d'hôte.

    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/my_organization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "my_organization",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://foo-mart.example.com"
        } ]
      }
    }'

Enregistrer le fichier de remplacement

Veillez à enregistrer votre fichier de remplacement. Vous en aurez besoin pour effectuer les mises à niveau ultérieures, les correctifs ou toute autre modification de la configuration du cluster.