Etapa 4: instalar o híbrido no GKE

Aplicar a configuração ao cluster

Para instalar a Apigee híbrida no cluster:

  1. Verifique se você está no diretório hybrid-base-directory/hybrid-files.
  2. 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
  3. 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.

  4. 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.

  5. 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
  6. 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
  7. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

  5. 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"]}'
    
  6. 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:

  1. 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.
  2. 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.
  3. 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.

  4. 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.