Identify the base installation directory that was created when Apigee hybrid
was originally installed. The
base directory is directory in which the $APIGEEGTL_HOME directory resides.
In the following example,
the base directory is /Users/myhome/hybrid:
Extract the downloaded gzip file contents into the Apigee hybrid base directory:
tar xvzf filename.tar.gz -C path-to-base-directory
cd to the base directory.
The tar contents are, by default, expanded into a directory with the version and
platform in its name. For example: ./apigeectl_1.2.0-f7b96a8_linux_64.
Rename the current apigeectl directory. For example, if the current version is 1.1.1,
rename the apigeectl directory to apigeectl_1.1.1.
Rename the newly extracted installation directory to apigeectl. This is now
where the environment $APIGEECTL_HOME points to.
Clean up completed jobs for the hybrid runtime namespace,
where namespace is the
namespace specified in your overrides file, if you specified a namespace. If not, the default namespace
is apigee:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eThe current Apigee hybrid documentation version 1.1 is end-of-life and users need to upgrade to a newer version for continued support.\u003c/p\u003e\n"],["\u003cp\u003eUpgrading from version 1.0.0 to 1.1.0 or later requires a new installation, as these versions are not backward compatible.\u003c/p\u003e\n"],["\u003cp\u003eUpgrading Apigee hybrid involves downloading the desired \u003ccode\u003eapigeectl\u003c/code\u003e version, extracting it to the hybrid base directory, renaming the old and new \u003ccode\u003eapigeectl\u003c/code\u003e directories, cleaning up completed jobs in multiple namespaces, and running \u003ccode\u003eapigeectl init\u003c/code\u003e and \u003ccode\u003eapigeectl apply\u003c/code\u003e commands with the overrides file.\u003c/p\u003e\n"],["\u003cp\u003eRolling back to a previous Apigee hybrid version requires cleaning up completed jobs and then running the \u003ccode\u003eapigeectl init\u003c/code\u003e and \u003ccode\u003eapigeectl apply\u003c/code\u003e commands from the root directory of the target installation.\u003c/p\u003e\n"]]],[],null,["# Upgrading Apigee hybrid\n\n| You are currently viewing version 1.1 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nUpgrading to a new version\n--------------------------\n\n| You cannot upgrade from 1.0.0 to 1.1.0 or any later versions. Version 1.1.0 and later versions are not backward compatible with Version 1.0.0. If you are using Version 1.0.0 and wish to upgrade, you must perform a new installation.\n\n\nFollow these steps to upgrade Apigee hybrid to a new version:\n\nDownload and install a new version of `apigeectl`.\n--------------------------------------------------\n\n[apigeectl](/apigee/docs/hybrid/v1.1/cli-reference) is the command-line interface\n(CLI) for installing and managing Apigee hybrid in a Kubernetes cluster.\n\n\nDownload the version of `apigeectl` that you want to upgrade to:\n\n1. Download the release package for your operating system:\n\n **Mac 64 bit:** \n\n ```\n curl -LO \\\n https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_mac_64.tar.gz\n ```\n\n **Linux 64 bit** \n\n ```\n curl -LO \\\n https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_linux_64.tar.gz\n ```\n\n **Mac 32 bit:** \n\n ```\n curl -LO \\\n https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_mac_32.tar.gz\n ```\n\n **Linux 32 bit** \n\n ```\n curl -LO \\\n https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/version_number/apigeectl_linux_32.tar.gz\n ```\n2. Identify the base installation directory that was created when Apigee hybrid was [originally installed](/apigee/docs/hybrid/v1.1/install-download-install). The base directory is directory in which the `$APIGEEGTL_HOME` directory resides. In the following example, the base directory is `/Users/myhome/hybrid`:\n\n \u003cbr /\u003e\n\n ```\n echo $APIGEECTL_HOME\n /Users/myhome/hybrid/apigeectl\n ```\n3. Extract the downloaded gzip file contents into the Apigee hybrid base directory:\n\n ```\n tar xvzf filename.tar.gz -C path-to-base-directory\n ```\n4. `cd` to the base directory.\n5. The tar contents are, by default, expanded into a directory with the version and\n platform in its name. For example: `./apigeectl_1.2.0-f7b96a8_linux_64`.\n\n6. Rename the current `apigeectl` directory. For example, if the current version is 1.1.1, rename the `apigeectl` directory to `apigeectl_1.1.1`.\n7. Rename the newly extracted installation directory to `apigeectl`. This is now where the environment `$APIGEECTL_HOME` points to.\n8. Clean up completed jobs for the hybrid runtime namespace, where \u003cvar translate=\"no\"\u003enamespace\u003c/var\u003e is the namespace specified in your overrides file, if you specified a namespace. If not, the default namespace is `apigee`: \n\n ```\n kubectl delete job -n namespace \\\n $(kubectl get job -n namespace -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')\n ```\n9. Clean up completed jobs for the `apigee-system` namespace: \n\n ```\n kubectl delete job -n apigee-system \\\n $(kubectl get job -n apigee-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')\n ```\n10. Clean up completed jobs for the `istio-system` namespace: \n\n ```\n kubectl delete job -n istio-system \\\n $(kubectl get job -n istio-system -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')\n ```\n11. `cd` to the `./hybrid-files` directory:\n12. Initialize `apigeectl` for the new version: \n\n ```\n $APIGEECTL_HOME/apigeectl init -f my-overrides.yaml\n ```\n13. Check to determine when the initialization is complete: \n\n ```\n $APIGEECTL_HOME/apigeectl check-ready -f my-overrides.yaml\n ```\n14. When `check-ready` passes, run `apigeectl apply`: \n\n ```\n $APIGEECTL_HOME/apigeectl apply -f my-overrides.yaml\n ```\n15. Re-run `check-ready` to determine when the upgrade is complete.\n\nRolling back an upgrade\n-----------------------\n\n\nFollow these steps to roll back a previous upgrade:\n\n1. Clean up completed jobs: \n\n ```\n kubectl delete job -n namespace $(kubectl get job -n namespace -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')\n ```\n2. In the root directory of the installation you want to roll back to, run `apigeectl init` and then run `apigeectl apply`: \n\n `$APIGEECTL_HOME`/apigeectl init -f my-overrides.yaml\n `$APIGEECTL_HOME`/apigeectl apply -f my-overrides.yaml"]]