Supported versions:
Unsupported versions:
This topic explains how to add a second Apigee hybrid organization (org) to an existing Kubernetes cluster. In this multi-org per cluster configuration, both orgs use and share the same Cassandra ring. Each org can have multiple environments and environment groups configured.
A multi-org per cluster configuration is supported with the following limitations. Until these limitations are mitigated, we do not recommend that you use this configuration.
kubectl commands. However, they are not sent to the correct Cloud
project through Cloud Logging.This section describes how Apigee Support handles existing multi-org clusters and recommendations for future deployments:
Before continuing, note the following:
To create the additional org, follow the steps in Part 1: Project and org setup.
In the following steps, you will create a new overrides file and configure it for the
new org.
An overrides.yaml file can only support one org's information. Therefore, you must
create a new overrides.yaml file and apply it to the existing Kubernetes cluster.
.key and .pem) in your
certs directory. If you need to create them again, you can follow the instructions in
Create TLS certificates.overrides.yaml to a new file to use as a starting point
for configuring your new org. For
example: new-overrides.yaml.org: "new-org-name" instanceID: "instance-id" ## Must match the instanceID of your existing org. k8sCluster: name: "existing-cluster-name" region: "existing-cluster-analytics-region" gcp: projectID: "new-project-id" name: "new-project-id" region: "new-project-default-location" namespace: namespace ## must be the same for both new and existing orgs virtualhosts: - name: new-environment-group-name sslCertPath: ./certs/cert-file-name # .crt or .pem sslKeyPath: ./certs/key-file-name # .key envs: - name: new-environment-name serviceAccountPaths: runtime: ./new-service-accounts-directory/new-project-id-apigee-runtime.json synchronizer: ./new-service-accounts-directory/new-project-id-apigee-synchronizer.json udca: ./new-service-accounts-directory/new-project-id-apigee-udca.json connectAgent: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json mart: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-mart.json metrics: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-metrics.json watcher: serviceAccountPath: ./new-service-accounts-directory/new-project-id-apigee-watcher.json
The following table describes each of the property values that you must provide in the overrides file. For more information, see Configuration property reference.
| Variable | Description |
|---|---|
| new-org-name | The name of your new org. |
| instance-id | All orgs in
in this cluster must have the same instance ID. Therefore this must match the
instanceID entry in the overrides file for your original org.
|
| existing-cluster-name | The name of the cluster you are adding this org to. It
must match the k8sCluster.name entry in the overrides file for your original
cluster. |
| existing-cluster-analytics-region | The region where the original cluster is
provisioned. It must match the k8sCluster.region entry in the overrides file
for your original cluster. |
| new-project-id | The project ID of your new project. The project ID and org name are the same. |
| new-project-default-location | The analytics region you specified when you created the new org. It does not have to be the same as the region for the existing org. |
| namespace | All orgs in the cluster must share the same namespace. Be sure to
use the same namespace that was used for the original org. Note that the default namespace is
apigee. |
| new-environment-group-name | The new environment group you created for the new org. |
| cert-file-name and key-file-name |
The TLS cert and key files for the cluster that you checked or created in step 1 in this section. |
| new-environment-name | The name of the environment you created for the new org. |
| new-service-accounts-directory | The directory where the service account key files you created for the new org are located. |
Apply the new org configuration to your cluster:
apigeectl apply -f overrides/new-overrides.yaml --org --dry-run=client
apigeectl apply -f overrides/new-overrides.yaml --org
apigeectl apply -f overrides/new-overrides.yaml --env ${ENV_NAME} --dry-run=clientapigeectl apply -f overrides/new-overrides.yaml --env ${ENV_NAME}apigeectl apply -f overrides/new-overrides.yaml --settings virtualhosts --dry-run=client
apigeectl apply -f overrides/new-overrides.yaml --settings virtualhosts
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-06-09 UTC.