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.
The 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 | Description |
|---|---|
axHashSalt |
Introduced in version: 1.3.0 Default value: Your organization name Optional The name of a Kubernetes secret that contains a hashing salt value used to encrypt obfuscated user data sent to Apigee analytics. If you do not specify a salt value, your organization name is used by default. Create the secret with the salt value as its input. You can use the same salt across multiple clusters to ensure consistent hashing results between the clusters. |
contractProvider |
Introduced in version: 1.0.0
Default value: Defines the API path for all APIs in your installation. |
gcpProjectID |
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 |
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 |
imagePullSecrets.name |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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. |
namespace |
Introduced in version: 1.0.0
Default value: The namespace of your Kubernetes cluster where the Apigee components will be installed. |
org |
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. |
revision |
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. |
validateServiceAccounts |
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 the ApigeeDeployment (AD). For example, the controller carries out the release of message processors. Also validates the ApigeeDeployment configuration before persisting it in Kubernetes cluster.
The following table describes the properties of the apigee-operators ao object:
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.3.6
The version label for this service's Docker image.
ao.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-operators
The location of the Docker image for this service.
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.
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.
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.3.6
The version label for this service's Docker image.
cassandra.auth.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client
The location of the Docker image for this service.
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 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:
cassandra.backup.cloudProviderDefault value: GCP
Required if backup is enabled.
Cloud provider for backup storage.
You can set the value to either GCP or
HYBRID. Set the value to GCP if you want to store the
backup on Google Cloud Storage, and HYBRID if you want to store the
backup on a remote server.
cassandra.backup.dbStorageBucketDefault value: None
Required if backup is enabled.
Cloud storage bucket for the backup data.
cassandra.backup.enabledDefault value: false
Data backup is not enabled by default. To enable, set to true.
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.3.6
The version label for this service's Docker image.
cassandra.backup.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility
The location of the Docker image for this service.
cassandra.backup.scheduleDefault value: 0 2 * * *
The schedule for the cron job.
cassandra.backup.serviceAccountPathDefault value: None
One of either backup.serviceAccountPath or backup.serviceAccountRef is required
if backup is enabled.
Path to Google Service Account key file with Storage Object Admin role.
cassandra.backup.serviceAccountRefDefault value: None
One of either backup.serviceAccountPath or backup.serviceAccountRef is required
if backup is enabled.
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 betweem clusters (the clusters are
running in "island network mode"), which is the default case in non-GKE installations,
including GKE on-prem, GKE on AWS, Anthos on bare metal, 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 GKE On-prem,
GKE on AWS, Anthos on bare metal, 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.3.6
The version label for this service's Docker image.
cassandra.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra
The location of the Docker image for this service.
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
Required if restore is enabled.
Cloud provider for backup storage.
cassandra.restore.dbStorageBucketDefault value: None
Required if restore is enabled.
Cloud storage bucket for the backup data to restore.
cassandra.restore.enabledDefault value: false
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.3.6
The version label for this service's Docker image.
cassandra.restore.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility
The location of the Docker image for this service.
cassandra.restore.serviceAccountPathDefault value: None
One of either restore.serviceAccountPath or restore.serviceAccountRef
is required if restore is enabled.
Path to Google Service Account key file with Storage Object Admin role.
cassandra.restore.serviceAccountRefDefault value: None
One of either restore.serviceAccountPath or restore.serviceAccountRef
is required if restore is enabled.
cassandra.restore.snapshotTimestampDefault value: None
Required if restore is enabled.
Timestamp of the backup that should be restored.
cassandra.restore.userDefault value: admin account
Cassandra username used for schema backup restoration. If not specified, the admin user will be used.
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: 50Gi
Required if storage.storageclass is specified
Specifies the disk size required, in mebibytes.
cassandra.storage.storageclassDefault value: None
Specifies the class of on-prem storage being used.
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.
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.
See Apigee Connect.
The following table describes the properties of the connectAgent object:
| Property | Description |
|---|---|
connectAgent.annotations |
Introduced in version: 1.5.0
Default value: None Optional key/value map used to annotate pods. For more information, see Custom annotations. |
connectAgent.server |
Introduced in version: 1.2.0
Default value: The location of the server and port for this service. |
connectAgent.logLevel |
Introduced in version: 1.2.0
Default value: The level of log reporting. Values can be:
|
connectAgent.image.pullPolicy |
Introduced in version: 1.2.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
connectAgent.image.tag |
Introduced in version: 1.2.0
Default value: The version label for this service's Docker image. |
connectAgent.image.url |
Introduced in version: 1.2.0
Default value: The location of the Docker image for this service. Check the |
connectAgent.replicaCountMax |
Introduced in version: 1.2.0
Default value: Maximum number of replicas available for autoscaling. |
connectAgent.replicaCountMin |
Introduced in version: 1.2.0
Default value: Minimum number of replicas available for autoscaling. In production, you may want to increase |
connectAgent.resources.requests.cpu |
Introduced in version: 1.0.0
Default value: The CPU needed for normal operation of the resource in a Kubernetes container, in millicores. |
connectAgent.resources.requests.memory |
Introduced in version: 1.0.0
Default value: The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes. |
connectAgent.targetCPUUtilizationPercentage |
Introduced in version: 1.2.0
Default value: 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 |
connectAgent.terminationGracePeriodSeconds |
Introduced in version: 1.2.0
Default value: 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. |
defaultsThe Default encryption keys for the Apigee hybrid installation.
The following table describes the properties of the defaults object:
| Property | Description |
|---|---|
defaults.org.kmsEncryptionKey |
Introduced in version: 1.0.0
Default value: Default encryption key for the org in KMS. |
defaults.org.kvmEncryptionKey |
Introduced in version: 1.0.0
Default value: Default encryption key for the org in KVM. |
defaults.env.kmsEncryptionKey |
Introduced in version: 1.0.0
Default value: Default encryption key for the environment (env) in KMS. |
defaults.env.kvmEncryptionKey |
Introduced in version: 1.0.0
Default value: Default encryption key for the environment (env) in KVM. |
defaults.env.cacheEncryptionKey |
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 | Description |
|---|---|
diagnostic.bucket |
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 |
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 |
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[] |
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 |
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 |
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 |
Introduced in version: 1.6.0
Default value: None Required Specifies whether to collect all statistics or just logs. Values are:
|
diagnostic.podNames[] |
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 |
Introduced in version: 1.6.0
Default value: None Required The path to a service account key file ( See: |
diagnostic.tcpDumpDetails.maxMsgs |
Introduced in version: 1.6.0
Default value: None One of either
Sets the maximum number of |
diagnostic.tcpDumpDetails.timeoutInSeconds |
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 |
Introduced in version: 1.6.0
Default value: None Both
The delay in seconds between collecting each thread dump. |
diagnostic.threadDumpDetails.iterations |
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[].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: None
Specifies the type of the HTTP proxy as HTTP or HTTPS. By default, it uses "HTTP".
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.
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.
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 and region where the apigee-logger
and the apigee-metrics push their data.
The following table describes the properties of the gcp object:
| Property | Description |
|---|---|
gcp.region |
Introduced in version: 1.2.0
Default value: None Required Identifies the Google Cloud region
where the |
gcp.projectID |
Introduced in version: 1.2.0
Default value: None Required Identifies the Google Cloud project where |
gcp.projectIDRuntime |
Introduced in version: 1.2.0
Default value: None Identifies the runtime Kubernetes cluster project. The |
httpProxyhttpProxy provides configuration parameters for an HTTP forward proxy server. When
configured in overrides.yaml, all internet communication for the MART, Synchronizer, and UDCA
components pass through the proxy server.
See also: logger, mart, metrics, synchronizer, and udca.
The following table describes the properties of the httpProxy object:
| Property | Description |
|---|---|
httpProxy.host |
Introduced in version: 1.1.1
Default value: None The hostname of the HTTP Proxy. |
httpProxy.port |
Introduced in version: 1.1.1
Default value: None The port of the HTTP Proxy. |
httpProxy.scheme |
Introduced in version: 1.1.1
Default value: The scheme used by the proxy. Values can be |
k8sClusterIdentifies Kubernetes cluster where the hybrid runtime is installed.
The following table describes the properties of the k8sCluster object:
| Property | Description |
|---|---|
k8sCluster.name |
Introduced in version: 1.2.0
Default value: None The name of the Kubernetes cluster where the hybrid runtime is installed. |
k8sCluster.region |
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:
| Property | Description |
|---|---|
kubeRBACProxy.image.pullPolicy |
Introduced in version: 1.2.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
kubeRBACProxy.image.tag |
Introduced in version: 1.2.0
Default value: The version label for this service's Docker image. |
kubeRBACProxy.image.url |
Introduced in version: 1.2.0
Default value: The location of the Docker image for this service. If you do not want to use the Google Docker Hub, download the images and use the address where your docker images are hosted internally. |
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.enabledDefault value: false
Enables or disables logging on the cluster. For non-GKE set to true, for
Anthos or GKE set to false.
logger.fluentd.buffer_chunk_limitDefault value: 512k
The maximum size of a buffer chunk allowed, in kilobytes. Chunks exceeding the limit will be flushed to the output queue automatically.
logger.fluentd.buffer_queue_limitDefault value: 6
The maximum length of the output queue. The default limit is 256 chunks.
logger.fluentd.flush_intervalDefault value: 5s
The interval to wait before invoking the next buffer flush, in seconds.
logger.fluentd.max_retry_waitDefault value: 30
The maximum interval between write retries, in seconds.
logger.fluentd.num_threadsDefault value: 2
The number of threads used to flush the buffer. The default is 1.
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.8.9
The version label for this service's Docker image.
logger.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent
The location of the Docker image for this service.
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.proxyURLDefault value: None
URL of the customer's proxy server.
logger.resources.limits.memoryDefault value: 500Mi
logger.resources.limits.cpuDefault value: 200m
The CPU limit for the resource in a Kubernetes container, in millicores.
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.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.
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.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.3.6
The version label for this service's Docker image.
mart.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-mart-server
The location of the Docker image for this service. Check the values.yaml file
for the specific URL.You can override this.
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.metricsURLDefault value: /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.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.
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.aggregator.resources.requests.cpuDefault value: 500m
The CPU needed for normal operation of the aggregator in a Kubernetes container, in millicores.
metrics.aggregator.resources.requests.memoryDefault value: 512Mi
The memory needed for normal operation of the aggregator in a Kubernetes container, in mebibytes.
metrics.aggregator.resources.limits.cpuDefault value: 500m
The CPU limit for the aggregator resource in a Kubernetes container, in millicores.
metrics.aggregator.resources.limits.memoryDefault value: 3Gi
The memory limit for the aggregator resource in a Kubernetes container, in gibibytes.
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.enabledDefault value: true
Enables Apigee metrics. Set to true to enable metrics. Set to
false to disable metrics.
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.args.storage_tsdb_retentionDefault value: 48h
The amount of time Prometheus waits before removing old data from local storage, in hours.
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.9.2
The version label for this service's Docker image.
metrics.prometheus.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-prom-prometheus
The location of the Docker image for this service.
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.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 Operations 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: 0.9.0
The version label for this service's Docker image.
metrics.sdSidecar.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-stackdriver-prometheus-sidecar
The location of the Docker image for this service.
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.7, metrics:stackdriverExporter
has been replaced with metrics:appStackdriverExporter and
metrics:proxyStackdriverExporter. See:
metrics.stackdriverExporter.resources.requests.memoryDeprecated: Starting in Hybrid version 1.7, metrics:stackdriverExporter
has been replaced with metrics:appStackdriverExporter and
metrics:proxyStackdriverExporter. See:
metrics.stackdriverExporter.resources.limits.cpuDeprecated: Starting in Hybrid version 1.7, metrics:stackdriverExporter
has been replaced with metrics:appStackdriverExporter and
metrics:proxyStackdriverExporter. See:
metrics.stackdriverExporter.resources.limits.memoryDeprecated: Starting in Hybrid version 1.7, 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.
nodeSelectorThe nodeSelector object defines the node for your Apigee instance. Behind the scenes
when apigeectl runs, it is taking care to map the label key/value for
apigeeRuntime and apigeeData to the individual Istio and MART components.
You can override this for individual objects in the mart:nodeSelector property.
The following table describes the properties of the nodeSelector object:
| Property | Description |
|---|---|
nodeSelector.apigeeData.key |
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 |
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 |
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 |
Introduced in version: 1.0.0
Default value:
|
nodeSelector.requiredForScheduling |
Introduced in version: 1.0.0
Default value: false The
For production, |
redisThe following table describes the properties of the redis object:
| Property | Description |
|---|---|
redis.auth.password |
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.replicaCount |
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 |
Introduced in version: 1.6.0
Default value: The CPU needed for normal operation of the resource in a Kubernetes container, in millicores. |
runtimeThe following table describes the properties of the runtime object:
| Property | Description |
|---|---|
runtime.annotations |
Introduced in version: 1.5.0
Default value: None Optional key/value map used to annotate pods. For more information, see Custom annotations. |
runtime.image.pullPolicy |
Introduced in version: 1.0.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
runtime.image.tag |
Introduced in version: 1.0.0
Default value: The version label for this service's Docker image. |
runtime.image.url |
Introduced in version: 1.0.0
Default value: URL to your installation's image resource, for example:
The location of the Docker image for this service. |
runtime.livenessProbe.failureThreshold |
Introduced in version: 1.0.0
Default value: The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1. |
runtime.livenessProbe.initialDelaySeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after a container is started before a liveness probe is initiated. |
runtime.livenessProbe.periodSeconds |
Introduced in version: 1.0.0
Default value: Determines how often to perform a liveness probe, in seconds. The minimum value is 1. |
runtime.livenessProbe.timeoutSeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after which a liveness probe times out. The minimum value is 1. |
runtime.nodeSelector.key |
Introduced in version: 1.0.0
Default value: None Optional Node selector label key for targeting Kubernetes nodes for |
runtime.nodeSelector.value |
Introduced in version: 1.0.0
Default value: None Node selector label value for targeting Kubernetes nodes for |
runtime.readinessProbe.failureThreshold |
Introduced in version: 1.0.0
Default value: The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1. |
runtime.readinessProbe.initialDelaySeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after a container is started before a readiness probe is initiated. |
runtime.readinessProbe.periodSeconds |
Introduced in version: 1.0.0
Default value: Determines how often to perform a readiness probe, in seconds. The minimum value is 1. |
runtime.readinessProbe.successThreshold |
Introduced in version: 1.0.0
Default value: The minimum consecutive successes needed for a readiness probe to be considered successful after a failure. The minimum value is 1. |
runtime.readinessProbe.timeoutSeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after which a liveness probe times out. The minimum value is 1. |
runtime.replicaCountMax |
Introduced in version: 1.0.0
Default value: Maximum number of replicas available for autoscaling. |
runtime.replicaCountMin |
Introduced in version: 1.0.0
Default value: Minimum number of replicas available for autoscaling. |
runtime.resources.requests.cpu |
Introduced in version: 1.0.0
Default value: The CPU needed for normal operation of the resource in a Kubernetes container, in millicores. |
runtime.resources.requests.memory |
Introduced in version: 1.0.0
Default value: The memory needed for normal operation of the resource in a Kubernetes container, in mebibytes
( |
runtime.service.type |
Introduced in version: 1.0.0
Default value: The type of service. You can set this to a service other than ClusterIP; for example,
|
runtime.targetCPUUtilizationPercentage |
Introduced in version: 1.0.0
Default value: 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 |
runtime.terminationGracePeriodSeconds |
Introduced in version: 1.0.0
Default value: 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. |
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:
| Property | Description |
|---|---|
synchronizer.annotations |
Introduced in version: 1.5.0
Default value: None Optional key/value map used to annotate pods. For more information, see Custom annotations. |
synchronizer.image.pullPolicy |
Introduced in version: 1.0.0
Default value: Determines when kubelet pulls the pod's Docker image. Possible values include:
For more information, see Updating images. |
synchronizer.image.tag |
Introduced in version: 1.0.0
Default value: The version label for this service's Docker image. |
synchronizer.image.url |
Introduced in version: 1.0.0
Default value: The location of the Docker image for this service. |
synchronizer.livenessProbe.failureThreshold |
Introduced in version: 1.0.0
Default value: The number of times Kubernetes will verify that liveness probes have failed before restarting the container. The minimum value is 1. |
synchronizer.livenessProbe.initialDelaySeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after a container is started before a liveness probe is initiated. |
synchronizer.livenessProbe.periodSeconds |
Introduced in version: 1.0.0
Default value: Determines how often to perform a liveness probe, in seconds. The minimum value is 1. |
synchronizer.livenessProbe.timeoutSeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after which a liveness probe times out. The minimum value is 1. |
synchronizer.nodeSelector.key |
Introduced in version: 1.0.0
Default value: None Required Optional node selector label key for targeting Kubernetes nodes for See nodeSelector. |
synchronizer.nodeSelector.value |
Introduced in version: 1.0.0
Default value: None Optional node selector label value used for targeting Kubernetes nodes for See nodeSelector. |
synchronizer.pollInterval |
Introduced in version: 1.0.0
Default value: 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.failureThreshold |
Introduced in version: 1.0.0
Default value: The number of times Kubernetes will verify that readiness probes have failed before marking the pod unready. The minimum value is 1. |
synchronizer.readinessProbe.initialDelaySeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after a container is started before a readiness probe is initiated. |
synchronizer.readinessProbe.periodSeconds |
Introduced in version: 1.0.0
Default value: Determines how often to perform a readiness probe, in seconds. The minimum value is 1. |
synchronizer.readinessProbe.successThreshold |
Introduced in version: 1.0.0
Default value: The minimum consecutive successes needed for a readiness probe to be considered successful after a failure. The minimum value is 1. |
synchronizer.readinessProbe.timeoutSeconds |
Introduced in version: 1.0.0
Default value: The number of seconds after which a liveness probe times out. The minimum value is 1. |
synchronizer.replicaCount |
Introduced in version: 1.0.0
Default value: Number of replicas for autoscaling. |
synchronizer.replicaCountMax |
Introduced in version: 1.2.0
Default value: Maximum number of replicas for autoscaling. |
synchronizer.replicaCountMin |
Introduced in version: 1.2.0
Default value: Minimum number of replicas for autoscaling. |
synchronizer.resources.requests.cpu |
Introduced in version: 1.0.0
Default value: The CPU needed for normal operation of the resource in a Kubernetes container, in millicores. |
synchronizer.resources.requests.memory |
Introduced in version: 1.0.0
Default value: The memory needed for normal operation of the resource in a Kubernetes container, in gigabytes. |
synchronizer.serviceAccountPath |
Introduced in version: 1.0.0
Default value: None One of either Path to Google Service Account key file with Apigee Synchronizer Manager role. |
synchronizer.serviceAccountRef |
Introduced in version: 1.2.0
Default value: None One of either |
synchronizer.targetCPUUtilizationPercentage |
Introduced in version: 1.0.0
Default value:
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 |
synchronizer.terminationGracePeriodSeconds |
Introduced in version: 1.0.0
Default value: 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(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.8.9
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.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.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.3.6
The version label for this service's Docker image.
udca.image.urlDefault value: gcr.io/apigee-release/hybrid/apigee-udca
The location of the Docker image for this service.
udca.jvmXmsDefault value: 256m
The starting amount of memory for the data collection pod's JVM.
udca.jvmXmxDefault value: 256m
The maximum allocation of memory for the data collection pod's JVM.
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.
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.requests.cpuDefault value: 250m
The CPU needed for normal operation of the resource in a Kubernetes container, in millicores.
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.
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[].nameDefault value: None
Required
The name of the virtual host.
virtualhosts[].hostAliases[]Default value: None
Required
Deprecated: Starting in Hybrid version 1.4 the runtime plane receives this information from the management plane. See About environments and environment groups.
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: istio-ingressgateway
Required
A key-value selector-value pair for pointing to different ingress selectors.
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:
watcher
The 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:
| Property | Description |
|---|---|
watcher.annotations |
Introduced in version: 1.5.0
Default value: None Optional key/value map used to annotate pods. For more information, see Custom annotations. |
watcher.replicaCountMax |
Introduced in version: 1.3.0
Default value: The maximum number of watcher replicas. This should be kept at
|
watcher.replicaCountMin |
Introduced in version: 1.3.0
Default value: The minimum number of watcher replicas. |
watcher.serviceAccountPath |
Introduced in version: 1.3.0
Default value: None Required. Path to Google Service Account key file with Apigee Runtime Agent role. |
watcher.serviceAccountRef |
Introduced in version: 1.3.0
Default value: None One of either serviceAccountPath or serviceAccountRef is required. |
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.