Descripción general
En este documento, se describen los procedimientos para habilitar las tarifas recurrentes, de recarga y de configuración para la función de monetización de Apigee en organizaciones híbridas.
Requisitos previos
- Apigee hybrid versión 1.14.3 o posterior Consulta Actualización de Apigee Hybrid para obtener instrucciones de actualización.
- La monetización está habilitada para tu proyecto de Apigee Hybrid. Consulta Habilitar la monetización de Apigee.
Procedimiento
Para habilitar las comisiones recurrentes, de recarga y de configuración para la monetización de Apigee Hybrid, debes crear y configurar la cuenta de servicio de Google apigee-mint-task-scheduler
y otorgarle acceso a la canalización de datos de Pub/Sub.
- Si aún no descargaste la versión 1.14.3 de los gráficos de Helm, extráelos con los siguientes comandos:
En el directorio $APIGEE_HELM_CHARTS_HOME, usa el comando
pull
para copiar todos los gráficos de Helm de Apigee Hybrid en tu almacenamiento 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
- Crea la cuenta de servicio
apigee-mint-task-scheduler
.Si aún no creaste la cuenta de servicio
apigee-mint-task-scheduler
, créala ahora con la herramientacreate-service-account
. Consulta el Paso 4: Crea cuentas de servicio para obtener información sobre cómo crear cuentas de servicio como parte de una instalación híbrida nueva.-
Ubica la herramienta
create-service-account
en el directorio $APIGEE_HELM_CHARTS_HOME:$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Verifica que puedas ejecutar
create-service-account
. Si acabas de descargar los gráficos, es posible que el archivocreate-service-account
no esté en un modo ejecutable. En tu directorio APIGEE_HELM_CHARTS_HOME, ejecuta el siguiente comando:$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Si el resultado indica
permission denied
, debes hacer que el archivo sea ejecutable, por ejemplo, conchmod
en Linux, MacOS o UNIX, o en Windows Explorer o con el comandoicacls
en Windows. Por ejemplo:chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
-
Crea la cuenta de servicio
apigee-mint-task-scheduler
y almacena el archivo de certificación descargado en el directorio del gráficoapigee-org
con el siguiente comando:$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
-
Ubica la herramienta
- Habilita el acceso al plano de control para las cuentas de servicio
apigee-mart
yapigee-mint-task-scheduler
.Si aún no habilitaste el acceso al plano de control para las cuentas de servicio
apigee-mart
yapigee-mint-task-scheduler
, hazlo ahora con los siguientes pasos. Consulta Paso 7: Habilita el acceso al plano de control para obtener información sobre cómo habilitar el acceso al plano de control como parte de una instalación híbrida nueva.- Si no eres el propietario del proyecto de Google Cloud asociado a tu organización híbrida de Apigee, asegúrate de que tu cuenta de usuario de Google Cloud tenga el rol roles/apigee.admin (administrador de la organización de Apigee). Puedes verificar las funciones que se te asignaron con este comando:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"
Si el resultado no incluye roles/apigee.admin, consulta el paso 7: Habilita el acceso al plano de control para conocer los pasos para agregar el rol o pedirle a un usuario que tenga el rol que realice este paso.
- Llama a la API de
updateControlPlaneAccess
para habilitar los permisos requeridos con el siguiente comando:
Sin residencia de datos
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\"]}"
Donde las siguientes son las direcciones de correo electrónico de las cuentas de servicio:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
Residencia de los datos
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\"]}"
Aquí:
CONTROL_PLANE_LOCATION
es la ubicación de los datos del plano de control si la instalación híbrida usa la residencia de datos. Esta es la ubicación donde se almacena el contenido principal del cliente, como los paquetes de proxy. Para obtener una lista, consulta Regiones del plano de control de la API de Apigee disponibles- Las siguientes son las direcciones de correo electrónico de las cuentas de servicio:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
Verifica el acceso al plano de control para las cuentas de servicio
apigee-mart
yapigee-mint-task-scheduler
.Sin residencia de datos
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"
Residencia de los datos
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"
Tu resultado debe incluir las cuentas de servicio
apigee-mart
,apigee-mint-task-scheduler
yapigee-runtime
, similares a las siguientes:{ "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 no eres el propietario del proyecto de Google Cloud asociado a tu organización híbrida de Apigee, asegúrate de que tu cuenta de usuario de Google Cloud tenga el rol roles/apigee.admin (administrador de la organización de Apigee). Puedes verificar las funciones que se te asignaron con este comando:
- Agrega las estrofas específicas de la monetización a tu archivo
overrides.yaml
.Agrega las siguientes estrofas a tu archivo
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 usas Secrets de Kubernetes, consulta Cómo almacenar datos en un Secret de Kubernetes.
Si usas Vault, consulta Almacena claves de cuentas de servicio en Hashicorp Vault.
Si usas Vault, asegúrate de haber agregado
mint
a la clase de proveedor de secretos específica de la organización. Consulta Cómo crear objetosSecretProviderClass
. -
Aplica los cambios a los gráficos
apigee-operator
,apigee-org
yapigee-env
.Si configuraste las variables de entorno $ORG_NAME y APIGEE_NAMESPACE, puedes usarlas en los siguientes comandos:
- Instala el operador.
Prueba de validación:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instala el gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instala la organización de Apigee.
Prueba de validación:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instala el gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instala el entorno. Repite este paso para cada entorno.
Debes instalar un entorno a la vez. Especifica el entorno con
--set env=
ENV_NAME. Si configuraste la variable de entorno $ENV_NAME en tu shell, puedes usarla en los siguientes comandos:Prueba de validación:
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 es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-env
. Este nombre debe ser único entre los demás nombres de versiones de Helm de tu instalación. Por lo general, es igual aENV_NAME
. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de versión diferentes para el entorno y el grupo de entornos, por ejemplo,dev-env-release
ydev-envgroup-release
. Para obtener más información sobre las versiones en Helm, consulta Tres conceptos importantes en la documentación de Helm.Instala el gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
- Instala el operador.
- Solo Workload Identity en GKE: Configura Workload Identity para la cuenta de servicio
apigee-mint-task-scheduler
.Si realizas una instalación nueva, sigue este paso además de los pasos que se indican en Paso 11 (opcional): Configura Workload Identity.
Cuando ejecutes la actualización de Helm con la marca
--dry-run
para el gráficoapigee-org
, el resultado incluirá los comandos que necesitarás para configurar Workload Identity con los nombres correctos de la cuenta de servicio de Google y la cuenta de servicio de Kubernetes.- Obtén los comandos para configurar Workload Identity para
apigee-org
y ejecuta el comando enNOTES:
en el resultado.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server
El resultado debe contener instrucciones similares a las siguientes en
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
El nombre de la cuenta de servicio de Kubernetes tiene el formato
apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID
. - Ejecuta los comandos para configurar Workload Identity para
apigee-mint-task-scheduler
.
- Obtén los comandos para configurar Workload Identity para
También consulta lo siguiente:
- Habilitar la monetización de Apigee para obtener más información sobre la monetización en Apigee
mintTaskScheduler.serviceAccountPath
: Establece la ruta de acceso al archivo de claves de la cuenta de servicio para la cuenta de servicioapigee-mint-task-scheduler
.mintTaskScheduler.serviceAccountRef
: Establece el secreto de Kubernetes que contiene la clave de la cuenta de servicio para la cuenta de servicioapigee-mint-task-scheduler
.mintTaskScheduler.gsa
: Establece la cuenta de servicio de Google para la cuenta de servicio deapigee-mint-task-scheduler
. Debe ser la dirección de correo electrónico de la cuenta de servicio.