This step explains how to download the Helm charts used to install and manage Apigee hybrid. Apigee hybrid charts are hosted in Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
Prepare the directory structure
These steps are optional but recommended. The procedures will refer to the
$APIGEE_HELM_CHARTS_HOME
environment variable for the directory where you
download the Apigee Helm Charts.
- Create a base directory for your hybrid installation and within that a directory for
the charts:
mkdir APIGEE_HYBRID_BASE
mkdir APIGEE_HYBRID_BASE/APIGEE_HELM_CHARTS_HOME
for example:
mkdir apigee-hybrid/helm-charts
- Save the location of the Helm charts directory to an environmental variable for convenience:
cd APIGEE_HYBRID_BASE/APIGEE_HELM_CHARTS_HOME
export APIGEE_HELM_CHARTS_HOME=$PWD
Pull Apigee Helm charts
- In the
$APIGEE_HELM_CHARTS_HOME
directory, use thepull
command to copy all of the Apigee hybrid Helm charts to your local storage:export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CHART_VERSION=1.13.1
helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
- Optional: Verify that the charts expanded into the intended directory structure with the
tree
command. Your output should resemble the following.tree
. ├── apigee-datastore │ ├── Chart.yaml │ ├── templates │ │ ├── apigee-datastore-guardrails.yaml │ │ ├── backup-cert.yaml │ │ ├── backup-cronjob.yaml │ │ ├── backup-gsa-secret.yaml │ │ ├── backup-key.yaml │ │ ├── backup-sa.yaml │ │ ├── datastore-secret.yaml │ │ ├── datastore.yaml │ │ ├── _helpers.tpl │ │ ├── NOTES.txt │ │ ├── restore-cert.yaml │ │ ├── restore-gsa-secret.yaml │ │ ├── restore-job.yaml │ │ ├── restore-key.yaml │ │ └── restore-sa.yaml │ └── values.yaml ├── apigee-env │ ├── Chart.yaml │ ├── templates │ │ ├── apigee-env-guardrails.yaml │ │ ├── encryption-keys-secret.yaml │ │ ├── environment.yaml │ │ ├── _helpers.tpl │ │ ├── NOTES.txt │ │ ├── runtime-gsa-secret.yaml │ │ ├── runtime-sa.yaml │ │ ├── synchronizer-gsa-secret.yaml │ │ ├── synchronizer-sa.yaml │ │ ├── udca-gsa-secret.yaml │ │ └── udca-sa.yaml │ ├── test-file.txt │ ├── tests │ │ ├── apigee-env-guardrails_test.yaml │ │ ├── encryption-keys_test.yaml │ │ ├── environment_test.yaml │ │ ├── runtime-gsa-secret_test.yaml │ │ ├── runtime-sa_test.yaml │ │ ├── synchronizer-gsa-secret_test.yaml │ │ ├── synchronizer-sa_test.yaml │ │ ├── test-fwi-values.yaml │ │ ├── test-values.yaml │ │ ├── udca-gsa-secret_test.yaml │ │ └── udca-sa_test.yaml │ └── values.yaml ├── apigee-ingress-manager │ ├── Chart.yaml │ ├── templates │ │ ├── apigee-ca-issuer.yaml │ │ ├── apigee-ingress-manager-guardrails.yaml │ │ ├── apigee-istiod-certificate.yaml │ │ ├── _helpers.tpl │ │ ├── ingress-service-account.yaml │ │ ├── istio-config.yaml │ │ ├── istiod-deployment-with-apigee-controller.yaml │ │ ├── istiod-envoyfilters.yaml │ │ ├── istiod-hpa.yaml │ │ ├── istiod-service-account.yaml │ │ └── istiod-svc.yaml │ ├── tests │ │ ├── apigee-ca-issuer_test.yaml │ │ ├── apigee-ingress-manager-guardrails_test.yaml │ │ ├── apigee-istiod-certificate_test.yaml │ │ ├── istio-config_test.yaml │ │ ├── istiod-deployment-with-apigee-controller_test.yaml │ │ ├── istiod-envoyfilters_test.yaml │ │ └── istiod_hpa_test.yaml │ └── values.yaml ├── apigee-operator │ ├── Chart.yaml │ ├── etc │ │ ├── crds │ │ │ ├── crd │ │ │ │ ├── bases │ │ │ │ │ ├── apigee.cloud.google.com_apigeedatastores.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeedeployments.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeeenvironments.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeeissues.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeeorganizations.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeeredis.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeerouteconfigs.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeeroutes.yaml │ │ │ │ │ ├── apigee.cloud.google.com_apigeetelemetries.yaml │ │ │ │ │ └── apigee.cloud.google.com_cassandradatareplications.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── kustomizeconfig.yaml │ │ │ │ └── patches │ │ │ │ ├── cainjection_in_apigeedatastores.yaml │ │ │ │ ├── cainjection_in_apigeedeployments.yaml │ │ │ │ ├── cainjection_in_apigeeenvironments.yaml │ │ │ │ ├── cainjection_in_apigeeissues.yaml │ │ │ │ ├── cainjection_in_apigeeorganizations.yaml │ │ │ │ ├── cainjection_in_apigeeroutes.yaml │ │ │ │ ├── cainjection_in_apigeetelemetries.yaml │ │ │ │ ├── k8s_list_map_keys.yaml │ │ │ │ ├── nested_metadata_validation_properties.yaml │ │ │ │ ├── webhook_in_apigeedatastores.yaml │ │ │ │ ├── webhook_in_apigeedeployments.yaml │ │ │ │ ├── webhook_in_apigeeenvironments.yaml │ │ │ │ ├── webhook_in_apigeeissues.yaml │ │ │ │ ├── webhook_in_apigeeorganizations.yaml │ │ │ │ ├── webhook_in_apigeeroutes.yaml │ │ │ │ └── webhook_in_apigeetelemetries.yaml │ │ │ └── default │ │ │ └── kustomization.yaml │ │ ├── examples │ │ │ └── helmfiles │ │ │ ├── helmfile.yaml │ │ │ └── README.md │ │ └── tools │ │ ├── apigee-pull-push.sh │ │ ├── common.sh │ │ ├── create-service-account │ │ └── dump_kubernetes.sh │ ├── templates │ │ ├── apigee-operators-guardrails.yaml │ │ ├── apigee-operators-roles.yaml │ │ ├── apigee-operators.yaml │ │ ├── apigee-resources.yaml │ │ ├── cassandra-backup-clusterrolebinding.yaml │ │ ├── cassandra-backup-clusterrole.yaml │ │ ├── cassandra-restore-clusterrolebinding.yaml │ │ ├── cassandra-restore-clusterrole.yaml │ │ ├── _helpers.tpl │ │ ├── ingress-role-binding.yaml │ │ ├── ingress-role.yaml │ │ ├── istiod-cluster-role-binding.yaml │ │ ├── istiod-cluster-role.yaml │ │ ├── istiod-role-binding.yaml │ │ └── istiod-role.yaml │ ├── tests │ │ └── apigee-operators-guardrails_test.yaml │ └── values.yaml ├── apigee-org │ ├── Chart.yaml │ ├── templates │ │ ├── apigee-org-guardrails.yaml │ │ ├── ax-hash-salt-secret.yaml │ │ ├── connect-agent-gsa-secret.yaml │ │ ├── connect-agent-sa.yaml │ │ ├── data-encryption-secret.yaml │ │ ├── encryption-keys-secret.yaml │ │ ├── _helpers.tpl │ │ ├── mart-gsa-secret.yaml │ │ ├── mart-sa.yaml │ │ ├── NOTES.txt │ │ ├── organization.yaml │ │ ├── udca-gsa-secret.yaml │ │ ├── udca-sa.yaml │ │ ├── watcher-gsa-secret.yaml │ │ └── watcher-sa.yaml │ ├── test-file.txt │ ├── tests │ │ ├── apigee-org-guardrails_test.yaml │ │ ├── ax-hash-salt-secret_test.yaml │ │ ├── connect-agent-gsa-secret_test.yaml │ │ ├── connect-agent-sa_test.yaml │ │ ├── data-encryption-secret_test.yaml │ │ ├── encryption-keys-secret_test.yaml │ │ ├── mart-gsa-secret_test.yaml │ │ ├── mart-sa_test.yaml │ │ ├── organization_test.yaml │ │ ├── test-fwi-values.yaml │ │ ├── test-values.yaml │ │ ├── udca-gsa-secret_test.yaml │ │ ├── udca-sa_test.yaml │ │ ├── watcher-gsa-secret_test.yaml │ │ └── watcher-sa_test.yaml │ └── values.yaml ├── apigee-redis │ ├── Chart.yaml │ ├── templates │ │ ├── apigee-redis-guardrails.yaml │ │ ├── _helpers.tpl │ │ ├── redis-creds-secret.yaml │ │ └── redis.yaml │ ├── tests │ │ ├── apigee-redis-guardrails_test.yaml │ │ ├── redis-creds-secret_test.yaml │ │ └── redis_test.yaml │ └── values.yaml ├── apigee-telemetry │ ├── Chart.yaml │ ├── templates │ │ ├── apigee-logger-gsa-secret.yaml │ │ ├── apigee-logger-sa.yaml │ │ ├── apigee-metrics-gsa-secret.yaml │ │ ├── apigee-metrics-sa.yaml │ │ ├── apigee-telemetry-guardrails.yaml │ │ ├── apigee-telemetry.yaml │ │ ├── _helpers.tpl │ │ └── NOTES.txt │ ├── test-file.txt │ ├── tests │ │ ├── apigee-logger-gsa-secret_test.yaml │ │ ├── apigee-logger-sa_test.yaml │ │ ├── apigee-metrics-gsa-secret_test.yaml │ │ ├── apigee-metrics-sa_test.yaml │ │ ├── apigee-telemetry-guardrails_test.yaml │ │ ├── apigee-telemetry_test.yaml │ │ ├── notes_test.yaml │ │ ├── test-fwi-values.yaml │ │ └── test-values.yaml │ └── values.yaml └── apigee-virtualhost ├── Chart.yaml ├── templates │ ├── apigee-route-config.yaml │ ├── apigee-virtualhost-guardrails.yaml │ ├── ca-cert.yaml │ ├── cert.yaml │ └── _helpers.tpl ├── test-file.txt ├── tests │ ├── apigee-route-config_test.yaml │ ├── apigee-virtualhost-guardrails_test.yaml │ ├── ca-cert_test.yaml │ ├── cert_test.yaml │ └── test-values.yaml └── values.yaml
You now have the tools to configure, deploy, and manage Apigee hybrid in your Kubernetes cluster. Next, you will create the Kubernetes namespace in which most hybrid components operate.