Step 11: Install Apigee hybrid Using Helm charts Stay organized with collections Save and categorize content based on your preferences.
Install the Apigee hybrid Helm charts
In this step, you will use Helm to install the following Apigee hybrid components:
- Apigee operator
- Apigee datastore
- Apigee telemetry
- Apigee Redis
- Apigee ingress manager
- Apigee organization
- Your Apigee environment(s)
You will install the charts for each environment one at a time. The sequence in which you install the components matters.
Note: Before executing any of the Helm upgrade/install commands, use the Helm dry-run feature by adding--dry-run at the end of the command. Seehelm install --h to list supported commands, options, and usage.Caution: If you are installing the charts on a cluster you have migrated fromapigeectl management to Helm management with theApigee Helm migration tool, omit the--atomic flag from all of the following commands.- If you have not, navigate into your
APIGEE_HELM_CHARTS_HOMEdirectory. Run the following commands from that directory. - Install Apigee Operator/Controller:Note: This step requires elevated cluster permissions. Run
helm -horhelm install -hfor detailsDry run:
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace apigee-system \ --atomic \ -foverrides.yaml \ --dry-run
Install the chart:
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace apigee-system \ --atomic \ -foverrides.yaml
Verify Apigee Operator installation:
helm ls -n apigee-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSIONoperator apigee-system 3 2023-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.11.2 1.11.2
Verify it is up and running by checking its availability:
kubectl -n apigee-system get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGEapigee-controller-manager 1/1 1 1 7d20h
Install Apigee datastore:
Dry run:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml \ --dry-run
Install the chart:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml
Verify
apigeedatastoreis up and running by checking its state before proceding to the next step:kubectl -n apigee get apigeedatastore default
NAME STATE AGEdefault running 2d
Install Apigee telemetry:
Dry run:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml \ --dry-run
Install the chart:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml
Verify it is up and running by checking its state:
kubectl -n apigee get apigeetelemetry apigee-telemetry
NAME STATE AGEapigee-telemetry running 2d
Install Apigee Redis:
Dry run:
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml \ --dry-run
Install the chart:
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml
Verify it is up and running by checking its state:
kubectl -n apigee get apigeeredis default
NAME STATE AGEdefault running 2d
Install Apigee ingress manager:
Dry run:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml \ --dry-run
Install the chart:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml
Verify it is up and running by checking its availability:
kubectl -n apigee get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGEapigee-ingressgateway-manager 2/2 2 2 2d
Install Apigee organization:
Dry run:
helm upgradeORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml \ --dry-run
Install the chart:
helm upgradeORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml
Verify it is up and running by checking the state of the respective org:
kubectl -n apigee get apigeeorg
NAME STATE AGEapigee-org1-xxxxx running 2d
Install the environment.
You must install one environment at a time. Specify the environment with
--set env=ENV_NAME:Dry run:
helm upgradeENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -foverrides.yaml \ --dry-run
ENV_RELEASE_NAME is a name used to keep track of installation and upgrades of the
apigee-envchart. This name must be unique from the other Helm release names in your installation. Usually this is the same asENV_NAME. However, if your environment has the same name as your environment group, you must use different release names for the environment and environment group, for exampledev-env-releaseanddev-envgroup-release. For more information on releases in Helm, seeThree big concepts in the Helm documentation.Install the chart:
helm upgradeENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -foverrides.yaml
Verify it is up and running by checking the state of the respective env:
kubectl -n apigee get apigeeenv
NAME STATE AGE GATEWAYTYPEapigee-org1-dev-xxx running 2d
- Install the environment groups (
virtualhosts).- You must install one environment group (virtualhost) at a time. Specify the environment group with
--set envgroup=ENV_GROUP_NAME. Repeat the following commands for each env group mentioned in youroverrides.yamlfile:Dry run:
helm upgradeENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -foverrides.yaml \ --dry-run
ENV_GROUP_RELEASE_NAME is a name used to keep track of installation and upgrades of the
apigee-virtualhostschart. This name must be unique from the other Helm release names in your installation. Usually this is the same asENV_GROUP. However, if your environment group has the same name as an environment in your installation, you must use different release names for the environment group and environment, for exampledev-envgroup-releaseanddev-env-release. For more information on releases in Helm, see Three big concepts in the Helm documentation.Install the chart:
Note:ENV_GROUP_NAME must be unique within thehelm upgradeENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -foverrides.yaml
apigeenamespace. For example, if you have aprodenv and envgroup, you should set this name toprod-envgroup. The later env group name should still beprod. - Check the state of the ApigeeRoute (AR).
Installing the
virtualhostscreates ApigeeRouteConfig (ARC) which internally creates ApigeeRoute (AR) once the Apigee watcher pulls env group related details from the control plane. Therefore, check that the corresponding AR's state is running:kubectl -n apigee get arc
NAME STATE AGEapigee-org1-dev-egroup 2d
kubectl -n apigee get ar
NAME STATE AGEapigee-org1-dev-egroup-xxxxxx running 2d
- You must install one environment group (virtualhost) at a time. Specify the environment group with
You've successfully installed and configured the Apigee hybrid runtime plane.
GKE with Workload Identity
If you are installing Apigee hybrid on GKE and you are configuring Workload Identity to authenticate service accounts, in the next step, you will configure the associations between the Kubernetes service accounts and the Google service accounts for your cluster.
1234567891011(NEXT) Step 12: Set up Workload IdentityAll other installations
In the next step, you will configure the Apigee ingress gateway and deploy a proxy to test your installation.
(NEXT) Step 1: Expose Apigee ingress2Except 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-19 UTC.