This document explains how to configure Apigee hybrid to use images from a private container image repository.
Overview
All Apigee hybrid runtime images are hosted in the
Google Cloud Container Registry (GCR). If for any reason you wish to employ a private image container repository,
you can download the images from GCR, push them to your private repository. Instead of overriding each component, you
can add hub details on the overrides:
For example, if the following hub is provided, it will automatically resolve
the image path:
hub:private-docker-host.example.com
as:
## an example of internal component vs 3rd party
containers:
- name: apigee-udca
image: private-docker-host.example.com/apigee-udca:1.11.2
imagePullPolicy: IfNotPresent
containers:
- name: apigee-ingressgateway
image: private-docker-host.example.com/apigee-asm-ingress:1.17.2-asm.8-distroless
imagePullPolicy: IfNotPresent
[[["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-26 UTC."],[[["\u003cp\u003eThis documentation guides you through configuring Apigee hybrid to utilize images from a private container image repository instead of the default Google Cloud Container Registry.\u003c/p\u003e\n"],["\u003cp\u003eApigee hybrid runtime images are typically hosted in the Google Cloud Container Registry (GCR), but you can download and push them to your private repository if needed.\u003c/p\u003e\n"],["\u003cp\u003eYou can configure the use of a private repository by setting the \u003ccode\u003ehub\u003c/code\u003e configuration property with the path to your private repository.\u003c/p\u003e\n"],["\u003cp\u003eUsing the provided \u003ccode\u003ehub\u003c/code\u003e value will automatically resolve the image paths for both internal Apigee components, as well as 3rd party components.\u003c/p\u003e\n"],["\u003cp\u003eThe document also provides instructions on how to display a list of Apigee images hosted in the Google Cloud repository via command line.\u003c/p\u003e\n"]]],[],null,["# Use a private image repository with Helm\n\n| You are currently viewing version 1.11 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| **Note:** These procedures include instructions for using Helm. If you are using `apigeectl` to manage Apigee hybrid, see [Use a private image repository with `apigeectl`](/apigee/docs/hybrid/v1.11/container-images).\n\n\nThis document explains how to configure Apigee hybrid to use images from a private container image repository.\n\nOverview\n--------\n\n\nAll Apigee hybrid runtime images are hosted in the [Google Cloud Container Registry](https://cloud.google.com/container-registry/) (GCR). If for any reason you wish to employ a private image container repository,\nyou can download the images from GCR, push them to your private repository. Instead of overriding each component, you\ncan add hub details on the overrides:\n\nConfiguration steps\n-------------------\n\n\nSet the value of the [`hub` configuration property](/apigee/docs/hybrid/v1.11/config-prop-ref#hub) with path to your private repository. \n\n```actionscript-3\nhub: PRIVATE_REPO\n```\n\n\nFor example, if the following hub is provided, it will automatically resolve\nthe image path: \n\n```actionscript-3\nhub: private-docker-host.example.com\n```\n\nas: \n\n```text\n## an example of internal component vs 3rd party\ncontainers:\n- name: apigee-udca\n image: private-docker-host.example.com/apigee-udca:1.11.2\n imagePullPolicy: IfNotPresent\n\ncontainers:\n- name: apigee-ingressgateway\n image: private-docker-host.example.com/apigee-asm-ingress:1.17.2-asm.8-distroless\n imagePullPolicy: IfNotPresent\n```\n\n#### *Click to expand a list of Apigee images*\n\n```actionscript-3\napigee:\n gcr.io/apigee-release/hybrid/apigee-mart-server:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-synchronizer:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-runtime:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-hybrid-cassandra:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-udca:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-connect-agent:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-watcher:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-operators:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-redis:YOUR_HYBRID_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-mint-task-scheduler:YOUR_HYBRID_VERSION_TAG\n\nthird party:\n gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent:stackdriver-logging-agent_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-prom-prometheus:prom-prometheus_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-stackdriver-prometheus-sidecar:stackdriver-prometheus-sidecar_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-kube-rbac-proxy:kube-rbac-proxy_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-envoy:envoy_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-prometheus-adapter:prometheus-adapter_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-asm-ingress:SERVICE_MESH_VERSION_TAG\n\tgcr.io/apigee-release/hybrid/apigee-asm-istiod:SERVICE_MESH_VERSION_TAGs\n\tgcr.io/apigee-release/hybrid/apigee-fluent-bit:2fluent-bit_VERSION_TAG\n```\n\nTo display a list of the Apigee images hosted in the Google Cloud repository on the command line: \n\n```\n./apigee-operator/etc/tools/apigee-pull-push.sh --list\n```"]]