Habilita el acceso del sincronizador
Para habilitar el acceso del sincronizador, haz lo siguiente:
- Crea una cuenta de servicio de Google Cloud y agrégale la función Administrador de la organización de Apigee. Esta cuenta de servicio se usará para autenticar una llamada a la API que realizarás en un paso posterior. Una forma sencilla de crear la cuenta de servicio es a través de GCP Console.
Para obtener instrucciones, consulta Crea y administra cuentas de servicio en la documentación de GCP.
Por ejemplo, con los siguientes comandos
gcloud
, se creará la cuenta de servicio y se le asignará la función Administrador de la organización de Apigee:- Crea la cuenta:
gcloud iam service-accounts create apigee-org-admin \ --display-name="apigee-org-admin"
En que apigee-org-admin es el nombre de la cuenta de servicio que creas. Se recomienda “
apigee-org-admin
” para este instructivo. - Asigna la función Administrador de la organización de Apigee a la cuenta de servicio:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.admin"
Aquí:
- $PROJECT_ID es el nombre de tu proyecto de Google Cloud que creaste en el Paso 2: Crea un proyecto de Google Cloud.
- apigee-org-admin es el nombre de la cuenta de servicio que acabas de crear.
- roles/apigee.admin es la función Administrador de la organización de Apigee.
- Crea la cuenta:
- Descarga la clave de la cuenta de servicio a tu sistema. Usa el siguiente comando para descargar la clave en tu directorio
service-accounts/
. Para obtener más información, consulta las instrucciones en Crea claves de cuentas de servicio en la documentación de GCP.- Asegúrate de estar en el directorio
/hybrid-base-directory/hybrid-files/
. - Descarga la clave:
gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \ --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com
El resultado debería ser similar a lo siguiente:
created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid- example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com] $
- Asegúrate de estar en el directorio
- Verifica la ruta a la clave de la cuenta de servicio de Administrador de la organización de Apigee con el siguiente comando:
ls service-accounts/*admin*
El resultado debería ser similar a lo siguiente:
service-accounts/hybrid-example-apigee-org-admin.json
- Crea una variable de entorno ORG_ADMIN_ACCOUNT con el nombre del archivo de claves.
Por ejemplo:
export ORG_ADMIN_ACCOUNT="hybrid-example-2-apigee-org-admin.json"
- Ejecuta los siguientes comandos para obtener un token:
export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
export TOKEN=$(gcloud auth application-default print-access-token)
- Obtén la dirección de correo electrónico de tu cuenta de servicio de
apigee-synchronizer
con el siguiente comando:gcloud iam service-accounts list --filter "apigee-synchronizer"
Si coincide con el patrón
apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com
, puedes usarlo en el paso siguiente - Llama a la API de setSyncAuthorization para habilitar los permisos requeridos de Synchronizer con el siguiente comando:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
Aquí:
$ORG_NAME
: Es el nombre de tu organización híbrida.apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com
: Es la dirección de correo electrónico de la cuenta de servicio de apigee-syncnronizer.
- A fin de verificar que se haya configurado la cuenta de servicio, usa el siguiente comando para llamar a la API y obtener una lista de cuentas de servicio:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:getSyncAuthorization" \ -d ''
El resultado es similar al siguiente:
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
Aplica la configuración al clúster:
Sigue estos pasos para instalar Apigee Hybrid en tu clúster:
- Asegúrate de estar en el directorio
hybrid-base-directory/hybrid-files
. - Verifica que
kubectl
esté configurado en el contexto correcto con el siguiente comando. El contexto actual se debe configurar en el clúster en el que implementas Apigee Hybrid.kubectl config get-contexts
- Realiza una inicialización de ejecución de prueba. Ejecuta el comando
init
con la marca--dry-run
. Realizar una ejecución de prueba te permite comprobar si hay errores antes de que se realicen cambios en el clúster.En la versión 1.3 híbrida, la sintaxis de la marca
--dry-run
depende de la versión delkubectl
que ejecutes. Verifica la versión dekubectl
con el siguiente comando:kubectl version
Versión 1.17 de
kubectl
y versiones anteriores:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true
Versión 1.18
kubectl
y versiones posteriores:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
- Si no hay errores, ejecuta el comando
init
de la siguiente manera:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
Con el comando
init
, se instalan los servicios de implementación de Apigee del controlador de implementación de Apigee y el webhook de admisión de Apigee. - Para verificar el estado de la implementación, puedes usar los siguientes comandos:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
kubectl get pods -n apigee-system
kubectl get pods -n istio-system
Cuando los pods estén listos, continúa con el siguiente paso.
- Realiza una instalación de ejecución de prueba. Ejecuta el comando
apply
con la marca--dry-run
.Versión 1.17 de
kubectl
y versiones anteriores:$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
Versión 1.18
kubectl
y versiones posteriores:$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
-
Si no hay errores, puedes aplicar los componentes del entorno de ejecución específico de Apigee al clúster con el siguiente comando:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- Para verificar el estado de la implementación, ejecuta el siguiente comando:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
Repite este paso hasta que los pods estén listos. Los pods pueden tardar varios minutos en iniciarse.
Habilita Apigee Connect
Apigee Connect administra la comunicación entre el plano de administración de Apigee y MART en el plano de entorno de ejecución. Para obtener más información, consulta Usa Apigee Connect.
Para habilitar Apigee Connect, sigue estos pasos:
-
En la línea de comandos, obtén tus credenciales de autenticación de
gcloud
, como se muestra en el siguiente ejemplo:TOKEN=$(gcloud auth print-access-token)
Para verificar que tu token se haya propagado, usa
echo
, como se muestra en el siguiente ejemplo:echo $TOKEN
Se debería mostrar tu token como una string codificada.
Para obtener más información, consulta la descripción general de la herramienta de línea de comandos de gcloud.
- Usa el siguiente comando a fin de ver si Apigee Connect está habilitado para tu organización.
curl -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
En este comando, $ORG_NAME es el ID de tu organización.
Si el resultado contiene lo siguiente:
"name" : "features.mart.connect.enabled", "value" : "true"
Apigee Connect está habilitado y puedes omitir el resto de esta sección.
- Habilita Apigee Connect con el siguiente comando:
curl -H "Authorization: Bearer $TOKEN" -X PUT \ -H "Content-Type: application/json" \ -d '{ "name" : "'"$ORG_NAME"'", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.connect.enabled", "value" : "true" } ] } }' \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
Si el resultado contiene las dos propiedades siguientes, Apigee Connect se habilitó correctamente:
{ "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" }
El resultado debería ser similar a lo siguiente:
{ "name": "hybrid-example-2", "createdAt": "1594409699772", "lastModifiedAt": "1594776283697", "environments": [ "example-env" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "analyticsRegion": "us-central1", "runtimeType": "HYBRID", "subscriptionType": "TRIAL" }