Supported versions:
Unsupported versions:
To install Apigee hybrid into your cluster:
hybrid-base-directory/hybrid-files directory.init command:
$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
The init command installs the
Apigee deployment services
Apigee Deployment Controller and Apigee Admission Webhook, and it deploys non-Apigee
components Istio and Cert Manager.
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
and
kubectl get pods -n apigee-system
and
kubectl get pods -n istio-system
When the pods are ready, go to the next step.
apply command with the --dry-run=true flag. Doing a dry
run lets you check for any errors before any changes are made to the cluster.
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
Repeat this step until the pods are all ready. The pods may take several minutes to start up.
/hybrid-files/service-accounts.export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-fileexport TOKEN=$(gcloud auth application-default print-access-token)
Where org-admin-service-account-file is the path on your system to the service account key you downloaded with the Apigee Organization Admin role.
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"]}'
Where:
your_org_name: The name of your hybrid organization.
synchronizer-manager-service-account-email: The name of a service account
with the Apigee Synchronizer Manager role.
The name is formed like an email address. For example:
apigee-synchronizer@my-project.iam.gserviceaccount.comExample:
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"]}'
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \ -d ''
The output looks similar to the following:
{
"identities":[
"serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
],
"etag":"BwWJgyS8I4w="
}
You must add the IP address of the MART endpoint
to your Apigee organization. You set this value previously when set
the value of the mart.hostAlias property in your overrides
file.
The management plane needs this address so that it can communicate with the runtime
plane over MART.
Follow these steps to add the MART IP to your organization:
mart.hostAlias property. For MART to function, the host alias must
be a fully qualified domain name.export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-fileexport TOKEN=$(gcloud auth application-default print-access-token)
Where org-admin-service-account-file is the path on your system to the service account key you downloaded with the Apigee Organization Admin role.
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"
} ]
}
}'Here is an example. Be sure to add the prefix "https://" to the domain name.
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"
} ]
}
}'Be sure to save your overrides file. You will need this file to perform future upgrades, patches, or any other modifications to the cluster configuration.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-06-11 UTC.