Upgrading Apigee hybrid to version 1.9 Stay organized with collections Save and categorize content based on your preferences.
This procedure covers upgrading from Apigee hybrid version 1.8.x to Apigee hybrid version 1.9.4 and from previous releases of hybrid 1.9.x to version 1.9.4.
Use the same procedures for minor version upgrades (for example version 1.8 to 1.9) and for patch release upgrades (for example 1.9.0 to 1.9.4).
If you are upgrading from Apigee hybrid version 1.7 or older, you must first upgrade to hybrid version 1.8 before upgrading to version 1.9.4. See the instructions forUpgrading Apigee hybrid to version 1.8.
Starting with version 1.9.0, Apigee hybrid only supports Apigee ingress gateway as the ingress layer.
Upgrading to version 1.9.4 overview
Upgrading to Apigee hybrid version 1.9 may require downtime.When upgrading the Apigee controller to version 1.9.4, all Apigee deployments undergo a rolling restart. To minimize downtime in production hybrid environments during a rolling restart, make sure you are running at least two clusters (in the same or different region/data center). Divert all production traffic to a single cluster and take the cluster you are about to upgrade offline, and then proceed with the upgrade process. Repeat the process for each cluster.
Apigee recommends that you upgrade all clusters as soon as possible to reduce the chances of production impact. There is no time limit on when all remaining clusters must be upgraded after the first one is upgraded. However, until all remaining clusters are upgraded the following operations will be impacted:
- Cassandra backup and restore cannot work with mixed versions. For example, a backup from Hybrid 1.8 cannot be used to restore a Hybrid 1.9 instance.
- Cassandra data streaming will not work between mixed Hybrid versions. Therefore, your Cassandra clusters cannot scale horizontally.
- Region expansion and decommissioning will be impacted, because these operations depend on Cassandra data streaming.
The procedures for upgrading Apigee hybrid are organized in the following sections:
Prerequisites
- These upgrade instructions assume you have Apigee hybrid version 1.8.x installed and wish to upgrade it to version 1.9.4. If you are updating from an earlier version, see the instructions forUpgrading Apigee hybrid to version 1.8.
- In Apigee hybrid version 1.8, we introduced Apigee ingress gateway as an alternative ingress layer to Anthos Service Mesh. Starting with version 1.9.0, Apigee hybrid requires using Apigee ingress gateway and no longer supports using Anthos Service Mesh for ingress. If the installation you are upgrading from uses Anthos Service Mesh, you must first migrate to using Apigee ingress gateway before upgrading to version 1.9.4.
Apigee ingress gateway uses a small subset of Anthos Service Mesh features for the ingress gateway. Management and upgrade of those features are handled automatically by Apigee hybrid. Therefore you do not need expertise with Anthos Service Mesh to install, upgrade, and manage the Apigee hybrid ingress gateway.
SeeMigrating to Apigee ingress gateway in the hybrid v1.8 documentation for instructions.
Prepare to upgrade to version 1.9
Back up your hybrid installation (recommended)
- These instructions use the environment variableAPIGEECTL_HOME for the directory in your file system where you have installed
apigeectl. If needed, change directory into yourapigeectldirectory and define the variable with the following command:Linux
export APIGEECTL_HOME=$PWD
echo$APIGEECTL_HOMEMac OS
export APIGEECTL_HOME=$PWD
echo$APIGEECTL_HOMEWindows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME% - Make a backup copy of your version 1.8
$APIGEECTL_HOME/directory. For example:tar -czvf$APIGEECTL_HOME/../apigeectl-v1.8-backup.tar.gz$APIGEECTL_HOME - Back up your Cassandra database following the instructions inCassandra backup and recovery.
Add theCloud Trace Agent role to the service account for the Apigee runtime. (Optional)
Optional: If you plan to useCloud trace and you have not already added theCloud Trace Agent role to your hybrid v1.8 installation, ensure your service account for your Apigee runtime services has theCloud Trace Agent Google Cloud IAM role (roles/cloudtrace.agent).
For production environments, runtime service account isapigee-runtime. For non-production environments, runtime service account isapigee-non-prod.
You can add the role in theCloud console > IAM & Admin > Service accounts UI or with the following commands:
- Get the email address for your service account with the following command:
Production
gcloud iam service-accounts list --filter "apigee-runtime"
If the email address matches the pattern
apigee-runtime@$ORG_NAME.iam.gserviceaccount.com, you can use that pattern in the next step.Non-Prod
gcloud iam service-accounts list --filter "apigee-non-prod"
If it matches the pattern
apigee-non-prod@$ORG_NAME.iam.gserviceaccount.com, you can use that pattern in the next step. - Assign theCloud Trace Agent role to the service account:
Production
gcloud projects add-iam-policy-binding$PROJECT_ID \ --member="serviceAccount:apigee-runtime@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"
Non-Prod
gcloud projects add-iam-policy-binding$PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"
Example
gcloud projects add-iam-policy-binding hybrid-example-project \ --member="serviceAccount:apigee-runtime@hybrid-example-project.iam.gserviceaccount.com" \ --role="roles/cloudtrace.agent"
Where:$PROJECT_ID is the name of the Google Cloud project where Apigee hybrid is installed.
Note:If your installation uses a custom name for the service account, substitute that name forapigee-runtimeorapigee-non-prodin the command.
Install Apigee ingress gateway if your installation uses Anthos Service Mesh
Starting with version 1.9, Apigee hybrid no longer supports using Anthos Service Mesh for ingress. If your hybrid installation is using Anthos Service Mesh, you must migrate your current installation to Apigee ingress gateway before installing hybrid version 1.9.
- Add the
ingressGatewaysproperty to your overrides file.Syntax
ingressGateways: - name:INGRESS_NAME replicaCountMin:REPLICAS_MIN replicaCountMax:REPLICAS_MAX resources: requests: cpu:CPU_COUNT_REQ memory:MEMORY_REQ limits: cpu:CPU_COUNT_LIMIT memory:MEMORY_LIMIT svcAnnotations: # optional.SVC_ANNOTATIONS_KEY:SVC_ANNOTATIONS_VALUE svcLoadBalancerIP:SVC_LOAD_BALANCER_IP # optional
Example
ingressGateways: - name: prod1 replicaCountMin: 2 replicaCountMax: 100 resources: requests: cpu: 1 memory: 1Gi limits: cpu: 2 memory: 2Gi svcAnnotations: # optional. SeeKnown issue 243599452. networking.gke.io/load-balancer-type: "Internal" svcLoadBalancerIP: 198.252.0.123
- INGRESS_NAME is the name of the ingress deployment. This can be any name that meets the following requirements:
- Have a maximum length of 17 characters
- Contain only lowercase alphanumeric characters, '-' or '.'
- Start with an alphanumeric character
- End with an alphanumeric character
ingressGateways[].namein the Configuration property reference. - REPLICAS_MIN andREPLICAS_MAX are the minimum and maximum replica counts for Apigee ingress gateway in your installation. For more information and default settings, see
ingressGateways[].replicaCountMinandingressGateways[].replicaCountMaxin the Configuration property reference. - CPU_COUNT_REQ andMEMORY_REQ are the CPU and memory request for each replica of Apigee ingress gateway in your installation.Set these properties if you have previously set them for your Anthos Service Mesh ingress gateway, for example in your
overlay.yamlfile.For more information and default settings, see
ingressGateways[].resources.requests.cpuandingressGateways[].resources.requests.memoryin the Configuration property reference. - CPU_COUNT_LIMIT andMEMORY_LIMIT Are the maximum CPU and memory limits for each replica of Apigee ingress gateway in your installation.Set these properties if you have previously set them for your Anthos Service Mesh ingress gateway, for example in your
overlay.yamlfile.For more information and default settings, see
ingressGateways[].resources.limits.cpuandingressGateways[].resources.limits.memoryin the Configuration property reference. - SVC_ANNOTATIONS_KEYSVC_ANNOTATIONS_VALUE (optional):Note: The
ingressGateways[].svcAnnotationsfield inoverrides.yamlis not working as expected. SeeKnown issue 243599452This is a key-value pair that provides annotations for your default ingress service. Annotations are used by your cloud platform to help configure your hybrid installation, for example setting the loadbalancer type to either internal or external. For example:
ingressGateways: svcAnnotations: networking.gke.io/load-balancer-type: "Internal"
Annotations vary from platform to platform. Refer to your platform documentation for required and suggested annotations.
Note: You do not need to setAnnotationsif you are creating your own Kubernetes service for ingress deployment as documented inExpose Apigee ingress gateway. SeeingressGateways[].svcAnnotationsin the Configuration property reference. - SVC_LOAD_BALANCER_IP (optional) Allows you to assign a static IP address for your load balancer. On platforms that support specifying the load balancer IP address, the load balancer will be created with this IP address. On platforms that do not allow you to specify the load balancer IP address, this property is ignored.
If you do not have a static IP address allocated for your load balancer, leave this property out of your overrides file.
Caution: Make sure not to specify the same IP address as the current istio-ingressgateway. This could cause problems while that service is still on the cluster.Note: You do not need to setLoadBalancerIPif you are creating your own Kubernetes service for ingress deployment as documented inExpose Apigee ingress gateway. SeeingressGateways[].svcLoadBalancerIPin the Configuration property reference.
- INGRESS_NAME is the name of the ingress deployment. This can be any name that meets the following requirements:
- Apply the changes to install Apigee ingress gateway with the following commands:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- Expose the Apigee ingress gateway. Follow the procedures inExpose Apigee ingress gateway.
- Test your new ingress gateway by calling a proxy. Ideally, test all crucial proxies you currently have deployed.
- To switch the traffic, update your DNS records to point to the IP address for your new Apigee ingress gateway. Depending on your DNS provider, you might be able to gradually shift traffic to the new endpoint.Tip:You can find the external IP address of Apigee ingress gateway with the following command:
kubectl get svc -n apigee -l app=apigee-ingressgateway
Your output should look something like:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEapigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
- Ensure all the runtime traffic is working by monitoring your dashboards. Only proceed to the next step if everything is working as expected. Make sure no traffic is going through your old ingress gateway (Anthos Service Mesh), as the DNS update may be slow to propagate because of DNS caching.
- To stop Apigee from supplying configuration to Anthos Service Mesh, follow the steps inStop supplying configuration to ASM in the Managing Apigee ingress gateway guide.
- Retest and monitor API proxy traffic.
- Follow the instructions in the Anthos Service Mesh documentation toUninstall Anthos Service Mesh from the cluster.
Install the hybrid 1.9.4 runtime
Caution:Do not create new environments during the upgrade process.- Be sure you are in the hybrid base directory (the parent of the directory where the
apigeectlexecutable file is located):cd$APIGEECTL_HOME/..
Download the release package for your operating system using the following command. Be sure to select your platform in the following table:
Linux
Linux 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_linux_64.tar.gz
Mac OS
Mac 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_mac_64.tar.gz
Windows
Windows 64 bit:
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.9.4/apigeectl_windows_64.zip
- Rename your current
apigeectl/directory to a backup directory name. For example:Linux
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.8/
Mac OS
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.8/
Windows
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.8
Extract the downloaded gzip file contents into your hybrid base directory. The hybrid base directory is the directory where the renamed
apigeectl-v1.8directory is located:Linux
tar xvzffilename.tar.gz -C ./
Mac OS
tar xvzffilename.tar.gz -C ./
Windows
tar xvzffilename.zip -C ./
The tar contents are, by default, expanded into a directory with the version and platform in its name. For example:
./apigeectl_1.9.4-xxxxxxx_linux_64. Rename that directory toapigeectlusing the following command:Linux
mvapigeectl_1.9.4-xxxxxxx_linux_64 apigeectl
Mac OS
mvapigeectl_1.9.4-xxxxxxx_mac_64 apigeectl
Windows
renameapigeectl_1.9.4-xxxxxxx_windows_64 apigeectl
- Change to the
apigeectldirectory:cd ./apigeectl
This directory is the
apigeectlhome directory. It is where theapigeectlexecutable command is located. - These instructions use the environment variable
$APIGEECTL_HOMEfor the directory in your file system where theapigeectlutility is installed. If needed, change directory into yourapigeectldirectory and define the variable with the following command:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Mac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- Verify the version of
apigeectlwith theversioncommand:./apigeectl version
Version:1.9.4
- Move to the
hybrid-base-directory/hybrid-filesdirectory. Thehybrid-filesdirectory is where configuration files such as the overrides file, certs, and service accounts are located. For example:cd$APIGEECTL_HOME/../hybrid-files
- Verify that
kubectlis set to the correct context using the following command. The current context should be set to the cluster in which you are upgrading Apigee hybrid.kubectl config get-contexts | grep \*
- In the
hybrid-filesdirectory:- Update the following symbolic links to
$APIGEECTL_HOME. These links allow you to run the newly installedapigeectlcommand from inside thehybrid-filesdirectory:ln -nfs
$APIGEECTL_HOME/tools toolsln -nfs$APIGEECTL_HOME/config configln -nfs$APIGEECTL_HOME/templates templatesln -nfs$APIGEECTL_HOME/plugins plugins - To check that the symlinks were created correctly, execute the following command and make sure the link paths point to the correct locations:
ls -l | grep ^l
- Update the following symbolic links to
- Do a dry run initialization to check for errors:
${APIGEECTL_HOME}/apigeectl init -fOVERRIDES_FILE --dry-run=clientWhereOVERRIDES_FILE is the name of your overrides file, for example
Tip: You can replace./overrides/overrides.yaml.OVERRIDES_FILEin the code sample above with the name and path to your overrides file, and every instance on this page will be replaced. - If there are no errors, initialize hybrid 1.9.4:
Note:$APIGEECTL_HOME/apigeectl init -fOVERRIDES_FILE
apigeectlinstalls and configures Apigee ingress gateway when you runapigeectl init. - Check the initialization status:
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
On success, the output says:
All containers ready.kubectl describe apigeeds -n apigee
In the output, look for
State: running. - Check for errors with a dry run of the
applycommand using the--dry-runflag:$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --dry-run=client
- If there are no errors, apply your overrides. Select and follow the instructions for production environments or non-prod environments, depending on your installation.
Production
For production environments, upgrade each hybrid component individually, and check the status of the upgraded component before proceeding to the next component.
- Be sure you are in the
hybrid-filesdirectory. - Apply your overrides to upgrade Cassandra:
$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --datastore
- Check completion:
Tip: If$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
check-readyfails, you can get more information about your pods with:kubectl -nNAMESPACE get pods
WhereNAMESPACE is your Apigee hybrid namespace.
Proceed to the next step only when the pods are ready.
- Apply your overrides to upgrade Telemetry components and check completion:
$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --telemetry
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
- Bring up Redis components:
$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --redis
- Apply your overrides to upgrade the org-level components (MART, Watcher and Apigee Connect) and check completion:
$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --org
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
- Apply your overrides to upgrade your environments. You have two choices:
- Environment by environment: Apply your overrides to one environment at a time and check completion. Repeat this step for each environment:
$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --envENV_NAME
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
WhereENV_NAME is the name of the environment you are upgrading.
- All environments at one time: Apply your overrides to all environments at once and check completion:
$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --all-envs
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
- Environment by environment: Apply your overrides to one environment at a time and check completion. Repeat this step for each environment:
- Apply your overrides to upgrade the
virtualhostscomponents and check completion:$APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE --settings virtualhosts
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
Non-prod
In most non-production, demo, or experimental environments, you can apply the overrides to all components at once. If your non-production environment is large and complex or closely mimics a production environment, you may want to use the instructions for upgrading production environments.
- Be sure you are in the
hybrid-filesdirectory. $APIGEECTL_HOME/apigeectl apply -fOVERRIDES_FILE
- Check the status:
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
- Be sure you are in the
Install1.9.4-hotfix.1
Follow these steps to install the hotfix release,1.9.4-hotfix.1:
- Before doing these steps, you must be on Apigee hybrid version 1.9.4 or a later version. If you are not on 1.9.4 or later, perform an upgrade to 1.9.4 before proceeding.
- Open your
overrides.yamlfile. - In the
istiodstanza, change the version of the image tag (if present) to version1.17.7. For example:istiod: image: url: "gcr.io/apigee-release/hybrid/apigee-asm-istiod" tag: "1.17.7-asm.0-distroless"
- Depending on how you chose to install Apigee hybrid, you may have an
ingressGatewayoringressGatewaysstanza. Locate the stanza that appears in your overrides file and change the version of the image tag (if present) to version1.17.7. For example, if you have aningressGatewaystanza:ingressGateway: image: url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress" tag: "1.17.7-asm.0-distroless"
or, if you have an
ingressGatewaysstanza:ingressGateways: - name: gateway1 image: url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress" tag: "1.17.7-asm.0-distroless" ... - name: gateway2 image: url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress" tag: "1.17.7-asm.0-distroless" ...
- Save the file.
- Execute the following command to initialize the
istiodcomponent:$APIGEECTL_HOME/apigeectl init -fOVERRIDES_FILE
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
- Execute the following command to apply changes to the Apigee ingress component(s). If you have more than one organization, repeat this command for each one:
$APIGEECTL_HOME/apigeectl apply --org -fOVERRIDES_FILE
$APIGEECTL_HOME/apigeectl check-ready -fOVERRIDES_FILE
- Verify the status of your pods:
kubectl get pods -nYOUR_APIGEE_NAMESPACE
Upgrade your Kubernetes version
Upgrade your Kubernetes platform to the versions supported by hybrid 1.9. Follow your platform's documentation if you need help.
Click to expand a list of supported platforms
| Apigee hybrid versions | |||||
|---|---|---|---|---|---|
Platforms | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 |
| Anthos (Google Cloud - GKE) | 1.19.x 1.20.x 1.21.x | 1.20.x 1.21.x 1.22.x(≥ 1.7.2) 1.23.x(≥ 1.7.2) | 1.21.x(≤ 1.8.3) 1.22.x(≤ 1.8.3) 1.23.x(≤ 1.8.4) 1.24.x(≥ 1.8.4) 1.25.x(≥ 1.8.4) | 1.23.x 1.24.x 1.25.x 1.26.x(≥ 1.9.2) | 1.24.x 1.25.x 1.26.x |
| Anthos (AWS) | 1.7.x 1.8.x 1.9.3+ 1.10.x | 1.9.x 1.10.x 1.12.x(≥ 1.7.2) | 1.10.x 1.11.x 1.12.x 1.13.x 1.25(13) | 1.12.x 1.13.x 1.25(13) | 1.13.x 1.25(13) 1.26(13) |
| Anthos (Azure) | 1.8.x | 1.9.x 1.10.x 1.12.x(≥ 1.7.2) | 1.10.x 1.11.x 1.12.x 1.13.x 1.14.x | 1.12.x 1.13.x 1.14.x | 1.13.x 1.14.x 1.15.x |
| Anthos (on-premises - VMware)(1) | 1.7.x 1.8.x 1.9.3+ 1.10.x | 1.9.x 1.10.x 1.11.x 1.12.x | 1.10.x 1.11.x 1.12.x 1.13.x(5) 1.14.x(5) 1.15.x | 1.12.x 1.13.x 1.14.x 1.15.x | 1.13.x 1.14.x 1.15.x 1.16.x |
| Anthos (Bare Metal)(1) | 1.7.x 1.8.2+ 1.9.3+ 1.10.x | 1.9.x 1.10.x 1.11.x 1.12.x | 1.10.x 1.11.x 1.12.x 1.13.x(5) 1.14.x(5) 1.15.x | 1.12.x 1.13.x 1.14.x 1.15.x | 1.13.x 1.14.x 1.15.x 1.16.x |
| EKS(7) | 1.19.x 1.20.x 1.21.x | 1.21.x 1.22.x(≥ 1.7.2) 1.23.x(≥ 1.7.2) | 1.22.x(≤ 1.8.3) 1.23.x(≤ 1.8.4) 1.24.x(≥ 1.8.4) 1.25.x(≥ 1.8.4) | 1.23.x 1.24.x 1.25.x 1.26.x(≥ 1.9.2) | 1.24.x 1.25.x 1.26.x |
| AKS(7) | 1.19.x 1.20.x 1.21.x | 1.21.x 1.22.x(≥ 1.7.2) 1.23.x(≥ 1.7.2) | 1.22.x(≤ 1.8.3) 1.23.x(≤ 1.8.4) 1.24.x(≥ 1.8.4) 1.25.x(≥ 1.8.4) | 1.23.x 1.24.x 1.25.x 1.26.x(≥ 1.9.2) | 1.24.x 1.25.x 1.26.x |
| OpenShift(7) | 4.6 4.7 4.8 | 4.7 4.8 | 4.8 4.9 4.10 | 4.10 4.11 | 4.11 4.12 |
| Rancher Kubernetes Engine (RKE)(7) | N/A | N/A | N/A | 1.3.8 | v1.26.2+rke2r1 |
Components | 1.6 | 1.7 | 1.8 | 1.9 | 1.10 |
| Anthos Service Mesh (ASM) | 1.9.x 1.10.x 1.12.x 1.13.x | 1.10.x 1.11.x 1.12.x 1.13.x 1.14.x 1.15.x(≥ 1.7.6) | 1.11.x 1.12.x 1.13.x 1.14.x 1.15.x | 1.17.x(11) | 1.17.x(11) |
| JDK | JDK 11 | JDK 11 | JDK 11 | JDK 11 | JDK 11 |
| cert-manager | 1.5.4 | 1.7.x | 1.7.x 1.8.x 1.9.x 1.10.x 1.11.x | 1.10.x 1.11.x | 1.10.x 1.11.x 1.12.x |
| Cassandra | 3.11.10 | 3.11.10 | 3.11.10 | 3.11.10 | 3.11.10 |
(1) On Anthos versions 1.8, 1.9, and 1.10, follow the instructions in these documents to avoid conflict with
(2) Support available with Apigee hybrid version 1.7.2 and newer. (3) The official EOL dates for Apigee hybrid versions 1.8 and older have been reached. Regular monthly patches are no longer available. These releases are no longer officially supported except for customers with explicit and official exceptions for continued support. Other customers must upgrade. (4)Anthos on Bare Metal and VMWare versions 1.12 and earlier are out of support. See the Anthos on Bare Metal Version Support Policy and the Anthos clusters on VMware versions. (5)Anthos on Bare Metal and VMWare requires ASM 1.14 or later. We recommend that you upgrade to hybrid v1.8 and switch to Apigee ingress gateway which no longer requires you to install ASM on your hybrid cluster. (6) Support available with Apigee hybrid version 1.8.4 and newer. (7) Attached clusters are not required for Apigee hybrid v1.8 and newer using Apigee ingressgateway.. (8) Not supported with Apigee hybrid version 1.8.4 and newer. (9) Support available with Apigee hybrid version 1.7.6 and newer. (10) Not supported with Apigee hybrid version 1.8.5 and newer. (11) ASM is automatically installed with Apigee hybrid 1.9 and newer. (12) Support available with Apigee hybrid version 1.9.2 and newer. (13) Anthos clusters on AWS (Multi-Cloud) version numbers now reflect the Kubernetes versions. SeeAnthos version and upgrade support for version details and recommended patches. | |||||
About attached clusters
For Apigee hybrid versions 1.7.x and older, you must use Anthosattached clusters if you want to run Apigee hybrid in a multi-cloud context on Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), or another supported third-party Kubernetes service provider. Cluster attachment allows Google to measure the usage of Anthos Service Mesh (ASM).Registering the third-party cluster is optional. Register only if you wish to view the attached cluster in the Google Cloud console. For more information, seeAttach third-party Kubernetes clusters to Google Cloud.
For Apigee hybrid version 1.8.x, Anthos attached clusters are required if you are using Anthos Service Mesh for your ingress gateway. If you are using Apigee ingress gateway, Anthos attached clusters are optional.
Note: Hybrid installations are not currently supported on GKE Autopilot.Rolling back an upgrade
Follow these steps to roll back a previous upgrade:
- Clean up completed jobs for the hybrid runtime namespace, whereNAMESPACE is the namespace specified in your overrides file, if you specified a namespace. If not, the default namespace is
apigee:kubectl delete job -nNAMESPACE \ $(kubectl get job -nNAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - Clean up completed jobs for the
apigee-systemnamespace:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - Change the
APIGEECTL_HOMEvariable to point to the directory that contains the previous version ofapigeectl. For example:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- In the root directory of the installation you want to roll back to, run
apigeectl apply, check the status of your pods, and then runapigeectl init. Be sure to use the original overrides file for the version you wish to roll back to:- In the hybrid-files directory, run
apigeectl apply:$APIGEECTL_HOME/apigeectl apply -fORIGINAL_OVERRIDES_FILEWhereORIGINAL_OVERRIDES_FILE is the relative path and filename of the overrides file for your previous version hybrid installation, for example,
./overrides/overrides1.8.yaml. - Check the status of your pods:
kubectl -nNAMESPACE get pods
WhereNAMESPACE is your Apigee hybrid namespace.
- Check the status of
apigeeds:kubectl describe apigeeds -n apigee
Your output should look something like:
Status:CassandraDataReplication:CassandraPodIps:10.8.2.204CassandraReadyReplicas:1Components:Cassandra:LastSuccessfullyReleasedVersion:Revision:v1-f8aa9a82b9f69613Version:v1Replicas:Available:1Ready:1Total:1Updated:1State:runningScaling:InProgress:falseOperation:RequestedReplicas:0State:running
Proceed to the next step only when the
apigeedspod is running. - Run the following command to make note of what your new replica count values will be for the message processor after the upgrade. If these values do not match what you have set previously, change the values in your overrides file to match your previous configuration.
apigeectl apply -fORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2
Your output should look something like:
autoScaler: minReplicas: 2 maxReplicas: 10
- Run
apigeectl init:$APIGEECTL_HOME/apigeectl init -fORIGINAL_OVERRIDES_FILE
- In the hybrid-files directory, run
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-18 UTC.