Présentation
Ce document décrit les procédures permettant d'activer les frais récurrents, de recharge et de configuration pour la fonctionnalité de monétisation d'Apigee dans les organisations hybrides.
Prérequis
- Apigee hybrid version 1.14.3 ou ultérieure. Pour obtenir des instructions de mise à niveau, consultez Mettre à niveau Apigee hybrid.
- La monétisation est activée pour votre projet Apigee hybrid. Consultez Activer la monétisation Apigee.
Procédure
Pour activer les frais récurrents, de recharge et de configuration pour la monétisation Apigee hybrid, vous devez créer et configurer le compte de service Google apigee-mint-task-scheduler
, puis lui accorder l'accès au pipeline de données Pub/Sub.
- Si vous n'avez pas encore téléchargé la version 1.14.3 des charts Helm, extrayez-les à l'aide des commandes suivantes :
Dans le répertoire $APIGEE_HELM_CHARTS_HOME, exécutez la commande
pull
pour copier tous les graphiques Helm Apigee hybrid sur votre espace de stockage local :export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CHART_VERSION=1.14.3
helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
- Créez le compte de service
apigee-mint-task-scheduler
.Si vous n'avez pas encore créé le compte de service
apigee-mint-task-scheduler
, faites-le maintenant avec l'outilcreate-service-account
. Consultez l'étape 4 : Créer des comptes de service pour savoir comment créer des comptes de service lors d'une nouvelle installation hybride.-
Recherchez l'outil
create-service-account
dans le répertoire $APIGEE_HELM_CHARTS_HOME :$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Vérifiez que vous pouvez exécuter
create-service-account
. Si vous venez de télécharger les graphiques, il est possible que le fichiercreate-service-account
ne soit pas en mode exécutable. Exécutez la commande suivante dans votre répertoire APIGEE_HELM_CHARTS_HOME :$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Si le résultat indique
permission denied
, vous devez rendre le fichier exécutable, par exemple avecchmod
sous Linux, MacOS ou UNIX, ou dans l'explorateur Windows, ou à l'aide de la commandeicacls
dans Windows. Exemple :chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
-
Créez le compte de service
apigee-mint-task-scheduler
et stockez le fichier de certificat téléchargé dans le répertoire du graphiqueapigee-org
à l'aide de la commande suivante :$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mint-task-scheduler \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
-
Recherchez l'outil
- Activez l'accès au plan de contrôle pour les comptes de service
apigee-mart
etapigee-mint-task-scheduler
.Si vous n'avez pas encore activé l'accès au plan de contrôle pour les comptes de service
apigee-mart
etapigee-mint-task-scheduler
, faites-le maintenant en suivant les étapes ci-dessous. Pour savoir comment activer l'accès au plan de contrôle lors d'une nouvelle installation hybride, consultez Étape 7 : Activer l'accès au plan de contrôle.- Si vous n'êtes pas propriétaire du projet Google Cloud associé à votre organisation Apigee hybrid, assurez-vous que votre compte utilisateur Google Cloud dispose du rôle roles/apigee.admin (Administrateur de l'organisation Apigee). Vous pouvez vérifier les rôles qui vous sont attribués à l'aide de cette commande :
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"
Si votre résultat n'inclut pas roles/apigee.admin, consultez l'étape 7 : Activer l'accès au plan de contrôle pour savoir comment ajouter le rôle ou demander à un utilisateur qui le possède d'effectuer cette étape.
- Appelez l'API updateControlPlaneAccess afin d'activer les autorisations requises à l'aide de la commande suivante :
Sans résidence des données
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
où les adresses e-mail des comptes de service sont les suivantes :
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
Résidence des données
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
Où :
CONTROL_PLANE_LOCATION
correspond à l'emplacement des données de votre plan de contrôle si votre installation hybride utilise la résidence des données. Il s'agit de l'emplacement où sont stockés le contenu principal du client, comme les bundles proxy. Pour obtenir la liste, consultez Régions du plan de contrôle de l'API Apigee disponibles.- Voici les adresses e-mail des comptes de service :
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
Vérifiez l'accès au plan de contrôle pour les comptes de service
apigee-mart
etapigee-mint-task-scheduler
.Sans résidence des données
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
Résidence des données
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
Votre résultat doit inclure les comptes de service
apigee-mart
,apigee-mint-task-scheduler
etapigee-runtime
, comme suit :{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com" ] }
- Si vous n'êtes pas propriétaire du projet Google Cloud associé à votre organisation Apigee hybrid, assurez-vous que votre compte utilisateur Google Cloud dispose du rôle roles/apigee.admin (Administrateur de l'organisation Apigee). Vous pouvez vérifier les rôles qui vous sont attribués à l'aide de cette commande :
- Ajoutez les stanzas spécifiques à la monétisation à votre fichier
overrides.yaml
.Ajoutez les stanzas suivants à votre fichier
overrides.yaml
:runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.14.3" #must be 1.14.3 or higher. mintTaskScheduler: # if using stored SA cert files: serviceAccountPath: MINT_TASK_SCHEDULER_SA_CERT_FILE.json # if using stored Kubernetes secrets: serviceAccountRef: MINT_TASK_SCHEDULER_SA_K8S_SECRET # if using Workload Identity on GKE: gsa: "apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com" # or if using Vault: serviceAccountSecretProviderClass: apigee-orgsakeys-spc
Si vous utilisez des secrets Kubernetes, consultez Stocker des données dans un secret Kubernetes.
Si vous utilisez Vault, consultez Stocker des clés de compte de service dans Hashicorp Vault.
Si vous utilisez Vault, assurez-vous d'avoir ajouté
mint
à la classe de fournisseur de secrets spécifique à l'organisation. Consultez Créer des objetsSecretProviderClass
. -
Appliquez les modifications aux graphiques
apigee-operator
,apigee-org
etapigee-env
.Si vous avez défini les variables d'environnement $ORG_NAME et APIGEE_NAMESPACE, vous pouvez les utiliser dans les commandes suivantes :
- Installez l'opérateur.
Effectuez un dry run :
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Installez le chart :
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Installez l'organisation Apigee.
Effectuez un dry run :
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Installez le chart :
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Installez l'environnement. Répétez cette étape pour chaque environnement.
Vous devez installer un environnement à la fois. Spécifiez l'environnement avec
--set env=
ENV_NAME. Si vous avez défini la variable d'environnement $ENV_NAME dans votre interface système, vous pouvez l'utiliser dans les commandes suivantes :Effectuez un dry run :
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME est un nom utilisé pour suivre l'installation et les mises à niveau du graphique
apigee-env
. Ce nom doit être unique par rapport aux autres noms de version Helm de votre installation. Il s'agit généralement de la même valeur queENV_NAME
. Toutefois, si votre environnement porte le même nom que votre groupe d'environnements, vous devez utiliser des noms de version différents pour l'environnement et le groupe d'environnements (par exemple,dev-env-release
etdev-envgroup-release
). Pour en savoir plus sur les versions dans Helm, consultez Trois concepts importants dans la documentation Helm.Installez le chart :
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
- Installez l'opérateur.
- GKE avec Workload Identity uniquement : configurez Workload Identity pour le compte de service
apigee-mint-task-scheduler
.Si vous effectuez une nouvelle installation, suivez cette étape en plus de celles de l'étape 11 (facultatif) : Configurer Workload Identity.
Lorsque vous exécutez la mise à niveau Helm avec l'indicateur
--dry-run
pour le graphiqueapigee-org
, le résultat inclut les commandes dont vous aurez besoin pour configurer Workload Identity avec les noms de compte de service Google et de compte de service Kubernetes appropriés.- Obtenez les commandes pour configurer Workload Identity pour
apigee-org
et exécutez la commande sousNOTES:
dans le résultat.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server
Le résultat doit contenir des instructions semblables à celles ci-dessous sous
NOTES:
:NOTES: ... For organization GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective Kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[APIGEE_NAMESPACE/apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID-sa]" \ --project PROJECT_ID
Le nom du compte de service Kubernetes est au format
apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID
. - Exécutez les commandes pour configurer Workload Identity pour
apigee-mint-task-scheduler
.
- Obtenez les commandes pour configurer Workload Identity pour
Voir aussi
- Pour en savoir plus sur la monétisation dans Apigee, consultez Activer la monétisation Apigee.
mintTaskScheduler.serviceAccountPath
: définit le chemin d'accès au fichier de clé du compte de service pour le compte de serviceapigee-mint-task-scheduler
.mintTaskScheduler.serviceAccountRef
: définit le secret Kubernetes qui contient la clé du compte de service pour le compte de serviceapigee-mint-task-scheduler
.mintTaskScheduler.gsa
: définit le compte de service Google pour le compte de serviceapigee-mint-task-scheduler
. Il doit s'agir de l'adresse e-mail du compte de service.