Aplicar a configuração ao cluster
Para instalar a Apigee híbrida no cluster:
- Verifique se você está no diretório
hybrid-base-directory/hybrid-files
. - Verifique se
kubectl
está definido com o contexto correto. O contexto atual precisa ser definido como o cluster em que você está implantando:kubectl config get-contexts
- Execute o comando
init
:$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
O comando
init
instala os serviços de implantação da Apigee O controlador de implantação da Apigee e o webhook de admissão da Apigee, além de implantar componentes que não são da Apigee Istio e o Cert Manager. - Para verificar o status da implantação, use estes comandos:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
e
kubectl get pods -n apigee-system
e
kubectl get pods -n istio-system
Quando os pods estiverem prontos, vá para a próxima etapa.
- Faça uma instalação de "simulação". Execute o comando
apply
com a sinalização--dry-run=true
. Uma simulação permite verificar se há erros antes da alteração no cluster.$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
-
Se não houver erros, você poderá aplicar os componentes de ambiente
de execução específicos da Apigee ao cluster:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- Para verificar o status da implantação:
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
Repita essa etapa até que os pods estejam prontos. Os pods podem levar vários minutos para serem iniciados.
Ativar acesso do Synchronizer
- Crie uma conta de serviço do GCP e adicione o papel Administrador da organização Apigee a ela. Essa conta de serviço será usada para autenticar uma chamada de API que você fará em uma etapa posterior. Uma maneira fácil de criar a conta de serviço é por meio do console do GCP. Para instruções, consulte Como criar e gerenciar contas de serviço na documentação do GCP.
- Faça o download da chave de conta de serviço no seu sistema. Siga as instruções em Como criar chaves de conta de serviço na documentação do GCP.
- Mova a chave da conta de serviço salva para o diretório de contas de serviço:
/hybrid-base-directory
/hybrid-files/service-accounts
. - Execute estes dois comandos para receber um token:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
Em que org-admin-service-account-file é o caminho no seu sistema para a chave da conta de serviço que você salvou com o papel Administrador da organização da Apigee.
- Chame a API setSyncAuthorization para ativar
as permissões necessárias para o sincronizador:
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"]}'
Em que:
your_org_name
: o nome da organização híbrida.synchronizer-manager-service-account-email
: o nome de uma conta de serviço com o papel Gerenciador de Synchronizer da Apigee. O nome tem o formato de endereço de e-mail. Por exemplo:apigee-synchronizer@my-project.iam.gserviceaccount.com
Exemplo:
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"]}'
- Para verificar se a conta de serviço foi definida, chame a seguinte API para receber
uma lista de contas de serviço:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \ -d ''
A resposta será semelhante a:
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
Adicionar o alias de host MART à sua organização
Adicione o alias de host do endpoint MART
à sua organização Apigee. Você definiu esse valor anteriormente ao definir
o valor da propriedade mart.hostAlias
no arquivo de
modificações.
O plano de gerenciamento precisa desse endereço para que ele possa se comunicar com o plano do ambiente de execução
pelo MART.
Siga estas etapas para adicionar o alias de host MART à sua organização:
- Consiga o valor definido anteriormente no arquivo de modificações da
propriedade
mart.hostAlias
. Para que o MART funcione, o alias de host precisa ser um nome de domínio totalmente qualificado. - Localize a chave da conta de serviço com o papel de Administrador da organização Apigee que você baixou anteriormente, na seção Ativar acesso do Synchonizer.
- Execute estes dois comandos para receber um token:
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
Em que org-admin-service-account-file é o caminho no sistema para a chave da conta de serviço que você salvou com o papel Administrador da organização Apigee.
- Chame a seguinte API de gerenciamento para atualizar sua organização com o endpoint 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" } ] } }'
Veja um exemplo: Não se esqueça de adicionar o prefixo "https://" ao alias de host.
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" } ] } }'
Salvar o arquivo de modificações
Salve seu arquivo de modificações. Esse arquivo será necessário para realizar upgrades, patches ou quaisquer outras modificações na configuração do cluster no futuro.