Supported versions:
Unsupported versions:
This section lists all of the configuration properties that you can use to customize the runtime plane of your Apigee hybrid deployment.
To filter the properties displayed on this page, select Basic (most common properties) or Advanced (properties that rarely need changing):
DisplayThe following table describes the top-level properties in the overrides.yaml file. These are properties
that do not belong to another object, and apply at the org or environment level:
| Property | Type | Description |
|---|---|---|
axHashSalt |
Advanced | Introduced in version: 1.3.0 Default value: Optional The name of a Kubernetes secret that
contains a salt used when computing hashes to obfuscate user data before it is sent to
Apigee analytics. If you do not specify a salt value, Apigee uses SHA512 to hash the original value before sending data from the runtime plane to the control plane. |
contractProvider |
Advanced | Introduced in version: 1.0.0
Default value: Defines the API path for all APIs in your installation. Required if your hybrid installation is using Data residency in the following format: contractProvider: https://CONTROL_PLANE_LOCATION-apigee.googleapis.com Where CONTROL_PLANE_LOCATION is the location where control plane data like proxy bundles are stored. For a list see Available Apigee API control plane regions. For example: contractProvider: https://us-apigee.googleapis.com |
gcpProjectID |
Advanced | Deprecated: For v1.2.0 and later, use gcp.projectID instead.
Introduced in version: 1.0.0 Default value: none Required ID of your Google Cloud project. Works with |
gcpRegion |
Advanced | Deprecated: For v1.2.0 and later, use gcp.region instead.
Introduced in version: 1.0.0 Default value: Required The closet Google Cloud region or zone of your Kubernetes cluster. Works with |
hub |
Advanced | Introduced in version: 1.11.0
Default value: None The URL of a private image container repository used to pull images for all apigee components from a private repo.
The image path for each individual component will be the value of
For example, if the value of 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.13.4 imagePullPolicy: IfNotPresent containers: - name: apigee-ingressgateway image: private-docker-host.example.com/apigee-asm-ingress:1.18.7-asm.4-distroless imagePullPolicy: IfNotPresent The other components will follow a similar pattern. Use See Use a private image repository with Apigee hybrid. You can override image URL for components individualy with the following properties:
|
imagePullSecrets.name |
Advanced | Introduced in version: 1.0.0
Default value: None Kubernetes secret name configured as docker-registry type; used to pull images from private repo. |
instanceID |
Basic | Introduced in version: 1.3.0
Default value: None Required A unique identifier for this installation. A unique string to identify this instance. This can be any combination of letters and numbers up to 63 characters in length. |
k8sClusterName |
Advanced | Deprecated: For v1.2.0 and later, use k8sCluster.name
and k8sCluster.region instead.
Introduced in version: 1.0.0 Default value: None Name of the Kubernetes (K8S) procluster where your hybrid project is running. Works with
|
kmsEncryptionKey |
Advanced | Introduced in version: 1.0.0
Default value: Optional. Use only one of kmsEncryptionKey or kmsEncryptionPath or kmsEncryptionSecret. Local file system path for the Apigee KMS data's encryption key. |
kmsEncryptionPath |
Advanced | Introduced in version: 1.2.0
Default value: None Optional. Use only one of kmsEncryptionKey or kmsEncryptionPath or kmsEncryptionSecret. The path to a file containing a base64-encoded encryption key. See Data encryption. |
kmsEncryptionSecret.key |
Advanced | Introduced in version: 1.2.0
Default value: None Optional. Use only one of kmsEncryptionKey or kmsEncryptionPath or kmsEncryptionSecret. The key of a Kubernetes secret containing a base64-encoded encryption key. See Data encryption. |
kmsEncryptionSecret.name |
Advanced | Introduced in version: 1.2.0
Default value: None Optional. Use only one of kmsEncryptionKey or kmsEncryptionPath or kmsEncryptionSecret. The name of a Kubernetes secret containing a base64-encoded encryption key. See Data encryption. |
kvmEncryptionKey |
Advanced | Introduced in version: 1.0.0
Default value: Optional. Use only one of kvmEncryptionKey or kvmEncryptionPath or kvmEncryptionSecret. Local file system path for the Apigee KVM data's encryption key. |
kvmEncryptionPath |
Advanced | Introduced in version: 1.2.0
Default value: None Optional. Use only one of kvmEncryptionKey or kvmEncryptionPath or kvmEncryptionSecret. The path to a file containing a base64-encoded encryption key. See Data encryption. |
kvmEncryptionSecret.key |
Advanced | Introduced in version: 1.2.0
Default value: None Optional. Use only one of kvmEncryptionKey or kvmEncryptionPath or kvmEncryptionSecret. The key of a Kubernetes secret containing a base64-encoded encryption key. See Data encryption. |
kvmEncryptionSecret.name |
Advanced | Introduced in version: 1.2.0
Default value: None Optional. Use only one of kvmEncryptionKey or kvmEncryptionPath or kvmEncryptionSecret. The name of a Kubernetes secret containing a base64-encoded encryption key. See Data encryption. |
multiOrgCluster |
Advanced | Introduced in version: 1.10.0
Default value: For multi-org clusters, this property enables the organization's metrics to be exported to
the project listed in the |
namespace |
Basic | Introduced in version: 1.0.0
Default value: The namespace of your Kubernetes cluster where the Apigee components will be installed. |
org |
Basic |
Introduced in version: 1.0.0 Default value: None Required The hybrid-enabled organization that was provisioned for you by Apigee during the hybrid installation. An organization is the top-level container in Apigee. It contains all your API proxies and related resources. If the value is empty, you must update it with your org name once you have created it. |
orgScopedUDCA |
Advanced | Introduced in version: 1.8.0
Default value: Enables the Universal Data Collection Agent service (UDCA) at the org level, that extracts analytics, monetization and debug (trace) and sends it to the Unified Analytics Platform (UAP) which resides in the Control Plane. Org-scoped UDCA uses a single Google service account for all Apigee
environments. The service account needs to have the Apigee Analytics
Agent ( Specify the path to the service account key file with the
If you prefer to use a separate UDCA agent for each environment, set
See also: udca. |
revision |
Advanced | Introduced in version: 1.0.0
Default value: Apigee hybrid supports rolling Kubernetes updates, which allow deployment updates to take place with zero downtime by incrementally updating Pod instances with new ones. When updating certain YAML overrides that result in underlying Kubernetes
When the
Changes to properties of the following objects require an update to For more information, see Rolling updates. |
serviceAccountSecretProviderClass |
Advanced | Introduced in version: 1.12.0
Default value: None The name of the organization-specific secret provider class ( |
validateOrg |
Advanced | Introduced in version: 1.8.0
Default value: Enables strict validation of the link between the Apigee Org and Google Cloud project and checks for the existence of environment groups.
See also |
validateServiceAccounts |
Advanced | Introduced in version: 1.0.0
Default value: Enables strict validation of service account permissions. This uses Cloud Resource Manager
API method
See also |
aoApigee Operators (AO) creates and updates low level Kubernetes and Istio resources that are required to deploy and maintain a component. For example, the controller carries out the release of message processors.
The following table describes the properties of the apigee-operators ao object:
ao.args.disableIstioConfigInAPIServerDefault value: true
Stops Apigee from supplying configuration to customer-installed Cloud Service Mesh.
true for hybrid installations using Apigee ingress gateway.false for hybrid installations using Cloud Service Mesh (Apigee hybrid
versions 1.8 and earlier).ao.args.disableManagedClusterRolesDefault value: true
When true (the default), Apigee hybrid does not manage Kubernetes
ClusterRole and ClursterRoleBinding directly. If you have a process
that requires managing these resources, the process must be performed by a user with the
correct permissions to do so.
ao.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
ao.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
ao.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
ao.resources.limits.cpuDefault value: 250m
ao.resources.limits.memoryDefault value: 256Mi
The memory limit for the resource in a Kubernetes container, in mebibytes.
ao.resources.requests.cpuDefault value: 250m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
ao.resources.requests.memoryDefault value: 256Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
ao.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
ao.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
ao.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
ao.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
ao.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
apigeeIngressGatewayConfigures the Apigee ingress gateway for Apigee Hybrid. Use apigeeIngressGateway
properties to apply common configuration to all instances of the Apigee ingress gateway.
See ingressGateways to configure individual instances
uniquely.
Apply changes to apigeeIngressGateway properties with the apigee-org
chart.
The following table describes the properties of the apigeeIngressGateway object:
| Property | Type | Description |
|---|---|---|
apigeeIngressGateway.image.pullPolicy |
Advanced | Introduced in version: 1.11.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
apigeeIngressGateway.image.tag |
Advanced | Introduced in version: 1.11.0
Default value: The version label for this service's Docker image. |
apigeeIngressGateway.image.url |
Advanced | Introduced in version: 1.11.0
Default value: None The location of the Docker image for this service. Use |
apigeeIngressGateway.nodeSelector.key |
Advanced | Introduced in version: 1.11.0
Default value: None Required Node selector label key used to target dedicated Kubernetes nodes for ingress gateway services. |
apigeeIngressGateway.nodeSelector.value |
Advanced | Introduced in version: 1.11.0
Default value: None Optional node selector label value used to target dedicated Kubernetes nodes for
ingress gateway services and override the See nodeSelector. |
apigeeIngressGateway.replicaCountMax |
Basic | Introduced in version: 1.11.0
Default value: The maximum number of pods that hybrid can automatically add for the ingress gateway available for autoscaling. |
apigeeIngressGateway.replicaCountMin |
Basic | Introduced in version: 1.11.0
Default value: The minimum number of pods for the ingress gateway available for autoscaling. |
apigeeIngressGateway.targetCPUUtilizationPercentage |
Advanced | Introduced in version: 1.10.5, 1.11.2, 1.12.1
Default value: The threshold of CPU usage for scaling the number of pods in the ReplicaSet, as a percentage of total available CPU resources. When CPU usage goes above this value, then hybrid will gradually
increase the number of pods in the ReplicaSet, up to
For more information on scaling in Kubernetes, see Horizontal Pod Autoscaling in the Kubernetes documentation. |
apigeeIngressGateway.tolerations.effect |
Advanced | Introduced in version: 1.11.0
Default value: None Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
apigeeIngressGateway.tolerations.key |
Advanced | Introduced in version: 1.11.0
Default value: None Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
apigeeIngressGateway.tolerations.operator |
Advanced | Introduced in version: 1.11.0
Default value: Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
apigeeIngressGateway.tolerations.tolerationSeconds |
Advanced | Introduced in version: 1.11.0
Default value: None Used by the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
apigeeIngressGateway.tolerations.value |
Advanced | Introduced in version: 1.11.0
Default value: None Used by the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
cassandraDefines the hybrid service that manages the runtime data repository. This repository stores application configurations, distributed quota counters, API keys, and OAuth tokens for applications running on the gateway.
For more information, see StorageClass configuration.
The following table describes the properties of the cassandra object:
cassandra.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
cassandra.auth.admin.passwordDefault value: iloveapis123
Required
Password for the Cassandra administrator. The admin user is used for any administrative activities performed on the Cassandra cluster, such as backup and restore.
cassandra.auth.ddl.passwordDefault value: iloveapis123
Required
Password for the Cassandra Data Definition Language (DDL) user. Used by MART for any of the data definition tasks like keyspace creation, update, and deletion.
cassandra.auth.default.passwordDefault value: iloveapis123
Required
The password for the default Cassandra user created when Authentication is enabled. This password must be reset when configuring Cassandra authentication. See Configuring TLS for Cassandra.
cassandra.auth.dml.passwordDefault value: iloveapis123
Required
Password for the Cassandra Data Manipulation Language (DML) user. The DML user is used by the client communication to read and write data to Cassandra.
cassandra.auth.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
cassandra.auth.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
cassandra.auth.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
cassandra.auth.jmx.passwordDefault value: iloveapis123
Required
Password for the Cassandra JMX operations user. Used to authenticate and communicate with the Cassandra JMX interface.
cassandra.auth.jmx.usernameDefault value: jmxuser
Required
Username for the Cassandra JMX operations user. Used to authenticate and communicate with the Cassandra JMX interface.
cassandra.auth.jolokia.passwordDefault value: iloveapis123
Required
Password for the Cassandra Jolokia JMX operations user. Used to authenticate and communicate with the Cassandra JMX API.
cassandra.auth.jolokia.usernameDefault value: apigee
Required
Username for the Cassandra Jolokia JMX operations user. Used to authenticate and communicate with the Cassandra JMX API.
cassandra.auth.secretDefault value: None
The name of the file stored in a Kubernetes secret that contains the Cassandra users and passwords. You can create the secret using following the following instructions: Create the Secret.
See also:
cassandra.auth.secretProviderClassDefault value: None
The Cassandra secret storage policy. When set, it must match the SecretProviderClass which references the external secret provider, like Hashicorp Vault. When unset, Apigee hybrid uses either the usernames and passwords stored in:
cassandra.auth.admin.password cassandra.auth.ddl.password cassandra.auth.default.password cassandra.auth.dml.password cassandra.auth.jmx.password cassandra.auth.jmx.username cassandra.auth.jolokia.password cassandra.auth.jolokia.username or the Kubernetes secret stored in:
See Storing Cassandra secrets in Hashicorp Vault for instructions to create the policy.
cassandra.backup.cloudProviderDefault value: GCP
GCP, HYBRID, and
CSI. Set the value to:
GCP to store backup archives on Google Cloud Storage.HYBRID to store backup archives on a remote SSH server.CSI (recommended) to utilize Kubernetes CSI Volume Snapshots
for backup. For information on CSI backup and restore for cloud platforms
such as Google Cloud, AWS, and Azure, see CSI backup and restore.
cassandra.backup.dbStorageBucketDefault value: None
Required if backup is enabled and cassandra.backup.cloudProvider
is set to GCP.
The name of an existing Google Cloud Storage bucket that will be used to store backup archives. See Creating buckets if you need to create one.
cassandra.backup.enabledDefault value: false
Data backup is not enabled by default. To enable, set to true.
cassandra.backup.gsaDefault value: None
Helm only: The email address of the apigee-cassandra Google IAM
service account (GSA) to associate with the cassandra backup Kubernetes service account when
enabling Workload Identity on GKE clusters. Set this when you have set
gcp.workloadIdentity.enabled to
true and cassandra.backup.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-cassandra@my-hybrid-project.iam.gserviceaccount.com
cassandra.backup.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
cassandra.backup.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
cassandra.backup.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
cassandra.backup.keyfileDefault value: None
Required if backup is enabled and cassandra.backup.cloudProvider
is set to HYBRID.
The path on your local file system to the SSH private key file.
cassandra.backup.scheduleDefault value: 0 2 * * *
The schedule for the backup cron job.
cassandra.backup.serverDefault value: None
Required if backup is enabled and cassandra.backup.cloudProvider
is set to HYBRID.
The IP address of your remote SSH backup server.
cassandra.backup.serviceAccountPathDefault value: None
Path to a Google Service Account
key file that has the Storage Object Admin (roles/storage.objectAdmin)
role. This Google Service Account will be used for uploading backup archives to a specified
cassandra.backup.dbStorageBucket.
If backup is enabled and cassandra.backup.cloudProvider
is set to GCP, one of the following is required to ensure Apigee Hybrid can
access the Google Cloud Storage bucket to upload backup archives:
cassandra.backup.serviceAccountPath.cassandra.backup.serviceAccountRef.cassandra.backup.serviceAccountRefDefault value: None
The name of an existing Kubernetes secret that stores the content of a Google Service Account
key file that has the Storage Object Admin (roles/storage.objectAdmin)
role. This Google Service Account will be used for uploading backup archives to a specified
cassandra.backup.dbStorageBucket.
If backup is enabled and cassandra.backup.cloudProvider
is set to GCP, one of the following is required to ensure Apigee Hybrid can
access the Google Cloud Storage bucket to upload backup archives:
cassandra.backup.serviceAccountPath.cassandra.backup.serviceAccountRef.cassandra.backup.storageDirectoryDefault value: None
Required if backup is enabled and cassandra.backup.cloudProvider
is set to HYBRID.
Can either be an absolute or relative path to the apigee user's home
directory.
The name of the backup directory on your backup SSH server.
cassandra.clusterNameDefault value: apigeecluster
Specifies the name of the Cassandra cluster.
cassandra.datacenterDefault value: dc-1
Specifies the datacenter of the Cassandra node.
cassandra.dnsPolicyDefault value: None
When you set hostNetwork to true, the DNS policy is set to
ClusterFirstWithHostNet for you.
cassandra.externalSeedHostDefault value: None
Hostname or IP of a Cassandra cluster node. If not set, the Kubernetes local service is used.
cassandra.heapNewSizeDefault value: 100M
The amount of JVM system memory allocated to newer objects, in megabytes.
cassandra.hostNetworkDefault value: false
Enables the Kubernetes
hostNetwork
feature. Apigee uses this feature in multi-region installations to communicate between pods
if the pod network namespace does not have connectivity between clusters (the clusters are
running in "island network mode"), which is the default case in non-GKE installations,
including Google Distributed Cloud on VMware or bare metal, GKE on AWS, AKS, EKS, and OpenShift.
Set cassandra.hostNetwork to false for single region
installations and multi-region installations with connectivity between pods in different
clusters, for example GKE installations.
Set cassandra.hostNetwork to true for multi-region installations
with no communication between between pods in different clusters, for example Google Distributed Cloud on VMware or bare metal, GKE on AWS, AKS, EKS, and OpenShift installations. See
Multi-region deployment: Prerequisites.
When true,
DNS
policy is automatically set to ClusterFirstWithHostNet.
cassandra.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
cassandra.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
cassandra.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
cassandra.maxHeapSizeDefault value: 512M
The upper limit of JVM system memory available for Cassandra operations, in megabytes.
cassandra.multiRegionSeedHostDefault value: None
IP address of an existing Cassandra cluster used to expand the existing cluster to a new region. See Configure the multi-region seed host.
cassandra.nodeSelector.keyDefault value: None
Required
Node selector label key used to target dedicated Kubernetes nodes for cassandra data services.
cassandra.nodeSelector.valueDefault value: None
Optional node selector label value used to target dedicated Kubernetes nodes for
cassandra data services and override the nodeSelector.apigeeData settings.
See nodeSelector.
cassandra.portDefault value: 9042
Port number used to connect to cassandra.
cassandra.rackDefault value: ra-1
Specifies the rack of the Cassandra node.
cassandra.readinessProbe.failureThresholdDefault value: 2
The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1.
cassandra.readinessProbe.initialDelaySecondsDefault value: 0
The number of seconds after a container is started before a readiness probe is initiated.
cassandra.readinessProbe.periodSecondsDefault value: 10
Determines how often to perform a readiness probe, in seconds. The minimum value is 1.
cassandra.readinessProbe.successThresholdDefault value: 1
The minimum consecutive successes needed for a readiness probe to be considered successful after a failure. The minimum value is 1.
cassandra.readinessProbe.timeoutSecondsDefault value: 5
The number of seconds after which a liveness probe times out. The minimum value is 1.
cassandra.replicaCountDefault value: 1
Cassandra is a replicated database. This property specifies the number of Cassandra nodes employed as a StatefulSet.
cassandra.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
cassandra.resources.requests.memoryDefault value: 1Gi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
cassandra.restore.cloudProviderDefault value: GCP
GCP, HYBRID,
and CSI. Set the value to:
GCP to restore data from a backup stored on Google Cloud Storage.HYBRID to restore data from a backup stored on a remote SSH server.CSI (recommended) to utilize Kubernetes CSI Volume Snapshots
for restore. For information on CSI backup and restore for cloud platforms
such as Google Cloud, AWS, and Azure, see CSI backup and restore.
cassandra.restore.dbStorageBucketDefault value: None
Required if restore is enabled and cassandra.restore.cloudProvider
is set to GCP.
The name of a Google Cloud Storage bucket that stores backup archives to be used for data restoration.
cassandra.restore.enabledDefault value: false
Data restoration is not enabled by default. To enable, set to true.
cassandra.restore.gsaDefault value: None
Helm only: The email address of the apigee-cassandra Google IAM
service account (GSA) to associate with the cassandra restore Kubernetes service account when
enabling Workload Identity on GKE clusters. Set this when you have set
gcp.workloadIdentity.enabled to
true and cassandra.restore.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-cassandra@my-hybrid-project.iam.gserviceaccount.com
cassandra.restore.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
cassandra.restore.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
cassandra.restore.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
cassandra.restore.serviceAccountPathDefault value: None
Path to a Google Service Account
key file that has the Storage Object Admin (roles/storage.objectAdmin)
role. This Google Service Account will be used to download backup archives from a specified
cassandra.restore.dbStorageBucket.
If restore is enabled and cassandra.restore.cloudProvider
is set to GCP, one of the following is required to ensure Apigee Hybrid can
access the Google Cloud Storage bucket to download backup archives for restoration:
cassandra.restore.serviceAccountPath.cassandra.restore.serviceAccountRef.cassandra.restore.serviceAccountRefDefault value: None
The name of an existing Kubernetes secret that stores the content of a Google Service Account
key file that has the Storage Object Admin (roles/storage.objectAdmin)
role. This Google Service Account will be used to download backup archives from a specified
cassandra.restore.dbStorageBucket.
If restore is enabled and cassandra.restore.cloudProvider
is set to GCP, one of the following is required to ensure Apigee Hybrid can
access the Google Cloud Storage bucket to download backup archives for restoration:
cassandra.restore.serviceAccountPath.cassandra.restore.serviceAccountRef.cassandra.restore.snapshotTimestampDefault value: None
Required if restore is enabled.
Timestamp of the backup that should be restored.
cassandra.sslCertPathDefault value: None
The path on your system to a TLS certificate file.
Note: For each configured environment, the Common Name (CN) in the cert must match the domain in thehostAliases[] property. For example, if the CN is
*.example.com, the hostAliases[] could be foo.example.com
or bar.example.com.
cassandra.sslKeyPathDefault value: None
The path on your system to the TLS private key file.
cassandra.sslRootCAPathDefault value: None
The certificate chain to the root CA (certificate authority).
cassandra.storage.capacityDefault value: 10Gi
Required if storage.storageclass is specified
Specifies the disk size required, in mebibytes (Mi) or gibibytes (Gi).
cassandra.storage.storageclassDefault value: None
Specifies the class of on-prem storage being used.
cassandra.storage.storageSizeDefault value: 10Gi
Required if storage.storageclass is specified
Specifies the disk size required, in mebibytes (Mi) or gibibytes (Gi).
cassandra.terminationGracePeriodSecondsDefault value: 300
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
cassandra.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
cassandra.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
cassandra.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
cassandra.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
cassandra.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
certManagerApigee uses cert-manager for certificate validation.
The following table describes the properties of the certManager object:
| Property | Type | Description |
|---|---|---|
certManager.namespace |
Advanced | Introduced in version: 1.9.0
Default value: The namespace for cert-manager. |
connectAgentApigee Connect allows the Apigee hybrid management plane to connect securely to the MART service in the runtime plane without requiring you to expose the MART endpoint on the internet.
The following table describes the properties of the connectAgent object:
connectAgent.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
connectAgent.gsaDefault value: None
Helm only: The email address of the Google IAM service account (GSA) for
connectAgent to associate with the corresponding Kubernetes service account when enabling Workload
Identity on GKE clusters using Helm charts. Set this when you have set
gcp.workloadIdentity.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-mart@my-hybrid-project.iam.gserviceaccount.com
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
connectAgent.logLevelDefault value: INFO
The level of log reporting. Values can be:
INFO: Informational messages in addition to warning, error, and fatal
messages. Most useful for debugging.WARNING: Non-fatal warnings in addition to error and fatal messages.ERROR: Internal errors and errors that are not returned to the user in
addition to fatal messages.FATAL: Unrecoverable errors and events that cause Apigee Connect to crash.connectAgent.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
connectAgent.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
connectAgent.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
connectAgent.replicaCountMaxDefault value: 5
Maximum number of replicas available for autoscaling.
connectAgent.replicaCountMinDefault value: 1
Minimum number of replicas available for autoscaling.
In production, you may want to increase replicaCountMin to 1, to have a greater number of
connections to the control plane for reliability and scalability.
connectAgent.resources.limits.cpuDefault value: 512m
connectAgent.resources.limits.memoryDefault value: 512Mi
The memory limit for the resource in a Kubernetes container, in mebibytes.
connectAgent.resources.requests.cpuDefault value: 100m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
connectAgent.resources.requests.memoryDefault value: 30Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
connectAgent.serverDefault value: apigeeconnect.googleapis.com:443
The location of the server and port for this service.
connectAgent.serviceAccountPathDefault value: None
One of either serviceAccountPath or serviceAccountRef
is required.
Path to Google Service Account key file for the apigee-mart service account.
In most installations, the value of connectAgent.serviceAccountPath must match
the value of mart.serviceAccountPath.
connectAgent.serviceAccountRefDefault value: None
One of either serviceAccountPath or serviceAccountRef
is required.
In most installations, the value of connectAgent.serviceAccountRef must match
the value of mart.serviceAccountRef.
connectAgent.targetCPUUtilizationPercentageDefault value: 75
Target CPU utilization for the Apigee Connect agent on the pod. The
value of this field enables Apigee Connect to auto-scale when CPU utilization
reaches this value, up to replicaCountMax.
connectAgent.terminationGracePeriodSecondsDefault value: 600
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
connectAgent.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
connectAgent.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
connectAgent.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
connectAgent.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
connectAgent.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
defaultsThe Default encryption keys for the Apigee hybrid installation.
The following table describes the properties of the defaults object:
| Property | Type | Description |
|---|---|---|
defaults.org.kmsEncryptionKey |
Basic | Introduced in version: 1.0.0
Default value: Default encryption key for the org in KMS. |
defaults.org.kvmEncryptionKey |
Basic | Introduced in version: 1.0.0
Default value: Default encryption key for the org in KVM. |
defaults.env.kmsEncryptionKey |
Basic | Introduced in version: 1.0.0
Default value: Default encryption key for the environment (env) in KMS. |
defaults.env.kvmEncryptionKey |
Basic | Introduced in version: 1.0.0
Default value: Default encryption key for the environment (env) in KVM. |
defaults.env.cacheEncryptionKey |
Basic | Introduced in version: 1.0.0
Default value: Default cache encryption key for the environment (env). |
diagnosticThe settings for the Diagnostic collector tool.
See Using the Diagnostic collector
The following table describes the properties of the diagnostic object:
| Property | Type | Description |
|---|---|---|
diagnostic.bucket |
Basic | Introduced in version: 1.6.0
Default value: None Required The name of the Google Cloud storage bucket where your diagnostic data will be deposited. |
diagnostic.container |
Basic | Introduced in version: 1.6.0
Default value: None Required This specifies which type of pod you are capturing data from. The values can be one of:
|
diagnostic.loggingDetails.logDuration |
Basic | Introduced in version: 1.6.0
Default value: None Required if the diagnostic collection operation is "LOGGING"
(set with The duration in milliseconds of the log data collected. A typical value is |
diagnostic.loggingDetails.loggerNames[] |
Basic | Introduced in version: 1.6.0
Default value: None Required if the diagnostic collection operation is "LOGGING"
(set with Specifies by name which loggers to collect data from. For Apigee hybrid version 1.6.0,
the only value supported is diagnostic: loggingDetails: loggerNames: - ALL |
diagnostic.loggingDetails.logLevel |
Basic | Introduced in version: 1.6.0
Default value: None Required if the diagnostic collection operation is "LOGGING"
(set with Specifies the granularity of the logging data to collect. In Apigee hybrid 1.6, Only
|
diagnostic.namespace |
Basic | Introduced in version: 1.6.0
Default value: None Required The Kubernetes namespace in which the pods you are collecting data on reside. The namespace
must be the correct one for the container you specify with
|
diagnostic.operation |
Basic | Introduced in version: 1.6.0
Default value: None Required Specifies whether to collect all statistics or just logs. Values are:
|
diagnostic.podNames[] |
Basic | Introduced in version: 1.6.0
Default value: None Required The names of the Kubernetes pods for which you are collecting data. For example: diagnostic: podNames: - apigee-runtime-eng-hybrid-example-3b2ebf3-150-8vfoj-2wcjn - apigee-runtime-eng-hybrid-example-3b2ebf3-150-8vfoj-6xzn2 |
diagnostic.serviceAccountPath |
Basic | Introduced in version: 1.6.0
Default value: None Required The path to a service account key file ( |
diagnostic.tcpDumpDetails.maxMsgs |
Basic | Introduced in version: 1.6.0
Default value: None One of either
Sets the maximum number of |
diagnostic.tcpDumpDetails.timeoutInSeconds |
Basic | Introduced in version: 1.6.0
Default value: None One of either
Sets the amount of time in seconds to wait for |
diagnostic.threadDumpDetails.delayInSeconds |
Basic | Introduced in version: 1.6.0
Default value: None Both
The delay in seconds between collecting each thread dump. |
diagnostic.threadDumpDetails.iterations |
Basic | Introduced in version: 1.6.0
Default value: None Both
The number of jstack thread dump iterations to collect. |
envsDefines an array of environments to which you can deploy your API proxies. Each environment provides an isolated context or sandbox for running API proxies.
Your hybrid-enabled organization must have at least one environment.
For more information, see About environments.
The following table describes the properties of the envs
object:
envs[].cacheEncryptionKeyDefault value: None
One of either cacheEncryptionKey, cacheEncryptionPath, or
cacheEncryptionSecret is required.
A base64-encoded encryption key. See Data encryption.
envs[].cacheEncryptionPathDefault value: None
One of either cacheEncryptionKey, cacheEncryptionPath, or
cacheEncryptionSecret is required.
The path to a file containing a base64-encoded encryption key. See Data encryption.
envs[].cacheEncryptionSecret.keyDefault value: None
One of either cacheEncryptionKey, cacheEncryptionPath, or
cacheEncryptionSecret is required.
The key of a Kubernetes secret containing a base64-encoded encryption key. See Data encryption.
envs[].cacheEncryptionSecret.nameDefault value: None
One of either cacheEncryptionKey, or cacheEncryptionPath, or
cacheEncryptionSecret is required.
The name of a Kubernetes secret containing a base64-encoded encryption key. See Data encryption.
envs[].components.runtime.replicaCountMaxDefault value: 4
Maximum number of replicas for autoscaling. Overrides
runtime.replicaCountMax if specified.
envs[].components.runtime.replicaCountMinDefault value: 1
Minimum number of replicas for autoscaling. Overrides
runtime.replicaCountMin if specified.
envs[].components.synchronizer.replicaCountMaxDefault value: 4
Maximum number of replicas for autoscaling. Overrides
synchronizer.replicaCountMax if specified.
envs[].components.synchronizer.replicaCountMinDefault value: 1
Minimum number of replicas for autoscaling. Overrides
synchronizer.replicaCountMin if specified.
envs[].components.udca.replicaCountMaxDefault value: 4
Maximum number of replicas for autoscaling. Overrides
udca.replicaCountMax if specified.
envs[].components.udca.replicaCountMinDefault value: 1
Minimum number of replicas for autoscaling. Overrides
udca.replicaCountMin if specified.
envs.gsa.runtimeDefault value: None
Helm only: The email address of the runtime Google IAM service account to associate with the corresponding Kubernetes service account when enabling Workload Identity on GKE clusters using Helm charts.
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
envs.gsa.synchronizerDefault value: None
Helm only: The email address of the synchronizer Google IAM service account to associate with the corresponding Kubernetes service account when enabling Workload Identity on GKE clusters using Helm charts.
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
envs.gsa.udcaDefault value: None
Helm only: The email address of the udca Google IAM service account for env-scoped udca to associate with the corresponding Kubernetes service account when enabling Workload Identity on GKE clusters using Helm charts.
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
envs[].hostAliases[]Default value: None
Deprecated: Starting in Hybrid version 1.4 the runtime plane receives this information from the management plane. See About environments and environment groups.
envs[].httpProxy.hostDefault value: None
Specifies the host name or IP address where the HTTP proxy is running.
List httpProxy properties in the order scheme, host,
port. For example:
envs:
- name: test
httpProxy:
scheme: HTTP
host: 10.12.0.47
port: 3128
...See also: Configure forward proxying for API proxies.
envs[].httpProxy.portDefault value: None
Specifies the port on which the HTTP proxy is running. If this property is omitted, by
default it uses port 80 for HTTP and port 443 for HTTPS.
envs[].httpProxy.schemeDefault value: HTTPS
Specifies the type of the HTTP proxy as HTTP or HTTPS. By default, it uses HTTPS.
envs[].httpProxy.usernameDefault value: None
If the HTTP proxy requires basic authentication, then use this property to provide a username.
envs[].httpProxy.passwordDefault value: None
If the HTTP proxy requires basic authentication, then use this property to provide a password.
envs[].nameDefault value: None
Required
Apigee environment name to be synchronized.
envs[].pollIntervalDefault value: None
Interval used for polling organization and environment synchronization changes, in seconds.
envs[].portDefault value: None
TCP port number for HTTPS traffic.
envs[].serviceAccountPaths.runtimeDefault value: None
Path to file on local system to a Google Service Account key with
the Cloud Trace Agent role, usually the
apigee-runtime service account. See the
About service accounts for the default names of
the service accounts and their assigned roles.
envs[].serviceAccountPaths.synchronizerDefault value: None
Path to file on local system to a Google Service Account key with the Apigee Synchronizer Manager role.
envs[].serviceAccountPaths.udcaDefault value: None
Path to file on local system to a Google Service Account key with the Apigee Analytic Agent role.
Only set this property if orgScopedUDCA is set to
false.
envs[].serviceAccountSecretProviderClassDefault value: None
The name of the environment-specific secret provider class (SecretProviderClass) used for storing service account keys in Vault.
envs[].serviceAccountSecretRefs.runtimeDefault value: None
The name of a Kubernetes secret. You must create the secret using a Google Service Account key with the Cloud Trace Agent role as its input.
envs[].serviceAccountSecretRefs.synchronizerDefault value: None
The name of a Kubernetes secret. You must create the secret using a Google Service Account key with the Apigee Synchronizer Manager role as its input.
envs[].serviceAccountSecretRefs.udcaDefault value: None
The name of a Kubernetes secret. You must create the secret using a Google Service Account key with the Apigee Analytic Agent role as its input.
Only set this property if orgScopedUDCA is set to
false.
envs[].sslCertPathDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
The path on your system to a TLS certificate file.
Note: For each configured environment, the Common Name (CN) in the cert must match the domain in thehostAliases[] property. For example, if the CN is
*.example.com, the hostAliases[] could be foo.example.com
or bar.example.com.
envs[].sslKeyPathDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
The path on your system to the TLS private key file.
envs[].sslSecretDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
The name of a file stored in a Kubernetes secret that contains the TLS certificate and private key. You must create the secret using the TLS certificate and key data as its input.
See also:
gcpIdentifies the Google Cloud project ID (required for all hybrid installations), the Workload Identity and federated workload identity configurations, and the region where the apigee-logger
and the apigee-metrics push their data.
The following table describes the properties of the gcp object:
| Property | Type | Description |
|---|---|---|
gcp.federatedWorkloadIdentity.audience |
Basic | Introduced in version: 1.12.0
Default value: None The allowed audience of the Workload Identity Provider on non-GKE platforms. |
gcp.federatedWorkloadIdentity.credentialSourceFile |
Basic | Introduced in version: 1.12.0
Default value: None The filename and path to the credential source file used by Workload Identity Federation to obtain the credentials for the service accounts. This is the value you provide for |
gcp.federatedWorkloadIdentity.enabled |
Basic | Introduced in version: 1.12.0
Default value: Enables Workload Identity Federation on non-GKE platforms. Must not be set |
gcp.federatedWorkloadIdentity.tokenExpiration |
Basic | Introduced in version: 1.12.0
Default value: The lifetime of the token in seconds. |
gcp.projectID |
Basic | Introduced in version: 1.2.0
Default value: None Required Identifies the Google Cloud project where |
gcp.projectIDRuntime |
Basic | Introduced in version: 1.2.0
Default value: None Identifies the runtime Kubernetes cluster project. The |
gcp.region |
Basic | Introduced in version: 1.2.0
Default value: Required Identifies the Google Cloud region
where the |
gcp.workloadIdentity.enabled |
Basic | Introduced in version: 1.10.0
Default value: Helm only: Enables using Workload Identity on GKE. Workload Identity allows workloads in your GKE clusters to impersonate Identity and Access Management (IAM) service accounts to access Google Cloud services. Must not be set When When |
gcp.workloadIdentity.gsa |
Advanced | Introduced in version: 1.10.0
Default value: None Helm only: The email address of the Google IAM service account (GSA) for all
components to associate with the corresponding Kubernetes service account when enabling
Workload Identity on GKE clusters using Helm charts. Set this when you have set
GSA email addresses typically have the format of: GSA_NAME@PROJECT_ID.iam.gserviceaccount.com For example: apigee-non-prod@my-hybrid-project.iam.gserviceaccount.com |
gcp.workloadIdentityEnabled |
Basic | Introduced in version: 1.4.0
Default value:
When When
|
httpProxyhttpProxy provides configuration parameters for an HTTP forward proxy server. When
configured in overrides.yaml, all internet communication for the Apigee Connect, Logger, MART, Metrics, Synchronizer, and UDCA
components pass through the proxy server.
See also: connectAgent, logger, mart, metrics, synchronizer, and udca.
The following table describes the properties of the httpProxy object:
| Property | Type | Description |
|---|---|---|
httpProxy.host |
Basic | Introduced in version: 1.1.1
Default value: None The hostname of the HTTP Proxy. |
httpProxy.port |
Basic | Introduced in version: 1.1.1
Default value: None The port of the HTTP Proxy. |
httpProxy.scheme |
Basic | Introduced in version: 1.1.1
Default value: The scheme used by the proxy. Values can be |
httpProxy.username |
Basic | Introduced in version: 1.1.1
Default value: None If the HTTP proxy requires basic authentication, then use this property to provide a username. |
httpProxy.password |
Basic | Introduced in version: 1.1.1
Default value: None If the HTTP proxy requires basic authentication, then use this property to provide a password. |
ingressGatewaysConfigures each individual instance of the Apigee ingress gateway. Use these properties when you want
to manage individual instances separately by
ingressGateways[].name.
See apigeeIngressGateway to apply common
configuration across all instances of the Apigee ingress gateway.
Apply changes to ingressGateways properties with the apigee-org
chart.
The following table describes the properties of the ingressGateways object:
ingressGateways[].nameDefault value: None
Required
The name of ingress gateway. Other services will use this name to address traffic to the gateway. The name must meet the following requirements:
For more information, see DNS Subdomain Names in the Kubernetes documentation.
ingressGateways[].resources.limits.cpuDefault value: 2000m
The CPU limit for the resource, in millicores.
ingressGateways[].resources.limits.memoryDefault value: 1Gi
The memory limit for the resource, in mebibytes.
ingressGateways[].resources.requests.cpuDefault value: 300m
The CPU needed for normal operation of the resource, in millicores.
ingressGateways[].resources.requests.memoryDefault value: 128Mi
The memory needed for normal operation of the resource, in mebibytes.
ingressGateways[].replicaCountMaxDefault value: 10
The maximum number of pods that hybrid can automatically add for the ingress gateway available for autoscaling.
ingressGateways[].replicaCountMinDefault value: 2
The minimum number of pods for the ingress gateway available for autoscaling.
ingressGateways[].svcAnnotationsDefault value: None
Optional key/value map used to annotate the ingress gateway on platforms that support annotation. For example:
ingressGateways:
svcAnnotations:
networking.gke.io/load-balancer-type: "Internal"ingressGateways[].svcLoadBalancerIPDefault value: None
On platforms that support specifying the load balancer IP address, the load balancer will be created with this IP address. On platforms that do not allow you to specify the load balancer IP address, this property is ignored.
ingressGateways[].svcTypeDefault value: LoadBalancer
Used to change the type of the default k8s service for ingress deployment.
Set the value to ClusterIP if you want to disable creation of default
load balancer. Possible values:
ClusterIPLoadBalanceringressGateways[].targetCPUUtilizationPercentageDefault value: 75
The threshold of CPU usage for scaling the number of pods in the ReplicaSet, as a percentage of total available CPU resources.
When CPU usage goes above this value, then hybrid will gradually
increase the number of pods in the ReplicaSet, up to
ingressGateways[].replicaCountMax.
For more information on scaling in Kubernetes, see Horizontal Pod Autoscaling in the Kubernetes documentation.
ingressGateways[].tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
ingressGateways[].tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
ingressGateways[].tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
ingressGateways[].tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
ingressGateways[].tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
istiodConfigures the Apigee ingress.
The following table describes the properties of the istiod object:
| Property | Type | Description |
|---|---|---|
istiod.accessLogFile |
Advanced | Introduced in version: 1.8.0
Default value: The file address for the ingress access log, for example Leaving this value undefined disables access logging. |
istiod.accessLogFormat |
Advanced | Introduced in version: 1.8.0
The format for the ingress access log. Leaving this value undefined results in using the proxy's default access log format. Default access log format: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'The following is a copy of the default access log format with line breaks added for readability.
'{"start_time":"%START_TIME%",
"remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%",
"user_agent":"%REQ(USER-AGENT)%",
"host":"%REQ(:AUTHORITY)%",
"request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%",
"request_time":"%DURATION%",
"status":"%RESPONSE_CODE%",
"status_details":"%RESPONSE_CODE_DETAILS%",
"bytes_received":"%BYTES_RECEIVED%",
"bytes_sent":"%BYTES_SENT%",
"upstream_address":"%UPSTREAM_HOST%",
"upstream_response_flags":"%RESPONSE_FLAGS%",
"upstream_response_time":"%RESPONSE_DURATION%",
"upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
"upstream_cluster":"%UPSTREAM_CLUSTER%",
"x_forwarded_for":"%REQ(X-FORWARDED-FOR)%",
"request_method":"%REQ(:METHOD)%",
"request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
"request_protocol":"%PROTOCOL%",
"tls_protocol":"%DOWNSTREAM_TLS_VERSION%",
"request_id":"%REQ(X-REQUEST-ID)%",
"sni_host":"%REQUESTED_SERVER_NAME%",
"apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' |
istiod.forwardClientCertDetails |
Advanced | Introduced in version: 1.9.2
Default value: Determines how the Envoy proxy (for the Apigee ingress gateway) handles the
Possible values are:
For more information on these values, see the Envoy documentation for Enum extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertDetails. If you change this setting after installing Hybrid, apply it with |
istiod.healthCheckUserAgents |
Advanced | Introduced in version: 1.12.0
Default values: - "GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)" - "Edge Health Probe" Enables non-Google Cloud loadbalancers to check the ingress gateway's health check endpoints ( To override the default user agents specified, use the following syntax, inserting the custom user agents: istiod: healthCheckUserAgents: - "CUSTOM_USER_AGENT_1" - "CUSTOM_USER_AGENT_2" To remove the user agent requirement, use the following: istiod: healthCheckUserAgents: [] |
istiod.image.pullPolicy |
Advanced | Introduced in version: 1.8.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
istiod.image.tag |
Advanced | Introduced in version: 1.8.0
Default value: The version label for this service's Docker image. |
istiod.image.url |
Advanced | Introduced in version: 1.8.0
Default value: None The location of the Docker image for this service. Use |
istiod.tolerations.effect |
Advanced | Introduced in version: 1.10.1
Default value: None Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
istiod.tolerations.key |
Advanced | Introduced in version: 1.10.1
Default value: None Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
istiod.tolerations.operator |
Advanced | Introduced in version: 1.10.1
Default value: Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
istiod.tolerations.tolerationSeconds |
Advanced | Introduced in version: 1.10.1
Default value: None Used by the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
istiod.tolerations.value |
Advanced | Introduced in version: 1.10.1
Default value: None Used by the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
k8sClusterIdentifies Kubernetes cluster where the hybrid runtime is installed.
The following table describes the properties of the k8sCluster object:
| Property | Type | Description |
|---|---|---|
k8sCluster.name |
Basic | Introduced in version: 1.2.0
Default value: None The name of the Kubernetes cluster where the hybrid runtime is installed. |
k8sCluster.region |
Basic | Introduced in version: 1.2.0
Default value: None Identifies the Google Cloud region in which your Kubernetes cluster was created. |
kubeRBACProxyIdentifies where Apigee should look for Kubernetes role-based access controls.
The following table describes the properties of the kubeRBACProxy object:
kubeRBACProxy.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
kubeRBACProxy.image.tag1.2.0
Default value: v0.14.2
The version label for this service's Docker image.
kubeRBACProxy.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
kubeRBACProxy.resources.limits.cpuDefault value: 500m
kubeRBACProxy.resources.limits.memoryDefault value: 128Mi
The memory limit for the resource in a Kubernetes container, in mebibytes.
kubeRBACProxy.resources.requests.cpuDefault value: 5m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
kubeRBACProxy.resources.requests.memoryDefault value: 64Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
loggerDefines the service that manages operational logs. All of the Apigee hybrid services that run in your Kubernetes cluster output this information.
For more information, see Logging overview.
The following table describes the properties of the logger object:
logger.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
logger.bufferChunkSizeDefault value: 256k
The initial buffer size to read log files.
logger.bufferMaxSizeDefault value: 104857600
The limit of the buffer size per monitored file. Files exceeding this limit are removed from the monitored file list.
logger.bufferMemoryLimitDefault value: 150MB
The limit of memory that logger can consumed. If reach, the logger will momentarily pause reading more data until the existing data is flushed in memory.
logger.enabledDefault value: false
Enables or disables logging on the cluster. For non-GKE set to true, for
GKE on Google Cloud or Google Distributed Cloudset to false.
logger.envVarsDefault value: None
Allows you to include the NO_PROXY Fluent Bit environment variable, which
specifies URLs for which traffic is not routed through the HTTP proxy. The
NO_PROXY variable should be defined as a comma-separated string of host
names, in the format:
logger:
...
envVars:
NO_PROXY: '<comma-separated-values>'for example:
envVars:
NO_PROXY: 'kubernetes.default.svc,oauth2.googleapis.com,logging.googleapis.com'Use envVars: NO_PROXY optionally when you have HTTP forward proxy enabled.
See NO_PROXY in the Fluent Bit documentation.
logger.flushIntervalDefault value: 1
The interval to wait before invoking the next buffer flushed, in seconds.
logger.gsaDefault value: None
Helm only: The email address of the apigee-logger Google IAM
service account (GSA) to associate with the corresponding Kubernetes service account when
enabling Workload Identity on GKE clusters using Helm charts. Set this when you have set
gcp.workloadIdentity.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-logger@my-hybrid-project.iam.gserviceaccount.com
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
logger.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
logger.image.tagDefault value: 1.9.9
The version label for this service's Docker image.
logger.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
logger.livenessProbe.failureThresholdDefault value: 3
The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1.
logger.livenessProbe.initialDelaySecondsDefault value: 0
The number of seconds after a container is started before a liveness probe is initiated.
logger.livenessProbe.periodSecondsDefault value: 60
Determines how often to perform a liveness probe, in seconds. The minimum value is 1.
logger.livenessProbe.successThresholdDefault value: 1
The minimum consecutive successes needed for a liveness probe to be considered successful after a failure. The minimum value is 1.
logger.livenessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
logger.nodeSelector.keyDefault value: apigee.com/apigee-logger-enabled
Required
Node selector label key used to target dedicated Kubernetes nodes for logger runtime services.
logger.nodeSelector.valueDefault value: true
Required
Node selector label value used to target dedicated Kubernetes nodes for logger runtime services.
logger.resources.limits.cpuDefault value: 200m
logger.resources.limits.memoryDefault value: 500Mi
The memory limit for the resource in a Kubernetes container, in mebibytes.
logger.resources.requests.cpuDefault value: 100m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
logger.resources.requests.memoryDefault value: 250Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
logger.serviceAccountPathDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
Path to Google Service Account key file with Logs Writer role.
logger.serviceAccountRefDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
logger.storageMaxChunksDefault value: 128
The maximum number of chunks that can be up in memory. Chunks exceeding the limit will be saved in the file system.
logger.terminationGracePeriodSecondsDefault value: 30
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
logger.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
logger.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
logger.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
logger.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
logger.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
martDefines the MART (Management API for RunTime data) service, which acts as an API provider for public Apigee APIs so that you can access and manage runtime data entities such as KMS (API Keys and OAuth tokens), KVM, Quota, and API products.
The following table describes the properties of the mart object:
mart.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
mart.gsaDefault value: None
Helm only: The email address of the apigee-mart Google IAM
service account (GSA) to associate with the corresponding Kubernetes service account when
enabling Workload Identity on GKE clusters using Helm charts. Set this when you have set
gcp.workloadIdentity.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-mart@my-hybrid-project.iam.gserviceaccount.com
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
mart.hostAliasDefault value: None
The host alias pointing to the MART object. You can set this property to * or
a fully-qualified domain name.
mart.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
mart.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
mart.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
mart.initCheckCF.resources.requests.cpuDefault value: 10m
The amount of CPU resources allocated to the initialization check of the Cloud Foundry process.
mart.livenessProbe.failureThresholdDefault value: 12
The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1.
mart.livenessProbe.initialDelaySecondsDefault value: 15
The number of seconds after a container is started before a liveness probe is initiated.
mart.livenessProbe.periodSecondsDefault value: 5
Determines how often to perform a liveness probe, in seconds. The minimum value is 1.
mart.livenessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
mart.metricsURL/v1/server/metrics
mart.nodeSelector.keyDefault value: None
Optional node selector label key for targeting Kubernetes nodes for mart
runtime services. If you do not specify a key for mart.nodeselector, then your runtime uses
the node specified in the nodeSelector object.
mart.nodeSelector.valueDefault value: None
Optional node selector label value for targeting Kubernetes nodes for mart
runtime services. See also the nodeSelector object.
mart.readinessProbe.failureThresholdDefault value: 2
The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1.
mart.readinessProbe.initialDelaySecondsDefault value: 15
The number of seconds after a container is started before a readiness probe is initiated.
mart.readinessProbe.periodSecondsDefault value: 5
Determines how often to perform a readiness probe, in seconds. The minimum value is 1.
mart.readinessProbe.successThresholdDefault value: 1
The minimum consecutive successes needed for a readiness probe to be considered successful after a failure. The minimum value is 1.
mart.readinessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
mart.replicaCountMaxDefault value: 5
Maximum number of replicas available for autoscaling.
mart.replicaCountMinDefault value: 1
Minimum number of replicas available for autoscaling.
mart.resources.limits.cpuDefault value: 2000m
mart.resources.limits.memoryDefault value: 5Gi
The memory limit for the resource in a Kubernetes container, in mebibytes.
mart.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
mart.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
mart.serviceAccountPathDefault value: None
One of either serviceAccountPath or serviceAccountRef
is required.
Path to Google Service Account key file with no role.
mart.serviceAccountRefDefault value: None
One of either serviceAccountPath or serviceAccountRef
is required.
mart.sslCertPathDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
Local file system path for loading and encoding the SSL cert to a Secret.
mart.sslKeyPathDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
Local file system path for loading and encoding the SSL key to a Secret.
mart.sslSecretDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
The name of a file stored in a Kubernetes secret that contains the TLS certificate and private key. You must create the secret using the TLS certificate and key data as its input.
See also:
mart.targetCPUUtilizationPercentageDefault value: 75
Target CPU utilization for the MART process on the pod. The
value of this field enables MART to auto-scale when CPU utilization
reaches this value, up to replicaCountMax.
mart.terminationGracePeriodSecondsDefault value: 30
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
mart.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
mart.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
mart.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
mart.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
mart.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
metricsDefines the service that collects operations metrics. You can use metrics data to monitor the health of Hybrid services, to set up alerts, and so on.
For more information, see Metrics collection overview.
The following table describes the properties of the metrics object:
metrics.adapter.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
metrics.adapter.image.tagDefault value: v0.11.0
The version label for this service's Docker image.
metrics.adapter.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
metrics.adapter.resources.limits.cpuDefault value: 500m
The CPU limit for the adapter resource in a Kubernetes container, in millicores.
metrics.adapter.resources.limits.memoryDefault value: 4Gi
The memory limit for the adapter resource in a Kubernetes container, in gibibytes.
metrics.adapter.resources.requests.cpuDefault value: 100m
The CPU needed for normal operation of the adapter in a Kubernetes container, in millicores.
metrics.adapter.resources.requests.memoryDefault value: 128Mi
The memory needed for normal operation of the adapter in a Kubernetes container, in mebibytes.
metrics.aggregator.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the aggregator in a Kubernetes container, in millicores.
Note: Usemetrics.appStackdriverExporter.resources.requests.cpu instead of metrics.aggregator.resources.requests.cpu.
metrics.aggregator.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the aggregator in a Kubernetes container, in mebibytes.
Note: Usemetrics.appStackdriverExporter.resources.requests.memory instead of metrics.aggregator.resources.requests.memory.
metrics.aggregator.resources.limits.cpuDefault value: 500m
The CPU limit for the aggregator resource in a Kubernetes container, in millicores.
Note: Usemetrics.appStackdriverExporter.resources.limits.cpu instead of metrics.aggregator.resources.limits.cpu.
metrics.aggregator.resources.limits.memoryDefault value: 3Gi
The memory limit for the aggregator resource in a Kubernetes container, in gibibytes.
Note: Usemetrics.appStackdriverExporter.resources.limits.memory instead of metrics.aggregator.resources.limits.memory.
metrics.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
metrics.app.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the app in a Kubernetes container, in millicores.
metrics.app.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the app in a Kubernetes container, in mebibytes.
metrics.app.resources.limits.cpuDefault value: 500m
The CPU limit for the app resource in a Kubernetes container, in millicores.
metrics.app.resources.limits.memoryDefault value: 1Gi
The memory limit for the app resource in a Kubernetes container, in gibibytes.
metrics.appStackdriverExporter.resources.requests.cpuDefault value: 128m
The CPU needed for normal operation of the stackdriverExporter in a Kubernetes container, in millicores.
metrics.appStackdriverExporter.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the stackdriverExporter in a Kubernetes container, in mebibytes.
metrics.appStackdriverExporter.resources.limits.cpuDefault value: 500m
The CPU limit for the stackdriverExporter resource in a Kubernetes container, in millicores.
metrics.appStackdriverExporter.resources.limits.memoryDefault value: 1Gi
The memory limit for the stackdriverExporter resource in a Kubernetes container, in gibibytes.
metrics.collector.envVarsDefault value: None
Allows you to pass in and override environment variables in OpenTelemetry. For example, you can define
HTTP_PROXY, HTTPS_PROXY, or NO_PROXY to have its requests
pass through the proxy server.
The HTTP_PROXY variable can be defined as a string containing the host name, in the format:
metrics:
...
envVars:
HTTP_PROXY: '<host-name>'for example:
envVars:
HTTP_PROXY: 'http://1.1.1.1:80'The HTTPS_PROXY variable can be defined as a string containing the host name, in the format:
metrics:
...
envVars:
HTTPS_PROXY: '<host-name>'for example:
envVars:
HTTPS_PROXY: 'https://1.1.1.1:80'The
NO_PROXY variable should be defined as a comma-separated string of host
names, in the format:
metrics: ... envVars: NO_PROXY: '<comma-separated-values>'
for example:
envVars: NO_PROXY: 'https://1.1.1.1:80, https://1.1.1.1:81'
Use envVars: HTTP_PROXY, envVars: HTTPS_PROXY, or envVars: NO_PROXY optionally when you have HTTP forward proxy enabled.
See Proxy support in the OpenTelemetry documentation.
metrics.collector.imagePullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Use a private image repository with Apigee hybrid .
metrics.collector.image.tagDefault value: v0.93.0
The version label for this service's Docker image.
metrics.collector.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
metrics.collector.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the app in a Kubernetes container, in millicores.
metrics.collector.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the app in a Kubernetes container, in mebibytes.
metrics.collector.resources.limits.cpuDefault value: 500m
The CPU limit for the app resource in a Kubernetes container, in millicores.
metrics.collector.resources.limits.memoryDefault value: 1Gi
The memory limit for the app resource in a Kubernetes container, in gibibytes.
metrics.collector.livenessProbe.failureThresholdDefault value: 5
The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1.
metrics.collector.livenessProbe.initialDelaySecondsDefault value: 30
The number of seconds after a container is started before a liveness probe is initiated.
metrics.collector.livenessProbe.periodSecondsDefault value: 10
Determines how often to perform a liveness probe, in seconds. The minimum value is 1.
metrics.collector.livenessProbe.successThresholdDefault value: 1
The minimum consecutive successes needed for a liveness probe to be considered successful after a failure. The minimum value is 1.
metrics.collector.livenessProbe.timeoutSecondsDefault value: 5
The number of seconds after which a liveness probe times out. The minimum value is 1.
metrics.collector.readinessProbe.failureThresholdDefault value: 3
The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1.
metrics.collector.readinessProbe.initialDelaySecondsDefault value: 30
The number of seconds after a container is started before a readiness probe is initiated.
metrics.collector.readinessProbe.periodSecondsDefault value: 10
Determines how often to perform a readiness probe, in seconds. The minimum value is 1.
metrics.collector.readinessProbe.successThresholdDefault value: 1
The minimum consecutive successes needed for a readiness probe to be considered successful after a failure. The minimum value is 1.
metrics.collector.readinessProbe.timeoutSecondsDefault value: 5
The number of seconds after which a liveness probe times out. The minimum value is 1.
metrics.disablePrometheusPipelineDefault value: true
Metrics for ProxyV2 and TargetV2 monitored resources are not emitted
when set to true. Use metrics for Proxy and Target monitored
resources instead.
metrics.enabledDefault value: true
Enables Apigee metrics. Set to true to enable metrics. Set to
false to disable metrics.
metrics.gsaDefault value: None
Helm only: The email address of the apigee-metrics Google IAM
service account (GSA) to associate with the corresponding Kubernetes service account when
enabling Workload Identity on GKE clusters using Helm charts. Set this when you have set
gcp.workloadIdentity.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-metrics@my-hybrid-project.iam.gserviceaccount.com
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
metrics.nodeSelector.keyDefault value: None
Required
Node selector label key used to target dedicated Kubernetes nodes for metrics runtime services.
metrics.nodeSelector.valueDefault value: None
Required
Node selector label value used to target dedicated Kubernetes nodes for metrics runtime services.
metrics.prometheus.containerPortDefault value: 9090
The port to connect to the Prometheus metrics service.
metrics.prometheus.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
metrics.prometheus.image.tagDefault value: v2.45.0
The version label for this service's Docker image.
metrics.prometheus.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
metrics.prometheus.livenessProbe.failureThresholdDefault value: 6
The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1.
metrics.prometheus.livenessProbe.periodSecondsDefault value: 5
Determines how often to perform a liveness probe, in seconds. The minimum value is 1.
metrics.prometheus.livenessProbe.timeoutSecondsDefault value: 3
The number of seconds after which a liveness probe times out. The minimum value is 1.
metrics.prometheus.readinessProbe.failureThresholdDefault value: 120
The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1.
metrics.prometheus.readinessProbe.periodSecondsDefault value: 5
Determines how often to perform a readiness probe, in seconds. The minimum value is 1.
metrics.prometheus.readinessProbe.timeoutSecondsDefault value: 3
The number of seconds after which a liveness probe times out. The minimum value is 1.
metrics.prometheus.resources.limits.cpuDefault value: 500m
The CPU limit for the prometheus resource in a Kubernetes container, in millicores.
metrics.prometheus.resources.limits.memoryDefault value: 4Gi
The memory limit for the prometheus resource in a Kubernetes container, in gibibytes.
metrics.prometheus.resources.requests.cpuDefault value: 128m
The CPU needed for normal operation of the prometheus in a Kubernetes container, in millicores.
metrics.prometheus.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the prometheus in a Kubernetes container, in mebibytes.
metrics.prometheus.sslCertPathDefault value: None
Required
Path to the SSL cert for the Prometheus metrics collection process. Prometheus is a tool Apigee can use for collecting and processing metrics.
See:
metrics.prometheus.sslKeyPathDefault value: None
Required
Path to the SSL Key for the Prometheus metrics collection process. Prometheus is a tool Apigee can use for collecting and processing metrics.
See:
metrics.proxy.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the proxy in a Kubernetes container, in millicores.
metrics.proxy.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the proxy in a Kubernetes container, in mebibytes.
metrics.proxy.resources.limits.cpuDefault value: 500m
The CPU limit for the proxy resource in a Kubernetes container, in millicores.
metrics.proxy.resources.limits.memoryDefault value: 1Gi
The memory limit for the proxy resource in a Kubernetes container, in gibibytes.
metrics.proxyStackdriverExporter.resources.requests.cpuDefault value: 128m
The CPU needed for normal operation of the stackdriverExporter in a Kubernetes container, in millicores.
metrics.proxyStackdriverExporter.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the stackdriverExporter in a Kubernetes container, in mebibytes.
metrics.proxyStackdriverExporter.resources.limits.cpuDefault value: 500m
The CPU limit for the stackdriverExporter resource in a Kubernetes container, in millicores.
metrics.proxyStackdriverExporter.resources.limits.memoryDefault value: 1Gi
The memory limit for the stackdriverExporter resource in a Kubernetes container, in gibibytes.
metrics.proxyURLDefault value: None
URL for the metrics process sidecar proxy in the Kubernetes cluster.
metrics.sdSidecar.containerPortDefault value: 9091
The port for connecting to the Cloud Monitoring metrics service.
metrics.sdSidecar.image.pullPolicyDefault value: IfNotPresent
Determines when Kubelet pulls this service's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already existsAlways: Always pull the policy, even if it already exists
For more information, see Updating images.
metrics.sdSidecar.image.tagDefault value: v0.9.0
The version label for this service's Docker image.
metrics.sdSidecar.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
metrics.serviceAccountPathDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
Path to Google Service Account key file with Monitoring Metric Writer role.
metrics.serviceAccountRefDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
metrics.stackdriverExporter.resources.requests.cpuDeprecated: Starting in Hybrid version 1.8, metrics:stackdriverExporter
has been replaced with metrics:appStackdriverExporter and
metrics:proxyStackdriverExporter. See:
metrics.stackdriverExporter.resources.requests.memoryDeprecated: Starting in Hybrid version 1.8, metrics:stackdriverExporter
has been replaced with metrics:appStackdriverExporter and
metrics:proxyStackdriverExporter. See:
metrics.stackdriverExporter.resources.limits.cpuDeprecated: Starting in Hybrid version 1.8, metrics:stackdriverExporter
has been replaced with metrics:appStackdriverExporter and
metrics:proxyStackdriverExporter. See:
metrics.stackdriverExporter.resources.limits.memoryDeprecated: Starting in Hybrid version 1.8, metrics:stackdriverExporter
has been replaced with metrics:appStackdriverExporter and
metrics:proxyStackdriverExporter. See:
metrics.terminationGracePeriodSecondsDefault value: 300
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
metrics.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
metrics.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
metrics.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
metrics.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
metrics.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
mintTaskSchedulermintTaskScheduler is the cron job to schedule monetization tasks, like recurring fee calculation on a periodic basis.
The following table describes the properties of the mintTaskScheduler object:
mintTaskScheduler.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
mintTaskScheduler.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
mintTaskScheduler.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
mintTaskScheduler.resources.limits.cpuDefault value: 2000m
mintTaskScheduler.resources.limits.memoryDefault value: 4Gi
The memory limit for the resource in a Kubernetes container, in mebibytes.
mintTaskScheduler.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
mintTaskScheduler.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
mintTaskScheduler.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
mintTaskScheduler.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
mintTaskScheduler.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
mintTaskScheduler.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
mintTaskScheduler.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
newDataPipelinenewDataPipeline determines if Apigee hybrid uses the new data pipeline for the
runtime components to write data directly to the control plane. This property is required for
data residency-enabled hybrid orgs at v1.13.1 or later. Do not attempt to use the new data pipeline feature with non data residency-enabled orgs; only new orgs
created on hybrid v1.13.1 can use this new feature. See also Using data residency
with Apigee hybrid.
The following table describes the properties of the newDataPipeline object:
| Property | Type | Description |
|---|---|---|
newDataPipeline.debugSession |
Advanced | Introduced in version: 1.13.1
Default value: Determines if the new Pub/Sub data pipeline is enabled. Set this property to |
newDataPipeline.analytics |
Advanced | Introduced in version: 1.13.1
Default value: Determines if analytics use the new Pub/Sub data pipeline. Set this to |
nodeSelectorThe nodeSelector object defines the node for your Apigee instance. Behind the scenes
Apigee hybrid takes care to map the label key/value for
apigeeRuntime and apigeeData
to the individual Istio and MART components when you install or upgrade the
apigee-org and apigee-ingress-manager charts.
You can override this for individual objects in the mart:nodeSelector property.
The following table describes the properties of the nodeSelector object:
| Property | Type | Description |
|---|---|---|
nodeSelector.apigeeData.key |
Advanced | Introduced in version: 1.0.0
Default value: ApigeeData is the node for the Cassandra database. Node selector label key for targeting Kubernetes nodes for working with Apigee services data. |
nodeSelector.apigeeData.value |
Advanced | Introduced in version: 1.0.0
Default value: apigee-data is the node for the Cassandra database. Node selector label value for targeting Kubernetes nodes for working with Apigee services data. |
nodeSelector.apigeeRuntime.key |
Advanced | Introduced in version: 1.0.0
Default value: Apigee Runtime is the node for the runtime environment for the project. Node selector label key for targeting Kubernetes nodes for Apigee runtime services. |
nodeSelector.apigeeRuntime.value |
Advanced | Introduced in version: 1.0.0
Default value:
|
nodeSelector.requiredForScheduling |
Advanced | Introduced in version: 1.0.0
Default value: true The
For production, |
redisThe following table describes the properties of the redis object:
| Property | Type | Description |
|---|---|---|
redis.auth.password |
Basic | Introduced in version: 1.6.0
Default value: Required Password for the Redis administrator. The admin user is used for any administrative activities performed on the Redis cluster. |
redis.auth.secret |
Basic | Introduced in version: 1.9.1
Default value: None The name of the file stored in a Kubernetes secret that contains the password for the Redis administrator. The secret file should contain the key: data:
redis.auth.password: encoded_valueSee also:
|
redis.envoy.image.pullPolicy |
Advanced | Introduced in version: 1.6.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
redis.envoy.image.tag |
Advanced | Introduced in version: 1.6.0
Default value: The version label for this service's Docker image. |
redis.envoy.image.url |
Advanced | Introduced in version: 1.6.0
Default value: None The location of the Docker image for this service. Use |
redis.image.pullPolicy |
Advanced | Introduced in version: 1.6.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
redis.image.tag |
Advanced | Introduced in version: 1.6.0
Default value: The version label for this service's Docker image. |
redis.image.url |
Advanced | Introduced in version: 1.6.0
Default value: None The location of the Docker image for this service. Use |
redis.replicaCount |
Basic | Introduced in version: 1.6.0
Default value: Redis is a replicated storage. This property specifies the number of Redis nodes employed as a StatefulSet. |
redis.resources.requests.cpu |
Advanced | Introduced in version: 1.6.0
Default value: The CPU needed for normal operation of the resource in a Kubernetes container, in millicores. |
redis.tolerations.effect |
Advanced | Introduced in version: 1.10.1
Default value: None Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
redis.tolerations.key |
Advanced | Introduced in version: 1.10.1
Default value: None Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
redis.tolerations.operator |
Advanced | Introduced in version: 1.10.1
Default value: Required to use the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
redis.tolerations.tolerationSeconds |
Advanced | Introduced in version: 1.10.1
Default value: None Used by the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
redis.tolerations.value |
Advanced | Introduced in version: 1.10.1
Default value: None Used by the Taints and Tolerations feature of Kubernetes.
See Taints and Tolerations: Concepts for details. |
runtimeThe following table describes the properties of the runtime object:
runtime.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
runtime.envVarsDefault value: None
Allows you to supply additional env variables to the runtime component in a key-value pair:
runtime:
envVars:
KEY_1: VALUE_N
... ...
KEY_N: VALUE_Nfor example:
runtime:
envVars:
RUNTIME_ENV_VAR1: "value of runtime env-var 1"
RUNTIME_ENV_VAR2: "value of runtime env-var 2"runtime.hpaBehavior.scaleDown.percent.periodSecondsDefault value: 60
The window of time for which the policy should hold true when scaling down a percentage of runtime instances.
runtime.hpaBehavior.scaleDown.percent.valueDefault value: 20
The amount of change which is permitted by the policy when scaling down a percentage of runtime instances.
runtime.hpaBehavior.scaleDown.pods.periodSecondsDefault value: 60
The window of time for which the policy should hold true when scaling down a number of runtime instances.
runtime.hpaBehavior.scaleDown.pods.valueDefault value: 20
The amount of change which is permitted by the policy when scaling down a number of runtime instances.
runtime.hpaBehavior.scaleDown.selectPolicyDefault value: Min
The decision that autoscaler makes between multiple autoscaling policies. Set the value to Min allows the smallest change in scaling down runtime instances. Set the value to Max allows the largest change in scaling down runtime instances.
runtime.hpaBehavior.scaleDown.stabilizationWindowSecondsDefault value: 120
The number of seconds for which past recommendations should be considered while scaling down.
runtime.hpaBehavior.scaleUp.percent.periodSecondsDefault value: 60
The window of time for which the policy should hold true when scaling up a percentage of runtime instances.
runtime.hpaBehavior.scaleUp.percent.valueDefault value: 20
The window of time for which the policy should hold true when scaling up a percentage of runtime instances.
runtime.hpaBehavior.scaleUp.pods.periodSecondsDefault value: 60
The window of time for which the policy should hold true when scaling up a number of runtime instances.
runtime.hpaBehavior.scaleUp.pods.valueDefault value: 4
The amount of change which is permitted by the policy when scaling up a number of runtime instances.
runtime.hpaBehavior.scaleUp.selectPolicyDefault value: Max
The decision that autoscaler makes between multiple autoscaling policies. Set the value to Min allows the smallest change in scaling up runtime instances. Set the value to Maxallows the largest change in scaling up runtime instances.
runtime.hpaBehavior.scaleUp.stabilizationWindowSecondsDefault value: 30
The number of seconds for which past recommendations should be considered while scaling up runtime instances.
runtime.hpaMetrics.serverMainTaskWaitTimeDefault value: 400M
The desired average wait time (in ms) of processing queue in runtime instances for proxy requests at the http layer.
runtime.hpaMetrics.serverNioTaskWaitTimeDefault value: 400M
The desired average wait time (in ms) of processing queue in runtime instances for proxy requests to process policies.
runtime.hpaMetrics.targetCPUUtilizationPercentageDefault value: 75
The desired CPU utilization percentage across all runtime instances.
runtime.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
runtime.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
runtime.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
runtime.livenessProbe.failureThresholdDefault value: 2
The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1.
runtime.livenessProbe.initialDelaySecondsDefault value: 60
The number of seconds after a container is started before a liveness probe is initiated.
runtime.livenessProbe.periodSecondsDefault value: 5
Determines how often to perform a liveness probe, in seconds. The minimum value is 1.
runtime.livenessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
runtime.nodeSelector.keyDefault value: None
Optional Node selector label key for targeting Kubernetes nodes for runtime services.
runtime.nodeSelector.valueDefault value: None
Node selector label value for targeting Kubernetes nodes for runtime services.
runtime.readinessProbe.failureThresholdDefault value: 2
The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1.
runtime.readinessProbe.initialDelaySecondsDefault value: 60
The number of seconds after a container is started before a readiness probe is initiated.
runtime.readinessProbe.periodSecondsDefault value: 5
Determines how often to perform a readiness probe, in seconds. The minimum value is 1.
runtime.readinessProbe.successThresholdDefault value: 1
The minimum consecutive successes needed for a readiness probe to be considered successful after a failure. The minimum value is 1.
runtime.readinessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
runtime.replicaCountMaxDefault value: 4
Maximum number of replicas available for autoscaling.
runtime.replicaCountMinDefault value: 1
Minimum number of replicas available for autoscaling.
runtime.resources.limits.cpuDefault value: 4000m
runtime.resources.limits.memoryDefault value: 6Gi
The memory limit for the resource in a Kubernetes container, in mebibytes.
runtime.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
runtime.resources.requests.memoryDefault value: 512Mi (see note below)
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes
(Mi) or Gibibytes (Gi).
runtime.service.typeDefault value: ClusterIP
The type of service. You can set this to a service other than ClusterIP; for example,
LoadBalancer.
runtime.targetCPUUtilizationPercentageDefault value: 75
Target CPU utilization for the runtime process on the pod. The
value of this field enables the runtime to auto-scale when CPU utilization
reaches this value, up to replicaCountMax.
runtime.terminationGracePeriodSecondsDefault value: 180
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
runtime.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
runtime.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
runtime.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
runtime.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
runtime.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
synchronizerEnsures that the Message Processors are kept up to date with the latest deployed API proxy bundles. To do this, the Synchronizer polls the management plane; when a new contract is detected, the Synchronizer sends it to the runtime plane. By default, Synchronizer stores environment configuration data in Cassandra.
For more information, see Configure the Synchronizer.
The following table describes the properties of the synchronizer object:
synchronizer.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
synchronizer.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
synchronizer.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
synchronizer.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
synchronizer.livenessProbe.failureThresholdDefault value: 2
The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1.
synchronizer.livenessProbe.initialDelaySecondsDefault value: 0
The number of seconds after a container is started before a liveness probe is initiated.
synchronizer.livenessProbe.periodSecondsDefault value: 5
Determines how often to perform a liveness probe, in seconds. The minimum value is 1.
synchronizer.livenessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
synchronizer.nodeSelector.keyDefault value: None
Required
Optional node selector label key for targeting Kubernetes nodes for synchronizer
runtime services.
See nodeSelector.
synchronizer.nodeSelector.valueDefault value: None
Optional node selector label value used for targeting Kubernetes nodes for synchronizer
runtime services.
See nodeSelector.
synchronizer.pollIntervalDefault value: 60
The length of time that Synchronizer waits between polling operations. Synchronizer polls Apigee control plane services to detect and pull new runtime contracts.
synchronizer.readinessProbe.failureThresholdDefault value: 2
The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1.
synchronizer.readinessProbe.initialDelaySecondsDefault value: 0
The number of seconds after a container is started before a readiness probe is initiated.
synchronizer.readinessProbe.periodSecondsDefault value: 5
Determines how often to perform a readiness probe, in seconds. The minimum value is 1.
synchronizer.readinessProbe.successThresholdDefault value: 1
The minimum consecutive successes needed for a readiness probe to be considered successful after a failure. The minimum value is 1.
synchronizer.readinessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
synchronizer.replicaCountDeprecated: Starting in Hybrid version 1.2, manage the Synchronizer replica
count with:
synchronizer.replicaCountMax and
synchronizer.replicaCountMin
synchronizer.replicaCountMaxDefault value: 4
Maximum number of replicas for autoscaling.
synchronizer.replicaCountMinDefault value: 1
Minimum number of replicas for autoscaling.
synchronizer.resources.limits.cpuDefault value: 2000m
synchronizer.resources.limits.memoryDefault value: 5Gi
The memory limit for the resource in a Kubernetes container, in mebibytes.
synchronizer.resources.requests.cpuDefault value: 100m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
synchronizer.resources.requests.memoryDefault value: 1Gi
The memory needed for normal operation of the resource in a Kubernetes container, in gigabytes.
synchronizer.serviceAccountPathDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
Path to Google Service Account key file with Apigee Synchronizer Manager role.
synchronizer.serviceAccountRefDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
synchronizer.serviceAccountSecretDefault value: None
The name of a Kubernetes secret. You must create the secret using a Google Service Account key with the Apigee Synchronizer Manager role as its input.
synchronizer.targetCPUUtilizationPercentageDefault value: 75
Target CPU utilization for the Synchronizer process on the pod. The
value of this field enables Synchronizer to auto-scale when CPU utilization
reaches this value, up to replicaCountMax.
synchronizer.terminationGracePeriodSecondsDefault value: 30
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
synchronizer.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
synchronizer.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
synchronizer.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
synchronizer.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
synchronizer.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
udca(Universal Data Collection Agent) Defines the service that runs within the data collection pod in the runtime plane. This service extracts analytics and deployment status data and sends it to the Unified Analytics Platform (UAP).
For more information, see Analytics and deployment status data collection.
The following table describes the properties of the udca object:
udca.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
udca.fluentd.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
udca.fluentd.image.tagDefault value: 1.9.12-2
The version label for this service's Docker image.
udca.fluentd.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent
The location of the Docker image for this service.
udca.fluentd.resources.limits.cpuDefault value: 1000m
udca.fluentd.resources.limits.memoryDefault value: 500Mi
udca.fluentd.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
udca.fluentd.resources.requests.memoryDefault value: 250Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
udca.gsaDefault value: None
Helm only: The email address of the apigee-udca Google IAM
service account (GSA) to associate with the corresponding Kubernetes service account when
enabling Workload Identity on GKE clusters using Helm charts. Set this when you have set
gcp.workloadIdentity.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-udca@my-hybrid-project.iam.gserviceaccount.com
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
udca.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
udca.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
udca.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
udca.jvmXmsDeprecated: Starting in Hybrid version 1.8, udca.jvmXms is no
longer used.
udca.jvmXmxDeprecated: Starting in Hybrid version 1.8, udca.jvmXmx is no
longer used.
udca.livenessProbe.failureThresholdDefault value: 2
The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1.
udca.livenessProbe.initialDelaySecondsDefault value: 0
The number of seconds after a container is started before a liveness probe is initiated.
udca.livenessProbe.periodSecondsDefault value: 5
Determines how often to perform a liveness probe, in seconds. The minimum value is 1.
udca.livenessProbe.timeoutSecondsDefault value: 1
The number of seconds after which a liveness probe times out. The minimum value is 1.
udca.nodeSelector.keyDefault value: None
Required
Node selector label key used to target dedicated Kubernetes nodes for udca runtime services.
udca.nodeSelector.valueDefault value: None
Required
Node selector label value used to target dedicated Kubernetes nodes for udca runtime services.
udca.pollingIntervalInSecDefault value: 1
The length of time, in seconds, that UDCA waits between polling operations. UDCA polls the data directory on the data collection pod's file system to detect new files to be uploaded.
udca.replicaCountMaxDefault value: 4
The maximum number of pods that hybrid can automatically add for the UDCA deployment. Because UDCA is implemented as a ReplicaSet, the pods are replicas.
It is recommended to set udca.replicaCountMax to a maximum number of replicas
per environment times the number of environments in your Apigee org. For example, if you
want to allow at most 4 replicas per environment and you have 3 environments, set
udca.replicaCountMax: 12.
udca.replicaCountMinDefault value: 1
The minimum number of pods for the UDCA deployment. Because UDCA is implemented as a ReplicaSet, the pods are replicas.
If the CPU usage goes above udca.targetCPUUtilizationPercentage,
then hybrid will gradually increase the number of pods, up to
udca.replicaCountMax.
udca.resources.limits.cpuDefault value: 1000m
udca.resources.limits.memoryDefault value: 2Gi
The memory limit for the resource in a Kubernetes container, in mebibytes.
udca.resources.requests.cpuDefault value: 250m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
udca.resources.requests.memoryDefault value: 250Mi
The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes.
udca.revisionDefault value: v1
A static value that is populated in a label to enable canary deployments.
udca.serviceAccountPathDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
Path to Google Service Account key file with Apigee Analytics Agent role.
udca.serviceAccountRefDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
udca.targetCPUUtilizationPercentageDefault value: 75
The threshold of CPU usage for scaling the number of pods in the ReplicaSet, as a percentage of total available CPU resources. Hybrid uses the combined utilization of all containers in the data collection pod (both fluentd and UDCA) to calculate the current utilization.
When CPU usage goes above this value, then hybrid will gradually
increase the number of pods in the ReplicaSet, up to
udca.replicaCountMax.
udca.terminationGracePeriodSecondsDefault value: 600
The time between a request for pod deletion and when the pod is killed, in seconds. During this period, any prestop hooks will be executed and any running process should terminate gracefully.
udca.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
udca.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
udca.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
udca.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
udca.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
virtualhosts
The virtualhosts property is a required configuration property.
Virtual hosts allow Apigee hybrid to handle API requests to a
specified environment group..
For more information, see Configure virtual hosts.
The following table describes the properties of the virtualhosts object:
virtualhosts[].additionalGatewaysDefault value: None
A list of Istio Gateways to route traffic to.
virtualhosts[].cipherSuites[]Default value: None
This property configures the TLS ciphers used in the ingress gateway. Below is a list of the ciphers enabled by default in OpenSSL format. You can find more information about the supported ciphers in the documentation for the Boring FIPS build of Envoy. A blank value defaults to the cipher suites supported by the Boring FIPS build of Envoy.
TLS v1.3:
| Enabled by default | Additional ciphersuites |
|---|---|
|
TLS 1.3 ciperhsuites cannot be overridden. |
TLS v1.2:
| Enabled by default | Additional ciphersuites |
|---|---|
|
|
TLS v1.1:
| Enabled by default | Additional ciphersuites |
|---|---|
| TLS v1.1 is not enabled by default. |
|
To enable more ciphersuites, add them to the virtualhosts.cipherSuites property along with the TLS version you want to enable them for in the virtualhosts.minTLSProtocolVersion property. For example, to enable all accepted TLS v.1.2 ciphersuites, add the following to your virtualhosts configuration:
virtualhosts: - name: ENV_GROUP_NAME minTLSProtocolVersion: "1.2" cipherSuites: - "AES128-GCM-SHA256" - "AES128-SHA" - "AES256-GCM-SHA384" - "AES256-SHA" - "ECDHE-ECDSA-AES128-GCM-SHA256" - "ECDHE-ECDSA-AES128-SHA" - "ECDHE-ECDSA-AES256-GCM-SHA384" - "ECDHE-ECDSA-AES256-SHA" - "ECDHE-ECDSA-CHACHA20-POLY1305" - "ECDHE-RSA-AES128-GCM-SHA256" - "ECDHE-RSA-AES128-SHA" - "ECDHE-RSA-AES256-GCM-SHA384" - "ECDHE-RSA-AES256-SHA" - "ECDHE-RSA-CHACHA20-POLY1305" ...
If you want to enable older versions of TLS in your Apigee ingress gateway deployment, use the virtualhosts.minTLSProtocolVersion and virtualhosts.cipherSuites properties.
For example, to enable TLS v.1.1:
virtualhosts: - name: ENV_GROUP_NAME minTLSProtocolVersion: "1.1" cipherSuites: - "ECDHE-ECDSA-AES128-GCM-SHA256" - "ECDHE-RSA-AES128-GCM-SHA256" - "ECDHE-ECDSA-AES256-GCM-SHA384" - "ECDHE-RSA-AES256-GCM-SHA384" - "ECDHE-ECDSA-CHACHA20-POLY1305" - "ECDHE-RSA-CHACHA20-POLY1305" - "ECDHE-ECDSA-AES128-SHA" - "ECDHE-RSA-AES128-SHA" - "ECDHE-ECDSA-AES256-SHA" - "ECDHE-RSA-AES256-SHA" ...
virtualhosts[].nameDefault value: None
Required
The name of the virtual host.
virtualhosts[].maxTLSProtocolVersionDefault value: None
The maximum version of the TLS protocol Envoy can select. Envoy automatically uses the
optimal TLS protocol version between virtualhosts[].minTLSProtocolVersion and
virtualhosts[].maxTLSProtocolVersion.
The value must be in the form of a number. For example:
virtualhosts: - name: default maxTLSProtocolVersion: "1.3"
Where the number represents the TLS version number in the form #.#. In
the example above, "1.3" represents the Istio TLS version TLSV1_3.
See also
ServerTLSSettings.TLSProtocol
in the Istio documentation.
virtualhosts[].minTLSProtocolVersionDefault value: None
The minimum version of the TLS protocol Envoy can select. Envoy automatically uses the
optimal TLS protocol version between virtualhosts[].minTLSProtocolVersion and
virtualhosts[].maxTLSProtocolVersion.
The value must be in the form of a number. For example:
virtualhosts: - name: default minTLSProtocolVersion: "1.2"
Where the number represents the TLS version number in the form #.#. In
the example above, 1.2 represents the Istio TLS version TLSV1_2.
See also
ServerTLSSettings.TLSProtocol
in the Istio documentation.
virtualhosts[].selectorDefault value: app: apigee-ingressgateway
Required
A key-value selector-value pair for pointing to different ingress selectors.
apigee-ingressgateway: for Apigee hybrid installations using
Apigee ingress gateway.istio-ingressgateway: for Apigee hybrid installations using
Cloud Service Mesh (Apigee hybrid versions 1.8 and earlier).If no selector label is supplied, the configuration is supplied to Apigee ingress gateway.
virtualhosts[].sslCertPathDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
The path on your system to a TLS certificate file.
Note: For each configured environment, the Common Name (CN) in the cert must match the domain in thehostAliases[] property. For example, if the CN is
*.example.com, the hostAliases[] could be foo.example.com
or bar.example.com.
virtualhosts[].sslKeyPathDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
The path on your system to the TLS private key file.
virtualhosts[].sslSecretDefault value: None
Either sslCertPath/sslKeyPath or sslSecret
is required.
The name of a file stored in a Kubernetes secret that contains the TLS certificate and private key. You must create the secret using the TLS certificate and key data as its input.
See also:
watcherThe watcher property is a required configuration property.
The watcher is a process that watches for configuration changes and triggers their application to
the runtime plane.
The following table describes the properties of the watcher object:
watcher.annotationsDefault value: None
Optional key/value map used to annotate pods. For more information, see Custom annotations.
watcher.args.enableIssueScanningDefault value: true
Enables or disables Automated issue surfacing. When true, Watcher automatically
scans the control plane and Kubernetes API server state to determine if there are any
configuration issues.
Set to false to disable Automated issue surfacing. For more information, see
Automated issue surfacing.
watcher.args.enableLeaderElectDefault value: true
When true (the default) watcher.args.enableLeaderElect
selects a single watcher pod to manage and report the routing information. Limiting this to a single pod is
required to prevent downtime during upgrades or rollback. During these events, multiple versions of watcher
can be running simultaneously. Each Watcher instance may have different route creation logic, which can cause
downtime.watcher.replicaCountMax.
watcher.args.issueScanIntervalDefault value: 60
The interval in seconds for how often Watcher scans the runtime plane for automated issue surfacing. For more information, see Automated issue surfacing.
watcher.gsaDefault value: None
Helm only: The email address of the apigee-watcher Google IAM
service account (GSA) to associate with the corresponding Kubernetes service account when
enabling Workload Identity on GKE clusters using Helm charts. Set this when you have set
gcp.workloadIdentity.enabled to
true.
GSA email addresses typically have the format of:
GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
For example:
apigee-watcher@my-hybrid-project.iam.gserviceaccount.com
See Enabling Workload Identity on GKE or Enabling Workload Identity Federation on AKS and EKS.
watcher.image.pullPolicyDefault value: IfNotPresent
Determines when kubelet pulls the pod's Docker image. Possible values include:
IfNotPresent: Do not pull a new image if it already exists.Always: Always pull the image, regardless of whether it exists already.For more information, see Updating images.
watcher.image.tagDefault value: 1.13.4
The version label for this service's Docker image.
watcher.image.urlDefault value: None
The location of the Docker image for this service.
Use apigee-pull-push --list to see the current repository URL for this component.
watcher.replicaCountMaxDefault value: 1
The maximum number of watcher replicas. This should be kept at
1 to avoid conflicts.
Apigee hybrid uses one watcher pod per installation. Leader election automatically selects one watcher pod. Additional watcher pod replicas will be forced into an unstable state. See watcher.args.enableLeaderElect.
watcher.replicaCountMinDefault value: 1
The minimum number of watcher replicas.
watcher.resources.limits.cpuDefault value: 1000m
watcher.resources.limits.memoryDefault value: 2Gi
The memory limit for the resource in a Kubernetes container, in mebibytes.
watcher.serviceAccountPathDefault value: None
Required.
Path to Google Service Account key file with Apigee Runtime Agent role.
watcher.serviceAccountRefDefault value: None
One of either serviceAccountPath or serviceAccountRef is required.
watcher.tolerations.effectDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
effect specifies the effect that matching a toleration with a taint will have. Values for effect can be:
NoExecuteNoSchedulePreferNoScheduleSee Taints and Tolerations: Concepts for details.
watcher.tolerations.keyDefault value: None
Required to use the Taints and Tolerations feature of Kubernetes.
key identifies pods to which the toleration can be applied.
See Taints and Tolerations: Concepts for details.
watcher.tolerations.operatorDefault value: "Equal"
Required to use the Taints and Tolerations feature of Kubernetes.
operator specifies the operation used to trigger the
effect. Values for
operator can be:
See Taints and Tolerations: Concepts for details.
watcher.tolerations.tolerationSecondsDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
tolerationSeconds defines in seconds how long a pod stays bound to a failing or
unresponsive node.
See Taints and Tolerations: Concepts for details.
watcher.tolerations.valueDefault value: None
Used by the Taints and Tolerations feature of Kubernetes.
value is the value that triggers the
effect when
operator is set to
Equal.
See Taints and Tolerations: Concepts for details.
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-07-23 UTC.