Service Mesh Operator API

Istio

Description
Istio represents an Istio Service Mesh deployment consisting of one or more control plane instances (represented by one or more IstioRevision objects). To deploy an Istio Service Mesh, a user creates an Istio object with the desired Istio version and configuration. The operator then creates an IstioRevision object, which in turn creates the underlying Deployment objects for istiod and other control plane components, similar to how a Deployment object in Kubernetes creates ReplicaSets that create the Pods.
Type
object

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

IstioSpec defines the desired state of Istio

statusobject

IstioStatus defines the observed state of Istio

.spec

Description
IstioSpec defines the desired state of Istio
Type
object
Required
namespaceversion
PropertyTypeDescription
namespacestring

Namespace to which the Istio components should be installed. Note that this field is immutable.

profilestring

The built-in installation configuration profile to use. The 'default' profile is always applied. On OpenShift, the 'openshift' profile is also applied on top of 'default'. Must be one of: ambient, default, demo, empty, openshift, openshift-ambient, preview, remote, stable.

updateStrategyobject

Defines the update strategy to use when the version in the Istio CR is updated.

valuesobject

Defines the values to be passed to the Helm charts when installing Istio.

versionstring

Defines the version of Istio to install. Must be one of: v1.26-latest, v1.26.3, v1.24-latest, v1.24.6.

.spec.updateStrategy

Description
Defines the update strategy to use when the version in the Istio CR is updated.
Type
object
PropertyTypeDescription
inactiveRevisionDeletionGracePeriodSecondsinteger

Defines how many seconds the operator should wait before removing a non-active revision after all the workloads have stopped using it. You may want to set this value on the order of minutes. The minimum is 0 and the default value is 30.

typestring

Type of strategy to use. Can be "InPlace" or "RevisionBased". When the "InPlace" strategy is used, the existing Istio control plane is updated in-place. The workloads therefore don't need to be moved from one control plane instance to another. When the "RevisionBased" strategy is used, a new Istio control plane instance is created for every change to the Istio.spec.version field. The old control plane remains in place until all workloads have been moved to the new control plane instance.

The "InPlace" strategy is the default. TODO: change default to "RevisionBased"

updateWorkloadsboolean

Defines whether the workloads should be moved from one control plane instance to another automatically. If updateWorkloads is true, the operator moves the workloads from the old control plane instance to the new one after the new control plane is ready. If updateWorkloads is false, the user must move the workloads manually by updating the istio.io/rev labels on the namespace and/or the pods. Defaults to false.

.spec.values

Description
Defines the values to be passed to the Helm charts when installing Istio.
Type
object
PropertyTypeDescription
baseobject

Configuration for the base component.

compatibilityVersionstring

Specifies the compatibility version to use. When this is set, the control plane will be configured with the same defaults as the specified version.

defaultRevisionstring

The name of the default revision in the cluster. Deprecated: This field is ignored. The default revision is expected to be configurable elsewhere.

experimental

Specifies experimental helm fields that could be removed or changed in the future

gatewayClassesstring

Configuration for Gateway Classes

globalobject

Global configuration for Istio components.

istiodRemoteobject

Configuration for istiod-remote. DEPRECATED - istiod-remote chart is removed and replaced with istio-discovery --set values.istiodRemote.enabled=true

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

meshConfigobject

Defines runtime configuration of components, including Istiod and istio-agent behavior. See https://istio.io/docs/reference/config/istio.mesh.v1alpha1/ for all available options.

pilotobject

Configuration for the Pilot component.

profilestring

Specifies which installation configuration profile to apply.

revisionstring

Identifies the revision this installation is associated with.

sidecarInjectorWebhookobject

Configuration for the sidecar injector webhook.

telemetryobject

Controls whether telemetry is exported for Pilot.

.spec.values.base

Description
Configuration for the base component.
Type
object
PropertyTypeDescription
excludedCRDsarray

CRDs to exclude. Requires enableCRDTemplates

validationCABundlestring

validation webhook CA bundle

validationURLstring

URL to use for validating webhook.

.spec.values.base.excludedCRDs

Description
CRDs to exclude. Requires `enableCRDTemplates`
Type
array

.spec.values.base.excludedCRDs[]

Type
string

.spec.values.global

Description
Global configuration for Istio components.
Type
object
PropertyTypeDescription
archobject

Specifies pod scheduling arch(amd64, ppc64le, s390x, arm64) and weight as follows:

0 - Never scheduled
1 - Least preferred
2 - No preference
3 - Most preferred

Deprecated: replaced by the affinity k8s settings which allows architecture nodeAffinity configuration of this behavior.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

caAddressstring

The address of the CA for CSR.

caNamestring

The name of the CA for workloads. For example, when caName=GkeWorkloadCertificate, GKE workload certificates will be used as the certificates for workloads. The default value is "" and when caName="", the CA will be configured by other mechanisms (e.g., environmental variable CA_PROVIDER).

certSignersarray

List of certSigners to allow "approve" action in the ClusterRole

configClusterboolean

Controls whether a remote cluster is the config cluster for an external istiod

configValidationboolean

Controls whether the server-side validation is enabled.

defaultNodeSelectorobject

Default k8s node selector for all the Istio control plane components

See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

defaultPodDisruptionBudgetobject

Specifies the default pod disruption budget configuration.

defaultResourcesobject

Default k8s resources settings for all Istio control plane components.

See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

defaultTolerationsarray

Default node tolerations to be applied to all deployments so that all pods can be scheduled to nodes with matching taints. Each component can overwrite these default values by adding its tolerations block in the relevant section below and setting the desired values. Configure this field in case that all pods of Istio control plane are expected to be scheduled to particular nodes with specified taints.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

externalIstiodboolean

Controls whether one external istiod is enabled.

hubstring

Specifies the docker hub for Istio images.

imagePullPolicystring

Specifies the image pull policy for the Istio images. one of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.

More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

imagePullSecretsarray

ImagePullSecrets for the control plane ServiceAccount, list of secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.

ipFamiliesarray

Defines which IP family to use for single stack or the order of IP families for dual-stack. Valid list items are "IPv4", "IPv6". More info: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services

ipFamilyPolicystring

Controls whether Services are configured to use IPv4, IPv6, or both. Valid options are PreferDualStack, RequireDualStack, and SingleStack. More info: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services

istioNamespacestring

Specifies the default namespace for the Istio control plane components.

istiodobject

Specifies the configution of istiod

jwtPolicystring

Configure the policy for validating JWT. This is deprecated and has no effect.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

logAsJsonboolean

Specifies whether istio components should output logs in json format by adding --log_as_json argument to each container.

loggingobject

Specifies the global logging level settings for the Istio control plane components.

meshIDstring

The Mesh Identifier. It should be unique within the scope where meshes will interact with each other, but it is not required to be globally/universally unique. For example, if any of the following are true, then two meshes must have different Mesh IDs:

  • Meshes will have their telemetry aggregated in one place
  • Meshes will be federated together
  • Policy will be written referencing one mesh from the other

If an administrator expects that any of these conditions may become true in the future, they should ensure their meshes have different Mesh IDs assigned.

Within a multicluster mesh, each cluster must be (manually or auto) configured to have the same Mesh ID value. If an existing cluster 'joins' a multicluster mesh, it will need to be migrated to the new mesh ID. Details of migration TBD, and it may be a disruptive operation to change the Mesh ID post-install.

If the mesh admin does not specify a value, Istio will use the value of the mesh's Trust Domain. The best practice is to select a proper Trust Domain value.

meshNetworksobject

Configure the mesh networks to be used by the Split Horizon EDS.

The following example defines two networks with different endpoints association methods. For network1 all endpoints that their IP belongs to the provided CIDR range will be mapped to network1. The gateway for this network example is specified by its public IP address and port. The second network, network2, in this example is defined differently with all endpoints retrieved through the specified Multi-Cluster registry being mapped to network2. The gateway is also defined differently with the name of the gateway service on the remote cluster. The public IP for the gateway will be determined from that remote service (only LoadBalancer gateway service type is currently supported, for a NodePort type gateway service, it still need to be configured manually).

meshNetworks:

network1:
  endpoints:
  - fromCidr: "192.168.0.1/24"
  gateways:
  - address: 1.1.1.1
    port: 80
network2:
  endpoints:
  - fromRegistry: reg1
  gateways:
  - registryServiceName: istio-ingressgateway.istio-system.svc.cluster.local
    port: 443
mountMtlsCertsboolean

Controls whether the in-cluster MTLS key and certs are loaded from the secret volume mounts.

multiClusterobject

Specifies the Configuration for Istio mesh across multiple clusters through Istio gateways.

nativeNftablesboolean

Specifies whether native nftables rules should be used instead of iptables rules for traffic redirection.

networkstring

Network defines the network this cluster belong to. This name corresponds to the networks in the map of mesh networks.

networkPolicyobject

Settings related to Kubernetes NetworkPolicy.

omitSidecarInjectorConfigMapboolean

Controls whether the creation of the sidecar injector ConfigMap should be skipped. Defaults to false. When set to true, the sidecar injector ConfigMap will not be created.

operatorManageWebhooksboolean

Controls whether the WebhookConfiguration resource(s) should be created. The current behavior of Istiod is to manage its own webhook configurations. When this option is set to true, Istio Operator, instead of webhooks, manages the webhook configurations. When this option is set as false, webhooks manage their own webhook configurations.

pilotCertProviderstring

Configure the Pilot certificate provider. Currently, four providers are supported: "kubernetes", "istiod", "custom" and "none".

platformstring

Platform in which Istio is deployed. Possible values are: "openshift" and "gcp" An empty value means it is a vanilla Kubernetes distribution, therefore no special treatment will be considered.

podDNSSearchNamespacesarray

Custom DNS config for the pod to resolve names of services in other clusters. Use this to add additional search domains, and other settings. see https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#dns-config This does not apply to gateway pods as they typically need a different set of DNS settings than the normal application pods (e.g. in multicluster scenarios).

priorityClassNamestring

Specifies the k8s priorityClassName for the istio control plane components.

See https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

proxyobject

Specifies how proxies are configured within Istio.

proxy_initobject

Specifies the Configuration for proxy_init container which sets the pods' networking to intercept the inbound/outbound traffic.

remotePilotAddressstring

Specifies the Istio control plane’s pilot Pod IP address or remote cluster DNS resolvable hostname.

revisionstring

Configures the revision this control plane is a part of

sdsobject

Specifies the Configuration for the SecretDiscoveryService instead of using K8S secrets to mount the certificates.

stsobject

Specifies the configuration for Security Token Service.

tagstring

Specifies the tag for the Istio docker images.

tracerobject

Specifies the Configuration for each of the supported tracers.

trustBundleNamestring

Select a custom name for istiod's CA Root Cert ConfigMap.

variantstring

The variant of the Istio container images to use. Options are "debug" or "distroless". Unset will use the default for the given version.

waypointobject

Specifies how waypoints are configured within Istio.

.spec.values.global.arch

Description
Specifies pod scheduling arch(amd64, ppc64le, s390x, arm64) and weight as follows: 0 - Never scheduled 1 - Least preferred 2 - No preference 3 - Most preferred Deprecated: replaced by the affinity k8s settings which allows architecture nodeAffinity configuration of this behavior. Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
amd64integer

Sets pod scheduling weight for amd64 arch

arm64integer

Sets pod scheduling weight for arm64 arch.

ppc64leinteger

Sets pod scheduling weight for ppc64le arch.

s390xinteger

Sets pod scheduling weight for s390x arch.

.spec.values.global.certSigners

Description
List of certSigners to allow "approve" action in the ClusterRole
Type
array

.spec.values.global.certSigners[]

Type
string

.spec.values.global.defaultNodeSelector

Description
Default k8s node selector for all the Istio control plane components See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object

.spec.values.global.defaultPodDisruptionBudget

Description
Specifies the default pod disruption budget configuration.
Type
object
PropertyTypeDescription
enabledboolean

Controls whether a PodDisruptionBudget with a default minAvailable value of 1 is created for each deployment.

.spec.values.global.defaultResources

Description
Default k8s resources settings for all Istio control plane components. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.global.defaultResources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.global.defaultResources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.global.defaultResources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.defaultResources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.defaultTolerations

Description
Default node tolerations to be applied to all deployments so that all pods can be scheduled to nodes with matching taints. Each component can overwrite these default values by adding its tolerations block in the relevant section below and setting the desired values. Configure this field in case that all pods of Istio control plane are expected to be scheduled to particular nodes with specified taints. Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
array

.spec.values.global.defaultTolerations[]

Description
The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
Type
object
PropertyTypeDescription
effectstring

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

operatorstring

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

tolerationSecondsinteger

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

valuestring

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

.spec.values.global.imagePullSecrets

Description
ImagePullSecrets for the control plane ServiceAccount, list of secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.
Type
array

.spec.values.global.imagePullSecrets[]

Type
string

.spec.values.global.ipFamilies

Description
Defines which IP family to use for single stack or the order of IP families for dual-stack. Valid list items are "IPv4", "IPv6". More info: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
Type
array

.spec.values.global.ipFamilies[]

Type
string

.spec.values.global.istiod

Description
Specifies the configution of istiod
Type
object
PropertyTypeDescription
enableAnalysisboolean

If enabled, istiod will perform config analysis

.spec.values.global.logging

Description
Specifies the global logging level settings for the Istio control plane components.
Type
object
PropertyTypeDescription
levelstring

Comma-separated minimum per-scope logging level of messages to output, in the form of :,: The control plane has different scopes depending on component, but can configure default log level across all components If empty, default scope and level will be used as configured in code

.spec.values.global.meshNetworks

Description
Configure the mesh networks to be used by the Split Horizon EDS. The following example defines two networks with different endpoints association methods. For `network1` all endpoints that their IP belongs to the provided CIDR range will be mapped to network1. The gateway for this network example is specified by its public IP address and port. The second network, `network2`, in this example is defined differently with all endpoints retrieved through the specified Multi-Cluster registry being mapped to network2. The gateway is also defined differently with the name of the gateway service on the remote cluster. The public IP for the gateway will be determined from that remote service (only LoadBalancer gateway service type is currently supported, for a NodePort type gateway service, it still need to be configured manually). meshNetworks: network1: endpoints: - fromCidr: "192.168.0.1/24" gateways: - address: 1.1.1.1 port: 80 network2: endpoints: - fromRegistry: reg1 gateways: - registryServiceName: istio-ingressgateway.istio-system.svc.cluster.local port: 443
Type
object

.spec.values.global.multiCluster

Description
Specifies the Configuration for Istio mesh across multiple clusters through Istio gateways.
Type
object
PropertyTypeDescription
clusterNamestring

The name of the cluster this installation will run in. This is required for sidecar injection to properly label proxies

enabledboolean

Enables the connection between two kubernetes clusters via their respective ingressgateway services. Use if the pods in each cluster cannot directly talk to one another.

globalDomainSuffixstring

The suffix for global service names.

includeEnvoyFilterboolean

Enable envoy filter to translate globalDomainSuffix to cluster local suffix for cross cluster communication.

.spec.values.global.networkPolicy

Description
Settings related to Kubernetes NetworkPolicy.
Type
object
PropertyTypeDescription
enabledboolean

Controls whether default NetworkPolicy resources will be created.

.spec.values.global.podDNSSearchNamespaces

Description
Custom DNS config for the pod to resolve names of services in other clusters. Use this to add additional search domains, and other settings. see https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#dns-config This does not apply to gateway pods as they typically need a different set of DNS settings than the normal application pods (e.g. in multicluster scenarios).
Type
array

.spec.values.global.podDNSSearchNamespaces[]

Type
string

.spec.values.global.proxy

Description
Specifies how proxies are configured within Istio.
Type
object
PropertyTypeDescription
autoInjectstring

Controls the 'policy' in the sidecar injector.

clusterDomainstring

Domain for the cluster, default: "cluster.local".

K8s allows this to be customized, see https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/

componentLogLevelstring

Per Component log level for proxy, applies to gateways and sidecars.

If a component level is not set, then the global "logLevel" will be used. If left empty, "misc:error" is used.

enableCoreDumpboolean

Enables core dumps for newly injected sidecars.

If set, newly injected sidecars will have core dumps enabled.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

excludeIPRangesstring

Lists the excluded IP ranges of Istio egress traffic that the sidecar captures.

excludeInboundPortsstring

Specifies the Istio ingress ports not to capture.

excludeOutboundPortsstring

A comma separated list of outbound ports to be excluded from redirection to Envoy.

holdApplicationUntilProxyStartsboolean

Controls if sidecar is injected at the front of the container list and blocks the start of the other containers until the proxy is ready

Deprecated: replaced by ProxyConfig setting which allows per-pod configuration of this behavior.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

imagestring

Image name or path for the proxy, default: "proxyv2".

If registry or tag are not specified, global.hub and global.tag are used.

Examples: my-proxy (uses global.hub/tag), docker.io/myrepo/my-proxy:v1.0.0

includeIPRangesstring

Lists the IP ranges of Istio egress traffic that the sidecar captures.

Example: "172.30.0.0/16,172.20.0.0/16" This would only capture egress traffic on those two IP Ranges, all other outbound traffic would # be allowed by the sidecar."

includeInboundPortsstring

A comma separated list of inbound ports for which traffic is to be redirected to Envoy. The wildcard character '*' can be used to configure redirection for all ports.

includeOutboundPortsstring

A comma separated list of outbound ports for which traffic is to be redirected to Envoy, regardless of the destination IP.

lifecycleobject

The k8s lifecycle hooks definition (pod.spec.containers.lifecycle) for the proxy container. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

logLevelstring

Log level for proxy, applies to gateways and sidecars. If left empty, "warning" is used. Expected values are: trace|debug|info|warning|error|critical|off

outlierLogPathstring

Path to the file to which the proxy will write outlier detection logs.

Example: "/dev/stdout" This would write the logs to standard output.

privilegedboolean

Enables privileged securityContext for the istio-proxy container.

See https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

readinessFailureThresholdinteger

Sets the number of successive failed probes before indicating readiness failure.

readinessInitialDelaySecondsinteger

Sets the initial delay for readiness probes in seconds.

readinessPeriodSecondsinteger

Sets the interval between readiness probes in seconds.

resourcesobject

K8s resources settings.

See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

startupProbeobject

Configures the startup probe for the istio-proxy container.

statusPortinteger

Default port used for the Pilot agent's health checks.

tracerstring

Specify which tracer to use. One of: zipkin, lightstep, datadog, stackdriver. If using stackdriver tracer outside GCP, set env GOOGLE_APPLICATION_CREDENTIALS to the GCP credential file.

.spec.values.global.proxy.lifecycle

Description
The k8s lifecycle hooks definition (pod.spec.containers.lifecycle) for the proxy container. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
Type
object
PropertyTypeDescription
postStartobject

PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

preStopobject

PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

stopSignalstring

StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name

.spec.values.global.proxy.lifecycle.postStart

Description
PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
Type
object
PropertyTypeDescription
execobject

Exec specifies a command to execute in the container.

httpGetobject

HTTPGet specifies an HTTP GET request to perform.

sleepobject

Sleep represents a duration that the container should sleep.

tcpSocketobject

Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.

.spec.values.global.proxy.lifecycle.postStart.exec

Description
Exec specifies a command to execute in the container.
Type
object
PropertyTypeDescription
commandarray

Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

.spec.values.global.proxy.lifecycle.postStart.exec.command

Description
Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
Type
array

.spec.values.global.proxy.lifecycle.postStart.exec.command[]

Type
string

.spec.values.global.proxy.lifecycle.postStart.httpGet

Description
HTTPGet specifies an HTTP GET request to perform.
Type
object
Required
port
PropertyTypeDescription
hoststring

Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

httpHeadersarray

Custom headers to set in the request. HTTP allows repeated headers.

pathstring

Path to access on the HTTP server.

port

Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

schemestring

Scheme to use for connecting to the host. Defaults to HTTP.

.spec.values.global.proxy.lifecycle.postStart.httpGet.httpHeaders

Description
Custom headers to set in the request. HTTP allows repeated headers.
Type
array

.spec.values.global.proxy.lifecycle.postStart.httpGet.httpHeaders[]

Description
HTTPHeader describes a custom header to be used in HTTP probes
Type
object
Required
namevalue
PropertyTypeDescription
namestring

The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.

valuestring

The header field value

.spec.values.global.proxy.lifecycle.postStart.sleep

Description
Sleep represents a duration that the container should sleep.
Type
object
Required
seconds
PropertyTypeDescription
secondsinteger

Seconds is the number of seconds to sleep.

.spec.values.global.proxy.lifecycle.postStart.tcpSocket

Description
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.
Type
object
Required
port
PropertyTypeDescription
hoststring

Optional: Host name to connect to, defaults to the pod IP.

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

.spec.values.global.proxy.lifecycle.preStop

Description
PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
Type
object
PropertyTypeDescription
execobject

Exec specifies a command to execute in the container.

httpGetobject

HTTPGet specifies an HTTP GET request to perform.

sleepobject

Sleep represents a duration that the container should sleep.

tcpSocketobject

Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.

.spec.values.global.proxy.lifecycle.preStop.exec

Description
Exec specifies a command to execute in the container.
Type
object
PropertyTypeDescription
commandarray

Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

.spec.values.global.proxy.lifecycle.preStop.exec.command

Description
Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
Type
array

.spec.values.global.proxy.lifecycle.preStop.exec.command[]

Type
string

.spec.values.global.proxy.lifecycle.preStop.httpGet

Description
HTTPGet specifies an HTTP GET request to perform.
Type
object
Required
port
PropertyTypeDescription
hoststring

Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

httpHeadersarray

Custom headers to set in the request. HTTP allows repeated headers.

pathstring

Path to access on the HTTP server.

port

Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

schemestring

Scheme to use for connecting to the host. Defaults to HTTP.

.spec.values.global.proxy.lifecycle.preStop.httpGet.httpHeaders

Description
Custom headers to set in the request. HTTP allows repeated headers.
Type
array

.spec.values.global.proxy.lifecycle.preStop.httpGet.httpHeaders[]

Description
HTTPHeader describes a custom header to be used in HTTP probes
Type
object
Required
namevalue
PropertyTypeDescription
namestring

The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.

valuestring

The header field value

.spec.values.global.proxy.lifecycle.preStop.sleep

Description
Sleep represents a duration that the container should sleep.
Type
object
Required
seconds
PropertyTypeDescription
secondsinteger

Seconds is the number of seconds to sleep.

.spec.values.global.proxy.lifecycle.preStop.tcpSocket

Description
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.
Type
object
Required
port
PropertyTypeDescription
hoststring

Optional: Host name to connect to, defaults to the pod IP.

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

.spec.values.global.proxy.resources

Description
K8s resources settings. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.global.proxy.resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.global.proxy.resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.global.proxy.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.proxy.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.proxy.startupProbe

Description
Configures the startup probe for the istio-proxy container.
Type
object
PropertyTypeDescription
enabledboolean

Enables or disables a startup probe. For optimal startup times, changing this should be tied to the readiness probe values.

If the probe is enabled, it is recommended to have delay=0s,period=15s,failureThreshold=4. This ensures the pod is marked ready immediately after the startup probe passes (which has a 1s poll interval), and doesn't spam the readiness endpoint too much

If the probe is disabled, it is recommended to have delay=1s,period=2s,failureThreshold=30. This ensures the startup is reasonable fast (polling every 2s). 1s delay is used since the startup is not often ready instantly.

failureThresholdinteger

Minimum consecutive failures for the probe to be considered failed after having succeeded.

.spec.values.global.proxy_init

Description
Specifies the Configuration for proxy_init container which sets the pods' networking to intercept the inbound/outbound traffic.
Type
object
PropertyTypeDescription
imagestring

Specifies the image for the proxy_init container.

resourcesobject

K8s resources settings.

See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

.spec.values.global.proxy_init.resources

Description
K8s resources settings. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.global.proxy_init.resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.global.proxy_init.resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.global.proxy_init.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.proxy_init.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.sds

Description
Specifies the Configuration for the SecretDiscoveryService instead of using K8S secrets to mount the certificates.
Type
object
PropertyTypeDescription
tokenobject

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

.spec.values.global.sds.token

Description
Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
audstring

.spec.values.global.sts

Description
Specifies the configuration for Security Token Service.
Type
object
PropertyTypeDescription
servicePortinteger

.spec.values.global.tracer

Description
Specifies the Configuration for each of the supported tracers.
Type
object
PropertyTypeDescription
datadogobject

Configuration for the datadog tracing service.

lightstepobject

Configuration for the lightstep tracing service.

stackdriverobject

Configuration for the stackdriver tracing service.

zipkinobject

Configuration for the zipkin tracing service.

.spec.values.global.tracer.datadog

Description
Configuration for the datadog tracing service.
Type
object
PropertyTypeDescription
addressstring

Address in host:port format for reporting trace data to the Datadog agent.

.spec.values.global.tracer.lightstep

Description
Configuration for the lightstep tracing service.
Type
object
PropertyTypeDescription
accessTokenstring

Sets the lightstep access token.

addressstring

Sets the lightstep satellite pool address in host:port format for reporting trace data.

.spec.values.global.tracer.stackdriver

Description
Configuration for the stackdriver tracing service.
Type
object
PropertyTypeDescription
debugboolean

enables trace output to stdout.

maxNumberOfAnnotationsinteger

The global default max number of annotation events per span.

maxNumberOfAttributesinteger

The global default max number of attributes per span.

maxNumberOfMessageEventsinteger

The global default max number of message events per span.

.spec.values.global.tracer.zipkin

Description
Configuration for the zipkin tracing service.
Type
object
PropertyTypeDescription
addressstring

Address of zipkin instance in host:port format for reporting trace data.

Example: .:941

.spec.values.global.waypoint

Description
Specifies how waypoints are configured within Istio.
Type
object

.spec.values.global.waypoint.affinity

Description
K8s affinity settings for waypoint pods. See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
Type
object
PropertyTypeDescription
nodeAffinityobject

Describes node affinity scheduling rules for the pod.

podAffinityobject

Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).

podAntiAffinityobject

Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).

.spec.values.global.waypoint.affinity.nodeAffinity

Description
Describes node affinity scheduling rules for the pod.
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionobject

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Type
object
Required
preferenceweight
PropertyTypeDescription
preferenceobject

A node selector term, associated with the corresponding weight.

weightinteger

Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference

Description
A node selector term, associated with the corresponding weight.
Type
object
PropertyTypeDescription
matchExpressionsarray

A list of node selector requirements by node's labels.

matchFieldsarray

A list of node selector requirements by node's fields.

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions

Description
A list of node selector requirements by node's labels.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields

Description
A list of node selector requirements by node's fields.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values[]

Type
string

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
Type
object
Required
nodeSelectorTerms
PropertyTypeDescription
nodeSelectorTermsarray

Required. A list of node selector terms. The terms are ORed.

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

Description
Required. A list of node selector terms. The terms are ORed.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[]

Description
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Type
object
PropertyTypeDescription
matchExpressionsarray

A list of node selector requirements by node's labels.

matchFieldsarray

A list of node selector requirements by node's fields.

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions

Description
A list of node selector requirements by node's labels.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields

Description
A list of node selector requirements by node's fields.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity

Description
Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionarray

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject

Required. A pod affinity term, associated with the corresponding weight.

weightinteger

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Description
Required. A pod affinity term, associated with the corresponding weight.
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.global.waypoint.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Description
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.global.waypoint.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity

Description
Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionarray

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject

Required. A pod affinity term, associated with the corresponding weight.

weightinteger

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Description
Required. A pod affinity term, associated with the corresponding weight.
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Description
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.global.waypoint.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.values.global.waypoint.nodeSelector

Description
K8s node labels settings. See https://kubernetes.io/docs/user-guide/node-selection/
Type
object
Required
nodeSelectorTerms
PropertyTypeDescription
nodeSelectorTermsarray

Required. A list of node selector terms. The terms are ORed.

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms

Description
Required. A list of node selector terms. The terms are ORed.
Type
array

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[]

Description
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Type
object
PropertyTypeDescription
matchExpressionsarray

A list of node selector requirements by node's labels.

matchFieldsarray

A list of node selector requirements by node's fields.

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchExpressions

Description
A list of node selector requirements by node's labels.
Type
array

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchExpressions[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchExpressions[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchFields

Description
A list of node selector requirements by node's fields.
Type
array

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchFields[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchFields[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.nodeSelector.nodeSelectorTerms[].matchFields[].values[]

Type
string

.spec.values.global.waypoint.resources

Description
K8s resource settings. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.global.waypoint.resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.global.waypoint.resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.global.waypoint.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.waypoint.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.waypoint.toleration

Description
K8s tolerations settings. See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
Type
array

.spec.values.global.waypoint.toleration[]

Description
The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
Type
object
PropertyTypeDescription
effectstring

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

operatorstring

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

tolerationSecondsinteger

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

valuestring

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

.spec.values.global.waypoint.topologySpreadConstraints

Description
K8s topology spread constraints settings. See https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
Type
array

.spec.values.global.waypoint.topologySpreadConstraints[]

Description
TopologySpreadConstraint specifies how to spread matching pods among the given topology.
Type
object
Required
maxSkewtopologyKeywhenUnsatisfiable
PropertyTypeDescription
labelSelectorobject

LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.

This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).

maxSkewinteger

MaxSkew describes the degree to which pods may be unevenly distributed. When whenUnsatisfiable=DoNotSchedule, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P |

  • if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1).
  • if MaxSkew is 2, incoming pod can be scheduled onto any zone. When whenUnsatisfiable=ScheduleAnyway, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.
minDomainsinteger

MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.

For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.

nodeAffinityPolicystring

NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are:

  • Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  • Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.

If this value is nil, the behavior is equivalent to the Honor policy.

nodeTaintsPolicystring

NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are:

  • Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included.
  • Ignore: node taints are ignored. All nodes are included.

If this value is nil, the behavior is equivalent to the Ignore policy.

topologyKeystring

TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.

whenUnsatisfiablestring

WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint.

  • DoNotSchedule (default) tells the scheduler not to schedule it.
  • ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it more imbalanced. It's a required field.

.spec.values.global.waypoint.topologySpreadConstraints[].labelSelector

Description
LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.global.waypoint.topologySpreadConstraints[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.global.waypoint.topologySpreadConstraints[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.global.waypoint.topologySpreadConstraints[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.global.waypoint.topologySpreadConstraints[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.global.waypoint.topologySpreadConstraints[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.global.waypoint.topologySpreadConstraints[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
Type
array

.spec.values.global.waypoint.topologySpreadConstraints[].matchLabelKeys[]

Type
string

.spec.values.istiodRemote

Description
Configuration for istiod-remote. DEPRECATED - istiod-remote chart is removed and replaced with `istio-discovery --set values.istiodRemote.enabled=true` Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
enabledboolean

Indicates if this cluster/install should consume a "remote" istiod instance,

enabledLocalInjectorIstiodboolean

If true, indicates that this cluster/install should consume a "local istiod" installation, local istiod inject sidecars

injectionCABundlestring

injector ca bundle

injectionPathstring

Path to use for the sidecar injector webhook service.

injectionURLstring

URL to use for sidecar injector webhook.

.spec.values.meshConfig

Description
Defines runtime configuration of components, including Istiod and istio-agent behavior. See https://istio.io/docs/reference/config/istio.mesh.v1alpha1/ for all available options.
Type
object
PropertyTypeDescription
accessLogEncodingstring

Encoding for the proxy access log (TEXT or JSON). Default value is TEXT.

accessLogFilestring

File address for the proxy access log (e.g. /dev/stdout). Empty value disables access logging.

accessLogFormatstring

Format for the proxy access log Empty value results in proxy's default access log format

caobject

If specified, Istiod will authorize and forward the CSRs from the workloads to the specified external CA using the Istio CA gRPC API.

caCertificatesarray

The extra root certificates for workload-to-workload communication. The plugin certificates (the 'cacerts' secret) or self-signed certificates (the 'istio-ca-secret' secret) are automatically added by Istiod. The CA certificate that signs the workload certificates is automatically added by Istio Agent.

certificatesarray

Configure the provision of certificates.

Note: Deprecated, please refer to Cert-Manager or other cert provisioning solutions to sign DNS certificates.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

configSourcesarray

ConfigSource describes a source of configuration data for networking rules, and other Istio configuration artifacts. Multiple data sources can be configured for a single control plane.

connectTimeoutstring

Connection timeout used by Envoy. (MUST be >=1ms) Default timeout is 10s.

defaultConfigobject

Default proxy config used by gateway and sidecars. In case of Kubernetes, the proxy config is applied once during the injection process, and remain constant for the duration of the pod. The rest of the mesh config can be changed at runtime and config gets distributed dynamically. On Kubernetes, this can be overridden on individual pods with the proxy.istio.io/config annotation.

defaultDestinationRuleExportToarray

The default value for the DestinationRule.exportTo field. Has the same syntax as defaultServiceExportTo.

If not set the system will use "*" as the default value which implies that destination rules are exported to all namespaces

defaultHttpRetryPolicyobject

Configure the default HTTP retry policy. The default number of retry attempts is set at 2 for these errors:

"connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes".

Setting the number of attempts to 0 disables retry policy globally. This setting can be overridden on a per-host basis using the Virtual Service API. All settings in the retry policy except perTryTimeout can currently be configured globally via this field.

defaultProvidersobject

Specifies extension providers to use by default in Istio configuration resources.

defaultServiceExportToarray

The default value for the ServiceEntry.exportTo field and services imported through container registry integrations, e.g. this applies to Kubernetes Service resources. The value is a list of namespace names and reserved namespace aliases. The allowed namespace aliases are:

* - All Namespaces
. - Current Namespace
~ - No Namespace

If not set the system will use "*" as the default value which implies that services are exported to all namespaces.

All namespaces is a reasonable default for implementations that don't need to restrict access or visibility of services across namespace boundaries. If that requirement is present it is generally good practice to make the default Current namespace so that services are only visible within their own namespaces by default. Operators can then expand the visibility of services to other namespaces as needed. Use of No Namespace is expected to be rare but can have utility for deployments where dependency management needs to be precise even within the scope of a single namespace.

For further discussion see the reference documentation for ServiceEntry, Sidecar, and Gateway.

defaultVirtualServiceExportToarray

The default value for the VirtualService.exportTo field. Has the same syntax as defaultServiceExportTo.

If not set the system will use "*" as the default value which implies that virtual services are exported to all namespaces

disableEnvoyListenerLogboolean

This flag disables Envoy Listener logs. See Listener Access Log Istio Enables Envoy's listener access logs on "NoRoute" response flag. Default value is false.

discoverySelectorsarray

A list of Kubernetes selectors that specify the set of namespaces that Istio considers when computing configuration updates for sidecars. This can be used to reduce Istio's computational load by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. If omitted, Istio will use the default behavior of processing all namespaces in the cluster. Elements in the list are disjunctive (OR semantics), i.e. a namespace will be included if it matches any selector. The following example selects any namespace that matches either below:

  1. The namespace has both of these labels: env: prod and region: us-east1
  2. The namespace has label app equal to cassandra or spark.
discoverySelectors:
  - matchLabels:
    env: prod
    region: us-east1
  - matchExpressions:
  - key: app
    operator: In
    values:
  - cassandra
  - spark

Refer to the Kubernetes selector docs for additional detail on selector semantics.

dnsRefreshRatestring

Configures DNS refresh rate for Envoy clusters of type STRICT_DNS Default refresh rate is 60s.

enableAutoMtlsboolean

This flag is used to enable mutual TLS automatically for service to service communication within the mesh, default true. If set to true, and a given service does not have a corresponding DestinationRule configured, or its DestinationRule does not have ClientTLSSettings specified, Istio configures client side TLS configuration appropriately. More specifically, If the upstream authentication policy is in STRICT mode, use Istio provisioned certificate for mutual TLS to connect to upstream. If upstream service is in plain text mode, use plain text. If the upstream authentication policy is in PERMISSIVE mode, Istio configures clients to use mutual TLS when server sides are capable of accepting mutual TLS traffic. If service DestinationRule exists and has ClientTLSSettings specified, that is always used instead.

enableEnvoyAccessLogServiceboolean

This flag enables Envoy's gRPC Access Log Service. See Access Log Service for details about Envoy's gRPC Access Log Service API. Default value is false.

enablePrometheusMergeboolean

If enabled, Istio agent will merge metrics exposed by the application with metrics from Envoy and Istio agent. The sidecar injection will replace prometheus.io annotations present on the pod and redirect them towards Istio agent, which will then merge metrics of from the application with Istio metrics. This relies on the annotations prometheus.io/scrape, prometheus.io/port, and prometheus.io/path annotations. If you are running a separately managed Envoy with an Istio sidecar, this may cause issues, as the metrics will collide. In this case, it is recommended to disable aggregation on that deployment with the prometheus.istio.io/merge-metrics: "false" annotation. If not specified, this will be enabled by default.

enableTracingboolean

Flag to control generation of trace spans and request IDs. Requires a trace span collector defined in the proxy configuration.

extensionProvidersarray

Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy can be used with an extension provider to delegate the authorization decision to a custom authorization system.

h2UpgradePolicystring

Specify if http1.1 connections should be upgraded to http2 by default. if sidecar is installed on all pods in the mesh, then this should be set to UPGRADE. If one or more services or namespaces do not have sidecar(s), then this should be set to DO_NOT_UPGRADE. It can be enabled by destination using the destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy override.

inboundClusterStatNamestring

Name to be used while emitting statistics for inbound clusters. The same pattern is used while computing stat prefix for network filters like TCP and Redis. By default, Istio emits statistics with the pattern inbound|<port>|<port-name>|<service-FQDN>. For example inbound|7443|grpc-reviews|reviews.prod.svc.cluster.local. This can be used to override that pattern.

A Pattern can be composed of various pre-defined variables. The following variables are supported.

  • %SERVICE% - Will be substituted with short hostname of the service.
  • %SERVICE_NAME% - Will be substituted with name of the service.
  • %SERVICE_FQDN% - Will be substituted with FQDN of the service.
  • %SERVICE_PORT% - Will be substituted with port of the service.
  • %TARGET_PORT% - Will be substituted with the target port of the service.
  • %SERVICE_PORT_NAME% - Will be substituted with port name of the service.

Following are some examples of supported patterns for reviews:

  • %SERVICE_FQDN%_%SERVICE_PORT% will use reviews.prod.svc.cluster.local_7443 as the stats name.
  • %SERVICE% will use reviews.prod as the stats name.
inboundTrafficPolicyobject

Set the default behavior of the sidecar for handling inbound traffic to the application. If your application listens on localhost, you will need to set this to LOCALHOST.

ingressClassstring

Class of ingress resources to be processed by Istio ingress controller. This corresponds to the value of kubernetes.io/ingress.class annotation.

ingressControllerModestring

Defines whether to use Istio ingress controller for annotated or all ingress resources. Default mode is STRICT.

ingressSelectorstring

Defines which gateway deployment to use as the Ingress controller. This field corresponds to the Gateway.selector field, and will be set as istio: INGRESS_SELECTOR. By default, ingressgateway is used, which will select the default IngressGateway as it has the istio: ingressgateway labels. It is recommended that this is the same value as ingressService.

ingressServicestring

Name of the Kubernetes service used for the istio ingress controller. If no ingress controller is specified, the default value istio-ingressgateway is used.

localityLbSettingobject

Locality based load balancing distribution or failover settings. If unspecified, locality based load balancing will be enabled by default. However, this requires outlierDetection to actually take effect for a particular service, see https://istio.io/latest/docs/tasks/traffic-management/locality-load-balancing/failover/

meshMTLSobject

The below configuration parameters can be used to specify TLSConfig for mesh traffic. For example, a user could enable min TLS version for ISTIO_MUTUAL traffic and specify a curve for non ISTIO_MUTUAL traffic like below:

meshConfig:

	meshMTLS:
	  minProtocolVersion: TLSV1_3
	tlsDefaults:
	  Note: applicable only for non ISTIO_MUTUAL scenarios
	  ecdhCurves:
	    - P-256
	    - P-512

Configuration of mTLS for traffic between workloads with ISTIO_MUTUAL TLS traffic.

Note: Mesh mTLS does not respect ECDH curves.

outboundClusterStatNamestring

Name to be used while emitting statistics for outbound clusters. The same pattern is used while computing stat prefix for network filters like TCP and Redis. By default, Istio emits statistics with the pattern outbound|<port>|<subsetname>|<service-FQDN>. For example outbound|8080|v2|reviews.prod.svc.cluster.local. This can be used to override that pattern.

A Pattern can be composed of various pre-defined variables. The following variables are supported.

  • %SERVICE% - Will be substituted with short hostname of the service.
  • %SERVICE_NAME% - Will be substituted with name of the service.
  • %SERVICE_FQDN% - Will be substituted with FQDN of the service.
  • %SERVICE_PORT% - Will be substituted with port of the service.
  • %SERVICE_PORT_NAME% - Will be substituted with port name of the service.
  • %SUBSET_NAME% - Will be substituted with subset.

Following are some examples of supported patterns for reviews:

  • %SERVICE_FQDN%_%SERVICE_PORT% will use reviews.prod.svc.cluster.local_7443 as the stats name.
  • %SERVICE% will use reviews.prod as the stats name.
outboundTrafficPolicyobject

Set the default behavior of the sidecar for handling outbound traffic from the application.

Can be overridden at a Sidecar level by setting the OutboundTrafficPolicy in the Sidecar API.

Default mode is ALLOW_ANY, which means outbound traffic to unknown destinations will be allowed.

pathNormalizationobject

ProxyPathNormalization configures how URL paths in incoming and outgoing HTTP requests are normalized by the sidecars and gateways. The normalized paths will be used in all aspects through the requests' lifetime on the sidecars and gateways, which includes routing decisions in outbound direction (client proxy), authorization policy match and enforcement in inbound direction (server proxy), and the URL path proxied to the upstream service. If not set, the NormalizationType.DEFAULT configuration will be used.

protocolDetectionTimeoutstring

Automatic protocol detection uses a set of heuristics to determine whether the connection is using TLS or not (on the server side), as well as the application protocol being used (e.g., http vs tcp). These heuristics rely on the client sending the first bits of data. For server first protocols like MySQL, MongoDB, etc. Envoy will timeout on the protocol detection after the specified period, defaulting to non mTLS plain TCP traffic. Set this field to tweak the period that Envoy will wait for the client to send the first bits of data. (MUST be >=1ms or 0s to disable). Default detection timeout is 0s (no timeout).

Setting a timeout is not recommended nor safe. Even high timeouts (>5s) will be hit occasionally, and when they occur the result is typically broken traffic that may not recover on its own. Exceptionally high values might solve this, but injecting 60s delays onto new connections is generally not tenable anyways.

proxyHttpPortinteger

Port on which Envoy should listen for HTTP PROXY requests if set.

proxyInboundListenPortinteger

Port on which Envoy should listen for all inbound traffic to the pod/vm will be captured to. Default port is 15006.

proxyListenPortinteger

Port on which Envoy should listen for all outbound traffic to other services. Default port is 15001.

rootNamespacestring

The namespace to treat as the administrative root namespace for Istio configuration. When processing a leaf namespace Istio will search for declarations in that namespace first and if none are found it will search in the root namespace. Any matching declaration found in the root namespace is processed as if it were declared in the leaf namespace.

The precise semantics of this processing are documented on each resource type.

serviceScopeConfigsarray

Scope to be applied to select services.

serviceSettingsarray

Settings to be applied to select services.

tcpKeepaliveobject

If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.

tlsDefaultsobject

Configuration of TLS for all traffic except for ISTIO_MUTUAL mode. Currently, this supports configuration of ecdhCurves and cipherSuites only. For ISTIO_MUTUAL TLS settings, use meshMTLS configuration.

trustDomainstring

The trust domain corresponds to the trust root of a system. Refer to SPIFFE-ID

trustDomainAliasesarray

The trust domain aliases represent the aliases of trustDomain. For example, if we have

trustDomain: td1
trustDomainAliases: ["td2", "td3"]

Any service with the identity td1/ns/foo/sa/a-service-account, td2/ns/foo/sa/a-service-account, or td3/ns/foo/sa/a-service-account will be treated the same in the Istio mesh.

verifyCertificateAtClientboolean

VerifyCertificateAtClient sets the mesh global default for peer certificate validation at the client-side proxy when SIMPLE TLS or MUTUAL TLS (non ISTIO_MUTUAL) origination modes are used. This setting can be overridden at the host level via DestinationRule API. By default, VerifyCertificateAtClient is true.

CaCertificates: If set, proxy verifies CA signature based on given CaCertificates. If unset, and VerifyCertificateAtClient is true, proxy uses default System CA bundle. If unset and VerifyCertificateAtClient is false, proxy will not verify the CA.

SubjectAltNames: If set, proxy verifies subject alt names are present in the SAN. If unset, and VerifyCertificateAtClient is true, proxy uses host in destination rule to verify the SANs. If unset, and VerifyCertificateAtClient is false, proxy does not verify SANs.

For SAN, client-side proxy will exact match host in DestinationRule as well as one level wildcard if the specified host in DestinationRule doesn't contain a wildcard. For example, if the host in DestinationRule is x.y.com, client-side proxy will match either x.y.com or *.y.com for the SAN in the presented server certificate. For wildcard host name in DestinationRule, client-side proxy will do a suffix match. For example, if host is *.x.y.com, client-side proxy will verify the presented server certificate SAN matches .x.y.com suffix.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

.spec.values.meshConfig.ca

Description
If specified, Istiod will authorize and forward the CSRs from the workloads to the specified external CA using the Istio CA gRPC API.
Type
object
Required
address
PropertyTypeDescription
addressstring

REQUIRED. Address of the CA server implementing the Istio CA gRPC API. Can be IP address or a fully qualified DNS name with port Eg: custom-ca.default.svc.cluster.local:8932, 192.168.23.2:9000

istiodSideboolean

Use istiodSide to specify CA Server integrate to Istiod side or Agent side Default: true

requestTimeoutstring

timeout for forward CSR requests from Istiod to External CA Default: 10s

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. Regarding tlsSettings:

  • DISABLE MODE is legitimate for the case Istiod is making the request via an Envoy sidecar. DISABLE MODE can also be used for testing
  • TLS MUTUAL MODE be on by default. If the CA certificates (cert bundle to verify the CA server's certificate) is omitted, Istiod will use the system root certs to verify the CA server's certificate.

.spec.values.meshConfig.ca.tlsSettings

Description
Use the tlsSettings to specify the tls mode to use. Regarding tlsSettings: - DISABLE MODE is legitimate for the case Istiod is making the request via an Envoy sidecar. DISABLE MODE can also be used for testing - TLS MUTUAL MODE be on by default. If the CA certificates (cert bundle to verify the CA server's certificate) is omitted, Istiod will use the system root certs to verify the CA server's certificate.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.meshConfig.ca.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.meshConfig.ca.tlsSettings.subjectAltNames[]

Type
string

.spec.values.meshConfig.caCertificates

Description
The extra root certificates for workload-to-workload communication. The plugin certificates (the 'cacerts' secret) or self-signed certificates (the 'istio-ca-secret' secret) are automatically added by Istiod. The CA certificate that signs the workload certificates is automatically added by Istio Agent.
Type
array

.spec.values.meshConfig.caCertificates[]

Type
object
PropertyTypeDescription
certSignersarray

when Istiod is acting as RA(registration authority) If set, they are used for these signers. Otherwise, this trustAnchor is used for all signers.

pemstring

The PEM data of the certificate.

spiffeBundleUrlstring

The SPIFFE bundle endpoint URL that complies to: https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#the-spiffe-trust-domain-and-bundle The endpoint should support authentication based on Web PKI: https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#521-web-pki The certificate is retrieved from the endpoint.

trustDomainsarray

Optional. Specify the list of trust domains to which this trustAnchor data belongs. If set, they are used for these trust domains. Otherwise, this trustAnchor is used for default trust domain and its aliases. Note that we can have multiple trustAnchor data for a same trustDomain. In that case, trustAnchors with a same trust domain will be merged and used together to verify peer certificates. If neither certSigners nor trustDomains is set, this trustAnchor is used for all trust domains and all signers. If only trustDomains is set, this trustAnchor is used for these trustDomains and all signers. If only certSigners is set, this trustAnchor is used for these certSigners and all trust domains. If both certSigners and trustDomains is set, this trustAnchor is only used for these signers and trust domains.

.spec.values.meshConfig.caCertificates[].certSigners

Description
when Istiod is acting as RA(registration authority) If set, they are used for these signers. Otherwise, this trustAnchor is used for all signers.
Type
array

.spec.values.meshConfig.caCertificates[].certSigners[]

Type
string

.spec.values.meshConfig.caCertificates[].trustDomains

Description
Optional. Specify the list of trust domains to which this trustAnchor data belongs. If set, they are used for these trust domains. Otherwise, this trustAnchor is used for default trust domain and its aliases. Note that we can have multiple trustAnchor data for a same trustDomain. In that case, trustAnchors with a same trust domain will be merged and used together to verify peer certificates. If neither certSigners nor trustDomains is set, this trustAnchor is used for all trust domains and all signers. If only trustDomains is set, this trustAnchor is used for these trustDomains and all signers. If only certSigners is set, this trustAnchor is used for these certSigners and all trust domains. If both certSigners and trustDomains is set, this trustAnchor is only used for these signers and trust domains.
Type
array

.spec.values.meshConfig.caCertificates[].trustDomains[]

Type
string

.spec.values.meshConfig.certificates

Description
Configure the provision of certificates. Note: Deprecated, please refer to Cert-Manager or other cert provisioning solutions to sign DNS certificates. Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
array

.spec.values.meshConfig.certificates[]

Description
Certificate configures the provision of a certificate and its key. Example 1: key and cert stored in a secret ``` { secretName: galley-cert secretNamespace: istio-system dnsNames: - galley.istio-system.svc - galley.mydomain.com } ``` Example 2: key and cert stored in a directory ``` { dnsNames: - pilot.istio-system - pilot.istio-system.svc - pilot.mydomain.com } ```
Type
object
PropertyTypeDescription
dnsNamesarray

The DNS names for the certificate. A certificate may contain multiple DNS names.

secretNamestring

Name of the secret the certificate and its key will be stored into. If it is empty, it will not be stored into a secret. Instead, the certificate and its key will be stored into a hard-coded directory.

.spec.values.meshConfig.certificates[].dnsNames

Description
The DNS names for the certificate. A certificate may contain multiple DNS names.
Type
array

.spec.values.meshConfig.certificates[].dnsNames[]

Type
string

.spec.values.meshConfig.configSources

Description
ConfigSource describes a source of configuration data for networking rules, and other Istio configuration artifacts. Multiple data sources can be configured for a single control plane.
Type
array

.spec.values.meshConfig.configSources[]

Description
ConfigSource describes information about a configuration store inside a mesh. A single control plane instance can interact with one or more data sources.
Type
object
PropertyTypeDescription
addressstring

Address of the server implementing the Istio Mesh Configuration protocol (MCP). Can be IP address or a fully qualified DNS name. Use xds:// to specify a grpc-based xds backend, k8s:// to specify a k8s controller or fs:/// to specify a file-based backend with absolute path to the directory.

subscribedResourcesarray

Describes the source of configuration, if nothing is specified default is MCP

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the MCP server uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

.spec.values.meshConfig.configSources[].subscribedResources

Description
Describes the source of configuration, if nothing is specified default is MCP
Type
array

.spec.values.meshConfig.configSources[].subscribedResources[]

Description
Resource describes the source of configuration
Type
string

.spec.values.meshConfig.configSources[].tlsSettings

Description
Use the tlsSettings to specify the tls mode to use. If the MCP server uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.meshConfig.configSources[].tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.meshConfig.configSources[].tlsSettings.subjectAltNames[]

Type
string

.spec.values.meshConfig.defaultConfig

Description
Default proxy config used by gateway and sidecars. In case of Kubernetes, the proxy config is applied once during the injection process, and remain constant for the duration of the pod. The rest of the mesh config can be changed at runtime and config gets distributed dynamically. On Kubernetes, this can be overridden on individual pods with the `proxy.istio.io/config` annotation.
Type
object
PropertyTypeDescription
availabilityZonestring

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

binaryPathstring

Path to the proxy binary

caCertificatesPemarray

The PEM data of the extra root certificates for workload-to-workload communication. This includes the certificates defined in MeshConfig and any other certificates that Istiod uses as CA. The plugin certificates (the 'cacerts' secret), self-signed certificates (the 'istio-ca-secret' secret) are added automatically by Istiod.

concurrencyinteger

The number of worker threads to run. If unset, which is recommended, this will be automatically determined based on CPU requests/limits. If set to 0, all cores on the machine will be used, ignoring CPU requests or limits. This can lead to major performance issues if CPU limits are also set.

configPathstring

Path to the generated configuration file directory. Proxy agent generates the actual configuration and stores it in this directory.

controlPlaneAuthPolicystring

AuthenticationPolicy defines how the proxy is authenticated when it connects to the control plane. Default is set to MUTUAL_TLS.

customConfigFilestring

File path of custom proxy configuration, currently used by proxies in front of istiod.

discoveryAddressstring

Address of the discovery service exposing xDS with mTLS connection. The inject configuration may override this value.

discoveryRefreshDelaystring

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

drainDurationstring

restart. MUST be >=1s (e.g., 1s/1m/1h) Default drain duration is 45s.

envoyAccessLogServiceobject

Address of the service to which access logs from Envoys should be sent. (e.g. accesslog-service:15000). See Access Log Service for details about Envoy's gRPC Access Log Service API.

envoyMetricsServiceobject

Address of the Envoy Metrics Service implementation (e.g. metrics-service:15000). See Metric Service for details about Envoy's Metrics Service API.

envoyMetricsServiceAddressstring

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

extraStatTagsarray

An additional list of tags to extract from the in-proxy Istio telemetry. These extra tags can be added by configuring the telemetry extension. Each additional tag needs to be present in this list. Extra tags emitted by the telemetry extensions must be listed here so that they can be processed and exposed as Prometheus metrics. Deprecated: istio.stats is a native filter now, this field is no longer needed.

gatewayTopologyobject

Topology encapsulates the configuration which describes where the proxy is located i.e. behind a (or N) trusted proxy (proxies) or directly exposed to the internet. This configuration only effects gateways and is applied to all the gateways in the cluster unless overridden via annotations of the gateway workloads.

holdApplicationUntilProxyStartsboolean

Boolean flag for enabling/disabling the holdApplicationUntilProxyStarts behavior. This feature adds hooks to delay application startup until the pod proxy is ready to accept traffic, mitigating some startup race conditions. Default value is 'false'.

imageobject

Specifies the details of the proxy image.

interceptionModestring

The mode used to redirect inbound traffic to Envoy.

meshIdstring

The unique identifier for the service mesh All control planes running in the same service mesh should specify the same mesh ID. Mesh ID is used to label telemetry reports for cases where telemetry from multiple meshes is mixed together.

privateKeyProviderobject

Specifies the details of the Private Key Provider configuration for gateway and sidecar proxies.

proxyAdminPortinteger

Port on which Envoy should listen for administrative commands. Default port is 15000.

proxyBootstrapTemplatePathstring

Path to the proxy bootstrap template file

proxyHeadersobject

Define the set of headers to add/modify for HTTP request/responses.

To enable an optional header, simply set the field. If no specific configuration is required, an empty object ({}) will enable it. Note: currently all headers are enabled by default.

Below shows an example of customizing the server header and disabling the X-Envoy-Attempt-Count header:

proxyHeaders:

	server:
	  value: "my-custom-server"
	# Explicitly enable Request IDs.
	# As this is the default, this has no effect.
	requestId: {}
	attemptCount:
	  disabled: true

Below shows an example of preserving the header case for HTTP 1.x requests

proxyHeaders:

	preserveHttp1HeaderCase: true

Some headers are enabled by default, and require explicitly disabling. See below for an example of disabling all default-enabled headers:

proxyHeaders:

	forwardedClientCert: SANITIZE
	server:
	  disabled: true
	requestId:
	  disabled: true
	attemptCount:
	  disabled: true
	envoyDebugHeaders:
	  disabled: true
	metadataExchangeHeaders:
	  mode: IN_MESH

proxyMetadataobject

Additional environment variables for the proxy. Names starting with ISTIO_META_ will be included in the generated bootstrap and sent to the XDS server.

proxyStatsMatcherobject

Proxy stats matcher defines configuration for reporting custom Envoy stats. To reduce memory and CPU overhead from Envoy stats system, Istio proxies by default create and expose only a subset of Envoy stats. This option is to control creation of additional Envoy stats with prefix, suffix, and regex expressions match on the name of the stats. This replaces the stats inclusion annotations (sidecar.istio.io/statsInclusionPrefixes, sidecar.istio.io/statsInclusionRegexps, and sidecar.istio.io/statsInclusionSuffixes). For example, to enable stats for circuit breakers, request retries, upstream connections, and request timeouts, you can specify stats matcher as follows:

proxyStatsMatcher:

	inclusionRegexps:
	  - .*outlier_detection.*
	  - .*upstream_rq_retry.*
	  - .*upstream_cx_.*
	inclusionSuffixes:
	  - upstream_rq_timeout

Note including more Envoy stats might increase number of time series collected by prometheus significantly. Care needs to be taken on Prometheus resource provision and configuration to reduce cardinality.

readinessProbeobject

VM Health Checking readiness probe. This health check config exactly mirrors the kubernetes readiness probe configuration both in schema and logic. Only one health check method of 3 can be set at a time.

runtimeValuesobject

Envoy runtime configuration to set during bootstrapping. This enables setting experimental, unsafe, unsupported, and deprecated features that should be used with extreme caution.

sdsobject

Secret Discovery Service(SDS) configuration to be used by the proxy.

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

serviceClusterstring

Service cluster defines the name for the service_cluster that is shared by all Envoy instances. This setting corresponds to --service-cluster flag in Envoy. In a typical Envoy deployment, the service-cluster flag is used to identify the caller, for source-based routing scenarios.

Since Istio does not assign a local service/service version to each Envoy instance, the name is same for all of them. However, the source/caller's identity (e.g., IP address) is encoded in the --service-node flag when launching Envoy. When the RDS service receives API calls from Envoy, it uses the value of the service-node flag to compute routes that are relative to the service instances located at that IP address.

statNameLengthinteger

Maximum length of name field in Envoy's metrics. The length of the name field is determined by the length of a name field in a service and the set of labels that comprise a particular version of the service. The default value is set to 189 characters. Envoy's internal metrics take up 67 characters, for a total of 256 character name per metric. Increase the value of this field if you find that the metrics from Envoys are truncated.

statsdUdpAddressstring

IP Address and Port of a statsd UDP listener (e.g. 10.75.241.127:9125).

statusPortinteger

Port on which the agent should listen for administrative commands such as readiness probe. Default is set to port 15020.

terminationDrainDurationstring

The amount of time allowed for connections to complete on proxy shutdown. On receiving SIGTERM or SIGINT, istio-agent tells the active Envoy to start gracefully draining, discouraging any new connections and allowing existing connections to complete. It then sleeps for the terminationDrainDuration and then kills any remaining active Envoy processes. If not set, a default of 5s will be applied.

tracingobject

Tracing configuration to be used by the proxy.

tracingServiceNamestring

Used by Envoy proxies to assign the values for the service names in trace spans.

zipkinAddressstring

Address of the Zipkin service (e.g. zipkin:9411). DEPRECATED: Use [tracing][istio.mesh.v1alpha1.ProxyConfig.tracing] instead.

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

.spec.values.meshConfig.defaultConfig.caCertificatesPem

Description
The PEM data of the extra root certificates for workload-to-workload communication. This includes the certificates defined in MeshConfig and any other certificates that Istiod uses as CA. The plugin certificates (the 'cacerts' secret), self-signed certificates (the 'istio-ca-secret' secret) are added automatically by Istiod.
Type
array

.spec.values.meshConfig.defaultConfig.caCertificatesPem[]

Type
string

.spec.values.meshConfig.defaultConfig.envoyAccessLogService

Description
Address of the service to which access logs from Envoys should be sent. (e.g. `accesslog-service:15000`). See [Access Log Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/accesslog/v2/als.proto) for details about Envoy's gRPC Access Log Service API.
Type
object
PropertyTypeDescription
addressstring

Address of a remove service used for various purposes (access log receiver, metrics receiver, etc.). Can be IP address or a fully qualified DNS name.

tcpKeepaliveobject

If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

.spec.values.meshConfig.defaultConfig.envoyAccessLogService.tcpKeepalive

Description
If set then set `SO_KEEPALIVE` on the socket to enable TCP Keepalives.
Type
object
PropertyTypeDescription
intervalstring

The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)

probesinteger

Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)

timestring

The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)

.spec.values.meshConfig.defaultConfig.envoyAccessLogService.tlsSettings

Description
Use the `tlsSettings` to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.meshConfig.defaultConfig.envoyAccessLogService.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.meshConfig.defaultConfig.envoyAccessLogService.tlsSettings.subjectAltNames[]

Type
string

.spec.values.meshConfig.defaultConfig.envoyMetricsService

Description
Address of the Envoy Metrics Service implementation (e.g. `metrics-service:15000`). See [Metric Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto) for details about Envoy's Metrics Service API.
Type
object
PropertyTypeDescription
addressstring

Address of a remove service used for various purposes (access log receiver, metrics receiver, etc.). Can be IP address or a fully qualified DNS name.

tcpKeepaliveobject

If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

.spec.values.meshConfig.defaultConfig.envoyMetricsService.tcpKeepalive

Description
If set then set `SO_KEEPALIVE` on the socket to enable TCP Keepalives.
Type
object
PropertyTypeDescription
intervalstring

The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)

probesinteger

Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)

timestring

The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)

.spec.values.meshConfig.defaultConfig.envoyMetricsService.tlsSettings

Description
Use the `tlsSettings` to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.meshConfig.defaultConfig.envoyMetricsService.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.meshConfig.defaultConfig.envoyMetricsService.tlsSettings.subjectAltNames[]

Type
string

.spec.values.meshConfig.defaultConfig.extraStatTags

Description
An additional list of tags to extract from the in-proxy Istio telemetry. These extra tags can be added by configuring the telemetry extension. Each additional tag needs to be present in this list. Extra tags emitted by the telemetry extensions must be listed here so that they can be processed and exposed as Prometheus metrics. Deprecated: `istio.stats` is a native filter now, this field is no longer needed.
Type
array

.spec.values.meshConfig.defaultConfig.extraStatTags[]

Type
string

.spec.values.meshConfig.defaultConfig.gatewayTopology

Description
Topology encapsulates the configuration which describes where the proxy is located i.e. behind a (or N) trusted proxy (proxies) or directly exposed to the internet. This configuration only effects gateways and is applied to all the gateways in the cluster unless overridden via annotations of the gateway workloads.
Type
object
PropertyTypeDescription
forwardClientCertDetailsstring

Configures how the gateway proxy handles x-forwarded-client-cert (XFCC) header in the incoming request.

numTrustedProxiesinteger

Number of trusted proxies deployed in front of the Istio gateway proxy. When this option is set to value N greater than zero, the trusted client address is assumed to be the Nth address from the right end of the X-Forwarded-For (XFF) header from the incoming request. If the X-Forwarded-For (XFF) header is missing or has fewer than N addresses, the gateway proxy falls back to using the immediate downstream connection's source address as the trusted client address. Note that the gateway proxy will append the downstream connection's source address to the X-Forwarded-For (XFF) address and set the X-Envoy-External-Address header to the trusted client address before forwarding it to the upstream services in the cluster. The default value of numTrustedProxies is 0. See Envoy XFF header handling for more details.

proxyProtocolobject

Enables PROXY protocol for downstream connections on a gateway.

.spec.values.meshConfig.defaultConfig.gatewayTopology.proxyProtocol

Description
Enables [PROXY protocol](http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt) for downstream connections on a gateway.
Type
object

.spec.values.meshConfig.defaultConfig.image

Description
Specifies the details of the proxy image.
Type
object
PropertyTypeDescription
imageTypestring

The image type of the image. Istio publishes default, debug, and distroless images. Other values are allowed if those image types (example: centos) are published to the specified hub. supported values: default, debug, distroless.

.spec.values.meshConfig.defaultConfig.privateKeyProvider

Description
Specifies the details of the Private Key Provider configuration for gateway and sidecar proxies.
Type
object
PropertyTypeDescription
cryptombobject

Use CryptoMb private key provider

qatobject

Use QAT private key provider

.spec.values.meshConfig.defaultConfig.privateKeyProvider.cryptomb

Description
Use CryptoMb private key provider
Type
object
PropertyTypeDescription
fallbackboolean

If the private key provider isn’t available (eg. the required hardware capability doesn’t existed) Envoy will fallback to the BoringSSL default implementation when the fallback is true. The default value is false.

pollDelaystring

How long to wait until the per-thread processing queue should be processed. If the processing queue gets full (eight sign or decrypt requests are received) it is processed immediately. However, if the queue is not filled before the delay has expired, the requests already in the queue are processed, even if the queue is not full. In effect, this value controls the balance between latency and throughput. The duration needs to be set to a value greater than or equal to 1 millisecond.

.spec.values.meshConfig.defaultConfig.privateKeyProvider.qat

Description
Use QAT private key provider
Type
object
PropertyTypeDescription
fallbackboolean

If the private key provider isn’t available (eg. the required hardware capability doesn’t existed) Envoy will fallback to the BoringSSL default implementation when the fallback is true. The default value is false.

pollDelaystring

How long to wait before polling the hardware accelerator after a request has been submitted there. Having a small value leads to quicker answers from the hardware but causes more polling loop spins, leading to potentially larger CPU usage. The duration needs to be set to a value greater than or equal to 1 millisecond.

.spec.values.meshConfig.defaultConfig.proxyHeaders

Description
Define the set of headers to add/modify for HTTP request/responses. To enable an optional header, simply set the field. If no specific configuration is required, an empty object (`{}`) will enable it. Note: currently all headers are enabled by default. Below shows an example of customizing the `server` header and disabling the `X-Envoy-Attempt-Count` header: ```yaml proxyHeaders: server: value: "my-custom-server" # Explicitly enable Request IDs. # As this is the default, this has no effect. requestId: {} attemptCount: disabled: true ``` # Below shows an example of preserving the header case for HTTP 1.x requests ```yaml proxyHeaders: preserveHttp1HeaderCase: true ``` Some headers are enabled by default, and require explicitly disabling. See below for an example of disabling all default-enabled headers: ```yaml proxyHeaders: forwardedClientCert: SANITIZE server: disabled: true requestId: disabled: true attemptCount: disabled: true envoyDebugHeaders: disabled: true metadataExchangeHeaders: mode: IN_MESH ```
Type
object
PropertyTypeDescription
attemptCountobject

Controls the X-Envoy-Attempt-Count header. If enabled, this header will be added on outbound request headers (including gateways) that have retries configured. If disabled, this header will not be set. If it is already present, it will be preserved. This header is enabled by default if not configured.

envoyDebugHeadersobject

Controls various X-Envoy-* headers, such as X-Envoy-Overloaded and X-Envoy-Upstream-Service-Time. If enabled, these headers will be included. If disabled, these headers will not be set. If they are already present, they will be preserved. See the Envoy documentation for more details. These headers are enabled by default if not configured.

forwardedClientCertstring

Controls the X-Forwarded-Client-Cert header for inbound sidecar requests. To set this on gateways, use the Topology setting. To disable the header, configure either SANITIZE (to always remove the header, if present) or FORWARD_ONLY (to leave the header as-is). By default, APPEND_FORWARD will be used.

metadataExchangeHeadersobject

Controls Istio metadata exchange headers X-Envoy-Peer-Metadata and X-Envoy-Peer-Metadata-Id. By default, the behavior is unspecified. If IN_MESH, these headers will not be appended to outbound requests from sidecars to services not in-mesh.

preserveHttp1HeaderCaseboolean

When true, the original case of HTTP/1.x headers will be preserved as they pass through the proxy, rather than normalizing them to lowercase. This field is particularly useful for applications that require case-sensitive headers for interoperability with downstream systems or APIs that expect specific casing. The preserve_http1_header_case option only applies to HTTP/1.x traffic, as HTTP/2 requires all headers to be lowercase per the protocol specification. Envoy will ignore this field for HTTP/2 requests and automatically normalize headers to lowercase, ensuring compliance with HTTP/2 standards.

requestIdobject

Controls the X-Request-Id header. If enabled, a request ID is generated for each request if one is not already set. This applies to all types of traffic (inbound, outbound, and gateways). If disabled, no request ID will be generate for the request. If it is already present, it will be preserved. Warning: request IDs are a critical component to mesh tracing and logging, so disabling this is not recommended. This header is enabled by default if not configured.

serverobject

Controls the server header. If enabled, the Server: istio-envoy header is set in response headers for inbound traffic (including gateways). If disabled, the Server header is not modified. If it is already present, it will be preserved.

setCurrentClientCertDetailsobject

This field is valid only when forward_client_cert_details is APPEND_FORWARD or SANITIZE_SET and the client connection is mTLS. It specifies the fields in the client certificate to be forwarded. Note that Hash is always set, and By is always set when the client certificate presents the URI type Subject Alternative Name value.

xForwardedHostobject

Controls the X-Forwarded-Host header. If enabled, the X-Forwarded-Host header is appended with the original host when it is rewritten. This header is disabled by default.

xForwardedPortobject

Controls the X-Forwarded-Port header. If enabled, the X-Forwarded-Port header is header with the port value client used to connect to Envoy. It will be ignored if the “x-forwarded-port“ header has been set by any trusted proxy in front of Envoy. This header is disabled by default.

.spec.values.meshConfig.defaultConfig.proxyHeaders.attemptCount

Description
Controls the `X-Envoy-Attempt-Count` header. If enabled, this header will be added on outbound request headers (including gateways) that have retries configured. If disabled, this header will not be set. If it is already present, it will be preserved. This header is enabled by default if not configured.
Type
object
PropertyTypeDescription
disabledboolean

.spec.values.meshConfig.defaultConfig.proxyHeaders.envoyDebugHeaders

Description
Controls various `X-Envoy-*` headers, such as `X-Envoy-Overloaded` and `X-Envoy-Upstream-Service-Time`. If enabled, these headers will be included. If disabled, these headers will not be set. If they are already present, they will be preserved. See the [Envoy documentation](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/router/v3/router.proto#envoy-v3-api-field-extensions-filters-http-router-v3-router-suppress-envoy-headers) for more details. These headers are enabled by default if not configured.
Type
object
PropertyTypeDescription
disabledboolean

.spec.values.meshConfig.defaultConfig.proxyHeaders.metadataExchangeHeaders

Description
Controls Istio metadata exchange headers `X-Envoy-Peer-Metadata` and `X-Envoy-Peer-Metadata-Id`. By default, the behavior is unspecified. If IN_MESH, these headers will not be appended to outbound requests from sidecars to services not in-mesh.
Type
object
PropertyTypeDescription
modestring

.spec.values.meshConfig.defaultConfig.proxyHeaders.requestId

Description
Controls the `X-Request-Id` header. If enabled, a request ID is generated for each request if one is not already set. This applies to all types of traffic (inbound, outbound, and gateways). If disabled, no request ID will be generate for the request. If it is already present, it will be preserved. Warning: request IDs are a critical component to mesh tracing and logging, so disabling this is not recommended. This header is enabled by default if not configured.
Type
object
PropertyTypeDescription
disabledboolean

.spec.values.meshConfig.defaultConfig.proxyHeaders.server

Description
Controls the `server` header. If enabled, the `Server: istio-envoy` header is set in response headers for inbound traffic (including gateways). If disabled, the `Server` header is not modified. If it is already present, it will be preserved.
Type
object
PropertyTypeDescription
disabledboolean
valuestring

If set, and the server header is enabled, this value will be set as the server header. By default, istio-envoy will be used.

.spec.values.meshConfig.defaultConfig.proxyHeaders.setCurrentClientCertDetails

Description
This field is valid only when forward_client_cert_details is APPEND_FORWARD or SANITIZE_SET and the client connection is mTLS. It specifies the fields in the client certificate to be forwarded. Note that `Hash` is always set, and `By` is always set when the client certificate presents the URI type Subject Alternative Name value.
Type
object
PropertyTypeDescription
certboolean

Whether to forward the entire client cert in URL encoded PEM format. This will appear in the XFCC header comma separated from other values with the value Cert="PEM". Defaults to false.

chainboolean

Whether to forward the entire client cert chain (including the leaf cert) in URL encoded PEM format. This will appear in the XFCC header comma separated from other values with the value Chain="PEM". Defaults to false.

dnsboolean

Whether to forward the DNS type Subject Alternative Names of the client cert. Defaults to true.

subjectboolean

Whether to forward the subject of the client cert. Defaults to true.

uriboolean

Whether to forward the URI type Subject Alternative Name of the client cert. Defaults to true.

.spec.values.meshConfig.defaultConfig.proxyHeaders.xForwardedHost

Description
Controls the `X-Forwarded-Host` header. If enabled, the `X-Forwarded-Host` header is appended with the original host when it is rewritten. This header is disabled by default.
Type
object
PropertyTypeDescription
enabledboolean

.spec.values.meshConfig.defaultConfig.proxyHeaders.xForwardedPort

Description
Controls the `X-Forwarded-Port` header. If enabled, the `X-Forwarded-Port` header is header with the port value client used to connect to Envoy. It will be ignored if the “x-forwarded-port“ header has been set by any trusted proxy in front of Envoy. This header is disabled by default.
Type
object
PropertyTypeDescription
enabledboolean

.spec.values.meshConfig.defaultConfig.proxyMetadata

Description
Additional environment variables for the proxy. Names starting with `ISTIO_META_` will be included in the generated bootstrap and sent to the XDS server.
Type
object

.spec.values.meshConfig.defaultConfig.proxyStatsMatcher

Description
Proxy stats matcher defines configuration for reporting custom Envoy stats. To reduce memory and CPU overhead from Envoy stats system, Istio proxies by default create and expose only a subset of Envoy stats. This option is to control creation of additional Envoy stats with prefix, suffix, and regex expressions match on the name of the stats. This replaces the stats inclusion annotations (`sidecar.istio.io/statsInclusionPrefixes`, `sidecar.istio.io/statsInclusionRegexps`, and `sidecar.istio.io/statsInclusionSuffixes`). For example, to enable stats for circuit breakers, request retries, upstream connections, and request timeouts, you can specify stats matcher as follows: ```yaml proxyStatsMatcher: inclusionRegexps: - .*outlier_detection.* - .*upstream_rq_retry.* - .*upstream_cx_.* inclusionSuffixes: - upstream_rq_timeout ``` Note including more Envoy stats might increase number of time series collected by prometheus significantly. Care needs to be taken on Prometheus resource provision and configuration to reduce cardinality.
Type
object
PropertyTypeDescription
inclusionPrefixesarray

Proxy stats name prefix matcher for inclusion.

inclusionRegexpsarray

Proxy stats name regexps matcher for inclusion.

inclusionSuffixesarray

Proxy stats name suffix matcher for inclusion.

.spec.values.meshConfig.defaultConfig.proxyStatsMatcher.inclusionPrefixes

Description
Proxy stats name prefix matcher for inclusion.
Type
array

.spec.values.meshConfig.defaultConfig.proxyStatsMatcher.inclusionPrefixes[]

Type
string

.spec.values.meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps

Description
Proxy stats name regexps matcher for inclusion.
Type
array

.spec.values.meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[]

Type
string

.spec.values.meshConfig.defaultConfig.proxyStatsMatcher.inclusionSuffixes

Description
Proxy stats name suffix matcher for inclusion.
Type
array

.spec.values.meshConfig.defaultConfig.proxyStatsMatcher.inclusionSuffixes[]

Type
string

.spec.values.meshConfig.defaultConfig.readinessProbe

Description
VM Health Checking readiness probe. This health check config exactly mirrors the kubernetes readiness probe configuration both in schema and logic. Only one health check method of 3 can be set at a time.
Type
object
PropertyTypeDescription
execobject

Exec specifies a command to execute in the container.

failureThresholdinteger

Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.

grpcobject

GRPC specifies a GRPC HealthCheckRequest.

httpGetobject

HTTPGet specifies an HTTP GET request to perform.

initialDelaySecondsinteger

Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSecondsinteger

How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.

successThresholdinteger

Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.

tcpSocketobject

TCPSocket specifies a connection to a TCP port.

terminationGracePeriodSecondsinteger

Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.

timeoutSecondsinteger

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.values.meshConfig.defaultConfig.readinessProbe.exec

Description
Exec specifies a command to execute in the container.
Type
object
PropertyTypeDescription
commandarray

Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

.spec.values.meshConfig.defaultConfig.readinessProbe.exec.command

Description
Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
Type
array

.spec.values.meshConfig.defaultConfig.readinessProbe.exec.command[]

Type
string

.spec.values.meshConfig.defaultConfig.readinessProbe.grpc

Description
GRPC specifies a GRPC HealthCheckRequest.
Type
object
Required
port
PropertyTypeDescription
portinteger

Port number of the gRPC service. Number must be in the range 1 to 65535.

servicestring

Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).

If this is not specified, the default behavior is defined by gRPC.

.spec.values.meshConfig.defaultConfig.readinessProbe.httpGet

Description
HTTPGet specifies an HTTP GET request to perform.
Type
object
Required
port
PropertyTypeDescription
hoststring

Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

httpHeadersarray

Custom headers to set in the request. HTTP allows repeated headers.

pathstring

Path to access on the HTTP server.

port

Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

schemestring

Scheme to use for connecting to the host. Defaults to HTTP.

.spec.values.meshConfig.defaultConfig.readinessProbe.httpGet.httpHeaders

Description
Custom headers to set in the request. HTTP allows repeated headers.
Type
array

.spec.values.meshConfig.defaultConfig.readinessProbe.httpGet.httpHeaders[]

Description
HTTPHeader describes a custom header to be used in HTTP probes
Type
object
Required
namevalue
PropertyTypeDescription
namestring

The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.

valuestring

The header field value

.spec.values.meshConfig.defaultConfig.readinessProbe.tcpSocket

Description
TCPSocket specifies a connection to a TCP port.
Type
object
Required
port
PropertyTypeDescription
hoststring

Optional: Host name to connect to, defaults to the pod IP.

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

.spec.values.meshConfig.defaultConfig.runtimeValues

Description
Envoy [runtime configuration](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/operations/runtime) to set during bootstrapping. This enables setting experimental, unsafe, unsupported, and deprecated features that should be used with extreme caution.
Type
object

.spec.values.meshConfig.defaultConfig.sds

Description
Secret Discovery Service(SDS) configuration to be used by the proxy. Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.
Type
object
PropertyTypeDescription
enabledboolean

True if SDS is enabled.

k8sSaJwtPathstring

Path of k8s service account JWT path.

.spec.values.meshConfig.defaultConfig.tracing

Description
Tracing configuration to be used by the proxy.
Type
object
PropertyTypeDescription
customTagsobject

and gateways). The key represents the name of the tag. Ex:

custom_tags:

	new_tag_name:
	  header:
	    name: custom-http-header-name
	    default_value: defaulted-value-from-custom-header

datadogobject

Use a Datadog tracer.

enableIstioTagsboolean

Determines whether or not trace spans generated by Envoy will include Istio specific tags. By default Istio specific tags are included in the trace spans.

lightstepobject

Use a Lightstep tracer. NOTE: For Istio 1.15+, this configuration option will result in using OpenTelemetry-based Lightstep integration.

maxPathTagLengthinteger

Configures the maximum length of the request path to extract and include in the HttpUrl tag. Used to truncate length request paths to meet the needs of tracing backend. If not set, then a length of 256 will be used.

openCensusAgentobject

Use an OpenCensus tracer exporting to an OpenCensus agent.

samplingnumber

The percentage of requests (0.0 - 100.0) that will be randomly selected for trace generation, if not requested by the client or not forced. Default is 1.0.

stackdriverobject

Use a Stackdriver tracer.

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the remote tracing service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

zipkinobject

Use a Zipkin tracer.

.spec.values.meshConfig.defaultConfig.tracing.customTags

Description
and gateways). The key represents the name of the tag. Ex: ```yaml custom_tags: new_tag_name: header: name: custom-http-header-name default_value: defaulted-value-from-custom-header ```
Type
object

.spec.values.meshConfig.defaultConfig.tracing.datadog

Description
Use a Datadog tracer.
Type
object
PropertyTypeDescription
addressstring

Address of the Datadog Agent.

.spec.values.meshConfig.defaultConfig.tracing.lightstep

Description
Use a Lightstep tracer. NOTE: For Istio 1.15+, this configuration option will result in using OpenTelemetry-based Lightstep integration.
Type
object
PropertyTypeDescription
accessTokenstring

The Lightstep access token.

addressstring

Address of the Lightstep Satellite pool.

.spec.values.meshConfig.defaultConfig.tracing.openCensusAgent

Description
Use an OpenCensus tracer exporting to an OpenCensus agent.
Type
object
PropertyTypeDescription
addressstring

gRPC address for the OpenCensus agent (e.g. dns://authority/host:port or unix:path). See gRPC naming docs for details.

contextarray

Specifies the set of context propagation headers used for distributed tracing. Default is ["W3C_TRACE_CONTEXT"]. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.

.spec.values.meshConfig.defaultConfig.tracing.openCensusAgent.context

Description
Specifies the set of context propagation headers used for distributed tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.
Type
array

.spec.values.meshConfig.defaultConfig.tracing.openCensusAgent.context[]

Description
TraceContext selects the context propagation headers used for distributed tracing.
Type
string

.spec.values.meshConfig.defaultConfig.tracing.stackdriver

Description
Use a Stackdriver tracer.
Type
object
PropertyTypeDescription
debugboolean

debug enables trace output to stdout.

maxNumberOfAnnotationsinteger

The global default max number of annotation events per span. default is 200.

maxNumberOfAttributesinteger

The global default max number of attributes per span. default is 200.

maxNumberOfMessageEventsinteger

The global default max number of message events per span. default is 200.

.spec.values.meshConfig.defaultConfig.tracing.tlsSettings

Description
Use the tlsSettings to specify the tls mode to use. If the remote tracing service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.meshConfig.defaultConfig.tracing.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.meshConfig.defaultConfig.tracing.tlsSettings.subjectAltNames[]

Type
string

.spec.values.meshConfig.defaultConfig.tracing.zipkin

Description
Use a Zipkin tracer.
Type
object
PropertyTypeDescription
addressstring

Address of the Zipkin service (e.g. zipkin:9411).

.spec.values.meshConfig.defaultDestinationRuleExportTo

Description
The default value for the `DestinationRule.exportTo` field. Has the same syntax as `defaultServiceExportTo`. If not set the system will use "*" as the default value which implies that destination rules are exported to all namespaces
Type
array

.spec.values.meshConfig.defaultDestinationRuleExportTo[]

Type
string

.spec.values.meshConfig.defaultHttpRetryPolicy

Description
Configure the default HTTP retry policy. The default number of retry attempts is set at 2 for these errors: "connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes". Setting the number of attempts to 0 disables retry policy globally. This setting can be overridden on a per-host basis using the Virtual Service API. All settings in the retry policy except `perTryTimeout` can currently be configured globally via this field.
Type
object
PropertyTypeDescription
attemptsinteger

Number of retries to be allowed for a given request. The interval between retries will be determined automatically (25ms+). When request timeout of the HTTP route or per_try_timeout is configured, the actual number of retries attempted also depends on the specified request timeout and per_try_timeout values. MUST be >= 0. If 0, retries will be disabled. The maximum possible number of requests made will be 1 + attempts.

backoffstring

Specifies the minimum duration between retry attempts. If unset, default minimum duration of 25ms is used as base interval for exponetial backoff. This has an impact on the total number of retries that will be attempted based on the attempts field and route timeout. For example, with attempts is set to 3, backoff to 2s and timeout to 3s, the request will be retried only once.

perTryTimeoutstring

Timeout per attempt for a given request, including the initial call and any retries. Format: 1h/1m/1s/1ms. MUST be >=1ms. Default is same value as request timeout of the HTTP route, which means no timeout.

retryIgnorePreviousHostsboolean

Flag to specify whether the retries should ignore previously tried hosts during retry. Defaults to true.

retryOnstring

Specifies the conditions under which retry takes place. One or more policies can be specified using a ‘,’ delimited list. See the retry policies and gRPC retry policies for more details.

In addition to the policies specified above, a list of HTTP status codes can be passed, such as retryOn: "503,reset". Note these status codes refer to the actual responses received from the destination. For example, if a connection is reset, Istio will translate this to 503 for it's response. However, the destination did not return a 503 error, so this would not match "503" (it would, however, match "reset").

If not specified, this defaults to connect-failure,refused-stream,unavailable,cancelled.

retryRemoteLocalitiesboolean

Flag to specify whether the retries should retry to other localities. See the retry plugin configuration for more details.

.spec.values.meshConfig.defaultProviders

Description
Specifies extension providers to use by default in Istio configuration resources.
Type
object
PropertyTypeDescription
accessLoggingarray

Name of the default provider(s) for access logging.

metricsarray

Name of the default provider(s) for metrics.

tracingarray

Name of the default provider(s) for tracing.

.spec.values.meshConfig.defaultProviders.accessLogging

Description
Name of the default provider(s) for access logging.
Type
array

.spec.values.meshConfig.defaultProviders.accessLogging[]

Type
string

.spec.values.meshConfig.defaultProviders.metrics

Description
Name of the default provider(s) for metrics.
Type
array

.spec.values.meshConfig.defaultProviders.metrics[]

Type
string

.spec.values.meshConfig.defaultProviders.tracing

Description
Name of the default provider(s) for tracing.
Type
array

.spec.values.meshConfig.defaultProviders.tracing[]

Type
string

.spec.values.meshConfig.defaultServiceExportTo

Description
The default value for the ServiceEntry.exportTo field and services imported through container registry integrations, e.g. this applies to Kubernetes Service resources. The value is a list of namespace names and reserved namespace aliases. The allowed namespace aliases are: ``` * - All Namespaces . - Current Namespace ~ - No Namespace ``` If not set the system will use "*" as the default value which implies that services are exported to all namespaces. `All namespaces` is a reasonable default for implementations that don't need to restrict access or visibility of services across namespace boundaries. If that requirement is present it is generally good practice to make the default `Current namespace` so that services are only visible within their own namespaces by default. Operators can then expand the visibility of services to other namespaces as needed. Use of `No Namespace` is expected to be rare but can have utility for deployments where dependency management needs to be precise even within the scope of a single namespace. For further discussion see the reference documentation for `ServiceEntry`, `Sidecar`, and `Gateway`.
Type
array

.spec.values.meshConfig.defaultServiceExportTo[]

Type
string

.spec.values.meshConfig.defaultVirtualServiceExportTo

Description
The default value for the VirtualService.exportTo field. Has the same syntax as `defaultServiceExportTo`. If not set the system will use "*" as the default value which implies that virtual services are exported to all namespaces
Type
array

.spec.values.meshConfig.defaultVirtualServiceExportTo[]

Type
string

.spec.values.meshConfig.discoverySelectors

Description
A list of Kubernetes selectors that specify the set of namespaces that Istio considers when computing configuration updates for sidecars. This can be used to reduce Istio's computational load by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. If omitted, Istio will use the default behavior of processing all namespaces in the cluster. Elements in the list are disjunctive (OR semantics), i.e. a namespace will be included if it matches any selector. The following example selects any namespace that matches either below: 1. The namespace has both of these labels: `env: prod` and `region: us-east1` 2. The namespace has label `app` equal to `cassandra` or `spark`. ```yaml discoverySelectors: - matchLabels: env: prod region: us-east1 - matchExpressions: - key: app operator: In values: - cassandra - spark ``` Refer to the [Kubernetes selector docs](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) for additional detail on selector semantics.
Type
array

.spec.values.meshConfig.discoverySelectors[]

Description
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.meshConfig.discoverySelectors[].matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.meshConfig.discoverySelectors[].matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.meshConfig.discoverySelectors[].matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.meshConfig.discoverySelectors[].matchExpressions[].values[]

Type
string

.spec.values.meshConfig.discoverySelectors[].matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.meshConfig.extensionProviders

Description
Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy can be used with an extension provider to delegate the authorization decision to a custom authorization system.
Type
array

.spec.values.meshConfig.extensionProviders[]

Type
object
Required
name
PropertyTypeDescription
datadogobject

Configures a Datadog tracing provider.

envoyExtAuthzGrpcobject

Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.

envoyExtAuthzHttpobject

Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the HTTP API.

envoyFileAccessLogobject

Configures an Envoy File Access Log provider.

envoyHttpAlsobject

Configures an Envoy Access Logging Service provider for HTTP traffic.

envoyOtelAlsobject

Configures an Envoy Open Telemetry Access Logging Service provider.

envoyTcpAlsobject

Configures an Envoy Access Logging Service provider for TCP traffic.

lightstepobject

Configures a Lightstep tracing provider. Deprecated: For Istio 1.15+, please use an OpenTelemetryTracingProvider instead, more details can be found at https://github.com/istio/istio/issues/40027

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

namestring

REQUIRED. A unique name identifying the extension provider.

opencensusobject

Configures an OpenCensusAgent tracing provider. Deprecated: OpenCensus is deprecated, more details can be found at https://opentelemetry.io/blog/2023/sunsetting-opencensus/

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

opentelemetryobject

Configures an OpenTelemetry tracing provider.

prometheusobject

Configures a Prometheus metrics provider.

sdsobject

Configures an Extension Provider for SDS. This can be used to configure an external SDS service to supply secrets for certain Gateways for example. This is useful for scenarios where the secrets are stored in an external secret store like Vault. The secret should be configured with sds://provider-name format.

skywalkingobject

Configures a Apache SkyWalking provider.

stackdriverobject

Configures a Stackdriver provider.

zipkinobject

Configures a tracing provider that uses the Zipkin API.

.spec.values.meshConfig.extensionProviders[].datadog

Description
Configures a Datadog tracing provider.
Type
object
Required
portservice
PropertyTypeDescription
maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the Datadog agent. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "datadog.default.svc.cluster.local" or "bar/datadog.example.com".

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzGrpc

Description
Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.
Type
object
Required
portservice
PropertyTypeDescription
clearRouteCacheboolean

If true, clears route cache in order to allow the external authorization service to correctly affect routing decisions. If true, recalculate routes with the new ExtAuthZ added/removed headers. Default is false

failOpenboolean

If true, the HTTP request or TCP connection will be allowed even if the communication with the authorization service has failed, or if the authorization service has returned a HTTP 5xx error. Default is false. For HTTP request, it will be rejected with 403 (HTTP Forbidden). For TCP connection, it will be closed immediately.

includeRequestBodyInCheckobject

If set, the client request body will be included in the authorization request sent to the authorization service.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ext_authz gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "my-ext-authz.foo.svc.cluster.local" or "bar/my-ext-authz.example.com".

statusOnErrorstring

Sets the HTTP status that is returned to the client when there is a network error to the authorization service. The default status is "403" (HTTP Forbidden).

timeoutstring

The maximum duration that the proxy will wait for a response from the provider, this is the timeout for a specific request (default timeout: 600s). When this timeout condition is met, the proxy marks the communication to the authorization service as failure. In this situation, the response sent back to the client will depend on the configured failOpen field.

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzGrpc.includeRequestBodyInCheck

Description
If set, the client request body will be included in the authorization request sent to the authorization service.
Type
object
PropertyTypeDescription
allowPartialMessageboolean

When this field is true, ext-authz filter will buffer the message until maxRequestBytes is reached. The authorization request will be dispatched and no 413 HTTP error will be returned by the filter. A "x-envoy-auth-partial-body: false|true" metadata header will be added to the authorization request message indicating if the body data is partial.

maxRequestBytesinteger

Sets the maximum size of a message body that the ext-authz filter will hold in memory. If maxRequestBytes is reached, and allowPartialMessage is false, Envoy will return a 413 (Payload Too Large). Otherwise the request will be sent to the provider with a partial message. Note that this setting will have precedence over the failOpen field, the 413 will be returned even when the failOpen is set to true.

packAsBytesboolean

If true, the body sent to the external authorization service in the gRPC authorization request is set with raw bytes in the raw_body field. Otherwise, it will be filled with UTF-8 string in the body field. This field only works with the envoyExtAuthzGrpc provider and has no effect for the envoyExtAuthzHttp provider.

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp

Description
Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the HTTP API.
Type
object
Required
portservice
PropertyTypeDescription
clearRouteCacheboolean

If true, clears route cache in order to allow the external authorization service to correctly affect routing decisions. If true, recalculate routes with the new ExtAuthZ added/removed headers. Default is false

failOpenboolean

If true, the user request will be allowed even if the communication with the authorization service has failed, or if the authorization service has returned a HTTP 5xx error. Default is false and the request will be rejected with "Forbidden" response.

headersToDownstreamOnAllowarray

List of headers from the authorization service that should be forwarded to downstream when the authorization check result is allowed (HTTP code 200). If not specified, the original response will not be modified and forwarded to downstream as-is. Note, any existing headers will be overridden.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
headersToDownstreamOnDenyarray

List of headers from the authorization service that should be forwarded to downstream when the authorization check result is not allowed (HTTP code other than 200). If not specified, all the authorization response headers, except Authority (Host) will be in the response to the downstream. When a header is included in this list, Path, Status, Content-Length, WWWAuthenticate and Location are automatically added. Note, the body from the authorization service is always included in the response to downstream.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
headersToUpstreamOnAllowarray

List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200). If not specified, the original request will not be modified and forwarded to backend as-is. Note, any existing headers will be overridden.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
includeAdditionalHeadersInCheckobject

Set of additional fixed headers that should be included in the authorization request sent to the authorization service. Key is the header name and value is the header value. Note that client request of the same key or headers specified in includeRequestHeadersInCheck will be overridden.

includeHeadersInCheckarray

DEPRECATED. Use includeRequestHeadersInCheck instead.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

includeRequestBodyInCheckobject

If set, the client request body will be included in the authorization request sent to the authorization service.

includeRequestHeadersInCheckarray

List of client request headers that should be included in the authorization request sent to the authorization service. Note that in addition to the headers specified here following headers are included by default:

  1. Host, Method, Path and Content-Length are automatically sent.
  2. Content-Length will be set to 0 and the request will not have a message body. However, the authorization request can include the buffered client request body (controlled by includeRequestBodyInCheck setting), consequently the value of Content-Length of the authorization request reflects the size of its payload size.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
pathPrefixstring

Sets a prefix to the value of authorization request header Path. For example, setting this to "/check" for an original user request at path "/admin" will cause the authorization check request to be sent to the authorization service at the path "/check/admin" instead of "/admin".

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ext_authz HTTP authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "my-ext-authz.foo.svc.cluster.local" or "bar/my-ext-authz.example.com".

statusOnErrorstring

Sets the HTTP status that is returned to the client when there is a network error to the authorization service. The default status is "403" (HTTP Forbidden).

timeoutstring

The maximum duration that the proxy will wait for a response from the provider (default timeout: 600s). When this timeout condition is met, the proxy marks the communication to the authorization service as failure. In this situation, the response sent back to the client will depend on the configured failOpen field.

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnAllow

Description
List of headers from the authorization service that should be forwarded to downstream when the authorization check result is allowed (HTTP code 200). If not specified, the original response will not be modified and forwarded to downstream as-is. Note, any existing headers will be overridden. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnAllow[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnDeny

Description
List of headers from the authorization service that should be forwarded to downstream when the authorization check result is not allowed (HTTP code other than 200). If not specified, all the authorization response headers, except *Authority (Host)* will be in the response to the downstream. When a header is included in this list, *Path*, *Status*, *Content-Length*, *WWWAuthenticate* and *Location* are automatically added. Note, the body from the authorization service is always included in the response to downstream. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnDeny[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToUpstreamOnAllow

Description
List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200). If not specified, the original request will not be modified and forwarded to backend as-is. Note, any existing headers will be overridden. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToUpstreamOnAllow[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeAdditionalHeadersInCheck

Description
Set of additional fixed headers that should be included in the authorization request sent to the authorization service. Key is the header name and value is the header value. Note that client request of the same key or headers specified in includeRequestHeadersInCheck will be overridden.
Type
object

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeHeadersInCheck

Description
DEPRECATED. Use includeRequestHeadersInCheck instead. Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
array

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeHeadersInCheck[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeRequestBodyInCheck

Description
If set, the client request body will be included in the authorization request sent to the authorization service.
Type
object
PropertyTypeDescription
allowPartialMessageboolean

When this field is true, ext-authz filter will buffer the message until maxRequestBytes is reached. The authorization request will be dispatched and no 413 HTTP error will be returned by the filter. A "x-envoy-auth-partial-body: false|true" metadata header will be added to the authorization request message indicating if the body data is partial.

maxRequestBytesinteger

Sets the maximum size of a message body that the ext-authz filter will hold in memory. If maxRequestBytes is reached, and allowPartialMessage is false, Envoy will return a 413 (Payload Too Large). Otherwise the request will be sent to the provider with a partial message. Note that this setting will have precedence over the failOpen field, the 413 will be returned even when the failOpen is set to true.

packAsBytesboolean

If true, the body sent to the external authorization service in the gRPC authorization request is set with raw bytes in the raw_body field. Otherwise, it will be filled with UTF-8 string in the body field. This field only works with the envoyExtAuthzGrpc provider and has no effect for the envoyExtAuthzHttp provider.

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeRequestHeadersInCheck

Description
List of client request headers that should be included in the authorization request sent to the authorization service. Note that in addition to the headers specified here following headers are included by default: 1. *Host*, *Method*, *Path* and *Content-Length* are automatically sent. 2. *Content-Length* will be set to 0 and the request will not have a message body. However, the authorization request can include the buffered client request body (controlled by includeRequestBodyInCheck setting), consequently the value of Content-Length of the authorization request reflects the size of its payload size. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeRequestHeadersInCheck[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyFileAccessLog

Description
Configures an Envoy File Access Log provider.
Type
object
PropertyTypeDescription
logFormatobject

Optional. Allows overriding of the default access log format.

omitEmptyValuesboolean

Optional. If set to true, when command operators are evaluated to null, For text format, the output of the empty operator is changed from "-" to an empty string. For json format, the keys with null values are omitted in the output structure.

pathstring

Path to a local file to write the access log entries. This may be used to write to streams, via /dev/stderr and /dev/stdout If unspecified, defaults to /dev/stdout.

.spec.values.meshConfig.extensionProviders[].envoyFileAccessLog.logFormat

Description
Optional. Allows overriding of the default access log format.
Type
object
PropertyTypeDescription
labelsobject

JSON structured format for the envoy access logs. Envoy command operators can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: format dictionaries). Nested JSON is supported for some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA). Use labels: {} for default envoy JSON log format.

Example:

labels:

	status: "%RESPONSE_CODE%"
	message: "%LOCAL_REPLY_BODY%"

textstring

Textual format for the envoy access logs. Envoy command operators may be used in the format. The format string documentation provides more information.

NOTE: Istio will insert a newline ('\n') on all formats (if missing).

Example: text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"

.spec.values.meshConfig.extensionProviders[].envoyFileAccessLog.logFormat.labels

Description
JSON structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: [format dictionaries](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-dictionaries)). Nested JSON is supported for some command operators (e.g. `FILTER_STATE` or `DYNAMIC_METADATA`). Use `labels: {}` for default envoy JSON log format. Example: ``` labels: status: "%RESPONSE_CODE%" message: "%LOCAL_REPLY_BODY%" ```
Type
object

.spec.values.meshConfig.extensionProviders[].envoyHttpAls

Description
Configures an Envoy Access Logging Service provider for HTTP traffic.
Type
object
Required
portservice
PropertyTypeDescription
additionalRequestHeadersToLogarray

Optional. Additional request headers to log.

additionalResponseHeadersToLogarray

Optional. Additional response headers to log.

additionalResponseTrailersToLogarray

Optional. Additional response trailers to log.

filterStateObjectsToLogarray

Optional. Additional filter state objects to log.

logNamestring

Optional. The friendly name of the access log. Defaults:

  • "http_envoy_accesslog"
  • "listener_envoy_accesslog"
portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.additionalRequestHeadersToLog

Description
Optional. Additional request headers to log.
Type
array

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.additionalRequestHeadersToLog[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseHeadersToLog

Description
Optional. Additional response headers to log.
Type
array

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseHeadersToLog[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseTrailersToLog

Description
Optional. Additional response trailers to log.
Type
array

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseTrailersToLog[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.filterStateObjectsToLog

Description
Optional. Additional filter state objects to log.
Type
array

.spec.values.meshConfig.extensionProviders[].envoyHttpAls.filterStateObjectsToLog[]

Type
string

.spec.values.meshConfig.extensionProviders[].envoyOtelAls

Description
Configures an Envoy Open Telemetry Access Logging Service provider.
Type
object
Required
portservice
PropertyTypeDescription
logFormatobject

Optional. Format for the proxy access log Empty value results in proxy's default access log format, following Envoy access logging formatting.

logNamestring

Optional. The friendly name of the access log. Defaults:

  • "otel_envoy_accesslog"
portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".

.spec.values.meshConfig.extensionProviders[].envoyOtelAls.logFormat

Description
Optional. Format for the proxy access log Empty value results in proxy's default access log format, following Envoy access logging formatting.
Type
object
PropertyTypeDescription
labelsobject

Optional. Additional attributes that describe the specific event occurrence. Structured format for the envoy access logs. Envoy command operators can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: format dictionaries). Nested JSON is supported for some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA). Alias to attributes field in Open Telemetry

Example:

labels:

	status: "%RESPONSE_CODE%"
	message: "%LOCAL_REPLY_BODY%"

textstring

Textual format for the envoy access logs. Envoy command operators may be used in the format. The format string documentation provides more information. Alias to body field in Open Telemetry Example: text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"

.spec.values.meshConfig.extensionProviders[].envoyOtelAls.logFormat.labels

Description
Optional. Additional attributes that describe the specific event occurrence. Structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: [format dictionaries](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-dictionaries)). Nested JSON is supported for some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA). Alias to `attributes` field in [Open Telemetry](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/open_telemetry/v3/logs_service.proto) Example: ``` labels: status: "%RESPONSE_CODE%" message: "%LOCAL_REPLY_BODY%" ```
Type
object

.spec.values.meshConfig.extensionProviders[].envoyTcpAls

Description
Configures an Envoy Access Logging Service provider for TCP traffic.
Type
object
Required
portservice
PropertyTypeDescription
filterStateObjectsToLogarray

Optional. Additional filter state objects to log.

logNamestring

Optional. The friendly name of the access log. Defaults:

  • "tcp_envoy_accesslog"
  • "listener_envoy_accesslog"
portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".

.spec.values.meshConfig.extensionProviders[].envoyTcpAls.filterStateObjectsToLog

Description
Optional. Additional filter state objects to log.
Type
array

.spec.values.meshConfig.extensionProviders[].envoyTcpAls.filterStateObjectsToLog[]

Type
string

.spec.values.meshConfig.extensionProviders[].lightstep

Description
Configures a Lightstep tracing provider. Deprecated: For Istio 1.15+, please use an OpenTelemetryTracingProvider instead, more details can be found at https://github.com/istio/istio/issues/40027 Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
object
Required
portservice
PropertyTypeDescription
accessTokenstring

The Lightstep access token.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the Lightstep collector. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "lightstep.default.svc.cluster.local" or "bar/lightstep.example.com".

.spec.values.meshConfig.extensionProviders[].opencensus

Description
Configures an OpenCensusAgent tracing provider. Deprecated: OpenCensus is deprecated, more details can be found at https://opentelemetry.io/blog/2023/sunsetting-opencensus/ Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
object
Required
portservice
PropertyTypeDescription
contextarray

Specifies the set of context propagation headers used for distributed tracing. Default is ["W3C_TRACE_CONTEXT"]. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the OpenCensusAgent. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "ocagent.default.svc.cluster.local" or "bar/ocagent.example.com".

.spec.values.meshConfig.extensionProviders[].opencensus.context

Description
Specifies the set of context propagation headers used for distributed tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.
Type
array

.spec.values.meshConfig.extensionProviders[].opencensus.context[]

Description
TraceContext selects the context propagation headers used for distributed tracing.
Type
string

.spec.values.meshConfig.extensionProviders[].opentelemetry

Description
Configures an OpenTelemetry tracing provider.
Type
object
Required
portservice
PropertyTypeDescription
dynatraceSamplerobject

The Dynatrace adaptive traffic management (ATM) sampler.

Example configuration:

  - name: otel-tracing
    opentelemetry:
    port: 443
    service: "{your-environment-id}.live.dynatrace.com"
    http:
    path: "/api/v2/otlp/v1/traces"
    timeout: 10s
    headers:
  - name: "Authorization"
    value: "Api-Token dt0c01."
    resourceDetectors:
    dynatrace: {}
    dynatraceSampler:
    tenant: "{your-environment-id}"
    clusterId: 1234
grpcobject

Optional. Specifies the configuration for exporting OTLP traces via GRPC. When empty, traces will check whether HTTP is set. If not, traces will use default GRPC configurations.

The following example shows how to configure the OpenTelemetry ExtensionProvider to export via GRPC:

  1. Add/change the OpenTelemetry extension provider in MeshConfig
  - name: opentelemetry
    opentelemetry:
    port: 8090
    service: tracing.example.com
    grpc:
    timeout: 10s
    initialMetadata:
  - name: "Authentication"
    value: "token-xxxxx"

  1. Deploy a ServiceEntry for the observability back-end
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:

	name: tracing-grpc

spec:

	hosts:
	- tracing.example.com
	ports:
	- number: 8090
	  name: grpc-port
	  protocol: GRPC
	resolution: DNS
	location: MESH_EXTERNAL

httpobject

Optional. Specifies the configuration for exporting OTLP traces via HTTP. When empty, traces will be exported via gRPC.

The following example shows how to configure the OpenTelemetry ExtensionProvider to export via HTTP:

  1. Add/change the OpenTelemetry extension provider in MeshConfig
  - name: otel-tracing
    opentelemetry:
    port: 443
    service: my.olly-backend.com
    http:
    path: "/api/otlp/traces"
    timeout: 10s
    headers:
  - name: "my-custom-header"
    value: "some value"

  1. Deploy a ServiceEntry for the observability back-end
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:

	name: my-olly-backend

spec:

	hosts:
	- my.olly-backend.com
	ports:
	- number: 443
	  name: https-port
	  protocol: HTTPS
	resolution: DNS
	location: MESH_EXTERNAL

---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:

	name: my-olly-backend

spec:

	host: my.olly-backend.com
	trafficPolicy:
	  portLevelSettings:
	  - port:
	      number: 443
	    tls:
	      mode: SIMPLE

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

resourceDetectorsobject

Optional. Specifies Resource Detectors to be used by the OpenTelemetry Tracer. When multiple resources are provided, they are merged according to the OpenTelemetry Resource specification.

The following example shows how to configure the Environment Resource Detector, that will read the attributes from the environment variable OTEL_RESOURCE_ATTRIBUTES:

  - name: otel-tracing
    opentelemetry:
    port: 443
    service: my.olly-backend.com
    resourceDetectors:
    environment: {}

servicestring

REQUIRED. Specifies the OpenTelemetry endpoint that will receive OTLP traces. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "otlp.default.svc.cluster.local" or "bar/otlp.example.com".

.spec.values.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler

Description
The Dynatrace adaptive traffic management (ATM) sampler. Example configuration: ```yaml - name: otel-tracing opentelemetry: port: 443 service: "{your-environment-id}.live.dynatrace.com" http: path: "/api/v2/otlp/v1/traces" timeout: 10s headers: - name: "Authorization" value: "Api-Token dt0c01." resourceDetectors: dynatrace: {} dynatraceSampler: tenant: "{your-environment-id}" clusterId: 1234
Type
object
Required
clusterIdtenant
PropertyTypeDescription
clusterIdinteger

REQUIRED. The identifier of the cluster in the Dynatrace platform. The cluster here is Dynatrace-specific concept and not related to the cluster concept in Istio/Envoy.

The value can be obtained from the Istio deployment page in Dynatrace.

httpServiceobject

Optional. Dynatrace HTTP API to obtain sampling configuration.

When not provided, the Dynatrace Sampler will re-use the configuration from the OpenTelemetryTracingProvider HTTP Exporter (service, port and http), including the access token.

rootSpansPerMinuteinteger

Optional. Number of sampled spans per minute to be used when the adaptive value cannot be obtained from the Dynatrace API.

A default value of 1000 is used when:

  • rootSpansPerMinute is unset
  • rootSpansPerMinute is set to 0
tenantstring

REQUIRED. The Dynatrace customer's tenant identifier.

The value can be obtained from the Istio deployment page in Dynatrace.

.spec.values.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService

Description
Optional. Dynatrace HTTP API to obtain sampling configuration. When not provided, the Dynatrace Sampler will re-use the configuration from the OpenTelemetryTracingProvider HTTP Exporter (`service`, `port` and `http`), including the access token.
Type
object
Required
httpportservice
PropertyTypeDescription
httpobject

REQUIRED. Specifies sampling configuration URI.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the Dynatrace environment to obtain the sampling configuration. The format is <Hostname>, where <Hostname> is the fully qualified Dynatrace environment host name defined in the ServiceEntry.

Example: "{your-environment-id}.live.dynatrace.com".

.spec.values.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService.http

Description
REQUIRED. Specifies sampling configuration URI.
Type
object
Required
path
PropertyTypeDescription
headersarray

Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.

pathstring

REQUIRED. Specifies the path on the service.

timeoutstring

Optional. Specifies the timeout for the HTTP request. If not specified, the default is 3s.

.spec.values.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService.http.headers

Description
Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.
Type
array

.spec.values.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService.http.headers[]

Type
object
Required
name
PropertyTypeDescription
envNamestring

The HTTP header value from the environment variable.

Warning:

  • The environment variable must be set in the istiod pod spec.
  • This is not a end-to-end secure.
namestring

REQUIRED. The HTTP header name.

valuestring

The HTTP header value.

.spec.values.meshConfig.extensionProviders[].opentelemetry.grpc

Description
Optional. Specifies the configuration for exporting OTLP traces via GRPC. When empty, traces will check whether HTTP is set. If not, traces will use default GRPC configurations. The following example shows how to configure the OpenTelemetry ExtensionProvider to export via GRPC: 1. Add/change the OpenTelemetry extension provider in `MeshConfig` ```yaml - name: opentelemetry opentelemetry: port: 8090 service: tracing.example.com grpc: timeout: 10s initialMetadata: - name: "Authentication" value: "token-xxxxx" ``` 2. Deploy a `ServiceEntry` for the observability back-end ```yaml apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: tracing-grpc spec: hosts: - tracing.example.com ports: - number: 8090 name: grpc-port protocol: GRPC resolution: DNS location: MESH_EXTERNAL ```
Type
object
PropertyTypeDescription
initialMetadataarray

Optional. Additional metadata to include in streams initiated to the GrpcService. This can be used for scenarios in which additional ad hoc authorization headers (e.g. "x-foo-bar: baz-key") are to be injected.

timeoutstring

Optional. Specifies the timeout for the GRPC request.

.spec.values.meshConfig.extensionProviders[].opentelemetry.grpc.initialMetadata

Description
Optional. Additional metadata to include in streams initiated to the GrpcService. This can be used for scenarios in which additional ad hoc authorization headers (e.g. "x-foo-bar: baz-key") are to be injected.
Type
array

.spec.values.meshConfig.extensionProviders[].opentelemetry.grpc.initialMetadata[]

Type
object
Required
name
PropertyTypeDescription
envNamestring

The HTTP header value from the environment variable.

Warning:

  • The environment variable must be set in the istiod pod spec.
  • This is not a end-to-end secure.
namestring

REQUIRED. The HTTP header name.

valuestring

The HTTP header value.

.spec.values.meshConfig.extensionProviders[].opentelemetry.http

Description
Optional. Specifies the configuration for exporting OTLP traces via HTTP. When empty, traces will be exported via gRPC. The following example shows how to configure the OpenTelemetry ExtensionProvider to export via HTTP: 1. Add/change the OpenTelemetry extension provider in `MeshConfig` ```yaml - name: otel-tracing opentelemetry: port: 443 service: my.olly-backend.com http: path: "/api/otlp/traces" timeout: 10s headers: - name: "my-custom-header" value: "some value" ``` 2. Deploy a `ServiceEntry` for the observability back-end ```yaml apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: my-olly-backend spec: hosts: - my.olly-backend.com ports: - number: 443 name: https-port protocol: HTTPS resolution: DNS location: MESH_EXTERNAL --- apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: my-olly-backend spec: host: my.olly-backend.com trafficPolicy: portLevelSettings: - port: number: 443 tls: mode: SIMPLE ```
Type
object
Required
path
PropertyTypeDescription
headersarray

Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.

pathstring

REQUIRED. Specifies the path on the service.

timeoutstring

Optional. Specifies the timeout for the HTTP request. If not specified, the default is 3s.

.spec.values.meshConfig.extensionProviders[].opentelemetry.http.headers

Description
Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.
Type
array

.spec.values.meshConfig.extensionProviders[].opentelemetry.http.headers[]

Type
object
Required
name
PropertyTypeDescription
envNamestring

The HTTP header value from the environment variable.

Warning:

  • The environment variable must be set in the istiod pod spec.
  • This is not a end-to-end secure.
namestring

REQUIRED. The HTTP header name.

valuestring

The HTTP header value.

.spec.values.meshConfig.extensionProviders[].opentelemetry.resourceDetectors

Description
Optional. Specifies [Resource Detectors](https://opentelemetry.io/docs/specs/otel/resource/sdk/) to be used by the OpenTelemetry Tracer. When multiple resources are provided, they are merged according to the OpenTelemetry [Resource specification](https://opentelemetry.io/docs/specs/otel/resource/sdk/#merge). The following example shows how to configure the Environment Resource Detector, that will read the attributes from the environment variable `OTEL_RESOURCE_ATTRIBUTES`: ```yaml - name: otel-tracing opentelemetry: port: 443 service: my.olly-backend.com resourceDetectors: environment: {} ```
Type
object
PropertyTypeDescription
dynatraceobject

Dynatrace Resource Detector. The resource detector reads from the Dynatrace enrichment files and adds host/process related attributes to the OpenTelemetry resource.

See: Enrich ingested data with Dynatrace-specific dimensions

environmentobject

OpenTelemetry Environment Resource Detector. The resource detector reads attributes from the environment variable OTEL_RESOURCE_ATTRIBUTES and adds them to the OpenTelemetry resource.

See: Resource specification

.spec.values.meshConfig.extensionProviders[].opentelemetry.resourceDetectors.dynatrace

Description
Dynatrace Resource Detector. The resource detector reads from the Dynatrace enrichment files and adds host/process related attributes to the OpenTelemetry resource. See: [Enrich ingested data with Dynatrace-specific dimensions](https://docs.dynatrace.com/docs/shortlink/enrichment-files)
Type
object

.spec.values.meshConfig.extensionProviders[].opentelemetry.resourceDetectors.environment

Description
OpenTelemetry Environment Resource Detector. The resource detector reads attributes from the environment variable `OTEL_RESOURCE_ATTRIBUTES` and adds them to the OpenTelemetry resource. See: [Resource specification](https://opentelemetry.io/docs/specs/otel/resource/sdk/#specifying-resource-information-via-an-environment-variable)
Type
object

.spec.values.meshConfig.extensionProviders[].prometheus

Description
Configures a Prometheus metrics provider.
Type
object

.spec.values.meshConfig.extensionProviders[].sds

Description
Configures an Extension Provider for SDS. This can be used to configure an external SDS service to supply secrets for certain Gateways for example. This is useful for scenarios where the secrets are stored in an external secret store like Vault. The secret should be configured with sds://provider-name format.
Type
object
Required
nameportservice
PropertyTypeDescription
namestring

REQUIRED. Specifies the name of the provider. This should be used to configure the Gateway SDS.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the SDS service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "gateway-sds.foo.svc.cluster.local" or "bar/gateway-sds.example.com".

.spec.values.meshConfig.extensionProviders[].skywalking

Description
Configures a Apache SkyWalking provider.
Type
object
Required
portservice
PropertyTypeDescription
accessTokenstring

Optional. The SkyWalking OAP access token.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the SkyWalking receiver. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "skywalking.default.svc.cluster.local" or "bar/skywalking.example.com".

.spec.values.meshConfig.extensionProviders[].stackdriver

Description
Configures a Stackdriver provider.
Type
object
PropertyTypeDescription
debugboolean

debug enables trace output to stdout.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

loggingobject

Optional. Controls Stackdriver logging behavior.

maxNumberOfAnnotationsinteger

The global default max number of annotation events per span. default is 200.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

maxNumberOfAttributesinteger

The global default max number of attributes per span. default is 200.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

maxNumberOfMessageEventsinteger

The global default max number of message events per span. default is 200.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

.spec.values.meshConfig.extensionProviders[].stackdriver.logging

Description
Optional. Controls Stackdriver logging behavior.
Type
object
PropertyTypeDescription
labelsobject

Collection of tag names and tag expressions to include in the log entry. Conflicts are resolved by the tag name by overriding previously supplied values.

Example:

labels:
  path: request.url_path
  foo: request.headers['x-foo']

.spec.values.meshConfig.extensionProviders[].stackdriver.logging.labels

Description
Collection of tag names and tag expressions to include in the log entry. Conflicts are resolved by the tag name by overriding previously supplied values. Example: labels: path: request.url_path foo: request.headers['x-foo']
Type
object

.spec.values.meshConfig.extensionProviders[].zipkin

Description
Configures a tracing provider that uses the Zipkin API.
Type
object
Required
portservice
PropertyTypeDescription
enable64bitTraceIdboolean

Optional. A 128 bit trace id will be used in Istio. If true, will result in a 64 bit trace id being used.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

pathstring

Optional. Specifies the endpoint of Zipkin API. The default value is "/api/v2/spans".

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that the Zipkin API. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "zipkin.default.svc.cluster.local" or "bar/zipkin.example.com".

.spec.values.meshConfig.inboundTrafficPolicy

Description
Set the default behavior of the sidecar for handling inbound traffic to the application. If your application listens on localhost, you will need to set this to `LOCALHOST`.
Type
object
PropertyTypeDescription
modestring

.spec.values.meshConfig.localityLbSetting

Description
Locality based load balancing distribution or failover settings. If unspecified, locality based load balancing will be enabled by default. However, this requires outlierDetection to actually take effect for a particular service, see https://istio.io/latest/docs/tasks/traffic-management/locality-load-balancing/failover/
Type
object
PropertyTypeDescription
distributearray

Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to Locality weighted load balancing If empty, the locality weight is set according to the endpoints number within it.

enabledboolean

Enable locality load balancing. This is DestinationRule-level and will override mesh-wide settings in entirety. e.g. true means that turn on locality load balancing for this DestinationRule no matter what mesh-wide settings is.

failoverarray

Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.

failoverPriorityarray

failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing. This is to support traffic failover across different groups of endpoints. Two kinds of labels can be specified:

  • Specify only label keys [key1, key2, key3], istio would compare the label values of client with endpoints. Suppose there are total N label keys [key1, key2, key3, ...keyN] specified:

    1. Endpoints matching all N labels with the client proxy have priority P(0) i.e. the highest priority.
    2. Endpoints matching the first N-1 labels with the client proxy have priority P(1) i.e. second highest priority.
    3. By extension of this logic, endpoints matching only the first label with the client proxy has priority P(N-1) i.e. second lowest priority.
    4. All the other endpoints have priority P(N) i.e. lowest priority.
  • Specify labels with key and value [key1=value1, key2=value2, key3=value3], istio would compare the labels with endpoints. Suppose there are total N labels [key1=value1, key2=value2, key3=value3, ...keyN=valueN] specified:

    1. Endpoints matching all N labels have priority P(0) i.e. the highest priority.
    2. Endpoints matching the first N-1 labels have priority P(1) i.e. second highest priority.
    3. By extension of this logic, endpoints matching only the first label has priority P(N-1) i.e. second lowest priority.
    4. All the other endpoints have priority P(N) i.e. lowest priority.

Note: For a label to be considered for match, the previous labels must match, i.e. nth label would be considered matched only if first n-1 labels match.

It can be any label specified on both client and server workloads. The following labels which have special semantic meaning are also supported:

  • topology.istio.io/network is used to match the network metadata of an endpoint, which can be specified by pod/namespace label topology.istio.io/network, sidecar env ISTIO_META_NETWORK or MeshNetworks.
  • topology.istio.io/cluster is used to match the clusterID of an endpoint, which can be specified by pod label topology.istio.io/cluster or pod env ISTIO_META_CLUSTER_ID.
  • topology.kubernetes.io/region is used to match the region metadata of an endpoint, which maps to Kubernetes node label topology.kubernetes.io/region or the deprecated label failure-domain.beta.kubernetes.io/region.
  • topology.kubernetes.io/zone is used to match the zone metadata of an endpoint, which maps to Kubernetes node label topology.kubernetes.io/zone or the deprecated label failure-domain.beta.kubernetes.io/zone.
  • topology.istio.io/subzone is used to match the subzone metadata of an endpoint, which maps to Istio node label topology.istio.io/subzone.
  • kubernetes.io/hostname is used to match the current node of an endpoint, which maps to Kubernetes node label kubernetes.io/hostname.

The below topology config indicates the following priority levels:

failoverPriority:
- "topology.istio.io/network"
- "topology.kubernetes.io/region"
- "topology.kubernetes.io/zone"
- "topology.istio.io/subzone"
  1. endpoints match same [network, region, zone, subzone] label with the client proxy have the highest priority.
  2. endpoints have same [network, region, zone] label but different [subzone] label with the client proxy have the second highest priority.
  3. endpoints have same [network, region] label but different [zone] label with the client proxy have the third highest priority.
  4. endpoints have same [network] but different [region] labels with the client proxy have the fourth highest priority.
  5. all the other endpoints have the same lowest priority.

Suppose a service associated endpoints reside in multi clusters, the below example represents:

  1. endpoints in clusterA and has version=v1 label have P(0) priority.
  2. endpoints not in clusterA but has version=v1 label have P(1) priority.
  3. all the other endpoints have P(2) priority.
failoverPriority:
- "version=v1"
- "topology.istio.io/cluster=clusterA"

Optional: only one of distribute, failover or failoverPriority can be set. And it should be used together with OutlierDetection to detect unhealthy endpoints, otherwise has no effect.

.spec.values.meshConfig.localityLbSetting.distribute

Description
Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) If empty, the locality weight is set according to the endpoints number within it.
Type
array

.spec.values.meshConfig.localityLbSetting.distribute[]

Description
Describes how traffic originating in the 'from' zone or sub-zone is distributed over a set of 'to' zones. Syntax for specifying a zone is {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any segment of the specification. Examples: `*` - matches all localities `us-west/*` - all zones and sub-zones within the us-west region `us-west/zone-1/*` - all sub-zones within us-west/zone-1
Type
object
PropertyTypeDescription
fromstring

Originating locality, '/' separated, e.g. 'region/zone/sub_zone'.

toobject

Map of upstream localities to traffic distribution weights. The sum of all weights should be 100. Any locality not present will receive no traffic.

.spec.values.meshConfig.localityLbSetting.distribute[].to

Description
Map of upstream localities to traffic distribution weights. The sum of all weights should be 100. Any locality not present will receive no traffic.
Type
object

.spec.values.meshConfig.localityLbSetting.failover

Description
Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.
Type
array

.spec.values.meshConfig.localityLbSetting.failover[]

Description
Specify the traffic failover policy across regions. Since zone and sub-zone failover is supported by default this only needs to be specified for regions when the operator needs to constrain traffic failover so that the default behavior of failing over to any endpoint globally does not apply. This is useful when failing over traffic across regions would not improve service health or may need to be restricted for other reasons like regulatory controls.
Type
object
PropertyTypeDescription
fromstring

Originating region.

tostring

Destination region the traffic will fail over to when endpoints in the 'from' region becomes unhealthy.

.spec.values.meshConfig.localityLbSetting.failoverPriority

Description
failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing. This is to support traffic failover across different groups of endpoints. Two kinds of labels can be specified: - Specify only label keys `[key1, key2, key3]`, istio would compare the label values of client with endpoints. Suppose there are total N label keys `[key1, key2, key3, ...keyN]` specified: 1. Endpoints matching all N labels with the client proxy have priority P(0) i.e. the highest priority. 2. Endpoints matching the first N-1 labels with the client proxy have priority P(1) i.e. second highest priority. 3. By extension of this logic, endpoints matching only the first label with the client proxy has priority P(N-1) i.e. second lowest priority. 4. All the other endpoints have priority P(N) i.e. lowest priority. - Specify labels with key and value `[key1=value1, key2=value2, key3=value3]`, istio would compare the labels with endpoints. Suppose there are total N labels `[key1=value1, key2=value2, key3=value3, ...keyN=valueN]` specified: 1. Endpoints matching all N labels have priority P(0) i.e. the highest priority. 2. Endpoints matching the first N-1 labels have priority P(1) i.e. second highest priority. 3. By extension of this logic, endpoints matching only the first label has priority P(N-1) i.e. second lowest priority. 4. All the other endpoints have priority P(N) i.e. lowest priority. Note: For a label to be considered for match, the previous labels must match, i.e. nth label would be considered matched only if first n-1 labels match. It can be any label specified on both client and server workloads. The following labels which have special semantic meaning are also supported: - `topology.istio.io/network` is used to match the network metadata of an endpoint, which can be specified by pod/namespace label `topology.istio.io/network`, sidecar env `ISTIO_META_NETWORK` or MeshNetworks. - `topology.istio.io/cluster` is used to match the clusterID of an endpoint, which can be specified by pod label `topology.istio.io/cluster` or pod env `ISTIO_META_CLUSTER_ID`. - `topology.kubernetes.io/region` is used to match the region metadata of an endpoint, which maps to Kubernetes node label `topology.kubernetes.io/region` or the deprecated label `failure-domain.beta.kubernetes.io/region`. - `topology.kubernetes.io/zone` is used to match the zone metadata of an endpoint, which maps to Kubernetes node label `topology.kubernetes.io/zone` or the deprecated label `failure-domain.beta.kubernetes.io/zone`. - `topology.istio.io/subzone` is used to match the subzone metadata of an endpoint, which maps to Istio node label `topology.istio.io/subzone`. - `kubernetes.io/hostname` is used to match the current node of an endpoint, which maps to Kubernetes node label `kubernetes.io/hostname`. The below topology config indicates the following priority levels: ```yaml failoverPriority: - "topology.istio.io/network" - "topology.kubernetes.io/region" - "topology.kubernetes.io/zone" - "topology.istio.io/subzone" ``` 1. endpoints match same [network, region, zone, subzone] label with the client proxy have the highest priority. 2. endpoints have same [network, region, zone] label but different [subzone] label with the client proxy have the second highest priority. 3. endpoints have same [network, region] label but different [zone] label with the client proxy have the third highest priority. 4. endpoints have same [network] but different [region] labels with the client proxy have the fourth highest priority. 5. all the other endpoints have the same lowest priority. Suppose a service associated endpoints reside in multi clusters, the below example represents: 1. endpoints in `clusterA` and has `version=v1` label have P(0) priority. 2. endpoints not in `clusterA` but has `version=v1` label have P(1) priority. 2. all the other endpoints have P(2) priority. ```yaml failoverPriority: - "version=v1" - "topology.istio.io/cluster=clusterA" ``` Optional: only one of distribute, failover or failoverPriority can be set. And it should be used together with `OutlierDetection` to detect unhealthy endpoints, otherwise has no effect.
Type
array

.spec.values.meshConfig.localityLbSetting.failoverPriority[]

Type
string

.spec.values.meshConfig.meshMTLS

Description
The below configuration parameters can be used to specify TLSConfig for mesh traffic. For example, a user could enable min TLS version for ISTIO_MUTUAL traffic and specify a curve for non ISTIO_MUTUAL traffic like below: ```yaml meshConfig: meshMTLS: minProtocolVersion: TLSV1_3 tlsDefaults: Note: applicable only for non ISTIO_MUTUAL scenarios ecdhCurves: - P-256 - P-512 ``` Configuration of mTLS for traffic between workloads with ISTIO_MUTUAL TLS traffic. Note: Mesh mTLS does not respect ECDH curves.
Type
object
PropertyTypeDescription
cipherSuitesarray

Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used:

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-GCM-SHA256
ecdhCurvesarray

Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to Ecdh Curves.

minProtocolVersionstring

Optional: the minimum TLS protocol version. The default minimum TLS version will be TLS 1.2. As servers may not be Envoy and be set to TLS 1.2 (e.g., workloads using mTLS without sidecars), the minimum TLS version for clients may also be TLS 1.2. In the current Istio implementation, the maximum TLS protocol version is TLS 1.3.

.spec.values.meshConfig.meshMTLS.cipherSuites

Description
Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used: ``` ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 AES256-GCM-SHA384 AES128-GCM-SHA256 ```
Type
array

.spec.values.meshConfig.meshMTLS.cipherSuites[]

Type
string

.spec.values.meshConfig.meshMTLS.ecdhCurves

Description
Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to [Ecdh Curves](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto).
Type
array

.spec.values.meshConfig.meshMTLS.ecdhCurves[]

Type
string

.spec.values.meshConfig.outboundTrafficPolicy

Description
Set the default behavior of the sidecar for handling outbound traffic from the application. Can be overridden at a Sidecar level by setting the `OutboundTrafficPolicy` in the [Sidecar API](https://istio.io/docs/reference/config/networking/sidecar/#OutboundTrafficPolicy). Default mode is `ALLOW_ANY`, which means outbound traffic to unknown destinations will be allowed.
Type
object
PropertyTypeDescription
modestring

.spec.values.meshConfig.pathNormalization

Description
ProxyPathNormalization configures how URL paths in incoming and outgoing HTTP requests are normalized by the sidecars and gateways. The normalized paths will be used in all aspects through the requests' lifetime on the sidecars and gateways, which includes routing decisions in outbound direction (client proxy), authorization policy match and enforcement in inbound direction (server proxy), and the URL path proxied to the upstream service. If not set, the NormalizationType.DEFAULT configuration will be used.
Type
object
PropertyTypeDescription
normalizationstring

.spec.values.meshConfig.serviceScopeConfigs

Description
Scope to be applied to select services.
Type
array

.spec.values.meshConfig.serviceScopeConfigs[]

Description
Configuration for ambient mode multicluster service scope. This setting allows mesh administrators to define the criteria by which the cluster's control plane determines which services in other clusters in the mesh are treated as global (accessible across multiple clusters) versus local (restricted to a single cluster). The configuration can be applied to services based on namespace and/or other matching criteria. This is particularly useful in multicluster service mesh deployments to control service visibility and access across clusters. This API is not intended to enforce security policies. Resources like DestinationRules should be used to enforce authorization policies. If a service matches a global service scope selector, the service's endpoints will be globally exposed. If a service is locally scoped, its endpoints will only be exposed to local cluster services. For example, the following configures the scope of all services with the "istio.io/global" label in matching namespaces to be available globally: ```yaml serviceScopeConfigs: - namespacesSelector: matchExpressions: - key: istio.io/global operator: In values: [true] servicesSelector: matchExpressions: - key: istio.io/global operator: Exists scope: GLOBAL ```
Type
object
PropertyTypeDescription
namespaceSelectorobject

Match expression for namespaces.

scopestring

Specifics the available scope for matching services.

servicesSelectorobject

Match expression for serivces.

.spec.values.meshConfig.serviceScopeConfigs[].namespaceSelector

Description
Match expression for namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.meshConfig.serviceScopeConfigs[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.meshConfig.serviceScopeConfigs[].servicesSelector

Description
Match expression for serivces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions[].values[]

Type
string

.spec.values.meshConfig.serviceScopeConfigs[].servicesSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.meshConfig.serviceSettings

Description
Settings to be applied to select services.
Type
array

.spec.values.meshConfig.serviceSettings[]

Description
Settings to be applied to select services. For example, the following configures all services in namespace "foo" as well as the "bar" service in namespace "baz" to be considered cluster-local: ```yaml serviceSettings: - settings: clusterLocal: true hosts: - "*.foo.svc.cluster.local" - "bar.baz.svc.cluster.local" ``` When in ambient mode, if ServiceSettings are defined they will be considered in addition to the ServiceScopeConfigs. If a service is defined by ServiceSetting to be cluster local and matches a global service scope selector, the service will be considered cluster local. If a service is considered global by ServiceSettings and does not match a global service scope selector the serive will be considered local. Local scope takes precedence over global scope. Since ServiceScopeConfigs is local by default, all services are considered local unless it is considered global by ServiceSettings AND ServiceScopeConfigs.
Type
object
PropertyTypeDescription
hostsarray

The services to which the Settings should be applied. Services are selected using the hostname matching rules used by DestinationRule.

For example: foo.bar.svc.cluster.local, *.baz.svc.cluster.local

settingsobject

The settings to apply to the selected services.

.spec.values.meshConfig.serviceSettings[].hosts

Description
The services to which the Settings should be applied. Services are selected using the hostname matching rules used by DestinationRule. For example: foo.bar.svc.cluster.local, *.baz.svc.cluster.local
Type
array

.spec.values.meshConfig.serviceSettings[].hosts[]

Type
string

.spec.values.meshConfig.serviceSettings[].settings

Description
The settings to apply to the selected services.
Type
object
PropertyTypeDescription
clusterLocalboolean

If true, specifies that the client and service endpoints must reside in the same cluster. By default, in multi-cluster deployments, the Istio control plane assumes all service endpoints to be reachable from any client in any of the clusters which are part of the mesh. This configuration option limits the set of service endpoints visible to a client to be cluster scoped.

There are some common scenarios when this can be useful:

  • A service (or group of services) is inherently local to the cluster and has local storage for that cluster. For example, the kube-system namespace (e.g. the Kube API Server).
  • A mesh administrator wants to slowly migrate services to Istio. They might start by first having services cluster-local and then slowly transition them to mesh-wide. They could do this service-by-service (e.g. mysvc.myns.svc.cluster.local) or as a group (e.g. *.myns.svc.cluster.local).

By default Istio will consider kubernetes.default.svc (i.e. the API Server) as well as all services in the kube-system namespace to be cluster-local, unless explicitly overridden here.

.spec.values.meshConfig.tcpKeepalive

Description
If set then set `SO_KEEPALIVE` on the socket to enable TCP Keepalives.
Type
object
PropertyTypeDescription
intervalstring

The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)

probesinteger

Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)

timestring

The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)

.spec.values.meshConfig.tlsDefaults

Description
Configuration of TLS for all traffic except for ISTIO_MUTUAL mode. Currently, this supports configuration of ecdhCurves and cipherSuites only. For ISTIO_MUTUAL TLS settings, use meshMTLS configuration.
Type
object
PropertyTypeDescription
cipherSuitesarray

Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used:

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-GCM-SHA256
ecdhCurvesarray

Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to Ecdh Curves.

minProtocolVersionstring

Optional: the minimum TLS protocol version. The default minimum TLS version will be TLS 1.2. As servers may not be Envoy and be set to TLS 1.2 (e.g., workloads using mTLS without sidecars), the minimum TLS version for clients may also be TLS 1.2. In the current Istio implementation, the maximum TLS protocol version is TLS 1.3.

.spec.values.meshConfig.tlsDefaults.cipherSuites

Description
Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used: ``` ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 AES256-GCM-SHA384 AES128-GCM-SHA256 ```
Type
array

.spec.values.meshConfig.tlsDefaults.cipherSuites[]

Type
string

.spec.values.meshConfig.tlsDefaults.ecdhCurves

Description
Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to [Ecdh Curves](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto).
Type
array

.spec.values.meshConfig.tlsDefaults.ecdhCurves[]

Type
string

.spec.values.meshConfig.trustDomainAliases

Description
The trust domain aliases represent the aliases of `trustDomain`. For example, if we have ```yaml trustDomain: td1 trustDomainAliases: ["td2", "td3"] ``` Any service with the identity `td1/ns/foo/sa/a-service-account`, `td2/ns/foo/sa/a-service-account`, or `td3/ns/foo/sa/a-service-account` will be treated the same in the Istio mesh.
Type
array

.spec.values.meshConfig.trustDomainAliases[]

Type
string

.spec.values.pilot

Description
Configuration for the Pilot component.
Type
object
PropertyTypeDescription
affinityobject

K8s affinity to set on the Pilot Pods.

autoscaleBehaviorobject

See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#configurable-scaling-behavior

autoscaleEnabledboolean

Controls whether a HorizontalPodAutoscaler is installed for Pilot.

autoscaleMaxinteger

Maximum number of replicas in the HorizontalPodAutoscaler for Pilot.

autoscaleMininteger

Minimum number of replicas in the HorizontalPodAutoscaler for Pilot.

cniobject

Configures whether to use an existing CNI installation for workloads

configMapboolean

Configuration settings passed to Pilot as a ConfigMap.

This controls whether the mesh config map, generated from values.yaml is generated. If false, pilot wil use default values or user-supplied values, in that order of preference.

cpuobject

Target CPU utilization used in HorizontalPodAutoscaler.

See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

deploymentLabelsobject

Labels that are added to Pilot deployment.

See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/

enabledboolean

Controls whether Pilot is enabled.

envobject

Environment variables passed to the Pilot container.

Examples: env:

ENV_VAR_1: value1
ENV_VAR_2: value2
envVarFromarray

Configuration for the istio-discovery chart

extraContainerArgsarray

Additional container arguments for the Pilot container.

hubstring

Hub to pull the container image from. Image will be Hub/Image:Tag-Variant.

imagestring

Image name used for Pilot.

This can be set either to image name if hub is also set, or can be set to the full hub:name string.

Examples: custom-pilot, docker.io/someuser:custom-pilot

ipFamiliesarray

Defines which IP family to use for single stack or the order of IP families for dual-stack. Valid list items are "IPv4", "IPv6". More info: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services

ipFamilyPolicystring

Controls whether Services are configured to use IPv4, IPv6, or both. Valid options are PreferDualStack, RequireDualStack, and SingleStack. More info: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services

istiodRemoteobject

Configuration for the istio-discovery chart when istiod is running in a remote cluster (e.g. "remote control plane").

jwksResolverExtraRootCAstring

Specifies an extra root certificate in PEM format. This certificate will be trusted by pilot when resolving JWKS URIs.

keepaliveMaxServerConnectionAgestring

Maximum duration that a sidecar can be connected to a pilot.

This setting balances out load across pilot instances, but adds some resource overhead.

Examples: 300s, 30m, 1h

memoryobject

Target memory utilization used in HorizontalPodAutoscaler.

See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

nodeSelectorobject

K8s node selector.

See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

podAnnotationsobject

K8s annotations for pods.

See: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

podLabelsobject

Labels that are added to Pilot pods.

See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/

replicaCountinteger

Number of replicas in the Pilot Deployment.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

resourcesobject

K8s resources settings.

See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

rollingMaxSurge

K8s rolling update strategy

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

rollingMaxUnavailable

The number of pods that can be unavailable during a rolling update (see strategy.rollingUpdate.maxUnavailable here: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/#DeploymentSpec). May be specified as a number of pods or as a percent of the total number of pods at the start of the update.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

seccompProfileobject

The seccompProfile for the Pilot container.

See: https://kubernetes.io/docs/tutorials/security/seccomp/

serviceAccountAnnotationsobject

K8s annotations for the service account

serviceAnnotationsobject

K8s annotations for the Service.

See: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/

tagstring

The container image tag to pull. Image will be Hub/Image:Tag-Variant.

taintobject
tolerationsarray

The node tolerations to be applied to the Pilot deployment so that it can be scheduled to particular nodes with matching taints. More info: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

topologySpreadConstraintsarray

The k8s topologySpreadConstraints for the Pilot pods.

traceSamplingnumber

Trace sampling fraction.

Used to set the fraction of time that traces are sampled. Higher values are more accurate but add CPU overhead.

Allowed values: 0.0 to 1.0

trustedZtunnelNamespacestring

If set, istiod will allow connections from trusted node proxy ztunnels in the provided namespace.

variantstring

The container image variant to pull. Options are "debug" or "distroless". Unset will use the default for the given version.

volumeMountsarray

Additional volumeMounts to add to the Pilot container.

volumesarray

Additional volumes to add to the Pilot Pod.

.spec.values.pilot.affinity

Description
K8s affinity to set on the Pilot Pods.
Type
object
PropertyTypeDescription
nodeAffinityobject

Describes node affinity scheduling rules for the pod.

podAffinityobject

Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).

podAntiAffinityobject

Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).

.spec.values.pilot.affinity.nodeAffinity

Description
Describes node affinity scheduling rules for the pod.
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionobject

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Type
object
Required
preferenceweight
PropertyTypeDescription
preferenceobject

A node selector term, associated with the corresponding weight.

weightinteger

Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference

Description
A node selector term, associated with the corresponding weight.
Type
object
PropertyTypeDescription
matchExpressionsarray

A list of node selector requirements by node's labels.

matchFieldsarray

A list of node selector requirements by node's fields.

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions

Description
A list of node selector requirements by node's labels.
Type
array

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields

Description
A list of node selector requirements by node's fields.
Type
array

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values[]

Type
string

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
Type
object
Required
nodeSelectorTerms
PropertyTypeDescription
nodeSelectorTermsarray

Required. A list of node selector terms. The terms are ORed.

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

Description
Required. A list of node selector terms. The terms are ORed.
Type
array

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[]

Description
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Type
object
PropertyTypeDescription
matchExpressionsarray

A list of node selector requirements by node's labels.

matchFieldsarray

A list of node selector requirements by node's fields.

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions

Description
A list of node selector requirements by node's labels.
Type
array

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields

Description
A list of node selector requirements by node's fields.
Type
array

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values[]

Type
string

.spec.values.pilot.affinity.podAffinity

Description
Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionarray

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject

Required. A pod affinity term, associated with the corresponding weight.

weightinteger

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Description
Required. A pod affinity term, associated with the corresponding weight.
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.pilot.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Description
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.pilot.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity

Description
Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionarray

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject

Required. A pod affinity term, associated with the corresponding weight.

weightinteger

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Description
Required. A pod affinity term, associated with the corresponding weight.
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.pilot.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Description
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.pilot.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.values.pilot.autoscaleBehavior

Description
See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#configurable-scaling-behavior
Type
object
PropertyTypeDescription
scaleDownobject

scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).

scaleUpobject

scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:

  • increase no more than 4 pods per 60 seconds
  • double the number of pods per 60 seconds No stabilization is used.

.spec.values.pilot.autoscaleBehavior.scaleDown

Description
scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).
Type
object
PropertyTypeDescription
policiesarray

policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values:

  • For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
  • For scale down: allow all pods to be removed in a 15s window.
selectPolicystring

selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.

stabilizationWindowSecondsinteger

stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values:

  • For scale up: 0 (i.e. no stabilization is done).
  • For scale down: 300 (i.e. the stabilization window is 300 seconds long).
tolerance

tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to the desired number of replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not set, the default cluster-wide tolerance is applied (by default 10%).

For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate.

.spec.values.pilot.autoscaleBehavior.scaleDown.policies

Description
policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window.
Type
array

.spec.values.pilot.autoscaleBehavior.scaleDown.policies[]

Description
HPAScalingPolicy is a single policy which must hold true for a specified past interval.
Type
object
Required
periodSecondstypevalue
PropertyTypeDescription
periodSecondsinteger

periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).

typestring

type is used to specify the scaling policy.

valueinteger

value contains the amount of change which is permitted by the policy. It must be greater than zero

.spec.values.pilot.autoscaleBehavior.scaleUp

Description
scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of: * increase no more than 4 pods per 60 seconds * double the number of pods per 60 seconds No stabilization is used.
Type
object
PropertyTypeDescription
policiesarray

policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values:

  • For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window.
  • For scale down: allow all pods to be removed in a 15s window.
selectPolicystring

selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.

stabilizationWindowSecondsinteger

stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values:

  • For scale up: 0 (i.e. no stabilization is done).
  • For scale down: 300 (i.e. the stabilization window is 300 seconds long).
tolerance

tolerance is the tolerance on the ratio between the current and desired metric value under which no updates are made to the desired number of replicas (e.g. 0.01 for 1%). Must be greater than or equal to zero. If not set, the default cluster-wide tolerance is applied (by default 10%).

For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi.

This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate.

.spec.values.pilot.autoscaleBehavior.scaleUp.policies

Description
policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window.
Type
array

.spec.values.pilot.autoscaleBehavior.scaleUp.policies[]

Description
HPAScalingPolicy is a single policy which must hold true for a specified past interval.
Type
object
Required
periodSecondstypevalue
PropertyTypeDescription
periodSecondsinteger

periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).

typestring

type is used to specify the scaling policy.

valueinteger

value contains the amount of change which is permitted by the policy. It must be greater than zero

.spec.values.pilot.cni

Description
Configures whether to use an existing CNI installation for workloads
Type
object
PropertyTypeDescription
enabledboolean

Controls whether CNI should be used.

providerstring

Specifies the CNI provider. Can be either "default" or "multus". When set to "multus", an annotation k8s.v1.cni.cncf.io/networks is set on injected pods to point to a NetworkAttachmentDefinition

.spec.values.pilot.cpu

Description
Target CPU utilization used in HorizontalPodAutoscaler. See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
targetAverageUtilizationinteger

K8s utilization setting for HorizontalPodAutoscaler target.

See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

.spec.values.pilot.deploymentLabels

Description
Labels that are added to Pilot deployment. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
Type
object

.spec.values.pilot.env

Description
Environment variables passed to the Pilot container. Examples: env: ENV_VAR_1: value1 ENV_VAR_2: value2
Type
object

.spec.values.pilot.envVarFrom

Description
Configuration for the istio-discovery chart
Type
array

.spec.values.pilot.envVarFrom[]

Description
EnvFromSource represents the source of a set of ConfigMaps or Secrets
Type
object
PropertyTypeDescription
configMapRefobject

The ConfigMap to select from

prefixstring

Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER.

secretRefobject

The Secret to select from

.spec.values.pilot.envVarFrom[].configMapRef

Description
The ConfigMap to select from
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

Specify whether the ConfigMap must be defined

.spec.values.pilot.envVarFrom[].secretRef

Description
The Secret to select from
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

Specify whether the Secret must be defined

.spec.values.pilot.extraContainerArgs

Description
Additional container arguments for the Pilot container.
Type
array

.spec.values.pilot.extraContainerArgs[]

Type
string

.spec.values.pilot.ipFamilies

Description
Defines which IP family to use for single stack or the order of IP families for dual-stack. Valid list items are "IPv4", "IPv6". More info: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
Type
array

.spec.values.pilot.ipFamilies[]

Type
string

.spec.values.pilot.istiodRemote

Description
Configuration for the istio-discovery chart when istiod is running in a remote cluster (e.g. "remote control plane").
Type
object
PropertyTypeDescription
enabledboolean

Indicates if this cluster/install should consume a "remote" istiod instance,

enabledLocalInjectorIstiodboolean

If true, indicates that this cluster/install should consume a "local istiod" installation, local istiod inject sidecars

injectionCABundlestring

injector ca bundle

injectionPathstring

Path to use for the sidecar injector webhook service.

injectionURLstring

URL to use for sidecar injector webhook.

.spec.values.pilot.memory

Description
Target memory utilization used in HorizontalPodAutoscaler. See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
targetAverageUtilizationinteger

K8s utilization setting for HorizontalPodAutoscaler target.

See https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

.spec.values.pilot.nodeSelector

Description
K8s node selector. See https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object

.spec.values.pilot.podAnnotations

Description
K8s annotations for pods. See: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object

.spec.values.pilot.podLabels

Description
Labels that are added to Pilot pods. See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
Type
object

.spec.values.pilot.resources

Description
K8s resources settings. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.pilot.resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.pilot.resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.pilot.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.pilot.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.pilot.seccompProfile

Description
The seccompProfile for the Pilot container. See: https://kubernetes.io/docs/tutorials/security/seccomp/
Type
object
Required
type
PropertyTypeDescription
localhostProfilestring

localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is "Localhost". Must NOT be set for any other type.

typestring

type indicates which kind of seccomp profile will be applied. Valid options are:

Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.

.spec.values.pilot.serviceAccountAnnotations

Description
K8s annotations for the service account
Type
object

.spec.values.pilot.serviceAnnotations

Description
K8s annotations for the Service. See: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
Type
object

.spec.values.pilot.taint

Type
object
PropertyTypeDescription
enabledboolean

Enable the untaint controller for new nodes. This aims to solve a race for CNI installation on new nodes. For this to work, the newly added nodes need to have the istio CNI taint as they are added to the cluster. This is usually done by configuring the cluster infra provider.

namespacestring

The namespace of the CNI daemonset, incase it's not the same as istiod.

.spec.values.pilot.tolerations

Description
The node tolerations to be applied to the Pilot deployment so that it can be scheduled to particular nodes with matching taints. More info: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
array

.spec.values.pilot.tolerations[]

Description
The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
Type
object
PropertyTypeDescription
effectstring

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

keystring

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

operatorstring

Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

tolerationSecondsinteger

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

valuestring

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

.spec.values.pilot.topologySpreadConstraints

Description
The k8s topologySpreadConstraints for the Pilot pods.
Type
array

.spec.values.pilot.topologySpreadConstraints[]

Description
TopologySpreadConstraint specifies how to spread matching pods among the given topology.
Type
object
Required
maxSkewtopologyKeywhenUnsatisfiable
PropertyTypeDescription
labelSelectorobject

LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.

This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).

maxSkewinteger

MaxSkew describes the degree to which pods may be unevenly distributed. When whenUnsatisfiable=DoNotSchedule, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P |

  • if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1).
  • if MaxSkew is 2, incoming pod can be scheduled onto any zone. When whenUnsatisfiable=ScheduleAnyway, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.
minDomainsinteger

MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.

For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.

nodeAffinityPolicystring

NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are:

  • Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.
  • Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.

If this value is nil, the behavior is equivalent to the Honor policy.

nodeTaintsPolicystring

NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are:

  • Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included.
  • Ignore: node taints are ignored. All nodes are included.

If this value is nil, the behavior is equivalent to the Ignore policy.

topologyKeystring

TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.

whenUnsatisfiablestring

WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint.

  • DoNotSchedule (default) tells the scheduler not to schedule it.
  • ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it more imbalanced. It's a required field.

.spec.values.pilot.topologySpreadConstraints[].labelSelector

Description
LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.topologySpreadConstraints[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.topologySpreadConstraints[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.topologySpreadConstraints[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.topologySpreadConstraints[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.topologySpreadConstraints[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.topologySpreadConstraints[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
Type
array

.spec.values.pilot.topologySpreadConstraints[].matchLabelKeys[]

Type
string

.spec.values.pilot.volumeMounts

Description
Additional volumeMounts to add to the Pilot container.
Type
array

.spec.values.pilot.volumeMounts[]

Description
VolumeMount describes a mounting of a Volume within a container.
Type
object
Required
mountPathname
PropertyTypeDescription
mountPathstring

Path within the container at which the volume should be mounted. Must not contain ':'.

mountPropagationstring

mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).

namestring

This must match the Name of a Volume.

readOnlyboolean

Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.

recursiveReadOnlystring

RecursiveReadOnly specifies whether read-only mounts should be handled recursively.

If ReadOnly is false, this field has no meaning and must be unspecified.

If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.

If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).

If this field is not specified, it is treated as an equivalent of Disabled.

subPathstring

Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).

subPathExprstring

Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive.

.spec.values.pilot.volumes

Description
Additional volumes to add to the Pilot Pod.
Type
array

.spec.values.pilot.volumes[]

Description
Volume represents a named volume in a pod that may be accessed by any container in the pod.
Type
object
Required
name
PropertyTypeDescription
awsElasticBlockStoreobject

awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

azureDiskobject

azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.

azureFileobject

azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.

cephfsobject

cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.

cinderobject

cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

configMapobject

configMap represents a configMap that should populate this volume

csiobject

csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.

downwardAPIobject

downwardAPI represents downward API about the pod that should populate this volume

emptyDirobject

emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

ephemeralobject

ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.

Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim).

Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.

Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.

A pod can use both types of ephemeral volumes and persistent volumes at the same time.

fcobject

fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.

flexVolumeobject

flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.

flockerobject

flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.

gcePersistentDiskobject

gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

gitRepoobject

gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.

glusterfsobject

glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md

hostPathobject

hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

imageobject

image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:

  • Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  • Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  • IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.

The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.

iscsiobject

iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md

namestring

name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

nfsobject

nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

persistentVolumeClaimobject

persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

photonPersistentDiskobject

photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.

portworxVolumeobject

portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.

projectedobject

projected items for all in one resources secrets, configmaps, and downward API

quobyteobject

quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.

rbdobject

rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md

scaleIOobject

scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.

secretobject

secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

storageosobject

storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.

vsphereVolumeobject

vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.

.spec.values.pilot.volumes[].awsElasticBlockStore

Description
awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
Type
object
Required
volumeID
PropertyTypeDescription
fsTypestring

fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

partitioninteger

partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

readOnlyboolean

readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

volumeIDstring

volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

.spec.values.pilot.volumes[].azureDisk

Description
azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.
Type
object
Required
diskNamediskURI
PropertyTypeDescription
cachingModestring

cachingMode is the Host Caching mode: None, Read Only, Read Write.

diskNamestring

diskName is the Name of the data disk in the blob storage

diskURIstring

diskURI is the URI of data disk in the blob storage

fsTypestring

fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

kindstring

kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

readOnlyboolean

readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

.spec.values.pilot.volumes[].azureFile

Description
azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.
Type
object
Required
secretNameshareName
PropertyTypeDescription
readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretNamestring

secretName is the name of secret that contains Azure Storage Account Name and Key

shareNamestring

shareName is the azure share Name

.spec.values.pilot.volumes[].cephfs

Description
cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
Type
object
Required
monitors
PropertyTypeDescription
monitorsarray

monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

pathstring

path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /

readOnlyboolean

readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretFilestring

secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretRefobject

secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

userstring

user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

.spec.values.pilot.volumes[].cephfs.monitors

Description
monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
Type
array

.spec.values.pilot.volumes[].cephfs.monitors[]

Type
string

.spec.values.pilot.volumes[].cephfs.secretRef

Description
secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].cinder

Description
cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
Type
object
Required
volumeID
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

secretRefobject

secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.

volumeIDstring

volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

.spec.values.pilot.volumes[].cinder.secretRef

Description
secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].configMap

Description
configMap represents a configMap that should populate this volume
Type
object
PropertyTypeDescription
defaultModeinteger

defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

itemsarray

items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

optional specify whether the ConfigMap or its keys must be defined

.spec.values.pilot.volumes[].configMap.items

Description
items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.pilot.volumes[].configMap.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.pilot.volumes[].csi

Description
csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
Type
object
Required
driver
PropertyTypeDescription
driverstring

driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.

fsTypestring

fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.

nodePublishSecretRefobject

nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.

readOnlyboolean

readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).

volumeAttributesobject

volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.

.spec.values.pilot.volumes[].csi.nodePublishSecretRef

Description
nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].csi.volumeAttributes

Description
volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
Type
object

.spec.values.pilot.volumes[].downwardAPI

Description
downwardAPI represents downward API about the pod that should populate this volume
Type
object
PropertyTypeDescription
defaultModeinteger

Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

itemsarray

Items is a list of downward API volume file

.spec.values.pilot.volumes[].downwardAPI.items

Description
Items is a list of downward API volume file
Type
array

.spec.values.pilot.volumes[].downwardAPI.items[]

Description
DownwardAPIVolumeFile represents information to create the file containing the pod field
Type
object
Required
path
PropertyTypeDescription
fieldRefobject

Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.

modeinteger

Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'

resourceFieldRefobject

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

.spec.values.pilot.volumes[].downwardAPI.items[].fieldRef

Description
Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.
Type
object
Required
fieldPath
PropertyTypeDescription
apiVersionstring

Version of the schema the FieldPath is written in terms of, defaults to "v1".

fieldPathstring

Path of the field to select in the specified API version.

.spec.values.pilot.volumes[].downwardAPI.items[].resourceFieldRef

Description
Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
Type
object
Required
resource
PropertyTypeDescription
containerNamestring

Container name: required for volumes, optional for env vars

divisor

Specifies the output format of the exposed resources, defaults to "1"

resourcestring

Required: resource to select

.spec.values.pilot.volumes[].emptyDir

Description
emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Type
object
PropertyTypeDescription
mediumstring

medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

sizeLimit

sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

.spec.values.pilot.volumes[].ephemeral

Description
ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.
Type
object
PropertyTypeDescription
volumeClaimTemplateobject

Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be <pod name>-<volume name> where <volume name> is the name from the PodSpec.Volumes array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).

An existing PVC with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.

This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.

Required, must not be nil.

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate

Description
Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.
Type
object
Required
spec
PropertyTypeDescription
metadataObjectMeta

May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.

specobject

The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec

Description
The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.accessModes[]

Type
string

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.resources

Description
resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[].values[]

Type
string

.spec.values.pilot.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.volumes[].fc

Description
fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
Type
object
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

luninteger

lun is Optional: FC target lun number

readOnlyboolean

readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

targetWWNsarray

targetWWNs is Optional: FC target worldwide names (WWNs)

wwidsarray

wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

.spec.values.pilot.volumes[].fc.targetWWNs

Description
targetWWNs is Optional: FC target worldwide names (WWNs)
Type
array

.spec.values.pilot.volumes[].fc.targetWWNs[]

Type
string

.spec.values.pilot.volumes[].fc.wwids

Description
wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
Type
array

.spec.values.pilot.volumes[].fc.wwids[]

Type
string

.spec.values.pilot.volumes[].flexVolume

Description
flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
Type
object
Required
driver
PropertyTypeDescription
driverstring

driver is the name of the driver to use for this volume.

fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.

optionsobject

options is Optional: this field holds extra command options if any.

readOnlyboolean

readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretRefobject

secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.

.spec.values.pilot.volumes[].flexVolume.options

Description
options is Optional: this field holds extra command options if any.
Type
object

.spec.values.pilot.volumes[].flexVolume.secretRef

Description
secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].flocker

Description
flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
Type
object
PropertyTypeDescription
datasetNamestring

datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated

datasetUUIDstring

datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset

.spec.values.pilot.volumes[].gcePersistentDisk

Description
gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
Type
object
Required
pdName
PropertyTypeDescription
fsTypestring

fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

partitioninteger

partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

pdNamestring

pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

readOnlyboolean

readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

.spec.values.pilot.volumes[].gitRepo

Description
gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.
Type
object
Required
repository
PropertyTypeDescription
directorystring

directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.

repositorystring

repository is the URL

revisionstring

revision is the commit hash for the specified revision.

.spec.values.pilot.volumes[].glusterfs

Description
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md
Type
object
Required
endpointspath
PropertyTypeDescription
endpointsstring

endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

pathstring

path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

readOnlyboolean

readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

.spec.values.pilot.volumes[].hostPath

Description
hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Type
object
Required
path
PropertyTypeDescription
pathstring

path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

typestring

type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

.spec.values.pilot.volumes[].image

Description
image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
Type
object
PropertyTypeDescription
pullPolicystring

Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

referencestring

Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.

.spec.values.pilot.volumes[].iscsi

Description
iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md
Type
object
Required
iqnluntargetPortal
PropertyTypeDescription
chapAuthDiscoveryboolean

chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication

chapAuthSessionboolean

chapAuthSession defines whether support iSCSI Session CHAP authentication

fsTypestring

fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi

initiatorNamestring

initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.

iqnstring

iqn is the target iSCSI Qualified Name.

iscsiInterfacestring

iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).

luninteger

lun represents iSCSI Target Lun number.

portalsarray

portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

readOnlyboolean

readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.

secretRefobject

secretRef is the CHAP Secret for iSCSI target and initiator authentication

targetPortalstring

targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

.spec.values.pilot.volumes[].iscsi.portals

Description
portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
Type
array

.spec.values.pilot.volumes[].iscsi.portals[]

Type
string

.spec.values.pilot.volumes[].iscsi.secretRef

Description
secretRef is the CHAP Secret for iSCSI target and initiator authentication
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].nfs

Description
nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
Type
object
Required
pathserver
PropertyTypeDescription
pathstring

path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

readOnlyboolean

readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

serverstring

server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

.spec.values.pilot.volumes[].persistentVolumeClaim

Description
persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
Required
claimName
PropertyTypeDescription
claimNamestring

claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

readOnlyboolean

readOnly Will force the ReadOnly setting in VolumeMounts. Default false.

.spec.values.pilot.volumes[].photonPersistentDisk

Description
photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
Type
object
Required
pdID
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

pdIDstring

pdID is the ID that identifies Photon Controller persistent disk

.spec.values.pilot.volumes[].portworxVolume

Description
portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.
Type
object
Required
volumeID
PropertyTypeDescription
fsTypestring

fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.

readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

volumeIDstring

volumeID uniquely identifies a Portworx volume

.spec.values.pilot.volumes[].projected

Description
projected items for all in one resources secrets, configmaps, and downward API
Type
object
PropertyTypeDescription
defaultModeinteger

defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

sourcesarray

sources is the list of volume projections. Each entry in this list handles one source.

.spec.values.pilot.volumes[].projected.sources

Description
sources is the list of volume projections. Each entry in this list handles one source.
Type
array

.spec.values.pilot.volumes[].projected.sources[]

Description
Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.
Type
object
PropertyTypeDescription
clusterTrustBundleobject

ClusterTrustBundle allows a pod to access the .spec.trustBundle field of ClusterTrustBundle objects in an auto-updating file.

Alpha, gated by the ClusterTrustBundleProjection feature gate.

ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.

Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.

configMapobject

configMap information about the configMap data to project

downwardAPIobject

downwardAPI information about the downwardAPI data to project

secretobject

secret information about the secret data to project

serviceAccountTokenobject

serviceAccountToken is information about the serviceAccountToken data to project

.spec.values.pilot.volumes[].projected.sources[].clusterTrustBundle

Description
ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.
Type
object
Required
path
PropertyTypeDescription
labelSelectorobject

Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as "match nothing". If set but empty, interpreted as "match everything".

namestring

Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.

optionalboolean

If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.

pathstring

Relative path from the volume root to write the bundle.

signerNamestring

Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.

.spec.values.pilot.volumes[].projected.sources[].clusterTrustBundle.labelSelector

Description
Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as "match nothing". If set but empty, interpreted as "match everything".
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.pilot.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.pilot.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.pilot.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.pilot.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.pilot.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.pilot.volumes[].projected.sources[].configMap

Description
configMap information about the configMap data to project
Type
object
PropertyTypeDescription
itemsarray

items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

optional specify whether the ConfigMap or its keys must be defined

.spec.values.pilot.volumes[].projected.sources[].configMap.items

Description
items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.pilot.volumes[].projected.sources[].configMap.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.pilot.volumes[].projected.sources[].downwardAPI

Description
downwardAPI information about the downwardAPI data to project
Type
object
PropertyTypeDescription
itemsarray

Items is a list of DownwardAPIVolume file

.spec.values.pilot.volumes[].projected.sources[].downwardAPI.items

Description
Items is a list of DownwardAPIVolume file
Type
array

.spec.values.pilot.volumes[].projected.sources[].downwardAPI.items[]

Description
DownwardAPIVolumeFile represents information to create the file containing the pod field
Type
object
Required
path
PropertyTypeDescription
fieldRefobject

Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.

modeinteger

Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'

resourceFieldRefobject

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

.spec.values.pilot.volumes[].projected.sources[].downwardAPI.items[].fieldRef

Description
Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.
Type
object
Required
fieldPath
PropertyTypeDescription
apiVersionstring

Version of the schema the FieldPath is written in terms of, defaults to "v1".

fieldPathstring

Path of the field to select in the specified API version.

.spec.values.pilot.volumes[].projected.sources[].downwardAPI.items[].resourceFieldRef

Description
Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
Type
object
Required
resource
PropertyTypeDescription
containerNamestring

Container name: required for volumes, optional for env vars

divisor

Specifies the output format of the exposed resources, defaults to "1"

resourcestring

Required: resource to select

.spec.values.pilot.volumes[].projected.sources[].secret

Description
secret information about the secret data to project
Type
object
PropertyTypeDescription
itemsarray

items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

optional field specify whether the Secret or its key must be defined

.spec.values.pilot.volumes[].projected.sources[].secret.items

Description
items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.pilot.volumes[].projected.sources[].secret.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.pilot.volumes[].projected.sources[].serviceAccountToken

Description
serviceAccountToken is information about the serviceAccountToken data to project
Type
object
Required
path
PropertyTypeDescription
audiencestring

audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.

expirationSecondsinteger

expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.

pathstring

path is the path relative to the mount point of the file to project the token into.

.spec.values.pilot.volumes[].quobyte

Description
quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
Type
object
Required
registryvolume
PropertyTypeDescription
groupstring

group to map volume access to Default is no group

readOnlyboolean

readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.

registrystring

registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes

tenantstring

tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin

userstring

user to map volume access to Defaults to serivceaccount user

volumestring

volume is a string that references an already created Quobyte volume by name.

.spec.values.pilot.volumes[].rbd

Description
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md
Type
object
Required
imagemonitors
PropertyTypeDescription
fsTypestring

fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

imagestring

image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

keyringstring

keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

monitorsarray

monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

poolstring

pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

readOnlyboolean

readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

secretRefobject

secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

userstring

user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

.spec.values.pilot.volumes[].rbd.monitors

Description
monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
Type
array

.spec.values.pilot.volumes[].rbd.monitors[]

Type
string

.spec.values.pilot.volumes[].rbd.secretRef

Description
secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].scaleIO

Description
scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
Type
object
Required
gatewaysecretRefsystem
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".

gatewaystring

gateway is the host address of the ScaleIO API Gateway.

protectionDomainstring

protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.

readOnlyboolean

readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretRefobject

secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.

sslEnabledboolean

sslEnabled Flag enable/disable SSL communication with Gateway, default false

storageModestring

storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.

storagePoolstring

storagePool is the ScaleIO Storage Pool associated with the protection domain.

systemstring

system is the name of the storage system as configured in ScaleIO.

volumeNamestring

volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.

.spec.values.pilot.volumes[].scaleIO.secretRef

Description
secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].secret

Description
secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
Type
object
PropertyTypeDescription
defaultModeinteger

defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

itemsarray

items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

optionalboolean

optional field specify whether the Secret or its keys must be defined

secretNamestring

secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

.spec.values.pilot.volumes[].secret.items

Description
items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.pilot.volumes[].secret.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.pilot.volumes[].storageos

Description
storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
Type
object
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretRefobject

secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.

volumeNamestring

volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.

volumeNamespacestring

volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.

.spec.values.pilot.volumes[].storageos.secretRef

Description
secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.pilot.volumes[].vsphereVolume

Description
vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.
Type
object
Required
volumePath
PropertyTypeDescription
fsTypestring

fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

storagePolicyIDstring

storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.

storagePolicyNamestring

storagePolicyName is the storage Policy Based Management (SPBM) profile name.

volumePathstring

volumePath is the path that identifies vSphere volume vmdk

.spec.values.sidecarInjectorWebhook

Description
Configuration for the sidecar injector webhook.
Type
object
PropertyTypeDescription
alwaysInjectSelectorarray

See NeverInjectSelector.

defaultTemplatesarray

defaultTemplates: ["sidecar", "hello"]

enableNamespacesByDefaultboolean

Enables sidecar auto-injection in namespaces by default.

injectedAnnotationsobject

injectedAnnotations are additional annotations that will be added to the pod spec after injection This is primarily to support PSP annotations.

injectionURLstring

Configure the injection url for sidecar injector webhook

neverInjectSelectorarray

Instructs Istio to not inject the sidecar on those pods, based on labels that are present in those pods.

Annotations in the pods have higher precedence than the label selectors. Order of evaluation: Pod Annotations → NeverInjectSelector → AlwaysInjectSelector → Default Policy. See https://istio.io/docs/setup/kubernetes/additional-setup/sidecar-injection/#more-control-adding-exceptions

reinvocationPolicystring

Setting this to IfNeeded will result in the sidecar injector being run again if additional mutations occur. Default: Never

rewriteAppHTTPProbeboolean

If true, webhook or istioctl injector will rewrite PodSpec for liveness health check to redirect request to sidecar. This makes liveness check work even when mTLS is enabled.

templatesobject

Templates defines a set of custom injection templates that can be used. For example, defining:

templates:

hello: |
  metadata:
    labels:
      hello: world

Then starting a pod with the inject.istio.io/templates: hello annotation, will result in the pod being injected with the hello=world labels. This is intended for advanced configuration only; most users should use the built in template

.spec.values.sidecarInjectorWebhook.alwaysInjectSelector

Description
See NeverInjectSelector.
Type
array

.spec.values.sidecarInjectorWebhook.alwaysInjectSelector[]

Description
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.sidecarInjectorWebhook.alwaysInjectSelector[].matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.sidecarInjectorWebhook.alwaysInjectSelector[].matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.sidecarInjectorWebhook.alwaysInjectSelector[].matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.sidecarInjectorWebhook.alwaysInjectSelector[].matchExpressions[].values[]

Type
string

.spec.values.sidecarInjectorWebhook.alwaysInjectSelector[].matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.sidecarInjectorWebhook.defaultTemplates

Description
defaultTemplates: ["sidecar", "hello"]
Type
array

.spec.values.sidecarInjectorWebhook.defaultTemplates[]

Type
string

.spec.values.sidecarInjectorWebhook.injectedAnnotations

Description
injectedAnnotations are additional annotations that will be added to the pod spec after injection This is primarily to support PSP annotations.
Type
object

.spec.values.sidecarInjectorWebhook.neverInjectSelector

Description
Instructs Istio to not inject the sidecar on those pods, based on labels that are present in those pods. Annotations in the pods have higher precedence than the label selectors. Order of evaluation: Pod Annotations → NeverInjectSelector → AlwaysInjectSelector → Default Policy. See https://istio.io/docs/setup/kubernetes/additional-setup/sidecar-injection/#more-control-adding-exceptions
Type
array

.spec.values.sidecarInjectorWebhook.neverInjectSelector[]

Description
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.sidecarInjectorWebhook.neverInjectSelector[].matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.sidecarInjectorWebhook.neverInjectSelector[].matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.sidecarInjectorWebhook.neverInjectSelector[].matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.sidecarInjectorWebhook.neverInjectSelector[].matchExpressions[].values[]

Type
string

.spec.values.sidecarInjectorWebhook.neverInjectSelector[].matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.sidecarInjectorWebhook.templates

Description
Templates defines a set of custom injection templates that can be used. For example, defining: templates: hello: | metadata: labels: hello: world Then starting a pod with the `inject.istio.io/templates: hello` annotation, will result in the pod being injected with the hello=world labels. This is intended for advanced configuration only; most users should use the built in template
Type
object

.spec.values.telemetry

Description
Controls whether telemetry is exported for Pilot.
Type
object
PropertyTypeDescription
enabledboolean

Controls whether telemetry is exported for Pilot.

v2object

Configuration for Telemetry v2.

.spec.values.telemetry.v2

Description
Configuration for Telemetry v2.
Type
object
PropertyTypeDescription
enabledboolean

Controls whether pilot will configure telemetry v2.

prometheusobject

Telemetry v2 settings for prometheus.

stackdriverobject

Telemetry v2 settings for stackdriver.

.spec.values.telemetry.v2.prometheus

Description
Telemetry v2 settings for prometheus.
Type
object
PropertyTypeDescription
enabledboolean

Controls whether stats envoyfilter would be enabled or not.

.spec.values.telemetry.v2.stackdriver

Description
Telemetry v2 settings for stackdriver.
Type
object
PropertyTypeDescription
enabledboolean

.status

Description
IstioStatus defines the observed state of Istio
Type
object
PropertyTypeDescription
activeRevisionNamestring

The name of the active revision.

conditionsarray

Represents the latest available observations of the object's current state.

observedGenerationinteger

ObservedGeneration is the most recent generation observed for this Istio object. It corresponds to the object's generation, which is updated on mutation by the API Server. The information in the status pertains to this particular generation of the object.

revisionsobject

Reports information about the underlying IstioRevisions.

statestring

Reports the current state of the object.

.status.conditions

Description
Represents the latest available observations of the object's current state.
Type
array

.status.conditions[]

Description
IstioCondition represents a specific observation of the IstioCondition object's state.
Type
object
PropertyTypeDescription
lastTransitionTimestring

Last time the condition transitioned from one status to another.

messagestring

Human-readable message indicating details about the last transition.

reasonstring

Unique, single-word, CamelCase reason for the condition's last transition.

statusstring

The status of this condition. Can be True, False or Unknown.

typestring

The type of this condition.

.status.revisions

Description
Reports information about the underlying IstioRevisions.
Type
object
Required
inUsereadytotal
PropertyTypeDescription
inUseinteger

Number of IstioRevisions that are currently in use.

readyinteger

Number of IstioRevisions that are Ready.

totalinteger

Total number of IstioRevisions currently associated with this Istio.

API Endpoints

The following API endpoints are available:

  • /apis/sailoperator.io/v1/namespaces/{namespace}/istios
    • DELETE: delete collection of Istio
    • GET: list objects of kind Istio
    • POST: create a new Istio
  • /apis/sailoperator.io/v1/namespaces/{namespace}/istios/{name}
    • DELETE: delete the specified Istio
    • GET: read the specified Istio
    • PATCH: partially update the specified Istio
    • PUT: replace the specified Istio
  • /apis/sailoperator.io/v1/namespaces/{namespace}/istios/{name}/status
    • GET: read status of the specified Istio
    • PATCH: partially update status of the specified Istio
    • PUT: replace status of the specified Istio

/apis/sailoperator.io/v1/namespaces/{namespace}/istios

HTTP method
DELETE
Description
delete collection of Istio
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind Istio
HTTP responses
HTTP codeResponse body
200 - OKIstioList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new Istio
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstio schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstio schema
201 - CreatedIstio schema
202 - AcceptedIstio schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1/namespaces/{namespace}/istios/{name}

HTTP method
DELETE
Description
delete the specified Istio
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified Istio
HTTP responses
HTTP codeResponse body
200 - OKIstio schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified Istio
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKIstio schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified Istio
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstio schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstio schema
201 - CreatedIstio schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1/namespaces/{namespace}/istios/{name}/status

HTTP method
GET
Description
read status of the specified Istio
HTTP responses
HTTP codeResponse body
200 - OKIstio schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified Istio
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKIstio schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified Istio
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstio schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstio schema
201 - CreatedIstio schema
401 - UnauthorizedEmpty

IstioCNI

Description
IstioCNI represents a deployment of the Istio CNI component.
Type
object

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

IstioCNISpec defines the desired state of IstioCNI

statusobject

IstioCNIStatus defines the observed state of IstioCNI

.spec

Description
IstioCNISpec defines the desired state of IstioCNI
Type
object
Required
namespaceversion
PropertyTypeDescription
namespacestring

Namespace to which the Istio CNI component should be installed. Note that this field is immutable.

profilestring

The built-in installation configuration profile to use. The 'default' profile is always applied. On OpenShift, the 'openshift' profile is also applied on top of 'default'. Must be one of: ambient, default, demo, empty, openshift, openshift-ambient, preview, remote, stable.

valuesobject

Defines the values to be passed to the Helm charts when installing Istio CNI.

versionstring

Defines the version of Istio to install. Must be one of: v1.26-latest, v1.26.3, v1.24-latest, v1.24.6.

.spec.values

Description
Defines the values to be passed to the Helm charts when installing Istio CNI.
Type
object
PropertyTypeDescription
cniobject

Configuration for the Istio CNI plugin.

globalobject

Part of the global configuration applicable to the Istio CNI component.

.spec.values.cni

Description
Configuration for the Istio CNI plugin.
Type
object
PropertyTypeDescription
affinityobject

K8s affinity to set on the istio-cni Pods. Can be used to exclude istio-cni from being scheduled on specified nodes.

ambientobject

Configuration for Istio Ambient.

chainedboolean

Configure the plugin as a chained CNI plugin. When true, the configuration is added to the CNI chain; when false, the configuration is added as a standalone file in the CNI configuration directory.

cniBinDirstring

The directory path within the cluster node's filesystem where the CNI binaries are to be installed. Typically /var/lib/cni/bin.

cniConfDirstring

The directory path within the cluster node's filesystem where the CNI configuration files are to be installed. Typically /etc/cni/net.d.

cniConfFileNamestring

The name of the CNI plugin configuration file. Defaults to istio-cni.conf.

cniNetnsDirstring

The directory path within the cluster node's filesystem where network namespaces are located. Defaults to '/var/run/netns', in minikube/docker/others can be '/var/run/docker/netns'.

daemonSetLabelsobject

Additional labels to apply to the istio-cni DaemonSet.

envobject

Environment variables passed to the CNI container.

Examples: env:

ENV_VAR_1: value1
ENV_VAR_2: value2
excludeNamespacesarray

List of namespaces that should be ignored by the CNI plugin.

hubstring

Hub to pull the container image from. Image will be Hub/Image:Tag-Variant.

imagestring

Image name to pull from. Image will be Hub/Image:Tag-Variant. If Image contains a "/", it will replace the entire image in the pod.

loggingobject

Same as global.logging.level, but will override it if set

podAnnotationsobject

Additional annotations to apply to the istio-cni Pods.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

podLabelsobject

Additional labels to apply to the istio-cni Pods.

privilegedboolean

No longer used for CNI. See: https://github.com/istio/istio/issues/49004

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

providerstring

Specifies the CNI provider. Can be either "default" or "multus". When set to "multus", an additional NetworkAttachmentDefinition resource is deployed to the cluster to allow the istio-cni plugin to be invoked in a cluster using the Multus CNI plugin.

psp_cluster_rolestring

PodSecurityPolicy cluster role. No longer used anywhere.

pullPolicystring

Specifies the image pull policy. one of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.

More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

repairobject

Configuration for the CNI Repair controller.

resource_quotasobject

The resource quotas configration for the CNI DaemonSet.

resourcesobject

The k8s resource requests and limits for the istio-cni Pods.

rollingMaxUnavailable

The number of pods that can be unavailable during a rolling update of the CNI DaemonSet (see updateStrategy.rollingUpdate.maxUnavailable here: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/daemon-set-v1/#DaemonSetSpec). May be specified as a number of pods or as a percent of the total number of pods at the start of the update.

seccompProfileobject

The Container seccompProfile

See: https://kubernetes.io/docs/tutorials/security/seccomp/

tagstring

The container image tag to pull. Image will be Hub/Image:Tag-Variant.

variantstring

The container image variant to pull. Options are "debug" or "distroless". Unset will use the default for the given version.

.spec.values.cni.affinity

Description
K8s affinity to set on the istio-cni Pods. Can be used to exclude istio-cni from being scheduled on specified nodes.
Type
object
PropertyTypeDescription
nodeAffinityobject

Describes node affinity scheduling rules for the pod.

podAffinityobject

Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).

podAntiAffinityobject

Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).

.spec.values.cni.affinity.nodeAffinity

Description
Describes node affinity scheduling rules for the pod.
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionobject

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
Type
object
Required
preferenceweight
PropertyTypeDescription
preferenceobject

A node selector term, associated with the corresponding weight.

weightinteger

Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference

Description
A node selector term, associated with the corresponding weight.
Type
object
PropertyTypeDescription
matchExpressionsarray

A list of node selector requirements by node's labels.

matchFieldsarray

A list of node selector requirements by node's fields.

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions

Description
A list of node selector requirements by node's labels.
Type
array

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields

Description
A list of node selector requirements by node's fields.
Type
array

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values[]

Type
string

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
Type
object
Required
nodeSelectorTerms
PropertyTypeDescription
nodeSelectorTermsarray

Required. A list of node selector terms. The terms are ORed.

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

Description
Required. A list of node selector terms. The terms are ORed.
Type
array

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[]

Description
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
Type
object
PropertyTypeDescription
matchExpressionsarray

A list of node selector requirements by node's labels.

matchFieldsarray

A list of node selector requirements by node's fields.

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions

Description
A list of node selector requirements by node's labels.
Type
array

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields

Description
A list of node selector requirements by node's fields.
Type
array

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[]

Description
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

The label key that the selector applies to.

operatorstring

Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

valuesarray

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values

Description
An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values[]

Type
string

.spec.values.cni.affinity.podAffinity

Description
Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionarray

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject

Required. A pod affinity term, associated with the corresponding weight.

weightinteger

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Description
Required. A pod affinity term, associated with the corresponding weight.
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.cni.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Description
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.cni.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.values.cni.affinity.podAntiAffinity

Description
Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
Type
object
PropertyTypeDescription
preferredDuringSchedulingIgnoredDuringExecutionarray

The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

requiredDuringSchedulingIgnoredDuringExecutionarray

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

Description
The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

Description
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Type
object
Required
podAffinityTermweight
PropertyTypeDescription
podAffinityTermobject

Required. A pod affinity term, associated with the corresponding weight.

weightinteger

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

Description
Required. A pod affinity term, associated with the corresponding weight.
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.cni.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

Description
If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

Description
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
Type
object
Required
topologyKey
PropertyTypeDescription
labelSelectorobject

A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.

matchLabelKeysarray

MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key in (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.

mismatchLabelKeysarray

MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with labelSelector as key notin (value) to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.

namespaceSelectorobject

A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.

namespacesarray

namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".

topologyKeystring

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

Description
A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys

Description
MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys

Description
MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

Description
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces

Description
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
Type
array

.spec.values.cni.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]

Type
string

.spec.values.cni.ambient

Description
Configuration for Istio Ambient.
Type
object
PropertyTypeDescription
configDirstring

The directory path containing the configuration files for Ambient. Defaults to /etc/ambient-config.

dnsCaptureboolean

If enabled, and ambient is enabled, DNS redirection will be enabled.

enabledboolean

Controls whether ambient redirection is enabled

ipv6boolean

UNSTABLE: If enabled, and ambient is enabled, enables ipv6 support

reconcileIptablesOnStartupboolean

If enabled, and ambient is enabled, iptables reconciliation will be enabled.

.spec.values.cni.daemonSetLabels

Description
Additional labels to apply to the istio-cni DaemonSet.
Type
object

.spec.values.cni.env

Description
Environment variables passed to the CNI container. Examples: env: ENV_VAR_1: value1 ENV_VAR_2: value2
Type
object

.spec.values.cni.excludeNamespaces

Description
List of namespaces that should be ignored by the CNI plugin.
Type
array

.spec.values.cni.excludeNamespaces[]

Type
string

.spec.values.cni.logging

Description
Same as `global.logging.level`, but will override it if set
Type
object
PropertyTypeDescription
levelstring

Comma-separated minimum per-scope logging level of messages to output, in the form of :,: The control plane has different scopes depending on component, but can configure default log level across all components If empty, default scope and level will be used as configured in code

.spec.values.cni.podAnnotations

Description
Additional annotations to apply to the istio-cni Pods. Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object

.spec.values.cni.podLabels

Description
Additional labels to apply to the istio-cni Pods.
Type
object

.spec.values.cni.repair

Description
Configuration for the CNI Repair controller.
Type
object
PropertyTypeDescription
brokenPodLabelKeystring

The label key to apply to a broken pod when the controller is in labelPods mode.

brokenPodLabelValuestring

The label value to apply to a broken pod when the controller is in labelPods mode.

createEventsstring

No longer used.

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

deletePodsboolean

The Repair controller has 3 modes (labelPods, deletePods, and repairPods). Pick which one meets your use cases. Note only one may be used. The mode defines the action the controller will take when a pod is detected as broken. If deletePods is true, the controller will delete the broken pod. The pod will then be rescheduled, hopefully onto a node that is fully ready. Note this gives the DaemonSet a relatively high privilege, as it can delete any Pod.

enabledboolean

Controls whether repair behavior is enabled.

hubstring

Hub to pull the container image from. Image will be Hub/Image:Tag-Variant.

imagestring

Image name to pull from. Image will be Hub/Image:Tag-Variant. If Image contains a "/", it will replace the entire image in the pod.

initContainerNamestring

The name of the init container to use for the repairPods mode.

labelPodsboolean

The Repair controller has 3 modes (labelPods, deletePods, and repairPods). Pick which one meets your use cases. Note only one may be used. The mode defines the action the controller will take when a pod is detected as broken. If labelPods is true, the controller will label all broken pods with =. This is only capable of identifying broken pods; the user is responsible for fixing them (generally, by deleting them). Note this gives the DaemonSet a relatively high privilege, as modifying pod metadata/status can have wider impacts.

repairPodsboolean

The Repair controller has 3 modes (labelPods, deletePods, and repairPods). Pick which one meets your use cases. Note only one may be used. The mode defines the action the controller will take when a pod is detected as broken. If repairPods is true, the controller will dynamically repair any broken pod by setting up the pod networking configuration even after it has started. Note the pod will be crashlooping, so this may take a few minutes to become fully functional based on when the retry occurs. This requires no RBAC privilege, but will require the CNI agent to run as a privileged pod.

tagstring

The container image tag to pull. Image will be Hub/Image:Tag-Variant.

.spec.values.cni.resource_quotas

Description
The resource quotas configration for the CNI DaemonSet.
Type
object
PropertyTypeDescription
enabledboolean

Controls whether to create resource quotas or not for the CNI DaemonSet.

podsinteger

The hard limit on the number of pods in the namespace where the CNI DaemonSet is deployed.

.spec.values.cni.resources

Description
The k8s resource requests and limits for the istio-cni Pods.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.cni.resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.cni.resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.cni.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.cni.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.cni.seccompProfile

Description
The Container seccompProfile See: https://kubernetes.io/docs/tutorials/security/seccomp/
Type
object
Required
type
PropertyTypeDescription
localhostProfilestring

localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is "Localhost". Must NOT be set for any other type.

typestring

type indicates which kind of seccomp profile will be applied. Valid options are:

Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.

.spec.values.global

Description
Part of the global configuration applicable to the Istio CNI component.
Type
object
PropertyTypeDescription
defaultResourcesobject

See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

hubstring

Specifies the docker hub for Istio images.

imagePullPolicystring

Specifies the image pull policy for the Istio images. one of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.

More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

imagePullSecretsarray

ImagePullSecrets for the control plane ServiceAccount, list of secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.

logAsJsonboolean

Specifies whether istio components should output logs in json format by adding --log_as_json argument to each container.

loggingobject

Specifies the global logging level settings for the Istio control plane components.

platformstring

Platform in which Istio is deployed. Possible values are: "openshift" and "gcp" An empty value means it is a vanilla Kubernetes distribution, therefore no special treatment will be considered.

tagstring

Specifies the tag for the Istio docker images.

variantstring

The variant of the Istio container images to use. Options are "debug" or "distroless". Unset will use the default for the given version.

.spec.values.global.defaultResources

Description
See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.global.defaultResources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.global.defaultResources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.global.defaultResources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.defaultResources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.imagePullSecrets

Description
ImagePullSecrets for the control plane ServiceAccount, list of secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.
Type
array

.spec.values.global.imagePullSecrets[]

Type
string

.spec.values.global.logging

Description
Specifies the global logging level settings for the Istio control plane components.
Type
object
PropertyTypeDescription
levelstring

Comma-separated minimum per-scope logging level of messages to output, in the form of :,: The control plane has different scopes depending on component, but can configure default log level across all components If empty, default scope and level will be used as configured in code

.status

Description
IstioCNIStatus defines the observed state of IstioCNI
Type
object
PropertyTypeDescription
conditionsarray

Represents the latest available observations of the object's current state.

observedGenerationinteger

ObservedGeneration is the most recent generation observed for this IstioCNI object. It corresponds to the object's generation, which is updated on mutation by the API Server. The information in the status pertains to this particular generation of the object.

statestring

Reports the current state of the object.

.status.conditions

Description
Represents the latest available observations of the object's current state.
Type
array

.status.conditions[]

Description
IstioCNICondition represents a specific observation of the IstioCNI object's state.
Type
object
PropertyTypeDescription
lastTransitionTimestring

Last time the condition transitioned from one status to another.

messagestring

Human-readable message indicating details about the last transition.

reasonstring

Unique, single-word, CamelCase reason for the condition's last transition.

statusstring

The status of this condition. Can be True, False or Unknown.

typestring

The type of this condition.

API Endpoints

The following API endpoints are available:

  • /apis/sailoperator.io/v1/namespaces/{namespace}/istiocnis
    • DELETE: delete collection of IstioCNI
    • GET: list objects of kind IstioCNI
    • POST: create a new IstioCNI
  • /apis/sailoperator.io/v1/namespaces/{namespace}/istiocnis/{name}
    • DELETE: delete the specified IstioCNI
    • GET: read the specified IstioCNI
    • PATCH: partially update the specified IstioCNI
    • PUT: replace the specified IstioCNI
  • /apis/sailoperator.io/v1/namespaces/{namespace}/istiocnis/{name}/status
    • GET: read status of the specified IstioCNI
    • PATCH: partially update status of the specified IstioCNI
    • PUT: replace status of the specified IstioCNI

/apis/sailoperator.io/v1/namespaces/{namespace}/istiocnis

HTTP method
DELETE
Description
delete collection of IstioCNI
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind IstioCNI
HTTP responses
HTTP codeResponse body
200 - OKIstioCNIList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new IstioCNI
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstioCNI schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstioCNI schema
201 - CreatedIstioCNI schema
202 - AcceptedIstioCNI schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1/namespaces/{namespace}/istiocnis/{name}

HTTP method
DELETE
Description
delete the specified IstioCNI
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified IstioCNI
HTTP responses
HTTP codeResponse body
200 - OKIstioCNI schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified IstioCNI
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKIstioCNI schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified IstioCNI
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstioCNI schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstioCNI schema
201 - CreatedIstioCNI schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1/namespaces/{namespace}/istiocnis/{name}/status

HTTP method
GET
Description
read status of the specified IstioCNI
HTTP responses
HTTP codeResponse body
200 - OKIstioCNI schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified IstioCNI
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKIstioCNI schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified IstioCNI
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstioCNI schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstioCNI schema
201 - CreatedIstioCNI schema
401 - UnauthorizedEmpty

IstioRevisionTag

Description
IstioRevisionTag references an Istio or IstioRevision object and serves as an alias for sidecar injection. It can be used to manage stable revision tags without having to use istioctl or helm directly. See https://istio.io/latest/docs/setup/upgrade/canary/#stable-revision-labels for more information on the concept.
Type
object

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

IstioRevisionTagSpec defines the desired state of IstioRevisionTag

statusobject

IstioRevisionStatus defines the observed state of IstioRevision

.spec

Description
IstioRevisionTagSpec defines the desired state of IstioRevisionTag
Type
object
Required
targetRef
PropertyTypeDescription
targetRefobject

IstioRevisionTagTargetReference can reference either Istio or IstioRevision objects in the cluster. In the case of referencing an Istio object, the Sail Operator will automatically update the reference to the Istio object's Active Revision.

.spec.targetRef

Description
IstioRevisionTagTargetReference can reference either Istio or IstioRevision objects in the cluster. In the case of referencing an Istio object, the Sail Operator will automatically update the reference to the Istio object's Active Revision.
Type
object
Required
kindname
PropertyTypeDescription
kindstring

Kind is the kind of the target resource.

namestring

Name is the name of the target resource.

.status

Description
IstioRevisionStatus defines the observed state of IstioRevision
Type
object
Required
istioRevisionistiodNamespace
PropertyTypeDescription
conditionsarray

Represents the latest available observations of the object's current state.

istioRevisionstring

IstioRevision stores the name of the referenced IstioRevision

istiodNamespacestring

IstiodNamespace stores the namespace of the corresponding Istiod instance

observedGenerationinteger

ObservedGeneration is the most recent generation observed for this IstioRevisionTag object. It corresponds to the object's generation, which is updated on mutation by the API Server. The information in the status pertains to this particular generation of the object.

statestring

Reports the current state of the object.

.status.conditions

Description
Represents the latest available observations of the object's current state.
Type
array

.status.conditions[]

Description
IstioRevisionCondition represents a specific observation of the IstioRevision object's state.
Type
object
PropertyTypeDescription
lastTransitionTimestring

Last time the condition transitioned from one status to another.

messagestring

Human-readable message indicating details about the last transition.

reasonstring

Unique, single-word, CamelCase reason for the condition's last transition.

statusstring

The status of this condition. Can be True, False or Unknown.

typestring

The type of this condition.

API Endpoints

The following API endpoints are available:

  • /apis/sailoperator.io/v1/namespaces/{namespace}/istiorevisiontags
    • DELETE: delete collection of IstioRevisionTag
    • GET: list objects of kind IstioRevisionTag
    • POST: create a new IstioRevisionTag
  • /apis/sailoperator.io/v1/namespaces/{namespace}/istiorevisiontags/{name}
    • DELETE: delete the specified IstioRevisionTag
    • GET: read the specified IstioRevisionTag
    • PATCH: partially update the specified IstioRevisionTag
    • PUT: replace the specified IstioRevisionTag
  • /apis/sailoperator.io/v1/namespaces/{namespace}/istiorevisiontags/{name}/status
    • GET: read status of the specified IstioRevisionTag
    • PATCH: partially update status of the specified IstioRevisionTag
    • PUT: replace status of the specified IstioRevisionTag

/apis/sailoperator.io/v1/namespaces/{namespace}/istiorevisiontags

HTTP method
DELETE
Description
delete collection of IstioRevisionTag
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind IstioRevisionTag
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTagList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new IstioRevisionTag
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstioRevisionTag schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTag schema
201 - CreatedIstioRevisionTag schema
202 - AcceptedIstioRevisionTag schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1/namespaces/{namespace}/istiorevisiontags/{name}

HTTP method
DELETE
Description
delete the specified IstioRevisionTag
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified IstioRevisionTag
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTag schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified IstioRevisionTag
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTag schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified IstioRevisionTag
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstioRevisionTag schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTag schema
201 - CreatedIstioRevisionTag schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1/namespaces/{namespace}/istiorevisiontags/{name}/status

HTTP method
GET
Description
read status of the specified IstioRevisionTag
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTag schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified IstioRevisionTag
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTag schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified IstioRevisionTag
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyIstioRevisionTag schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKIstioRevisionTag schema
201 - CreatedIstioRevisionTag schema
401 - UnauthorizedEmpty

ZTunnel

Description
ZTunnel represents a deployment of the Istio ztunnel component.
Type
object

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject

ZTunnelSpec defines the desired state of ZTunnel

statusobject

ZTunnelStatus defines the observed state of ZTunnel

.spec

Description
ZTunnelSpec defines the desired state of ZTunnel
Type
object
Required
namespaceversion
PropertyTypeDescription
namespacestring

Namespace to which the Istio ztunnel component should be installed.

profilestring

The built-in installation configuration profile to use. The 'default' profile is 'ambient' and it is always applied. Must be one of: ambient, default, demo, empty, external, preview, remote, stable.

valuesobject

Defines the values to be passed to the Helm charts when installing Istio ztunnel.

versionstring

Defines the version of Istio to install. Must be one of: v1.26-latest, v1.26.3, v1.24-latest, v1.24.6.

.spec.values

Description
Defines the values to be passed to the Helm charts when installing Istio ztunnel.
Type
object
PropertyTypeDescription
globalobject

Part of the global configuration applicable to the Istio ztunnel component.

ztunnelobject

Configuration for the Istio ztunnel plugin.

.spec.values.global

Description
Part of the global configuration applicable to the Istio ztunnel component.
Type
object
PropertyTypeDescription
defaultResourcesobject

See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

Deprecated: Marked as deprecated in pkg/apis/values_types.proto.

hubstring

Specifies the docker hub for Istio images.

imagePullPolicystring

Specifies the image pull policy for the Istio images. one of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.

More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

imagePullSecretsarray

ImagePullSecrets for the control plane ServiceAccount, list of secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.

logAsJsonboolean

Specifies whether istio components should output logs in json format by adding --log_as_json argument to each container.

loggingobject

Specifies the global logging level settings for the Istio control plane components.

platformstring

Platform in which Istio is deployed. Possible values are: "openshift" and "gcp" An empty value means it is a vanilla Kubernetes distribution, therefore no special treatment will be considered.

tagstring

Specifies the tag for the Istio docker images.

variantstring

The variant of the Istio container images to use. Options are "debug" or "distroless". Unset will use the default for the given version.

.spec.values.global.defaultResources

Description
See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container Deprecated: Marked as deprecated in pkg/apis/values_types.proto.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.global.defaultResources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.global.defaultResources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.global.defaultResources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.defaultResources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.global.imagePullSecrets

Description
ImagePullSecrets for the control plane ServiceAccount, list of secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.
Type
array

.spec.values.global.imagePullSecrets[]

Type
string

.spec.values.global.logging

Description
Specifies the global logging level settings for the Istio control plane components.
Type
object
PropertyTypeDescription
levelstring

Comma-separated minimum per-scope logging level of messages to output, in the form of :,: The control plane has different scopes depending on component, but can configure default log level across all components If empty, default scope and level will be used as configured in code

.spec.values.ztunnel

Description
Configuration for the Istio ztunnel plugin.
Type
object
PropertyTypeDescription
Annotationsobject

Annotations to apply to all top level resources

Labelsobject

Labels to apply to all top level resources

caAddressstring

The address of the CA for CSR.

envobject

A key: value mapping of environment variables to add to the pod

hubstring

Hub to pull the container image from. Image will be Hub/Image:Tag-Variant.

imagestring

Image name to pull from. Image will be Hub/Image:Tag-Variant. If Image contains a "/", it will replace the entire image in the pod.

imagePullPolicystring

Specifies the image pull policy for the Istio images. one of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.

More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

imagePullSecretsarray

List of secret names to add to the service account as image pull secrets to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.

istioNamespacestring

Specifies the default namespace for the Istio control plane components.

logAsJsonboolean

Specifies whether istio components should output logs in json format by adding --log_as_json argument to each container.

logLevelstring

Configuration log level of ztunnel binary, default is info. Valid values are: trace, debug, info, warn, error.

meshConfigobject

meshConfig defines runtime configuration of components. For ztunnel, only defaultConfig is used, but this is nested under meshConfig for consistency with other components.

multiClusterobject

Settings for multicluster. The name of the cluster we are installing in. Note this is a user-defined name, which must be consistent with Istiod configuration.

podAnnotationsobject

Annotations added to each pod. The default annotations are required for scraping prometheus (in most environments).

podLabelsobject

Additional labels to apply on the pod level.

resourceNamestring

resourceName, if set, will override the naming of resources. If not set, will default to the release name. It is recommended to not set this; this is primarily for backwards compatibility.

resourcesobject

The k8s resource requests and limits for the ztunnel Pods.

revisionstring

Configures the revision this control plane is a part of

tagstring

The container image tag to pull. Image will be Hub/Image:Tag-Variant.

terminationGracePeriodSecondsinteger

This value defines:

  1. how many seconds kube waits for ztunnel pod to gracefully exit before forcibly terminating it (this value)
  2. how many seconds ztunnel waits to drain its own connections (this value - 1 sec)
variantstring

The container image variant to pull. Options are "debug" or "distroless". Unset will use the default for the given version.

volumeMountsarray

Additional volumeMounts to the ztunnel container

volumesarray

Additional volumes to add to the ztunnel Pod.

xdsAddressstring

The customized XDS address to retrieve configuration.

.spec.values.ztunnel.Annotations

Description
Annotations to apply to all top level resources
Type
object

.spec.values.ztunnel.Labels

Description
Labels to apply to all top level resources
Type
object

.spec.values.ztunnel.env

Description
A `key: value` mapping of environment variables to add to the pod
Type
object

.spec.values.ztunnel.imagePullSecrets

Description
List of secret names to add to the service account as image pull secrets to use for pulling any images in pods that reference this ServiceAccount. Must be set for any cluster configured with private docker registry.
Type
array

.spec.values.ztunnel.imagePullSecrets[]

Type
string

.spec.values.ztunnel.meshConfig

Description
meshConfig defines runtime configuration of components. For ztunnel, only defaultConfig is used, but this is nested under `meshConfig` for consistency with other components.
Type
object
PropertyTypeDescription
accessLogEncodingstring

Encoding for the proxy access log (TEXT or JSON). Default value is TEXT.

accessLogFilestring

File address for the proxy access log (e.g. /dev/stdout). Empty value disables access logging.

accessLogFormatstring

Format for the proxy access log Empty value results in proxy's default access log format

caobject

If specified, Istiod will authorize and forward the CSRs from the workloads to the specified external CA using the Istio CA gRPC API.

caCertificatesarray

The extra root certificates for workload-to-workload communication. The plugin certificates (the 'cacerts' secret) or self-signed certificates (the 'istio-ca-secret' secret) are automatically added by Istiod. The CA certificate that signs the workload certificates is automatically added by Istio Agent.

certificatesarray

Configure the provision of certificates.

Note: Deprecated, please refer to Cert-Manager or other cert provisioning solutions to sign DNS certificates.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

configSourcesarray

ConfigSource describes a source of configuration data for networking rules, and other Istio configuration artifacts. Multiple data sources can be configured for a single control plane.

connectTimeoutstring

Connection timeout used by Envoy. (MUST be >=1ms) Default timeout is 10s.

defaultConfigobject

Default proxy config used by gateway and sidecars. In case of Kubernetes, the proxy config is applied once during the injection process, and remain constant for the duration of the pod. The rest of the mesh config can be changed at runtime and config gets distributed dynamically. On Kubernetes, this can be overridden on individual pods with the proxy.istio.io/config annotation.

defaultDestinationRuleExportToarray

The default value for the DestinationRule.exportTo field. Has the same syntax as defaultServiceExportTo.

If not set the system will use "*" as the default value which implies that destination rules are exported to all namespaces

defaultHttpRetryPolicyobject

Configure the default HTTP retry policy. The default number of retry attempts is set at 2 for these errors:

"connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes".

Setting the number of attempts to 0 disables retry policy globally. This setting can be overridden on a per-host basis using the Virtual Service API. All settings in the retry policy except perTryTimeout can currently be configured globally via this field.

defaultProvidersobject

Specifies extension providers to use by default in Istio configuration resources.

defaultServiceExportToarray

The default value for the ServiceEntry.exportTo field and services imported through container registry integrations, e.g. this applies to Kubernetes Service resources. The value is a list of namespace names and reserved namespace aliases. The allowed namespace aliases are:

* - All Namespaces
. - Current Namespace
~ - No Namespace

If not set the system will use "*" as the default value which implies that services are exported to all namespaces.

All namespaces is a reasonable default for implementations that don't need to restrict access or visibility of services across namespace boundaries. If that requirement is present it is generally good practice to make the default Current namespace so that services are only visible within their own namespaces by default. Operators can then expand the visibility of services to other namespaces as needed. Use of No Namespace is expected to be rare but can have utility for deployments where dependency management needs to be precise even within the scope of a single namespace.

For further discussion see the reference documentation for ServiceEntry, Sidecar, and Gateway.

defaultVirtualServiceExportToarray

The default value for the VirtualService.exportTo field. Has the same syntax as defaultServiceExportTo.

If not set the system will use "*" as the default value which implies that virtual services are exported to all namespaces

disableEnvoyListenerLogboolean

This flag disables Envoy Listener logs. See Listener Access Log Istio Enables Envoy's listener access logs on "NoRoute" response flag. Default value is false.

discoverySelectorsarray

A list of Kubernetes selectors that specify the set of namespaces that Istio considers when computing configuration updates for sidecars. This can be used to reduce Istio's computational load by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. If omitted, Istio will use the default behavior of processing all namespaces in the cluster. Elements in the list are disjunctive (OR semantics), i.e. a namespace will be included if it matches any selector. The following example selects any namespace that matches either below:

  1. The namespace has both of these labels: env: prod and region: us-east1
  2. The namespace has label app equal to cassandra or spark.
discoverySelectors:
  - matchLabels:
    env: prod
    region: us-east1
  - matchExpressions:
  - key: app
    operator: In
    values:
  - cassandra
  - spark

Refer to the Kubernetes selector docs for additional detail on selector semantics.

dnsRefreshRatestring

Configures DNS refresh rate for Envoy clusters of type STRICT_DNS Default refresh rate is 60s.

enableAutoMtlsboolean

This flag is used to enable mutual TLS automatically for service to service communication within the mesh, default true. If set to true, and a given service does not have a corresponding DestinationRule configured, or its DestinationRule does not have ClientTLSSettings specified, Istio configures client side TLS configuration appropriately. More specifically, If the upstream authentication policy is in STRICT mode, use Istio provisioned certificate for mutual TLS to connect to upstream. If upstream service is in plain text mode, use plain text. If the upstream authentication policy is in PERMISSIVE mode, Istio configures clients to use mutual TLS when server sides are capable of accepting mutual TLS traffic. If service DestinationRule exists and has ClientTLSSettings specified, that is always used instead.

enableEnvoyAccessLogServiceboolean

This flag enables Envoy's gRPC Access Log Service. See Access Log Service for details about Envoy's gRPC Access Log Service API. Default value is false.

enablePrometheusMergeboolean

If enabled, Istio agent will merge metrics exposed by the application with metrics from Envoy and Istio agent. The sidecar injection will replace prometheus.io annotations present on the pod and redirect them towards Istio agent, which will then merge metrics of from the application with Istio metrics. This relies on the annotations prometheus.io/scrape, prometheus.io/port, and prometheus.io/path annotations. If you are running a separately managed Envoy with an Istio sidecar, this may cause issues, as the metrics will collide. In this case, it is recommended to disable aggregation on that deployment with the prometheus.istio.io/merge-metrics: "false" annotation. If not specified, this will be enabled by default.

enableTracingboolean

Flag to control generation of trace spans and request IDs. Requires a trace span collector defined in the proxy configuration.

extensionProvidersarray

Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy can be used with an extension provider to delegate the authorization decision to a custom authorization system.

h2UpgradePolicystring

Specify if http1.1 connections should be upgraded to http2 by default. if sidecar is installed on all pods in the mesh, then this should be set to UPGRADE. If one or more services or namespaces do not have sidecar(s), then this should be set to DO_NOT_UPGRADE. It can be enabled by destination using the destinationRule.trafficPolicy.connectionPool.http.h2UpgradePolicy override.

inboundClusterStatNamestring

Name to be used while emitting statistics for inbound clusters. The same pattern is used while computing stat prefix for network filters like TCP and Redis. By default, Istio emits statistics with the pattern inbound|<port>|<port-name>|<service-FQDN>. For example inbound|7443|grpc-reviews|reviews.prod.svc.cluster.local. This can be used to override that pattern.

A Pattern can be composed of various pre-defined variables. The following variables are supported.

  • %SERVICE% - Will be substituted with short hostname of the service.
  • %SERVICE_NAME% - Will be substituted with name of the service.
  • %SERVICE_FQDN% - Will be substituted with FQDN of the service.
  • %SERVICE_PORT% - Will be substituted with port of the service.
  • %TARGET_PORT% - Will be substituted with the target port of the service.
  • %SERVICE_PORT_NAME% - Will be substituted with port name of the service.

Following are some examples of supported patterns for reviews:

  • %SERVICE_FQDN%_%SERVICE_PORT% will use reviews.prod.svc.cluster.local_7443 as the stats name.
  • %SERVICE% will use reviews.prod as the stats name.
inboundTrafficPolicyobject

Set the default behavior of the sidecar for handling inbound traffic to the application. If your application listens on localhost, you will need to set this to LOCALHOST.

ingressClassstring

Class of ingress resources to be processed by Istio ingress controller. This corresponds to the value of kubernetes.io/ingress.class annotation.

ingressControllerModestring

Defines whether to use Istio ingress controller for annotated or all ingress resources. Default mode is STRICT.

ingressSelectorstring

Defines which gateway deployment to use as the Ingress controller. This field corresponds to the Gateway.selector field, and will be set as istio: INGRESS_SELECTOR. By default, ingressgateway is used, which will select the default IngressGateway as it has the istio: ingressgateway labels. It is recommended that this is the same value as ingressService.

ingressServicestring

Name of the Kubernetes service used for the istio ingress controller. If no ingress controller is specified, the default value istio-ingressgateway is used.

localityLbSettingobject

Locality based load balancing distribution or failover settings. If unspecified, locality based load balancing will be enabled by default. However, this requires outlierDetection to actually take effect for a particular service, see https://istio.io/latest/docs/tasks/traffic-management/locality-load-balancing/failover/

meshMTLSobject

The below configuration parameters can be used to specify TLSConfig for mesh traffic. For example, a user could enable min TLS version for ISTIO_MUTUAL traffic and specify a curve for non ISTIO_MUTUAL traffic like below:

meshConfig:

	meshMTLS:
	  minProtocolVersion: TLSV1_3
	tlsDefaults:
	  Note: applicable only for non ISTIO_MUTUAL scenarios
	  ecdhCurves:
	    - P-256
	    - P-512

Configuration of mTLS for traffic between workloads with ISTIO_MUTUAL TLS traffic.

Note: Mesh mTLS does not respect ECDH curves.

outboundClusterStatNamestring

Name to be used while emitting statistics for outbound clusters. The same pattern is used while computing stat prefix for network filters like TCP and Redis. By default, Istio emits statistics with the pattern outbound|<port>|<subsetname>|<service-FQDN>. For example outbound|8080|v2|reviews.prod.svc.cluster.local. This can be used to override that pattern.

A Pattern can be composed of various pre-defined variables. The following variables are supported.

  • %SERVICE% - Will be substituted with short hostname of the service.
  • %SERVICE_NAME% - Will be substituted with name of the service.
  • %SERVICE_FQDN% - Will be substituted with FQDN of the service.
  • %SERVICE_PORT% - Will be substituted with port of the service.
  • %SERVICE_PORT_NAME% - Will be substituted with port name of the service.
  • %SUBSET_NAME% - Will be substituted with subset.

Following are some examples of supported patterns for reviews:

  • %SERVICE_FQDN%_%SERVICE_PORT% will use reviews.prod.svc.cluster.local_7443 as the stats name.
  • %SERVICE% will use reviews.prod as the stats name.
outboundTrafficPolicyobject

Set the default behavior of the sidecar for handling outbound traffic from the application.

Can be overridden at a Sidecar level by setting the OutboundTrafficPolicy in the Sidecar API.

Default mode is ALLOW_ANY, which means outbound traffic to unknown destinations will be allowed.

pathNormalizationobject

ProxyPathNormalization configures how URL paths in incoming and outgoing HTTP requests are normalized by the sidecars and gateways. The normalized paths will be used in all aspects through the requests' lifetime on the sidecars and gateways, which includes routing decisions in outbound direction (client proxy), authorization policy match and enforcement in inbound direction (server proxy), and the URL path proxied to the upstream service. If not set, the NormalizationType.DEFAULT configuration will be used.

protocolDetectionTimeoutstring

Automatic protocol detection uses a set of heuristics to determine whether the connection is using TLS or not (on the server side), as well as the application protocol being used (e.g., http vs tcp). These heuristics rely on the client sending the first bits of data. For server first protocols like MySQL, MongoDB, etc. Envoy will timeout on the protocol detection after the specified period, defaulting to non mTLS plain TCP traffic. Set this field to tweak the period that Envoy will wait for the client to send the first bits of data. (MUST be >=1ms or 0s to disable). Default detection timeout is 0s (no timeout).

Setting a timeout is not recommended nor safe. Even high timeouts (>5s) will be hit occasionally, and when they occur the result is typically broken traffic that may not recover on its own. Exceptionally high values might solve this, but injecting 60s delays onto new connections is generally not tenable anyways.

proxyHttpPortinteger

Port on which Envoy should listen for HTTP PROXY requests if set.

proxyInboundListenPortinteger

Port on which Envoy should listen for all inbound traffic to the pod/vm will be captured to. Default port is 15006.

proxyListenPortinteger

Port on which Envoy should listen for all outbound traffic to other services. Default port is 15001.

rootNamespacestring

The namespace to treat as the administrative root namespace for Istio configuration. When processing a leaf namespace Istio will search for declarations in that namespace first and if none are found it will search in the root namespace. Any matching declaration found in the root namespace is processed as if it were declared in the leaf namespace.

The precise semantics of this processing are documented on each resource type.

serviceScopeConfigsarray

Scope to be applied to select services.

serviceSettingsarray

Settings to be applied to select services.

tcpKeepaliveobject

If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.

tlsDefaultsobject

Configuration of TLS for all traffic except for ISTIO_MUTUAL mode. Currently, this supports configuration of ecdhCurves and cipherSuites only. For ISTIO_MUTUAL TLS settings, use meshMTLS configuration.

trustDomainstring

The trust domain corresponds to the trust root of a system. Refer to SPIFFE-ID

trustDomainAliasesarray

The trust domain aliases represent the aliases of trustDomain. For example, if we have

trustDomain: td1
trustDomainAliases: ["td2", "td3"]

Any service with the identity td1/ns/foo/sa/a-service-account, td2/ns/foo/sa/a-service-account, or td3/ns/foo/sa/a-service-account will be treated the same in the Istio mesh.

verifyCertificateAtClientboolean

VerifyCertificateAtClient sets the mesh global default for peer certificate validation at the client-side proxy when SIMPLE TLS or MUTUAL TLS (non ISTIO_MUTUAL) origination modes are used. This setting can be overridden at the host level via DestinationRule API. By default, VerifyCertificateAtClient is true.

CaCertificates: If set, proxy verifies CA signature based on given CaCertificates. If unset, and VerifyCertificateAtClient is true, proxy uses default System CA bundle. If unset and VerifyCertificateAtClient is false, proxy will not verify the CA.

SubjectAltNames: If set, proxy verifies subject alt names are present in the SAN. If unset, and VerifyCertificateAtClient is true, proxy uses host in destination rule to verify the SANs. If unset, and VerifyCertificateAtClient is false, proxy does not verify SANs.

For SAN, client-side proxy will exact match host in DestinationRule as well as one level wildcard if the specified host in DestinationRule doesn't contain a wildcard. For example, if the host in DestinationRule is x.y.com, client-side proxy will match either x.y.com or *.y.com for the SAN in the presented server certificate. For wildcard host name in DestinationRule, client-side proxy will do a suffix match. For example, if host is *.x.y.com, client-side proxy will verify the presented server certificate SAN matches .x.y.com suffix.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

.spec.values.ztunnel.meshConfig.ca

Description
If specified, Istiod will authorize and forward the CSRs from the workloads to the specified external CA using the Istio CA gRPC API.
Type
object
Required
address
PropertyTypeDescription
addressstring

REQUIRED. Address of the CA server implementing the Istio CA gRPC API. Can be IP address or a fully qualified DNS name with port Eg: custom-ca.default.svc.cluster.local:8932, 192.168.23.2:9000

istiodSideboolean

Use istiodSide to specify CA Server integrate to Istiod side or Agent side Default: true

requestTimeoutstring

timeout for forward CSR requests from Istiod to External CA Default: 10s

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. Regarding tlsSettings:

  • DISABLE MODE is legitimate for the case Istiod is making the request via an Envoy sidecar. DISABLE MODE can also be used for testing
  • TLS MUTUAL MODE be on by default. If the CA certificates (cert bundle to verify the CA server's certificate) is omitted, Istiod will use the system root certs to verify the CA server's certificate.

.spec.values.ztunnel.meshConfig.ca.tlsSettings

Description
Use the tlsSettings to specify the tls mode to use. Regarding tlsSettings: - DISABLE MODE is legitimate for the case Istiod is making the request via an Envoy sidecar. DISABLE MODE can also be used for testing - TLS MUTUAL MODE be on by default. If the CA certificates (cert bundle to verify the CA server's certificate) is omitted, Istiod will use the system root certs to verify the CA server's certificate.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.ztunnel.meshConfig.ca.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.ztunnel.meshConfig.ca.tlsSettings.subjectAltNames[]

Type
string

.spec.values.ztunnel.meshConfig.caCertificates

Description
The extra root certificates for workload-to-workload communication. The plugin certificates (the 'cacerts' secret) or self-signed certificates (the 'istio-ca-secret' secret) are automatically added by Istiod. The CA certificate that signs the workload certificates is automatically added by Istio Agent.
Type
array

.spec.values.ztunnel.meshConfig.caCertificates[]

Type
object
PropertyTypeDescription
certSignersarray

when Istiod is acting as RA(registration authority) If set, they are used for these signers. Otherwise, this trustAnchor is used for all signers.

pemstring

The PEM data of the certificate.

spiffeBundleUrlstring

The SPIFFE bundle endpoint URL that complies to: https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#the-spiffe-trust-domain-and-bundle The endpoint should support authentication based on Web PKI: https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE_Trust_Domain_and_Bundle.md#521-web-pki The certificate is retrieved from the endpoint.

trustDomainsarray

Optional. Specify the list of trust domains to which this trustAnchor data belongs. If set, they are used for these trust domains. Otherwise, this trustAnchor is used for default trust domain and its aliases. Note that we can have multiple trustAnchor data for a same trustDomain. In that case, trustAnchors with a same trust domain will be merged and used together to verify peer certificates. If neither certSigners nor trustDomains is set, this trustAnchor is used for all trust domains and all signers. If only trustDomains is set, this trustAnchor is used for these trustDomains and all signers. If only certSigners is set, this trustAnchor is used for these certSigners and all trust domains. If both certSigners and trustDomains is set, this trustAnchor is only used for these signers and trust domains.

.spec.values.ztunnel.meshConfig.caCertificates[].certSigners

Description
when Istiod is acting as RA(registration authority) If set, they are used for these signers. Otherwise, this trustAnchor is used for all signers.
Type
array

.spec.values.ztunnel.meshConfig.caCertificates[].certSigners[]

Type
string

.spec.values.ztunnel.meshConfig.caCertificates[].trustDomains

Description
Optional. Specify the list of trust domains to which this trustAnchor data belongs. If set, they are used for these trust domains. Otherwise, this trustAnchor is used for default trust domain and its aliases. Note that we can have multiple trustAnchor data for a same trustDomain. In that case, trustAnchors with a same trust domain will be merged and used together to verify peer certificates. If neither certSigners nor trustDomains is set, this trustAnchor is used for all trust domains and all signers. If only trustDomains is set, this trustAnchor is used for these trustDomains and all signers. If only certSigners is set, this trustAnchor is used for these certSigners and all trust domains. If both certSigners and trustDomains is set, this trustAnchor is only used for these signers and trust domains.
Type
array

.spec.values.ztunnel.meshConfig.caCertificates[].trustDomains[]

Type
string

.spec.values.ztunnel.meshConfig.certificates

Description
Configure the provision of certificates. Note: Deprecated, please refer to Cert-Manager or other cert provisioning solutions to sign DNS certificates. Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
array

.spec.values.ztunnel.meshConfig.certificates[]

Description
Certificate configures the provision of a certificate and its key. Example 1: key and cert stored in a secret ``` { secretName: galley-cert secretNamespace: istio-system dnsNames: - galley.istio-system.svc - galley.mydomain.com } ``` Example 2: key and cert stored in a directory ``` { dnsNames: - pilot.istio-system - pilot.istio-system.svc - pilot.mydomain.com } ```
Type
object
PropertyTypeDescription
dnsNamesarray

The DNS names for the certificate. A certificate may contain multiple DNS names.

secretNamestring

Name of the secret the certificate and its key will be stored into. If it is empty, it will not be stored into a secret. Instead, the certificate and its key will be stored into a hard-coded directory.

.spec.values.ztunnel.meshConfig.certificates[].dnsNames

Description
The DNS names for the certificate. A certificate may contain multiple DNS names.
Type
array

.spec.values.ztunnel.meshConfig.certificates[].dnsNames[]

Type
string

.spec.values.ztunnel.meshConfig.configSources

Description
ConfigSource describes a source of configuration data for networking rules, and other Istio configuration artifacts. Multiple data sources can be configured for a single control plane.
Type
array

.spec.values.ztunnel.meshConfig.configSources[]

Description
ConfigSource describes information about a configuration store inside a mesh. A single control plane instance can interact with one or more data sources.
Type
object
PropertyTypeDescription
addressstring

Address of the server implementing the Istio Mesh Configuration protocol (MCP). Can be IP address or a fully qualified DNS name. Use xds:// to specify a grpc-based xds backend, k8s:// to specify a k8s controller or fs:/// to specify a file-based backend with absolute path to the directory.

subscribedResourcesarray

Describes the source of configuration, if nothing is specified default is MCP

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the MCP server uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

.spec.values.ztunnel.meshConfig.configSources[].subscribedResources

Description
Describes the source of configuration, if nothing is specified default is MCP
Type
array

.spec.values.ztunnel.meshConfig.configSources[].subscribedResources[]

Description
Resource describes the source of configuration
Type
string

.spec.values.ztunnel.meshConfig.configSources[].tlsSettings

Description
Use the tlsSettings to specify the tls mode to use. If the MCP server uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.ztunnel.meshConfig.configSources[].tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.ztunnel.meshConfig.configSources[].tlsSettings.subjectAltNames[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig

Description
Default proxy config used by gateway and sidecars. In case of Kubernetes, the proxy config is applied once during the injection process, and remain constant for the duration of the pod. The rest of the mesh config can be changed at runtime and config gets distributed dynamically. On Kubernetes, this can be overridden on individual pods with the `proxy.istio.io/config` annotation.
Type
object
PropertyTypeDescription
availabilityZonestring

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

binaryPathstring

Path to the proxy binary

caCertificatesPemarray

The PEM data of the extra root certificates for workload-to-workload communication. This includes the certificates defined in MeshConfig and any other certificates that Istiod uses as CA. The plugin certificates (the 'cacerts' secret), self-signed certificates (the 'istio-ca-secret' secret) are added automatically by Istiod.

concurrencyinteger

The number of worker threads to run. If unset, which is recommended, this will be automatically determined based on CPU requests/limits. If set to 0, all cores on the machine will be used, ignoring CPU requests or limits. This can lead to major performance issues if CPU limits are also set.

configPathstring

Path to the generated configuration file directory. Proxy agent generates the actual configuration and stores it in this directory.

controlPlaneAuthPolicystring

AuthenticationPolicy defines how the proxy is authenticated when it connects to the control plane. Default is set to MUTUAL_TLS.

customConfigFilestring

File path of custom proxy configuration, currently used by proxies in front of istiod.

discoveryAddressstring

Address of the discovery service exposing xDS with mTLS connection. The inject configuration may override this value.

discoveryRefreshDelaystring

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

drainDurationstring

restart. MUST be >=1s (e.g., 1s/1m/1h) Default drain duration is 45s.

envoyAccessLogServiceobject

Address of the service to which access logs from Envoys should be sent. (e.g. accesslog-service:15000). See Access Log Service for details about Envoy's gRPC Access Log Service API.

envoyMetricsServiceobject

Address of the Envoy Metrics Service implementation (e.g. metrics-service:15000). See Metric Service for details about Envoy's Metrics Service API.

envoyMetricsServiceAddressstring

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

extraStatTagsarray

An additional list of tags to extract from the in-proxy Istio telemetry. These extra tags can be added by configuring the telemetry extension. Each additional tag needs to be present in this list. Extra tags emitted by the telemetry extensions must be listed here so that they can be processed and exposed as Prometheus metrics. Deprecated: istio.stats is a native filter now, this field is no longer needed.

gatewayTopologyobject

Topology encapsulates the configuration which describes where the proxy is located i.e. behind a (or N) trusted proxy (proxies) or directly exposed to the internet. This configuration only effects gateways and is applied to all the gateways in the cluster unless overridden via annotations of the gateway workloads.

holdApplicationUntilProxyStartsboolean

Boolean flag for enabling/disabling the holdApplicationUntilProxyStarts behavior. This feature adds hooks to delay application startup until the pod proxy is ready to accept traffic, mitigating some startup race conditions. Default value is 'false'.

imageobject

Specifies the details of the proxy image.

interceptionModestring

The mode used to redirect inbound traffic to Envoy.

meshIdstring

The unique identifier for the service mesh All control planes running in the same service mesh should specify the same mesh ID. Mesh ID is used to label telemetry reports for cases where telemetry from multiple meshes is mixed together.

privateKeyProviderobject

Specifies the details of the Private Key Provider configuration for gateway and sidecar proxies.

proxyAdminPortinteger

Port on which Envoy should listen for administrative commands. Default port is 15000.

proxyBootstrapTemplatePathstring

Path to the proxy bootstrap template file

proxyHeadersobject

Define the set of headers to add/modify for HTTP request/responses.

To enable an optional header, simply set the field. If no specific configuration is required, an empty object ({}) will enable it. Note: currently all headers are enabled by default.

Below shows an example of customizing the server header and disabling the X-Envoy-Attempt-Count header:

proxyHeaders:

	server:
	  value: "my-custom-server"
	# Explicitly enable Request IDs.
	# As this is the default, this has no effect.
	requestId: {}
	attemptCount:
	  disabled: true

Below shows an example of preserving the header case for HTTP 1.x requests

proxyHeaders:

	preserveHttp1HeaderCase: true

Some headers are enabled by default, and require explicitly disabling. See below for an example of disabling all default-enabled headers:

proxyHeaders:

	forwardedClientCert: SANITIZE
	server:
	  disabled: true
	requestId:
	  disabled: true
	attemptCount:
	  disabled: true
	envoyDebugHeaders:
	  disabled: true
	metadataExchangeHeaders:
	  mode: IN_MESH

proxyMetadataobject

Additional environment variables for the proxy. Names starting with ISTIO_META_ will be included in the generated bootstrap and sent to the XDS server.

proxyStatsMatcherobject

Proxy stats matcher defines configuration for reporting custom Envoy stats. To reduce memory and CPU overhead from Envoy stats system, Istio proxies by default create and expose only a subset of Envoy stats. This option is to control creation of additional Envoy stats with prefix, suffix, and regex expressions match on the name of the stats. This replaces the stats inclusion annotations (sidecar.istio.io/statsInclusionPrefixes, sidecar.istio.io/statsInclusionRegexps, and sidecar.istio.io/statsInclusionSuffixes). For example, to enable stats for circuit breakers, request retries, upstream connections, and request timeouts, you can specify stats matcher as follows:

proxyStatsMatcher:

	inclusionRegexps:
	  - .*outlier_detection.*
	  - .*upstream_rq_retry.*
	  - .*upstream_cx_.*
	inclusionSuffixes:
	  - upstream_rq_timeout

Note including more Envoy stats might increase number of time series collected by prometheus significantly. Care needs to be taken on Prometheus resource provision and configuration to reduce cardinality.

readinessProbeobject

VM Health Checking readiness probe. This health check config exactly mirrors the kubernetes readiness probe configuration both in schema and logic. Only one health check method of 3 can be set at a time.

runtimeValuesobject

Envoy runtime configuration to set during bootstrapping. This enables setting experimental, unsafe, unsupported, and deprecated features that should be used with extreme caution.

sdsobject

Secret Discovery Service(SDS) configuration to be used by the proxy.

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

serviceClusterstring

Service cluster defines the name for the service_cluster that is shared by all Envoy instances. This setting corresponds to --service-cluster flag in Envoy. In a typical Envoy deployment, the service-cluster flag is used to identify the caller, for source-based routing scenarios.

Since Istio does not assign a local service/service version to each Envoy instance, the name is same for all of them. However, the source/caller's identity (e.g., IP address) is encoded in the --service-node flag when launching Envoy. When the RDS service receives API calls from Envoy, it uses the value of the service-node flag to compute routes that are relative to the service instances located at that IP address.

statNameLengthinteger

Maximum length of name field in Envoy's metrics. The length of the name field is determined by the length of a name field in a service and the set of labels that comprise a particular version of the service. The default value is set to 189 characters. Envoy's internal metrics take up 67 characters, for a total of 256 character name per metric. Increase the value of this field if you find that the metrics from Envoys are truncated.

statsdUdpAddressstring

IP Address and Port of a statsd UDP listener (e.g. 10.75.241.127:9125).

statusPortinteger

Port on which the agent should listen for administrative commands such as readiness probe. Default is set to port 15020.

terminationDrainDurationstring

The amount of time allowed for connections to complete on proxy shutdown. On receiving SIGTERM or SIGINT, istio-agent tells the active Envoy to start gracefully draining, discouraging any new connections and allowing existing connections to complete. It then sleeps for the terminationDrainDuration and then kills any remaining active Envoy processes. If not set, a default of 5s will be applied.

tracingobject

Tracing configuration to be used by the proxy.

tracingServiceNamestring

Used by Envoy proxies to assign the values for the service names in trace spans.

zipkinAddressstring

Address of the Zipkin service (e.g. zipkin:9411). DEPRECATED: Use [tracing][istio.mesh.v1alpha1.ProxyConfig.tracing] instead.

Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.

.spec.values.ztunnel.meshConfig.defaultConfig.caCertificatesPem

Description
The PEM data of the extra root certificates for workload-to-workload communication. This includes the certificates defined in MeshConfig and any other certificates that Istiod uses as CA. The plugin certificates (the 'cacerts' secret), self-signed certificates (the 'istio-ca-secret' secret) are added automatically by Istiod.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.caCertificatesPem[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.envoyAccessLogService

Description
Address of the service to which access logs from Envoys should be sent. (e.g. `accesslog-service:15000`). See [Access Log Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/accesslog/v2/als.proto) for details about Envoy's gRPC Access Log Service API.
Type
object
PropertyTypeDescription
addressstring

Address of a remove service used for various purposes (access log receiver, metrics receiver, etc.). Can be IP address or a fully qualified DNS name.

tcpKeepaliveobject

If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

.spec.values.ztunnel.meshConfig.defaultConfig.envoyAccessLogService.tcpKeepalive

Description
If set then set `SO_KEEPALIVE` on the socket to enable TCP Keepalives.
Type
object
PropertyTypeDescription
intervalstring

The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)

probesinteger

Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)

timestring

The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)

.spec.values.ztunnel.meshConfig.defaultConfig.envoyAccessLogService.tlsSettings

Description
Use the `tlsSettings` to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.ztunnel.meshConfig.defaultConfig.envoyAccessLogService.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.envoyAccessLogService.tlsSettings.subjectAltNames[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.envoyMetricsService

Description
Address of the Envoy Metrics Service implementation (e.g. `metrics-service:15000`). See [Metric Service](https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto) for details about Envoy's Metrics Service API.
Type
object
PropertyTypeDescription
addressstring

Address of a remove service used for various purposes (access log receiver, metrics receiver, etc.). Can be IP address or a fully qualified DNS name.

tcpKeepaliveobject

If set then set SO_KEEPALIVE on the socket to enable TCP Keepalives.

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

.spec.values.ztunnel.meshConfig.defaultConfig.envoyMetricsService.tcpKeepalive

Description
If set then set `SO_KEEPALIVE` on the socket to enable TCP Keepalives.
Type
object
PropertyTypeDescription
intervalstring

The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)

probesinteger

Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)

timestring

The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)

.spec.values.ztunnel.meshConfig.defaultConfig.envoyMetricsService.tlsSettings

Description
Use the `tlsSettings` to specify the tls mode to use. If the remote service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.ztunnel.meshConfig.defaultConfig.envoyMetricsService.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.envoyMetricsService.tlsSettings.subjectAltNames[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.extraStatTags

Description
An additional list of tags to extract from the in-proxy Istio telemetry. These extra tags can be added by configuring the telemetry extension. Each additional tag needs to be present in this list. Extra tags emitted by the telemetry extensions must be listed here so that they can be processed and exposed as Prometheus metrics. Deprecated: `istio.stats` is a native filter now, this field is no longer needed.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.extraStatTags[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.gatewayTopology

Description
Topology encapsulates the configuration which describes where the proxy is located i.e. behind a (or N) trusted proxy (proxies) or directly exposed to the internet. This configuration only effects gateways and is applied to all the gateways in the cluster unless overridden via annotations of the gateway workloads.
Type
object
PropertyTypeDescription
forwardClientCertDetailsstring

Configures how the gateway proxy handles x-forwarded-client-cert (XFCC) header in the incoming request.

numTrustedProxiesinteger

Number of trusted proxies deployed in front of the Istio gateway proxy. When this option is set to value N greater than zero, the trusted client address is assumed to be the Nth address from the right end of the X-Forwarded-For (XFF) header from the incoming request. If the X-Forwarded-For (XFF) header is missing or has fewer than N addresses, the gateway proxy falls back to using the immediate downstream connection's source address as the trusted client address. Note that the gateway proxy will append the downstream connection's source address to the X-Forwarded-For (XFF) address and set the X-Envoy-External-Address header to the trusted client address before forwarding it to the upstream services in the cluster. The default value of numTrustedProxies is 0. See Envoy XFF header handling for more details.

proxyProtocolobject

Enables PROXY protocol for downstream connections on a gateway.

.spec.values.ztunnel.meshConfig.defaultConfig.gatewayTopology.proxyProtocol

Description
Enables [PROXY protocol](http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt) for downstream connections on a gateway.
Type
object

.spec.values.ztunnel.meshConfig.defaultConfig.image

Description
Specifies the details of the proxy image.
Type
object
PropertyTypeDescription
imageTypestring

The image type of the image. Istio publishes default, debug, and distroless images. Other values are allowed if those image types (example: centos) are published to the specified hub. supported values: default, debug, distroless.

.spec.values.ztunnel.meshConfig.defaultConfig.privateKeyProvider

Description
Specifies the details of the Private Key Provider configuration for gateway and sidecar proxies.
Type
object
PropertyTypeDescription
cryptombobject

Use CryptoMb private key provider

qatobject

Use QAT private key provider

.spec.values.ztunnel.meshConfig.defaultConfig.privateKeyProvider.cryptomb

Description
Use CryptoMb private key provider
Type
object
PropertyTypeDescription
fallbackboolean

If the private key provider isn’t available (eg. the required hardware capability doesn’t existed) Envoy will fallback to the BoringSSL default implementation when the fallback is true. The default value is false.

pollDelaystring

How long to wait until the per-thread processing queue should be processed. If the processing queue gets full (eight sign or decrypt requests are received) it is processed immediately. However, if the queue is not filled before the delay has expired, the requests already in the queue are processed, even if the queue is not full. In effect, this value controls the balance between latency and throughput. The duration needs to be set to a value greater than or equal to 1 millisecond.

.spec.values.ztunnel.meshConfig.defaultConfig.privateKeyProvider.qat

Description
Use QAT private key provider
Type
object
PropertyTypeDescription
fallbackboolean

If the private key provider isn’t available (eg. the required hardware capability doesn’t existed) Envoy will fallback to the BoringSSL default implementation when the fallback is true. The default value is false.

pollDelaystring

How long to wait before polling the hardware accelerator after a request has been submitted there. Having a small value leads to quicker answers from the hardware but causes more polling loop spins, leading to potentially larger CPU usage. The duration needs to be set to a value greater than or equal to 1 millisecond.

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders

Description
Define the set of headers to add/modify for HTTP request/responses. To enable an optional header, simply set the field. If no specific configuration is required, an empty object (`{}`) will enable it. Note: currently all headers are enabled by default. Below shows an example of customizing the `server` header and disabling the `X-Envoy-Attempt-Count` header: ```yaml proxyHeaders: server: value: "my-custom-server" # Explicitly enable Request IDs. # As this is the default, this has no effect. requestId: {} attemptCount: disabled: true ``` # Below shows an example of preserving the header case for HTTP 1.x requests ```yaml proxyHeaders: preserveHttp1HeaderCase: true ``` Some headers are enabled by default, and require explicitly disabling. See below for an example of disabling all default-enabled headers: ```yaml proxyHeaders: forwardedClientCert: SANITIZE server: disabled: true requestId: disabled: true attemptCount: disabled: true envoyDebugHeaders: disabled: true metadataExchangeHeaders: mode: IN_MESH ```
Type
object
PropertyTypeDescription
attemptCountobject

Controls the X-Envoy-Attempt-Count header. If enabled, this header will be added on outbound request headers (including gateways) that have retries configured. If disabled, this header will not be set. If it is already present, it will be preserved. This header is enabled by default if not configured.

envoyDebugHeadersobject

Controls various X-Envoy-* headers, such as X-Envoy-Overloaded and X-Envoy-Upstream-Service-Time. If enabled, these headers will be included. If disabled, these headers will not be set. If they are already present, they will be preserved. See the Envoy documentation for more details. These headers are enabled by default if not configured.

forwardedClientCertstring

Controls the X-Forwarded-Client-Cert header for inbound sidecar requests. To set this on gateways, use the Topology setting. To disable the header, configure either SANITIZE (to always remove the header, if present) or FORWARD_ONLY (to leave the header as-is). By default, APPEND_FORWARD will be used.

metadataExchangeHeadersobject

Controls Istio metadata exchange headers X-Envoy-Peer-Metadata and X-Envoy-Peer-Metadata-Id. By default, the behavior is unspecified. If IN_MESH, these headers will not be appended to outbound requests from sidecars to services not in-mesh.

preserveHttp1HeaderCaseboolean

When true, the original case of HTTP/1.x headers will be preserved as they pass through the proxy, rather than normalizing them to lowercase. This field is particularly useful for applications that require case-sensitive headers for interoperability with downstream systems or APIs that expect specific casing. The preserve_http1_header_case option only applies to HTTP/1.x traffic, as HTTP/2 requires all headers to be lowercase per the protocol specification. Envoy will ignore this field for HTTP/2 requests and automatically normalize headers to lowercase, ensuring compliance with HTTP/2 standards.

requestIdobject

Controls the X-Request-Id header. If enabled, a request ID is generated for each request if one is not already set. This applies to all types of traffic (inbound, outbound, and gateways). If disabled, no request ID will be generate for the request. If it is already present, it will be preserved. Warning: request IDs are a critical component to mesh tracing and logging, so disabling this is not recommended. This header is enabled by default if not configured.

serverobject

Controls the server header. If enabled, the Server: istio-envoy header is set in response headers for inbound traffic (including gateways). If disabled, the Server header is not modified. If it is already present, it will be preserved.

setCurrentClientCertDetailsobject

This field is valid only when forward_client_cert_details is APPEND_FORWARD or SANITIZE_SET and the client connection is mTLS. It specifies the fields in the client certificate to be forwarded. Note that Hash is always set, and By is always set when the client certificate presents the URI type Subject Alternative Name value.

xForwardedHostobject

Controls the X-Forwarded-Host header. If enabled, the X-Forwarded-Host header is appended with the original host when it is rewritten. This header is disabled by default.

xForwardedPortobject

Controls the X-Forwarded-Port header. If enabled, the X-Forwarded-Port header is header with the port value client used to connect to Envoy. It will be ignored if the “x-forwarded-port“ header has been set by any trusted proxy in front of Envoy. This header is disabled by default.

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.attemptCount

Description
Controls the `X-Envoy-Attempt-Count` header. If enabled, this header will be added on outbound request headers (including gateways) that have retries configured. If disabled, this header will not be set. If it is already present, it will be preserved. This header is enabled by default if not configured.
Type
object
PropertyTypeDescription
disabledboolean

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.envoyDebugHeaders

Description
Controls various `X-Envoy-*` headers, such as `X-Envoy-Overloaded` and `X-Envoy-Upstream-Service-Time`. If enabled, these headers will be included. If disabled, these headers will not be set. If they are already present, they will be preserved. See the [Envoy documentation](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/router/v3/router.proto#envoy-v3-api-field-extensions-filters-http-router-v3-router-suppress-envoy-headers) for more details. These headers are enabled by default if not configured.
Type
object
PropertyTypeDescription
disabledboolean

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.metadataExchangeHeaders

Description
Controls Istio metadata exchange headers `X-Envoy-Peer-Metadata` and `X-Envoy-Peer-Metadata-Id`. By default, the behavior is unspecified. If IN_MESH, these headers will not be appended to outbound requests from sidecars to services not in-mesh.
Type
object
PropertyTypeDescription
modestring

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.requestId

Description
Controls the `X-Request-Id` header. If enabled, a request ID is generated for each request if one is not already set. This applies to all types of traffic (inbound, outbound, and gateways). If disabled, no request ID will be generate for the request. If it is already present, it will be preserved. Warning: request IDs are a critical component to mesh tracing and logging, so disabling this is not recommended. This header is enabled by default if not configured.
Type
object
PropertyTypeDescription
disabledboolean

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.server

Description
Controls the `server` header. If enabled, the `Server: istio-envoy` header is set in response headers for inbound traffic (including gateways). If disabled, the `Server` header is not modified. If it is already present, it will be preserved.
Type
object
PropertyTypeDescription
disabledboolean
valuestring

If set, and the server header is enabled, this value will be set as the server header. By default, istio-envoy will be used.

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.setCurrentClientCertDetails

Description
This field is valid only when forward_client_cert_details is APPEND_FORWARD or SANITIZE_SET and the client connection is mTLS. It specifies the fields in the client certificate to be forwarded. Note that `Hash` is always set, and `By` is always set when the client certificate presents the URI type Subject Alternative Name value.
Type
object
PropertyTypeDescription
certboolean

Whether to forward the entire client cert in URL encoded PEM format. This will appear in the XFCC header comma separated from other values with the value Cert="PEM". Defaults to false.

chainboolean

Whether to forward the entire client cert chain (including the leaf cert) in URL encoded PEM format. This will appear in the XFCC header comma separated from other values with the value Chain="PEM". Defaults to false.

dnsboolean

Whether to forward the DNS type Subject Alternative Names of the client cert. Defaults to true.

subjectboolean

Whether to forward the subject of the client cert. Defaults to true.

uriboolean

Whether to forward the URI type Subject Alternative Name of the client cert. Defaults to true.

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.xForwardedHost

Description
Controls the `X-Forwarded-Host` header. If enabled, the `X-Forwarded-Host` header is appended with the original host when it is rewritten. This header is disabled by default.
Type
object
PropertyTypeDescription
enabledboolean

.spec.values.ztunnel.meshConfig.defaultConfig.proxyHeaders.xForwardedPort

Description
Controls the `X-Forwarded-Port` header. If enabled, the `X-Forwarded-Port` header is header with the port value client used to connect to Envoy. It will be ignored if the “x-forwarded-port“ header has been set by any trusted proxy in front of Envoy. This header is disabled by default.
Type
object
PropertyTypeDescription
enabledboolean

.spec.values.ztunnel.meshConfig.defaultConfig.proxyMetadata

Description
Additional environment variables for the proxy. Names starting with `ISTIO_META_` will be included in the generated bootstrap and sent to the XDS server.
Type
object

.spec.values.ztunnel.meshConfig.defaultConfig.proxyStatsMatcher

Description
Proxy stats matcher defines configuration for reporting custom Envoy stats. To reduce memory and CPU overhead from Envoy stats system, Istio proxies by default create and expose only a subset of Envoy stats. This option is to control creation of additional Envoy stats with prefix, suffix, and regex expressions match on the name of the stats. This replaces the stats inclusion annotations (`sidecar.istio.io/statsInclusionPrefixes`, `sidecar.istio.io/statsInclusionRegexps`, and `sidecar.istio.io/statsInclusionSuffixes`). For example, to enable stats for circuit breakers, request retries, upstream connections, and request timeouts, you can specify stats matcher as follows: ```yaml proxyStatsMatcher: inclusionRegexps: - .*outlier_detection.* - .*upstream_rq_retry.* - .*upstream_cx_.* inclusionSuffixes: - upstream_rq_timeout ``` Note including more Envoy stats might increase number of time series collected by prometheus significantly. Care needs to be taken on Prometheus resource provision and configuration to reduce cardinality.
Type
object
PropertyTypeDescription
inclusionPrefixesarray

Proxy stats name prefix matcher for inclusion.

inclusionRegexpsarray

Proxy stats name regexps matcher for inclusion.

inclusionSuffixesarray

Proxy stats name suffix matcher for inclusion.

.spec.values.ztunnel.meshConfig.defaultConfig.proxyStatsMatcher.inclusionPrefixes

Description
Proxy stats name prefix matcher for inclusion.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.proxyStatsMatcher.inclusionPrefixes[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps

Description
Proxy stats name regexps matcher for inclusion.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.proxyStatsMatcher.inclusionRegexps[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.proxyStatsMatcher.inclusionSuffixes

Description
Proxy stats name suffix matcher for inclusion.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.proxyStatsMatcher.inclusionSuffixes[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe

Description
VM Health Checking readiness probe. This health check config exactly mirrors the kubernetes readiness probe configuration both in schema and logic. Only one health check method of 3 can be set at a time.
Type
object
PropertyTypeDescription
execobject

Exec specifies a command to execute in the container.

failureThresholdinteger

Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.

grpcobject

GRPC specifies a GRPC HealthCheckRequest.

httpGetobject

HTTPGet specifies an HTTP GET request to perform.

initialDelaySecondsinteger

Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSecondsinteger

How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.

successThresholdinteger

Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.

tcpSocketobject

TCPSocket specifies a connection to a TCP port.

terminationGracePeriodSecondsinteger

Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.

timeoutSecondsinteger

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.exec

Description
Exec specifies a command to execute in the container.
Type
object
PropertyTypeDescription
commandarray

Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.exec.command

Description
Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.exec.command[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.grpc

Description
GRPC specifies a GRPC HealthCheckRequest.
Type
object
Required
port
PropertyTypeDescription
portinteger

Port number of the gRPC service. Number must be in the range 1 to 65535.

servicestring

Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).

If this is not specified, the default behavior is defined by gRPC.

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.httpGet

Description
HTTPGet specifies an HTTP GET request to perform.
Type
object
Required
port
PropertyTypeDescription
hoststring

Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

httpHeadersarray

Custom headers to set in the request. HTTP allows repeated headers.

pathstring

Path to access on the HTTP server.

port

Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

schemestring

Scheme to use for connecting to the host. Defaults to HTTP.

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.httpGet.httpHeaders

Description
Custom headers to set in the request. HTTP allows repeated headers.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.httpGet.httpHeaders[]

Description
HTTPHeader describes a custom header to be used in HTTP probes
Type
object
Required
namevalue
PropertyTypeDescription
namestring

The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.

valuestring

The header field value

.spec.values.ztunnel.meshConfig.defaultConfig.readinessProbe.tcpSocket

Description
TCPSocket specifies a connection to a TCP port.
Type
object
Required
port
PropertyTypeDescription
hoststring

Optional: Host name to connect to, defaults to the pod IP.

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

.spec.values.ztunnel.meshConfig.defaultConfig.runtimeValues

Description
Envoy [runtime configuration](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/operations/runtime) to set during bootstrapping. This enables setting experimental, unsafe, unsupported, and deprecated features that should be used with extreme caution.
Type
object

.spec.values.ztunnel.meshConfig.defaultConfig.sds

Description
Secret Discovery Service(SDS) configuration to be used by the proxy. Deprecated: Marked as deprecated in mesh/v1alpha1/proxy.proto.
Type
object
PropertyTypeDescription
enabledboolean

True if SDS is enabled.

k8sSaJwtPathstring

Path of k8s service account JWT path.

.spec.values.ztunnel.meshConfig.defaultConfig.tracing

Description
Tracing configuration to be used by the proxy.
Type
object
PropertyTypeDescription
customTagsobject

and gateways). The key represents the name of the tag. Ex:

custom_tags:

	new_tag_name:
	  header:
	    name: custom-http-header-name
	    default_value: defaulted-value-from-custom-header

datadogobject

Use a Datadog tracer.

enableIstioTagsboolean

Determines whether or not trace spans generated by Envoy will include Istio specific tags. By default Istio specific tags are included in the trace spans.

lightstepobject

Use a Lightstep tracer. NOTE: For Istio 1.15+, this configuration option will result in using OpenTelemetry-based Lightstep integration.

maxPathTagLengthinteger

Configures the maximum length of the request path to extract and include in the HttpUrl tag. Used to truncate length request paths to meet the needs of tracing backend. If not set, then a length of 256 will be used.

openCensusAgentobject

Use an OpenCensus tracer exporting to an OpenCensus agent.

samplingnumber

The percentage of requests (0.0 - 100.0) that will be randomly selected for trace generation, if not requested by the client or not forced. Default is 1.0.

stackdriverobject

Use a Stackdriver tracer.

tlsSettingsobject

Use the tlsSettings to specify the tls mode to use. If the remote tracing service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as ISTIO_MUTUAL.

zipkinobject

Use a Zipkin tracer.

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.customTags

Description
and gateways). The key represents the name of the tag. Ex: ```yaml custom_tags: new_tag_name: header: name: custom-http-header-name default_value: defaulted-value-from-custom-header ```
Type
object

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.datadog

Description
Use a Datadog tracer.
Type
object
PropertyTypeDescription
addressstring

Address of the Datadog Agent.

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.lightstep

Description
Use a Lightstep tracer. NOTE: For Istio 1.15+, this configuration option will result in using OpenTelemetry-based Lightstep integration.
Type
object
PropertyTypeDescription
accessTokenstring

The Lightstep access token.

addressstring

Address of the Lightstep Satellite pool.

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.openCensusAgent

Description
Use an OpenCensus tracer exporting to an OpenCensus agent.
Type
object
PropertyTypeDescription
addressstring

gRPC address for the OpenCensus agent (e.g. dns://authority/host:port or unix:path). See gRPC naming docs for details.

contextarray

Specifies the set of context propagation headers used for distributed tracing. Default is ["W3C_TRACE_CONTEXT"]. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.openCensusAgent.context

Description
Specifies the set of context propagation headers used for distributed tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.openCensusAgent.context[]

Description
TraceContext selects the context propagation headers used for distributed tracing.
Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.stackdriver

Description
Use a Stackdriver tracer.
Type
object
PropertyTypeDescription
debugboolean

debug enables trace output to stdout.

maxNumberOfAnnotationsinteger

The global default max number of annotation events per span. default is 200.

maxNumberOfAttributesinteger

The global default max number of attributes per span. default is 200.

maxNumberOfMessageEventsinteger

The global default max number of message events per span. default is 200.

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.tlsSettings

Description
Use the tlsSettings to specify the tls mode to use. If the remote tracing service uses Istio mutual TLS and shares the root CA with istiod, specify the TLS mode as `ISTIO_MUTUAL`.
Type
object
PropertyTypeDescription
caCertificatesstring

OPTIONAL: The path to the file containing certificate authority certificates to use in verifying a presented server certificate. If omitted, the proxy will verify the server's certificate using the OS CA certificates. Should be empty if mode is ISTIO_MUTUAL.

caCrlstring

OPTIONAL: The path to the file containing the certificate revocation list (CRL) to use in verifying a presented server certificate. CRL is a list of certificates that have been revoked by the CA (Certificate Authority) before their scheduled expiration date. If specified, the proxy will verify if the presented certificate is part of the revoked list of certificates. If omitted, the proxy will not verify the certificate against the crl. Note that if credentialName is set, CRL cannot be specified using caCrl, rather it has to be specified inside the credential.

clientCertificatestring

REQUIRED if mode is MUTUAL. The path to the file holding the client-side TLS certificate to use. Should be empty if mode is ISTIO_MUTUAL.

credentialNamestring

The name of the secret that holds the TLS certs for the client including the CA certificates. This secret must exist in the namespace of the proxy using the certificates. An Opaque secret should contain the following keys and values: key: <privateKey>, cert: <clientCert>, cacert: <CACertificate>, crl: <certificateRevocationList> Here CACertificate is used to verify the server certificate. For mutual TLS, cacert: <CACertificate> can be provided in the same secret or a separate secret named <secret>-cacert. A TLS secret for client certificates with an additional ca.crt key for CA certificates and ca.crl key for certificate revocation list(CRL) is also supported. Only one of client certificates and CA certificate or credentialName can be specified.

NOTE: This field is applicable at sidecars only if DestinationRule has a workloadSelector specified. Otherwise the field will be applicable only at gateways, and sidecars will continue to use the certificate paths.

insecureSkipVerifyboolean

insecureSkipVerify specifies whether the proxy should skip verifying the CA signature and SAN for the server certificate corresponding to the host. The default value of this field is false.

modestring

Indicates whether connections to this port should be secured using TLS. The value of this field determines how TLS is enforced.

privateKeystring

REQUIRED if mode is MUTUAL. The path to the file holding the client's private key. Should be empty if mode is ISTIO_MUTUAL.

snistring

SNI string to present to the server during TLS handshake. If unspecified, SNI will be automatically set based on downstream HTTP host/authority header for SIMPLE and MUTUAL TLS modes.

subjectAltNamesarray

A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of subjectAltNames from the ServiceEntry. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.tlsSettings.subjectAltNames

Description
A list of alternate names to verify the subject identity in the certificate. If specified, the proxy will verify that the server certificate's subject alt name matches one of the specified values. If specified, this list overrides the value of `subjectAltNames` from the `ServiceEntry`. If unspecified, automatic validation of upstream presented certificate for new upstream connections will be done based on the downstream HTTP host/authority header.
Type
array

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.tlsSettings.subjectAltNames[]

Type
string

.spec.values.ztunnel.meshConfig.defaultConfig.tracing.zipkin

Description
Use a Zipkin tracer.
Type
object
PropertyTypeDescription
addressstring

Address of the Zipkin service (e.g. zipkin:9411).

.spec.values.ztunnel.meshConfig.defaultDestinationRuleExportTo

Description
The default value for the `DestinationRule.exportTo` field. Has the same syntax as `defaultServiceExportTo`. If not set the system will use "*" as the default value which implies that destination rules are exported to all namespaces
Type
array

.spec.values.ztunnel.meshConfig.defaultDestinationRuleExportTo[]

Type
string

.spec.values.ztunnel.meshConfig.defaultHttpRetryPolicy

Description
Configure the default HTTP retry policy. The default number of retry attempts is set at 2 for these errors: "connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes". Setting the number of attempts to 0 disables retry policy globally. This setting can be overridden on a per-host basis using the Virtual Service API. All settings in the retry policy except `perTryTimeout` can currently be configured globally via this field.
Type
object
PropertyTypeDescription
attemptsinteger

Number of retries to be allowed for a given request. The interval between retries will be determined automatically (25ms+). When request timeout of the HTTP route or per_try_timeout is configured, the actual number of retries attempted also depends on the specified request timeout and per_try_timeout values. MUST be >= 0. If 0, retries will be disabled. The maximum possible number of requests made will be 1 + attempts.

backoffstring

Specifies the minimum duration between retry attempts. If unset, default minimum duration of 25ms is used as base interval for exponetial backoff. This has an impact on the total number of retries that will be attempted based on the attempts field and route timeout. For example, with attempts is set to 3, backoff to 2s and timeout to 3s, the request will be retried only once.

perTryTimeoutstring

Timeout per attempt for a given request, including the initial call and any retries. Format: 1h/1m/1s/1ms. MUST be >=1ms. Default is same value as request timeout of the HTTP route, which means no timeout.

retryIgnorePreviousHostsboolean

Flag to specify whether the retries should ignore previously tried hosts during retry. Defaults to true.

retryOnstring

Specifies the conditions under which retry takes place. One or more policies can be specified using a ‘,’ delimited list. See the retry policies and gRPC retry policies for more details.

In addition to the policies specified above, a list of HTTP status codes can be passed, such as retryOn: "503,reset". Note these status codes refer to the actual responses received from the destination. For example, if a connection is reset, Istio will translate this to 503 for it's response. However, the destination did not return a 503 error, so this would not match "503" (it would, however, match "reset").

If not specified, this defaults to connect-failure,refused-stream,unavailable,cancelled.

retryRemoteLocalitiesboolean

Flag to specify whether the retries should retry to other localities. See the retry plugin configuration for more details.

.spec.values.ztunnel.meshConfig.defaultProviders

Description
Specifies extension providers to use by default in Istio configuration resources.
Type
object
PropertyTypeDescription
accessLoggingarray

Name of the default provider(s) for access logging.

metricsarray

Name of the default provider(s) for metrics.

tracingarray

Name of the default provider(s) for tracing.

.spec.values.ztunnel.meshConfig.defaultProviders.accessLogging

Description
Name of the default provider(s) for access logging.
Type
array

.spec.values.ztunnel.meshConfig.defaultProviders.accessLogging[]

Type
string

.spec.values.ztunnel.meshConfig.defaultProviders.metrics

Description
Name of the default provider(s) for metrics.
Type
array

.spec.values.ztunnel.meshConfig.defaultProviders.metrics[]

Type
string

.spec.values.ztunnel.meshConfig.defaultProviders.tracing

Description
Name of the default provider(s) for tracing.
Type
array

.spec.values.ztunnel.meshConfig.defaultProviders.tracing[]

Type
string

.spec.values.ztunnel.meshConfig.defaultServiceExportTo

Description
The default value for the ServiceEntry.exportTo field and services imported through container registry integrations, e.g. this applies to Kubernetes Service resources. The value is a list of namespace names and reserved namespace aliases. The allowed namespace aliases are: ``` * - All Namespaces . - Current Namespace ~ - No Namespace ``` If not set the system will use "*" as the default value which implies that services are exported to all namespaces. `All namespaces` is a reasonable default for implementations that don't need to restrict access or visibility of services across namespace boundaries. If that requirement is present it is generally good practice to make the default `Current namespace` so that services are only visible within their own namespaces by default. Operators can then expand the visibility of services to other namespaces as needed. Use of `No Namespace` is expected to be rare but can have utility for deployments where dependency management needs to be precise even within the scope of a single namespace. For further discussion see the reference documentation for `ServiceEntry`, `Sidecar`, and `Gateway`.
Type
array

.spec.values.ztunnel.meshConfig.defaultServiceExportTo[]

Type
string

.spec.values.ztunnel.meshConfig.defaultVirtualServiceExportTo

Description
The default value for the VirtualService.exportTo field. Has the same syntax as `defaultServiceExportTo`. If not set the system will use "*" as the default value which implies that virtual services are exported to all namespaces
Type
array

.spec.values.ztunnel.meshConfig.defaultVirtualServiceExportTo[]

Type
string

.spec.values.ztunnel.meshConfig.discoverySelectors

Description
A list of Kubernetes selectors that specify the set of namespaces that Istio considers when computing configuration updates for sidecars. This can be used to reduce Istio's computational load by limiting the number of entities (including services, pods, and endpoints) that are watched and processed. If omitted, Istio will use the default behavior of processing all namespaces in the cluster. Elements in the list are disjunctive (OR semantics), i.e. a namespace will be included if it matches any selector. The following example selects any namespace that matches either below: 1. The namespace has both of these labels: `env: prod` and `region: us-east1` 2. The namespace has label `app` equal to `cassandra` or `spark`. ```yaml discoverySelectors: - matchLabels: env: prod region: us-east1 - matchExpressions: - key: app operator: In values: - cassandra - spark ``` Refer to the [Kubernetes selector docs](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) for additional detail on selector semantics.
Type
array

.spec.values.ztunnel.meshConfig.discoverySelectors[]

Description
A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.ztunnel.meshConfig.discoverySelectors[].matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.ztunnel.meshConfig.discoverySelectors[].matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.ztunnel.meshConfig.discoverySelectors[].matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.ztunnel.meshConfig.discoverySelectors[].matchExpressions[].values[]

Type
string

.spec.values.ztunnel.meshConfig.discoverySelectors[].matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders

Description
Defines a list of extension providers that extend Istio's functionality. For example, the AuthorizationPolicy can be used with an extension provider to delegate the authorization decision to a custom authorization system.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[]

Type
object
Required
name
PropertyTypeDescription
datadogobject

Configures a Datadog tracing provider.

envoyExtAuthzGrpcobject

Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.

envoyExtAuthzHttpobject

Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the HTTP API.

envoyFileAccessLogobject

Configures an Envoy File Access Log provider.

envoyHttpAlsobject

Configures an Envoy Access Logging Service provider for HTTP traffic.

envoyOtelAlsobject

Configures an Envoy Open Telemetry Access Logging Service provider.

envoyTcpAlsobject

Configures an Envoy Access Logging Service provider for TCP traffic.

lightstepobject

Configures a Lightstep tracing provider. Deprecated: For Istio 1.15+, please use an OpenTelemetryTracingProvider instead, more details can be found at https://github.com/istio/istio/issues/40027

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

namestring

REQUIRED. A unique name identifying the extension provider.

opencensusobject

Configures an OpenCensusAgent tracing provider. Deprecated: OpenCensus is deprecated, more details can be found at https://opentelemetry.io/blog/2023/sunsetting-opencensus/

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

opentelemetryobject

Configures an OpenTelemetry tracing provider.

prometheusobject

Configures a Prometheus metrics provider.

sdsobject

Configures an Extension Provider for SDS. This can be used to configure an external SDS service to supply secrets for certain Gateways for example. This is useful for scenarios where the secrets are stored in an external secret store like Vault. The secret should be configured with sds://provider-name format.

skywalkingobject

Configures a Apache SkyWalking provider.

stackdriverobject

Configures a Stackdriver provider.

zipkinobject

Configures a tracing provider that uses the Zipkin API.

.spec.values.ztunnel.meshConfig.extensionProviders[].datadog

Description
Configures a Datadog tracing provider.
Type
object
Required
portservice
PropertyTypeDescription
maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the Datadog agent. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "datadog.default.svc.cluster.local" or "bar/datadog.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzGrpc

Description
Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the gRPC API.
Type
object
Required
portservice
PropertyTypeDescription
clearRouteCacheboolean

If true, clears route cache in order to allow the external authorization service to correctly affect routing decisions. If true, recalculate routes with the new ExtAuthZ added/removed headers. Default is false

failOpenboolean

If true, the HTTP request or TCP connection will be allowed even if the communication with the authorization service has failed, or if the authorization service has returned a HTTP 5xx error. Default is false. For HTTP request, it will be rejected with 403 (HTTP Forbidden). For TCP connection, it will be closed immediately.

includeRequestBodyInCheckobject

If set, the client request body will be included in the authorization request sent to the authorization service.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ext_authz gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "my-ext-authz.foo.svc.cluster.local" or "bar/my-ext-authz.example.com".

statusOnErrorstring

Sets the HTTP status that is returned to the client when there is a network error to the authorization service. The default status is "403" (HTTP Forbidden).

timeoutstring

The maximum duration that the proxy will wait for a response from the provider, this is the timeout for a specific request (default timeout: 600s). When this timeout condition is met, the proxy marks the communication to the authorization service as failure. In this situation, the response sent back to the client will depend on the configured failOpen field.

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzGrpc.includeRequestBodyInCheck

Description
If set, the client request body will be included in the authorization request sent to the authorization service.
Type
object
PropertyTypeDescription
allowPartialMessageboolean

When this field is true, ext-authz filter will buffer the message until maxRequestBytes is reached. The authorization request will be dispatched and no 413 HTTP error will be returned by the filter. A "x-envoy-auth-partial-body: false|true" metadata header will be added to the authorization request message indicating if the body data is partial.

maxRequestBytesinteger

Sets the maximum size of a message body that the ext-authz filter will hold in memory. If maxRequestBytes is reached, and allowPartialMessage is false, Envoy will return a 413 (Payload Too Large). Otherwise the request will be sent to the provider with a partial message. Note that this setting will have precedence over the failOpen field, the 413 will be returned even when the failOpen is set to true.

packAsBytesboolean

If true, the body sent to the external authorization service in the gRPC authorization request is set with raw bytes in the raw_body field. Otherwise, it will be filled with UTF-8 string in the body field. This field only works with the envoyExtAuthzGrpc provider and has no effect for the envoyExtAuthzHttp provider.

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp

Description
Configures an external authorizer that implements the Envoy ext_authz filter authorization check service using the HTTP API.
Type
object
Required
portservice
PropertyTypeDescription
clearRouteCacheboolean

If true, clears route cache in order to allow the external authorization service to correctly affect routing decisions. If true, recalculate routes with the new ExtAuthZ added/removed headers. Default is false

failOpenboolean

If true, the user request will be allowed even if the communication with the authorization service has failed, or if the authorization service has returned a HTTP 5xx error. Default is false and the request will be rejected with "Forbidden" response.

headersToDownstreamOnAllowarray

List of headers from the authorization service that should be forwarded to downstream when the authorization check result is allowed (HTTP code 200). If not specified, the original response will not be modified and forwarded to downstream as-is. Note, any existing headers will be overridden.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
headersToDownstreamOnDenyarray

List of headers from the authorization service that should be forwarded to downstream when the authorization check result is not allowed (HTTP code other than 200). If not specified, all the authorization response headers, except Authority (Host) will be in the response to the downstream. When a header is included in this list, Path, Status, Content-Length, WWWAuthenticate and Location are automatically added. Note, the body from the authorization service is always included in the response to downstream.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
headersToUpstreamOnAllowarray

List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200). If not specified, the original request will not be modified and forwarded to backend as-is. Note, any existing headers will be overridden.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
includeAdditionalHeadersInCheckobject

Set of additional fixed headers that should be included in the authorization request sent to the authorization service. Key is the header name and value is the header value. Note that client request of the same key or headers specified in includeRequestHeadersInCheck will be overridden.

includeHeadersInCheckarray

DEPRECATED. Use includeRequestHeadersInCheck instead.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

includeRequestBodyInCheckobject

If set, the client request body will be included in the authorization request sent to the authorization service.

includeRequestHeadersInCheckarray

List of client request headers that should be included in the authorization request sent to the authorization service. Note that in addition to the headers specified here following headers are included by default:

  1. Host, Method, Path and Content-Length are automatically sent.
  2. Content-Length will be set to 0 and the request will not have a message body. However, the authorization request can include the buffered client request body (controlled by includeRequestBodyInCheck setting), consequently the value of Content-Length of the authorization request reflects the size of its payload size.

Exact, prefix and suffix matches are supported (similar to the authorization policy rule syntax except the presence match):

  • Exact match: "abc" will match on value "abc".
  • Prefix match: "abc*" will match on value "abc" and "abcd".
  • Suffix match: "*abc" will match on value "abc" and "xabc".
pathPrefixstring

Sets a prefix to the value of authorization request header Path. For example, setting this to "/check" for an original user request at path "/admin" will cause the authorization check request to be sent to the authorization service at the path "/check/admin" instead of "/admin".

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ext_authz HTTP authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "my-ext-authz.foo.svc.cluster.local" or "bar/my-ext-authz.example.com".

statusOnErrorstring

Sets the HTTP status that is returned to the client when there is a network error to the authorization service. The default status is "403" (HTTP Forbidden).

timeoutstring

The maximum duration that the proxy will wait for a response from the provider (default timeout: 600s). When this timeout condition is met, the proxy marks the communication to the authorization service as failure. In this situation, the response sent back to the client will depend on the configured failOpen field.

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnAllow

Description
List of headers from the authorization service that should be forwarded to downstream when the authorization check result is allowed (HTTP code 200). If not specified, the original response will not be modified and forwarded to downstream as-is. Note, any existing headers will be overridden. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnAllow[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnDeny

Description
List of headers from the authorization service that should be forwarded to downstream when the authorization check result is not allowed (HTTP code other than 200). If not specified, all the authorization response headers, except *Authority (Host)* will be in the response to the downstream. When a header is included in this list, *Path*, *Status*, *Content-Length*, *WWWAuthenticate* and *Location* are automatically added. Note, the body from the authorization service is always included in the response to downstream. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToDownstreamOnDeny[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToUpstreamOnAllow

Description
List of headers from the authorization service that should be added or overridden in the original request and forwarded to the upstream when the authorization check result is allowed (HTTP code 200). If not specified, the original request will not be modified and forwarded to backend as-is. Note, any existing headers will be overridden. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.headersToUpstreamOnAllow[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeAdditionalHeadersInCheck

Description
Set of additional fixed headers that should be included in the authorization request sent to the authorization service. Key is the header name and value is the header value. Note that client request of the same key or headers specified in includeRequestHeadersInCheck will be overridden.
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeHeadersInCheck

Description
DEPRECATED. Use includeRequestHeadersInCheck instead. Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeHeadersInCheck[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeRequestBodyInCheck

Description
If set, the client request body will be included in the authorization request sent to the authorization service.
Type
object
PropertyTypeDescription
allowPartialMessageboolean

When this field is true, ext-authz filter will buffer the message until maxRequestBytes is reached. The authorization request will be dispatched and no 413 HTTP error will be returned by the filter. A "x-envoy-auth-partial-body: false|true" metadata header will be added to the authorization request message indicating if the body data is partial.

maxRequestBytesinteger

Sets the maximum size of a message body that the ext-authz filter will hold in memory. If maxRequestBytes is reached, and allowPartialMessage is false, Envoy will return a 413 (Payload Too Large). Otherwise the request will be sent to the provider with a partial message. Note that this setting will have precedence over the failOpen field, the 413 will be returned even when the failOpen is set to true.

packAsBytesboolean

If true, the body sent to the external authorization service in the gRPC authorization request is set with raw bytes in the raw_body field. Otherwise, it will be filled with UTF-8 string in the body field. This field only works with the envoyExtAuthzGrpc provider and has no effect for the envoyExtAuthzHttp provider.

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeRequestHeadersInCheck

Description
List of client request headers that should be included in the authorization request sent to the authorization service. Note that in addition to the headers specified here following headers are included by default: 1. *Host*, *Method*, *Path* and *Content-Length* are automatically sent. 2. *Content-Length* will be set to 0 and the request will not have a message body. However, the authorization request can include the buffered client request body (controlled by includeRequestBodyInCheck setting), consequently the value of Content-Length of the authorization request reflects the size of its payload size. Exact, prefix and suffix matches are supported (similar to the [authorization policy rule syntax](https://istio.io/latest/docs/reference/config/security/authorization-policy/#Rule) except the presence match): - Exact match: "abc" will match on value "abc". - Prefix match: "abc*" will match on value "abc" and "abcd". - Suffix match: "*abc" will match on value "abc" and "xabc".
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyExtAuthzHttp.includeRequestHeadersInCheck[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyFileAccessLog

Description
Configures an Envoy File Access Log provider.
Type
object
PropertyTypeDescription
logFormatobject

Optional. Allows overriding of the default access log format.

omitEmptyValuesboolean

Optional. If set to true, when command operators are evaluated to null, For text format, the output of the empty operator is changed from "-" to an empty string. For json format, the keys with null values are omitted in the output structure.

pathstring

Path to a local file to write the access log entries. This may be used to write to streams, via /dev/stderr and /dev/stdout If unspecified, defaults to /dev/stdout.

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyFileAccessLog.logFormat

Description
Optional. Allows overriding of the default access log format.
Type
object
PropertyTypeDescription
labelsobject

JSON structured format for the envoy access logs. Envoy command operators can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: format dictionaries). Nested JSON is supported for some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA). Use labels: {} for default envoy JSON log format.

Example:

labels:

	status: "%RESPONSE_CODE%"
	message: "%LOCAL_REPLY_BODY%"

textstring

Textual format for the envoy access logs. Envoy command operators may be used in the format. The format string documentation provides more information.

NOTE: Istio will insert a newline ('\n') on all formats (if missing).

Example: text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyFileAccessLog.logFormat.labels

Description
JSON structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: [format dictionaries](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-dictionaries)). Nested JSON is supported for some command operators (e.g. `FILTER_STATE` or `DYNAMIC_METADATA`). Use `labels: {}` for default envoy JSON log format. Example: ``` labels: status: "%RESPONSE_CODE%" message: "%LOCAL_REPLY_BODY%" ```
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls

Description
Configures an Envoy Access Logging Service provider for HTTP traffic.
Type
object
Required
portservice
PropertyTypeDescription
additionalRequestHeadersToLogarray

Optional. Additional request headers to log.

additionalResponseHeadersToLogarray

Optional. Additional response headers to log.

additionalResponseTrailersToLogarray

Optional. Additional response trailers to log.

filterStateObjectsToLogarray

Optional. Additional filter state objects to log.

logNamestring

Optional. The friendly name of the access log. Defaults:

  • "http_envoy_accesslog"
  • "listener_envoy_accesslog"
portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.additionalRequestHeadersToLog

Description
Optional. Additional request headers to log.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.additionalRequestHeadersToLog[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseHeadersToLog

Description
Optional. Additional response headers to log.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseHeadersToLog[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseTrailersToLog

Description
Optional. Additional response trailers to log.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.additionalResponseTrailersToLog[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.filterStateObjectsToLog

Description
Optional. Additional filter state objects to log.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyHttpAls.filterStateObjectsToLog[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyOtelAls

Description
Configures an Envoy Open Telemetry Access Logging Service provider.
Type
object
Required
portservice
PropertyTypeDescription
logFormatobject

Optional. Format for the proxy access log Empty value results in proxy's default access log format, following Envoy access logging formatting.

logNamestring

Optional. The friendly name of the access log. Defaults:

  • "otel_envoy_accesslog"
portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyOtelAls.logFormat

Description
Optional. Format for the proxy access log Empty value results in proxy's default access log format, following Envoy access logging formatting.
Type
object
PropertyTypeDescription
labelsobject

Optional. Additional attributes that describe the specific event occurrence. Structured format for the envoy access logs. Envoy command operators can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: format dictionaries). Nested JSON is supported for some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA). Alias to attributes field in Open Telemetry

Example:

labels:

	status: "%RESPONSE_CODE%"
	message: "%LOCAL_REPLY_BODY%"

textstring

Textual format for the envoy access logs. Envoy command operators may be used in the format. The format string documentation provides more information. Alias to body field in Open Telemetry Example: text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyOtelAls.logFormat.labels

Description
Optional. Additional attributes that describe the specific event occurrence. Structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) can be used as values for fields within the Struct. Values are rendered as strings, numbers, or boolean values, as appropriate (see: [format dictionaries](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-dictionaries)). Nested JSON is supported for some command operators (e.g. FILTER_STATE or DYNAMIC_METADATA). Alias to `attributes` field in [Open Telemetry](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/access_loggers/open_telemetry/v3/logs_service.proto) Example: ``` labels: status: "%RESPONSE_CODE%" message: "%LOCAL_REPLY_BODY%" ```
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyTcpAls

Description
Configures an Envoy Access Logging Service provider for TCP traffic.
Type
object
Required
portservice
PropertyTypeDescription
filterStateObjectsToLogarray

Optional. Additional filter state objects to log.

logNamestring

Optional. The friendly name of the access log. Defaults:

  • "tcp_envoy_accesslog"
  • "listener_envoy_accesslog"
portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the Envoy ALS gRPC authorization service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "envoy-als.foo.svc.cluster.local" or "bar/envoy-als.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyTcpAls.filterStateObjectsToLog

Description
Optional. Additional filter state objects to log.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].envoyTcpAls.filterStateObjectsToLog[]

Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].lightstep

Description
Configures a Lightstep tracing provider. Deprecated: For Istio 1.15+, please use an OpenTelemetryTracingProvider instead, more details can be found at https://github.com/istio/istio/issues/40027 Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
object
Required
portservice
PropertyTypeDescription
accessTokenstring

The Lightstep access token.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the Lightstep collector. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "lightstep.default.svc.cluster.local" or "bar/lightstep.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].opencensus

Description
Configures an OpenCensusAgent tracing provider. Deprecated: OpenCensus is deprecated, more details can be found at https://opentelemetry.io/blog/2023/sunsetting-opencensus/ Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.
Type
object
Required
portservice
PropertyTypeDescription
contextarray

Specifies the set of context propagation headers used for distributed tracing. Default is ["W3C_TRACE_CONTEXT"]. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the OpenCensusAgent. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "ocagent.default.svc.cluster.local" or "bar/ocagent.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].opencensus.context

Description
Specifies the set of context propagation headers used for distributed tracing. Default is `["W3C_TRACE_CONTEXT"]`. If multiple values are specified, the proxy will attempt to read each header for each request and will write all headers.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].opencensus.context[]

Description
TraceContext selects the context propagation headers used for distributed tracing.
Type
string

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry

Description
Configures an OpenTelemetry tracing provider.
Type
object
Required
portservice
PropertyTypeDescription
dynatraceSamplerobject

The Dynatrace adaptive traffic management (ATM) sampler.

Example configuration:

  - name: otel-tracing
    opentelemetry:
    port: 443
    service: "{your-environment-id}.live.dynatrace.com"
    http:
    path: "/api/v2/otlp/v1/traces"
    timeout: 10s
    headers:
  - name: "Authorization"
    value: "Api-Token dt0c01."
    resourceDetectors:
    dynatrace: {}
    dynatraceSampler:
    tenant: "{your-environment-id}"
    clusterId: 1234
grpcobject

Optional. Specifies the configuration for exporting OTLP traces via GRPC. When empty, traces will check whether HTTP is set. If not, traces will use default GRPC configurations.

The following example shows how to configure the OpenTelemetry ExtensionProvider to export via GRPC:

  1. Add/change the OpenTelemetry extension provider in MeshConfig
  - name: opentelemetry
    opentelemetry:
    port: 8090
    service: tracing.example.com
    grpc:
    timeout: 10s
    initialMetadata:
  - name: "Authentication"
    value: "token-xxxxx"

  1. Deploy a ServiceEntry for the observability back-end
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:

	name: tracing-grpc

spec:

	hosts:
	- tracing.example.com
	ports:
	- number: 8090
	  name: grpc-port
	  protocol: GRPC
	resolution: DNS
	location: MESH_EXTERNAL

httpobject

Optional. Specifies the configuration for exporting OTLP traces via HTTP. When empty, traces will be exported via gRPC.

The following example shows how to configure the OpenTelemetry ExtensionProvider to export via HTTP:

  1. Add/change the OpenTelemetry extension provider in MeshConfig
  - name: otel-tracing
    opentelemetry:
    port: 443
    service: my.olly-backend.com
    http:
    path: "/api/otlp/traces"
    timeout: 10s
    headers:
  - name: "my-custom-header"
    value: "some value"

  1. Deploy a ServiceEntry for the observability back-end
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:

	name: my-olly-backend

spec:

	hosts:
	- my.olly-backend.com
	ports:
	- number: 443
	  name: https-port
	  protocol: HTTPS
	resolution: DNS
	location: MESH_EXTERNAL

---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:

	name: my-olly-backend

spec:

	host: my.olly-backend.com
	trafficPolicy:
	  portLevelSettings:
	  - port:
	      number: 443
	    tls:
	      mode: SIMPLE

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

portinteger

REQUIRED. Specifies the port of the service.

resourceDetectorsobject

Optional. Specifies Resource Detectors to be used by the OpenTelemetry Tracer. When multiple resources are provided, they are merged according to the OpenTelemetry Resource specification.

The following example shows how to configure the Environment Resource Detector, that will read the attributes from the environment variable OTEL_RESOURCE_ATTRIBUTES:

  - name: otel-tracing
    opentelemetry:
    port: 443
    service: my.olly-backend.com
    resourceDetectors:
    environment: {}

servicestring

REQUIRED. Specifies the OpenTelemetry endpoint that will receive OTLP traces. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "otlp.default.svc.cluster.local" or "bar/otlp.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler

Description
The Dynatrace adaptive traffic management (ATM) sampler. Example configuration: ```yaml - name: otel-tracing opentelemetry: port: 443 service: "{your-environment-id}.live.dynatrace.com" http: path: "/api/v2/otlp/v1/traces" timeout: 10s headers: - name: "Authorization" value: "Api-Token dt0c01." resourceDetectors: dynatrace: {} dynatraceSampler: tenant: "{your-environment-id}" clusterId: 1234
Type
object
Required
clusterIdtenant
PropertyTypeDescription
clusterIdinteger

REQUIRED. The identifier of the cluster in the Dynatrace platform. The cluster here is Dynatrace-specific concept and not related to the cluster concept in Istio/Envoy.

The value can be obtained from the Istio deployment page in Dynatrace.

httpServiceobject

Optional. Dynatrace HTTP API to obtain sampling configuration.

When not provided, the Dynatrace Sampler will re-use the configuration from the OpenTelemetryTracingProvider HTTP Exporter (service, port and http), including the access token.

rootSpansPerMinuteinteger

Optional. Number of sampled spans per minute to be used when the adaptive value cannot be obtained from the Dynatrace API.

A default value of 1000 is used when:

  • rootSpansPerMinute is unset
  • rootSpansPerMinute is set to 0
tenantstring

REQUIRED. The Dynatrace customer's tenant identifier.

The value can be obtained from the Istio deployment page in Dynatrace.

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService

Description
Optional. Dynatrace HTTP API to obtain sampling configuration. When not provided, the Dynatrace Sampler will re-use the configuration from the OpenTelemetryTracingProvider HTTP Exporter (`service`, `port` and `http`), including the access token.
Type
object
Required
httpportservice
PropertyTypeDescription
httpobject

REQUIRED. Specifies sampling configuration URI.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the Dynatrace environment to obtain the sampling configuration. The format is <Hostname>, where <Hostname> is the fully qualified Dynatrace environment host name defined in the ServiceEntry.

Example: "{your-environment-id}.live.dynatrace.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService.http

Description
REQUIRED. Specifies sampling configuration URI.
Type
object
Required
path
PropertyTypeDescription
headersarray

Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.

pathstring

REQUIRED. Specifies the path on the service.

timeoutstring

Optional. Specifies the timeout for the HTTP request. If not specified, the default is 3s.

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService.http.headers

Description
Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.dynatraceSampler.httpService.http.headers[]

Type
object
Required
name
PropertyTypeDescription
envNamestring

The HTTP header value from the environment variable.

Warning:

  • The environment variable must be set in the istiod pod spec.
  • This is not a end-to-end secure.
namestring

REQUIRED. The HTTP header name.

valuestring

The HTTP header value.

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.grpc

Description
Optional. Specifies the configuration for exporting OTLP traces via GRPC. When empty, traces will check whether HTTP is set. If not, traces will use default GRPC configurations. The following example shows how to configure the OpenTelemetry ExtensionProvider to export via GRPC: 1. Add/change the OpenTelemetry extension provider in `MeshConfig` ```yaml - name: opentelemetry opentelemetry: port: 8090 service: tracing.example.com grpc: timeout: 10s initialMetadata: - name: "Authentication" value: "token-xxxxx" ``` 2. Deploy a `ServiceEntry` for the observability back-end ```yaml apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: tracing-grpc spec: hosts: - tracing.example.com ports: - number: 8090 name: grpc-port protocol: GRPC resolution: DNS location: MESH_EXTERNAL ```
Type
object
PropertyTypeDescription
initialMetadataarray

Optional. Additional metadata to include in streams initiated to the GrpcService. This can be used for scenarios in which additional ad hoc authorization headers (e.g. "x-foo-bar: baz-key") are to be injected.

timeoutstring

Optional. Specifies the timeout for the GRPC request.

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.grpc.initialMetadata

Description
Optional. Additional metadata to include in streams initiated to the GrpcService. This can be used for scenarios in which additional ad hoc authorization headers (e.g. "x-foo-bar: baz-key") are to be injected.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.grpc.initialMetadata[]

Type
object
Required
name
PropertyTypeDescription
envNamestring

The HTTP header value from the environment variable.

Warning:

  • The environment variable must be set in the istiod pod spec.
  • This is not a end-to-end secure.
namestring

REQUIRED. The HTTP header name.

valuestring

The HTTP header value.

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.http

Description
Optional. Specifies the configuration for exporting OTLP traces via HTTP. When empty, traces will be exported via gRPC. The following example shows how to configure the OpenTelemetry ExtensionProvider to export via HTTP: 1. Add/change the OpenTelemetry extension provider in `MeshConfig` ```yaml - name: otel-tracing opentelemetry: port: 443 service: my.olly-backend.com http: path: "/api/otlp/traces" timeout: 10s headers: - name: "my-custom-header" value: "some value" ``` 2. Deploy a `ServiceEntry` for the observability back-end ```yaml apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: my-olly-backend spec: hosts: - my.olly-backend.com ports: - number: 443 name: https-port protocol: HTTPS resolution: DNS location: MESH_EXTERNAL --- apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: my-olly-backend spec: host: my.olly-backend.com trafficPolicy: portLevelSettings: - port: number: 443 tls: mode: SIMPLE ```
Type
object
Required
path
PropertyTypeDescription
headersarray

Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.

pathstring

REQUIRED. Specifies the path on the service.

timeoutstring

Optional. Specifies the timeout for the HTTP request. If not specified, the default is 3s.

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.http.headers

Description
Optional. Allows specifying custom HTTP headers that will be added to each HTTP request sent.
Type
array

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.http.headers[]

Type
object
Required
name
PropertyTypeDescription
envNamestring

The HTTP header value from the environment variable.

Warning:

  • The environment variable must be set in the istiod pod spec.
  • This is not a end-to-end secure.
namestring

REQUIRED. The HTTP header name.

valuestring

The HTTP header value.

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.resourceDetectors

Description
Optional. Specifies [Resource Detectors](https://opentelemetry.io/docs/specs/otel/resource/sdk/) to be used by the OpenTelemetry Tracer. When multiple resources are provided, they are merged according to the OpenTelemetry [Resource specification](https://opentelemetry.io/docs/specs/otel/resource/sdk/#merge). The following example shows how to configure the Environment Resource Detector, that will read the attributes from the environment variable `OTEL_RESOURCE_ATTRIBUTES`: ```yaml - name: otel-tracing opentelemetry: port: 443 service: my.olly-backend.com resourceDetectors: environment: {} ```
Type
object
PropertyTypeDescription
dynatraceobject

Dynatrace Resource Detector. The resource detector reads from the Dynatrace enrichment files and adds host/process related attributes to the OpenTelemetry resource.

See: Enrich ingested data with Dynatrace-specific dimensions

environmentobject

OpenTelemetry Environment Resource Detector. The resource detector reads attributes from the environment variable OTEL_RESOURCE_ATTRIBUTES and adds them to the OpenTelemetry resource.

See: Resource specification

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.resourceDetectors.dynatrace

Description
Dynatrace Resource Detector. The resource detector reads from the Dynatrace enrichment files and adds host/process related attributes to the OpenTelemetry resource. See: [Enrich ingested data with Dynatrace-specific dimensions](https://docs.dynatrace.com/docs/shortlink/enrichment-files)
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders[].opentelemetry.resourceDetectors.environment

Description
OpenTelemetry Environment Resource Detector. The resource detector reads attributes from the environment variable `OTEL_RESOURCE_ATTRIBUTES` and adds them to the OpenTelemetry resource. See: [Resource specification](https://opentelemetry.io/docs/specs/otel/resource/sdk/#specifying-resource-information-via-an-environment-variable)
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders[].prometheus

Description
Configures a Prometheus metrics provider.
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders[].sds

Description
Configures an Extension Provider for SDS. This can be used to configure an external SDS service to supply secrets for certain Gateways for example. This is useful for scenarios where the secrets are stored in an external secret store like Vault. The secret should be configured with sds://provider-name format.
Type
object
Required
nameportservice
PropertyTypeDescription
namestring

REQUIRED. Specifies the name of the provider. This should be used to configure the Gateway SDS.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that implements the SDS service. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "gateway-sds.foo.svc.cluster.local" or "bar/gateway-sds.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].skywalking

Description
Configures a Apache SkyWalking provider.
Type
object
Required
portservice
PropertyTypeDescription
accessTokenstring

Optional. The SkyWalking OAP access token.

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service for the SkyWalking receiver. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "skywalking.default.svc.cluster.local" or "bar/skywalking.example.com".

.spec.values.ztunnel.meshConfig.extensionProviders[].stackdriver

Description
Configures a Stackdriver provider.
Type
object
PropertyTypeDescription
debugboolean

debug enables trace output to stdout.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

loggingobject

Optional. Controls Stackdriver logging behavior.

maxNumberOfAnnotationsinteger

The global default max number of annotation events per span. default is 200.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

maxNumberOfAttributesinteger

The global default max number of attributes per span. default is 200.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

maxNumberOfMessageEventsinteger

The global default max number of message events per span. default is 200.

Deprecated: Marked as deprecated in mesh/v1alpha1/config.proto.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

.spec.values.ztunnel.meshConfig.extensionProviders[].stackdriver.logging

Description
Optional. Controls Stackdriver logging behavior.
Type
object
PropertyTypeDescription
labelsobject

Collection of tag names and tag expressions to include in the log entry. Conflicts are resolved by the tag name by overriding previously supplied values.

Example:

labels:
  path: request.url_path
  foo: request.headers['x-foo']

.spec.values.ztunnel.meshConfig.extensionProviders[].stackdriver.logging.labels

Description
Collection of tag names and tag expressions to include in the log entry. Conflicts are resolved by the tag name by overriding previously supplied values. Example: labels: path: request.url_path foo: request.headers['x-foo']
Type
object

.spec.values.ztunnel.meshConfig.extensionProviders[].zipkin

Description
Configures a tracing provider that uses the Zipkin API.
Type
object
Required
portservice
PropertyTypeDescription
enable64bitTraceIdboolean

Optional. A 128 bit trace id will be used in Istio. If true, will result in a 64 bit trace id being used.

maxTagLengthinteger

Optional. Controls the overall path length allowed in a reported span. NOTE: currently only controls max length of the path tag.

pathstring

Optional. Specifies the endpoint of Zipkin API. The default value is "/api/v2/spans".

portinteger

REQUIRED. Specifies the port of the service.

servicestring

REQUIRED. Specifies the service that the Zipkin API. The format is [<Namespace>/]<Hostname>. The specification of <Namespace> is required only when it is insufficient to unambiguously resolve a service in the service registry. The <Hostname> is a fully qualified host name of a service defined by the Kubernetes service or ServiceEntry.

Example: "zipkin.default.svc.cluster.local" or "bar/zipkin.example.com".

.spec.values.ztunnel.meshConfig.inboundTrafficPolicy

Description
Set the default behavior of the sidecar for handling inbound traffic to the application. If your application listens on localhost, you will need to set this to `LOCALHOST`.
Type
object
PropertyTypeDescription
modestring

.spec.values.ztunnel.meshConfig.localityLbSetting

Description
Locality based load balancing distribution or failover settings. If unspecified, locality based load balancing will be enabled by default. However, this requires outlierDetection to actually take effect for a particular service, see https://istio.io/latest/docs/tasks/traffic-management/locality-load-balancing/failover/
Type
object
PropertyTypeDescription
distributearray

Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to Locality weighted load balancing If empty, the locality weight is set according to the endpoints number within it.

enabledboolean

Enable locality load balancing. This is DestinationRule-level and will override mesh-wide settings in entirety. e.g. true means that turn on locality load balancing for this DestinationRule no matter what mesh-wide settings is.

failoverarray

Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.

failoverPriorityarray

failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing. This is to support traffic failover across different groups of endpoints. Two kinds of labels can be specified:

  • Specify only label keys [key1, key2, key3], istio would compare the label values of client with endpoints. Suppose there are total N label keys [key1, key2, key3, ...keyN] specified:

    1. Endpoints matching all N labels with the client proxy have priority P(0) i.e. the highest priority.
    2. Endpoints matching the first N-1 labels with the client proxy have priority P(1) i.e. second highest priority.
    3. By extension of this logic, endpoints matching only the first label with the client proxy has priority P(N-1) i.e. second lowest priority.
    4. All the other endpoints have priority P(N) i.e. lowest priority.
  • Specify labels with key and value [key1=value1, key2=value2, key3=value3], istio would compare the labels with endpoints. Suppose there are total N labels [key1=value1, key2=value2, key3=value3, ...keyN=valueN] specified:

    1. Endpoints matching all N labels have priority P(0) i.e. the highest priority.
    2. Endpoints matching the first N-1 labels have priority P(1) i.e. second highest priority.
    3. By extension of this logic, endpoints matching only the first label has priority P(N-1) i.e. second lowest priority.
    4. All the other endpoints have priority P(N) i.e. lowest priority.

Note: For a label to be considered for match, the previous labels must match, i.e. nth label would be considered matched only if first n-1 labels match.

It can be any label specified on both client and server workloads. The following labels which have special semantic meaning are also supported:

  • topology.istio.io/network is used to match the network metadata of an endpoint, which can be specified by pod/namespace label topology.istio.io/network, sidecar env ISTIO_META_NETWORK or MeshNetworks.
  • topology.istio.io/cluster is used to match the clusterID of an endpoint, which can be specified by pod label topology.istio.io/cluster or pod env ISTIO_META_CLUSTER_ID.
  • topology.kubernetes.io/region is used to match the region metadata of an endpoint, which maps to Kubernetes node label topology.kubernetes.io/region or the deprecated label failure-domain.beta.kubernetes.io/region.
  • topology.kubernetes.io/zone is used to match the zone metadata of an endpoint, which maps to Kubernetes node label topology.kubernetes.io/zone or the deprecated label failure-domain.beta.kubernetes.io/zone.
  • topology.istio.io/subzone is used to match the subzone metadata of an endpoint, which maps to Istio node label topology.istio.io/subzone.
  • kubernetes.io/hostname is used to match the current node of an endpoint, which maps to Kubernetes node label kubernetes.io/hostname.

The below topology config indicates the following priority levels:

failoverPriority:
- "topology.istio.io/network"
- "topology.kubernetes.io/region"
- "topology.kubernetes.io/zone"
- "topology.istio.io/subzone"
  1. endpoints match same [network, region, zone, subzone] label with the client proxy have the highest priority.
  2. endpoints have same [network, region, zone] label but different [subzone] label with the client proxy have the second highest priority.
  3. endpoints have same [network, region] label but different [zone] label with the client proxy have the third highest priority.
  4. endpoints have same [network] but different [region] labels with the client proxy have the fourth highest priority.
  5. all the other endpoints have the same lowest priority.

Suppose a service associated endpoints reside in multi clusters, the below example represents:

  1. endpoints in clusterA and has version=v1 label have P(0) priority.
  2. endpoints not in clusterA but has version=v1 label have P(1) priority.
  3. all the other endpoints have P(2) priority.
failoverPriority:
- "version=v1"
- "topology.istio.io/cluster=clusterA"

Optional: only one of distribute, failover or failoverPriority can be set. And it should be used together with OutlierDetection to detect unhealthy endpoints, otherwise has no effect.

.spec.values.ztunnel.meshConfig.localityLbSetting.distribute

Description
Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify loadbalancing weight across different zones and geographical locations. Refer to [Locality weighted load balancing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/locality_weight) If empty, the locality weight is set according to the endpoints number within it.
Type
array

.spec.values.ztunnel.meshConfig.localityLbSetting.distribute[]

Description
Describes how traffic originating in the 'from' zone or sub-zone is distributed over a set of 'to' zones. Syntax for specifying a zone is {region}/{zone}/{sub-zone} and terminal wildcards are allowed on any segment of the specification. Examples: `*` - matches all localities `us-west/*` - all zones and sub-zones within the us-west region `us-west/zone-1/*` - all sub-zones within us-west/zone-1
Type
object
PropertyTypeDescription
fromstring

Originating locality, '/' separated, e.g. 'region/zone/sub_zone'.

toobject

Map of upstream localities to traffic distribution weights. The sum of all weights should be 100. Any locality not present will receive no traffic.

.spec.values.ztunnel.meshConfig.localityLbSetting.distribute[].to

Description
Map of upstream localities to traffic distribution weights. The sum of all weights should be 100. Any locality not present will receive no traffic.
Type
object

.spec.values.ztunnel.meshConfig.localityLbSetting.failover

Description
Optional: only one of distribute, failover or failoverPriority can be set. Explicitly specify the region traffic will land on when endpoints in local region becomes unhealthy. Should be used together with OutlierDetection to detect unhealthy endpoints. Note: if no OutlierDetection specified, this will not take effect.
Type
array

.spec.values.ztunnel.meshConfig.localityLbSetting.failover[]

Description
Specify the traffic failover policy across regions. Since zone and sub-zone failover is supported by default this only needs to be specified for regions when the operator needs to constrain traffic failover so that the default behavior of failing over to any endpoint globally does not apply. This is useful when failing over traffic across regions would not improve service health or may need to be restricted for other reasons like regulatory controls.
Type
object
PropertyTypeDescription
fromstring

Originating region.

tostring

Destination region the traffic will fail over to when endpoints in the 'from' region becomes unhealthy.

.spec.values.ztunnel.meshConfig.localityLbSetting.failoverPriority

Description
failoverPriority is an ordered list of labels used to sort endpoints to do priority based load balancing. This is to support traffic failover across different groups of endpoints. Two kinds of labels can be specified: - Specify only label keys `[key1, key2, key3]`, istio would compare the label values of client with endpoints. Suppose there are total N label keys `[key1, key2, key3, ...keyN]` specified: 1. Endpoints matching all N labels with the client proxy have priority P(0) i.e. the highest priority. 2. Endpoints matching the first N-1 labels with the client proxy have priority P(1) i.e. second highest priority. 3. By extension of this logic, endpoints matching only the first label with the client proxy has priority P(N-1) i.e. second lowest priority. 4. All the other endpoints have priority P(N) i.e. lowest priority. - Specify labels with key and value `[key1=value1, key2=value2, key3=value3]`, istio would compare the labels with endpoints. Suppose there are total N labels `[key1=value1, key2=value2, key3=value3, ...keyN=valueN]` specified: 1. Endpoints matching all N labels have priority P(0) i.e. the highest priority. 2. Endpoints matching the first N-1 labels have priority P(1) i.e. second highest priority. 3. By extension of this logic, endpoints matching only the first label has priority P(N-1) i.e. second lowest priority. 4. All the other endpoints have priority P(N) i.e. lowest priority. Note: For a label to be considered for match, the previous labels must match, i.e. nth label would be considered matched only if first n-1 labels match. It can be any label specified on both client and server workloads. The following labels which have special semantic meaning are also supported: - `topology.istio.io/network` is used to match the network metadata of an endpoint, which can be specified by pod/namespace label `topology.istio.io/network`, sidecar env `ISTIO_META_NETWORK` or MeshNetworks. - `topology.istio.io/cluster` is used to match the clusterID of an endpoint, which can be specified by pod label `topology.istio.io/cluster` or pod env `ISTIO_META_CLUSTER_ID`. - `topology.kubernetes.io/region` is used to match the region metadata of an endpoint, which maps to Kubernetes node label `topology.kubernetes.io/region` or the deprecated label `failure-domain.beta.kubernetes.io/region`. - `topology.kubernetes.io/zone` is used to match the zone metadata of an endpoint, which maps to Kubernetes node label `topology.kubernetes.io/zone` or the deprecated label `failure-domain.beta.kubernetes.io/zone`. - `topology.istio.io/subzone` is used to match the subzone metadata of an endpoint, which maps to Istio node label `topology.istio.io/subzone`. - `kubernetes.io/hostname` is used to match the current node of an endpoint, which maps to Kubernetes node label `kubernetes.io/hostname`. The below topology config indicates the following priority levels: ```yaml failoverPriority: - "topology.istio.io/network" - "topology.kubernetes.io/region" - "topology.kubernetes.io/zone" - "topology.istio.io/subzone" ``` 1. endpoints match same [network, region, zone, subzone] label with the client proxy have the highest priority. 2. endpoints have same [network, region, zone] label but different [subzone] label with the client proxy have the second highest priority. 3. endpoints have same [network, region] label but different [zone] label with the client proxy have the third highest priority. 4. endpoints have same [network] but different [region] labels with the client proxy have the fourth highest priority. 5. all the other endpoints have the same lowest priority. Suppose a service associated endpoints reside in multi clusters, the below example represents: 1. endpoints in `clusterA` and has `version=v1` label have P(0) priority. 2. endpoints not in `clusterA` but has `version=v1` label have P(1) priority. 2. all the other endpoints have P(2) priority. ```yaml failoverPriority: - "version=v1" - "topology.istio.io/cluster=clusterA" ``` Optional: only one of distribute, failover or failoverPriority can be set. And it should be used together with `OutlierDetection` to detect unhealthy endpoints, otherwise has no effect.
Type
array

.spec.values.ztunnel.meshConfig.localityLbSetting.failoverPriority[]

Type
string

.spec.values.ztunnel.meshConfig.meshMTLS

Description
The below configuration parameters can be used to specify TLSConfig for mesh traffic. For example, a user could enable min TLS version for ISTIO_MUTUAL traffic and specify a curve for non ISTIO_MUTUAL traffic like below: ```yaml meshConfig: meshMTLS: minProtocolVersion: TLSV1_3 tlsDefaults: Note: applicable only for non ISTIO_MUTUAL scenarios ecdhCurves: - P-256 - P-512 ``` Configuration of mTLS for traffic between workloads with ISTIO_MUTUAL TLS traffic. Note: Mesh mTLS does not respect ECDH curves.
Type
object
PropertyTypeDescription
cipherSuitesarray

Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used:

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-GCM-SHA256
ecdhCurvesarray

Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to Ecdh Curves.

minProtocolVersionstring

Optional: the minimum TLS protocol version. The default minimum TLS version will be TLS 1.2. As servers may not be Envoy and be set to TLS 1.2 (e.g., workloads using mTLS without sidecars), the minimum TLS version for clients may also be TLS 1.2. In the current Istio implementation, the maximum TLS protocol version is TLS 1.3.

.spec.values.ztunnel.meshConfig.meshMTLS.cipherSuites

Description
Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used: ``` ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 AES256-GCM-SHA384 AES128-GCM-SHA256 ```
Type
array

.spec.values.ztunnel.meshConfig.meshMTLS.cipherSuites[]

Type
string

.spec.values.ztunnel.meshConfig.meshMTLS.ecdhCurves

Description
Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to [Ecdh Curves](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto).
Type
array

.spec.values.ztunnel.meshConfig.meshMTLS.ecdhCurves[]

Type
string

.spec.values.ztunnel.meshConfig.outboundTrafficPolicy

Description
Set the default behavior of the sidecar for handling outbound traffic from the application. Can be overridden at a Sidecar level by setting the `OutboundTrafficPolicy` in the [Sidecar API](https://istio.io/docs/reference/config/networking/sidecar/#OutboundTrafficPolicy). Default mode is `ALLOW_ANY`, which means outbound traffic to unknown destinations will be allowed.
Type
object
PropertyTypeDescription
modestring

.spec.values.ztunnel.meshConfig.pathNormalization

Description
ProxyPathNormalization configures how URL paths in incoming and outgoing HTTP requests are normalized by the sidecars and gateways. The normalized paths will be used in all aspects through the requests' lifetime on the sidecars and gateways, which includes routing decisions in outbound direction (client proxy), authorization policy match and enforcement in inbound direction (server proxy), and the URL path proxied to the upstream service. If not set, the NormalizationType.DEFAULT configuration will be used.
Type
object
PropertyTypeDescription
normalizationstring

.spec.values.ztunnel.meshConfig.serviceScopeConfigs

Description
Scope to be applied to select services.
Type
array

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[]

Description
Configuration for ambient mode multicluster service scope. This setting allows mesh administrators to define the criteria by which the cluster's control plane determines which services in other clusters in the mesh are treated as global (accessible across multiple clusters) versus local (restricted to a single cluster). The configuration can be applied to services based on namespace and/or other matching criteria. This is particularly useful in multicluster service mesh deployments to control service visibility and access across clusters. This API is not intended to enforce security policies. Resources like DestinationRules should be used to enforce authorization policies. If a service matches a global service scope selector, the service's endpoints will be globally exposed. If a service is locally scoped, its endpoints will only be exposed to local cluster services. For example, the following configures the scope of all services with the "istio.io/global" label in matching namespaces to be available globally: ```yaml serviceScopeConfigs: - namespacesSelector: matchExpressions: - key: istio.io/global operator: In values: [true] servicesSelector: matchExpressions: - key: istio.io/global operator: Exists scope: GLOBAL ```
Type
object
PropertyTypeDescription
namespaceSelectorobject

Match expression for namespaces.

scopestring

Specifics the available scope for matching services.

servicesSelectorobject

Match expression for serivces.

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].namespaceSelector

Description
Match expression for namespaces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].namespaceSelector.matchExpressions[].values[]

Type
string

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].namespaceSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].servicesSelector

Description
Match expression for serivces.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].servicesSelector.matchExpressions[].values[]

Type
string

.spec.values.ztunnel.meshConfig.serviceScopeConfigs[].servicesSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.ztunnel.meshConfig.serviceSettings

Description
Settings to be applied to select services.
Type
array

.spec.values.ztunnel.meshConfig.serviceSettings[]

Description
Settings to be applied to select services. For example, the following configures all services in namespace "foo" as well as the "bar" service in namespace "baz" to be considered cluster-local: ```yaml serviceSettings: - settings: clusterLocal: true hosts: - "*.foo.svc.cluster.local" - "bar.baz.svc.cluster.local" ``` When in ambient mode, if ServiceSettings are defined they will be considered in addition to the ServiceScopeConfigs. If a service is defined by ServiceSetting to be cluster local and matches a global service scope selector, the service will be considered cluster local. If a service is considered global by ServiceSettings and does not match a global service scope selector the serive will be considered local. Local scope takes precedence over global scope. Since ServiceScopeConfigs is local by default, all services are considered local unless it is considered global by ServiceSettings AND ServiceScopeConfigs.
Type
object
PropertyTypeDescription
hostsarray

The services to which the Settings should be applied. Services are selected using the hostname matching rules used by DestinationRule.

For example: foo.bar.svc.cluster.local, *.baz.svc.cluster.local

settingsobject

The settings to apply to the selected services.

.spec.values.ztunnel.meshConfig.serviceSettings[].hosts

Description
The services to which the Settings should be applied. Services are selected using the hostname matching rules used by DestinationRule. For example: foo.bar.svc.cluster.local, *.baz.svc.cluster.local
Type
array

.spec.values.ztunnel.meshConfig.serviceSettings[].hosts[]

Type
string

.spec.values.ztunnel.meshConfig.serviceSettings[].settings

Description
The settings to apply to the selected services.
Type
object
PropertyTypeDescription
clusterLocalboolean

If true, specifies that the client and service endpoints must reside in the same cluster. By default, in multi-cluster deployments, the Istio control plane assumes all service endpoints to be reachable from any client in any of the clusters which are part of the mesh. This configuration option limits the set of service endpoints visible to a client to be cluster scoped.

There are some common scenarios when this can be useful:

  • A service (or group of services) is inherently local to the cluster and has local storage for that cluster. For example, the kube-system namespace (e.g. the Kube API Server).
  • A mesh administrator wants to slowly migrate services to Istio. They might start by first having services cluster-local and then slowly transition them to mesh-wide. They could do this service-by-service (e.g. mysvc.myns.svc.cluster.local) or as a group (e.g. *.myns.svc.cluster.local).

By default Istio will consider kubernetes.default.svc (i.e. the API Server) as well as all services in the kube-system namespace to be cluster-local, unless explicitly overridden here.

.spec.values.ztunnel.meshConfig.tcpKeepalive

Description
If set then set `SO_KEEPALIVE` on the socket to enable TCP Keepalives.
Type
object
PropertyTypeDescription
intervalstring

The time duration between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)

probesinteger

Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.)

timestring

The time duration a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (ie 2 hours.)

.spec.values.ztunnel.meshConfig.tlsDefaults

Description
Configuration of TLS for all traffic except for ISTIO_MUTUAL mode. Currently, this supports configuration of ecdhCurves and cipherSuites only. For ISTIO_MUTUAL TLS settings, use meshMTLS configuration.
Type
object
PropertyTypeDescription
cipherSuitesarray

Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used:

ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-RSA-AES128-GCM-SHA256
AES256-GCM-SHA384
AES128-GCM-SHA256
ecdhCurvesarray

Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to Ecdh Curves.

minProtocolVersionstring

Optional: the minimum TLS protocol version. The default minimum TLS version will be TLS 1.2. As servers may not be Envoy and be set to TLS 1.2 (e.g., workloads using mTLS without sidecars), the minimum TLS version for clients may also be TLS 1.2. In the current Istio implementation, the maximum TLS protocol version is TLS 1.3.

.spec.values.ztunnel.meshConfig.tlsDefaults.cipherSuites

Description
Optional: If specified, the TLS connection will only support the specified cipher list when negotiating TLS 1.0-1.2. If not specified, the following cipher suites will be used: ``` ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 AES256-GCM-SHA384 AES128-GCM-SHA256 ```
Type
array

.spec.values.ztunnel.meshConfig.tlsDefaults.cipherSuites[]

Type
string

.spec.values.ztunnel.meshConfig.tlsDefaults.ecdhCurves

Description
Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange. If not specified, the default curves enforced by Envoy will be used. For details about the default curves, refer to [Ecdh Curves](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto).
Type
array

.spec.values.ztunnel.meshConfig.tlsDefaults.ecdhCurves[]

Type
string

.spec.values.ztunnel.meshConfig.trustDomainAliases

Description
The trust domain aliases represent the aliases of `trustDomain`. For example, if we have ```yaml trustDomain: td1 trustDomainAliases: ["td2", "td3"] ``` Any service with the identity `td1/ns/foo/sa/a-service-account`, `td2/ns/foo/sa/a-service-account`, or `td3/ns/foo/sa/a-service-account` will be treated the same in the Istio mesh.
Type
array

.spec.values.ztunnel.meshConfig.trustDomainAliases[]

Type
string

.spec.values.ztunnel.multiCluster

Description
Settings for multicluster. The name of the cluster we are installing in. Note this is a user-defined name, which must be consistent with Istiod configuration.
Type
object
PropertyTypeDescription
clusterNamestring

The name of the cluster this installation will run in. This is required for sidecar injection to properly label proxies

enabledboolean

Enables the connection between two kubernetes clusters via their respective ingressgateway services. Use if the pods in each cluster cannot directly talk to one another.

globalDomainSuffixstring

The suffix for global service names.

includeEnvoyFilterboolean

Enable envoy filter to translate globalDomainSuffix to cluster local suffix for cross cluster communication.

.spec.values.ztunnel.podAnnotations

Description
Annotations added to each pod. The default annotations are required for scraping prometheus (in most environments).
Type
object

.spec.values.ztunnel.podLabels

Description
Additional labels to apply on the pod level.
Type
object

.spec.values.ztunnel.resources

Description
The k8s resource requests and limits for the ztunnel Pods.
Type
object
PropertyTypeDescription
claimsarray

Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.

This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.

This field is immutable. It can only be set for containers.

limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.ztunnel.resources.claims

Description
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
Type
array

.spec.values.ztunnel.resources.claims[]

Description
ResourceClaim references one entry in PodSpec.ResourceClaims.
Type
object
Required
name
PropertyTypeDescription
namestring

Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.

requeststring

Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.

.spec.values.ztunnel.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.ztunnel.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.ztunnel.volumeMounts

Description
Additional volumeMounts to the ztunnel container
Type
array

.spec.values.ztunnel.volumeMounts[]

Description
VolumeMount describes a mounting of a Volume within a container.
Type
object
Required
mountPathname
PropertyTypeDescription
mountPathstring

Path within the container at which the volume should be mounted. Must not contain ':'.

mountPropagationstring

mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).

namestring

This must match the Name of a Volume.

readOnlyboolean

Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.

recursiveReadOnlystring

RecursiveReadOnly specifies whether read-only mounts should be handled recursively.

If ReadOnly is false, this field has no meaning and must be unspecified.

If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.

If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).

If this field is not specified, it is treated as an equivalent of Disabled.

subPathstring

Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).

subPathExprstring

Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive.

.spec.values.ztunnel.volumes

Description
Additional volumes to add to the ztunnel Pod.
Type
array

.spec.values.ztunnel.volumes[]

Description
Volume represents a named volume in a pod that may be accessed by any container in the pod.
Type
object
Required
name
PropertyTypeDescription
awsElasticBlockStoreobject

awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

azureDiskobject

azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.

azureFileobject

azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.

cephfsobject

cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.

cinderobject

cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

configMapobject

configMap represents a configMap that should populate this volume

csiobject

csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.

downwardAPIobject

downwardAPI represents downward API about the pod that should populate this volume

emptyDirobject

emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

ephemeralobject

ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.

Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim).

Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.

Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.

A pod can use both types of ephemeral volumes and persistent volumes at the same time.

fcobject

fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.

flexVolumeobject

flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.

flockerobject

flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.

gcePersistentDiskobject

gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

gitRepoobject

gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.

glusterfsobject

glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md

hostPathobject

hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

imageobject

image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:

  • Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
  • Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.
  • IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.

The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.

iscsiobject

iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md

namestring

name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

nfsobject

nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

persistentVolumeClaimobject

persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

photonPersistentDiskobject

photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.

portworxVolumeobject

portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.

projectedobject

projected items for all in one resources secrets, configmaps, and downward API

quobyteobject

quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.

rbdobject

rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md

scaleIOobject

scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.

secretobject

secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

storageosobject

storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.

vsphereVolumeobject

vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.

.spec.values.ztunnel.volumes[].awsElasticBlockStore

Description
awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
Type
object
Required
volumeID
PropertyTypeDescription
fsTypestring

fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

partitioninteger

partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

readOnlyboolean

readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

volumeIDstring

volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

.spec.values.ztunnel.volumes[].azureDisk

Description
azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.
Type
object
Required
diskNamediskURI
PropertyTypeDescription
cachingModestring

cachingMode is the Host Caching mode: None, Read Only, Read Write.

diskNamestring

diskName is the Name of the data disk in the blob storage

diskURIstring

diskURI is the URI of data disk in the blob storage

fsTypestring

fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

kindstring

kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

readOnlyboolean

readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

.spec.values.ztunnel.volumes[].azureFile

Description
azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.
Type
object
Required
secretNameshareName
PropertyTypeDescription
readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretNamestring

secretName is the name of secret that contains Azure Storage Account Name and Key

shareNamestring

shareName is the azure share Name

.spec.values.ztunnel.volumes[].cephfs

Description
cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
Type
object
Required
monitors
PropertyTypeDescription
monitorsarray

monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

pathstring

path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /

readOnlyboolean

readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretFilestring

secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretRefobject

secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

userstring

user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

.spec.values.ztunnel.volumes[].cephfs.monitors

Description
monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
Type
array

.spec.values.ztunnel.volumes[].cephfs.monitors[]

Type
string

.spec.values.ztunnel.volumes[].cephfs.secretRef

Description
secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].cinder

Description
cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md
Type
object
Required
volumeID
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

secretRefobject

secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.

volumeIDstring

volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md

.spec.values.ztunnel.volumes[].cinder.secretRef

Description
secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].configMap

Description
configMap represents a configMap that should populate this volume
Type
object
PropertyTypeDescription
defaultModeinteger

defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

itemsarray

items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

optional specify whether the ConfigMap or its keys must be defined

.spec.values.ztunnel.volumes[].configMap.items

Description
items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.ztunnel.volumes[].configMap.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.ztunnel.volumes[].csi

Description
csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
Type
object
Required
driver
PropertyTypeDescription
driverstring

driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.

fsTypestring

fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.

nodePublishSecretRefobject

nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.

readOnlyboolean

readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).

volumeAttributesobject

volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.

.spec.values.ztunnel.volumes[].csi.nodePublishSecretRef

Description
nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].csi.volumeAttributes

Description
volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.
Type
object

.spec.values.ztunnel.volumes[].downwardAPI

Description
downwardAPI represents downward API about the pod that should populate this volume
Type
object
PropertyTypeDescription
defaultModeinteger

Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

itemsarray

Items is a list of downward API volume file

.spec.values.ztunnel.volumes[].downwardAPI.items

Description
Items is a list of downward API volume file
Type
array

.spec.values.ztunnel.volumes[].downwardAPI.items[]

Description
DownwardAPIVolumeFile represents information to create the file containing the pod field
Type
object
Required
path
PropertyTypeDescription
fieldRefobject

Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.

modeinteger

Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'

resourceFieldRefobject

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

.spec.values.ztunnel.volumes[].downwardAPI.items[].fieldRef

Description
Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.
Type
object
Required
fieldPath
PropertyTypeDescription
apiVersionstring

Version of the schema the FieldPath is written in terms of, defaults to "v1".

fieldPathstring

Path of the field to select in the specified API version.

.spec.values.ztunnel.volumes[].downwardAPI.items[].resourceFieldRef

Description
Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
Type
object
Required
resource
PropertyTypeDescription
containerNamestring

Container name: required for volumes, optional for env vars

divisor

Specifies the output format of the exposed resources, defaults to "1"

resourcestring

Required: resource to select

.spec.values.ztunnel.volumes[].emptyDir

Description
emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Type
object
PropertyTypeDescription
mediumstring

medium represents what type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

sizeLimit

sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

.spec.values.ztunnel.volumes[].ephemeral

Description
ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. A pod can use both types of ephemeral volumes and persistent volumes at the same time.
Type
object
PropertyTypeDescription
volumeClaimTemplateobject

Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be <pod name>-<volume name> where <volume name> is the name from the PodSpec.Volumes array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).

An existing PVC with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.

This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.

Required, must not be nil.

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate

Description
Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. Required, must not be nil.
Type
object
Required
spec
PropertyTypeDescription
metadataObjectMeta

May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.

specobject

The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec

Description
The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.
Type
object
PropertyTypeDescription
accessModesarray

accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

dataSourceobject

dataSource field can be used to specify either:

  • An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
  • An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRefobject

dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef:

  • While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
  • While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified.
  • While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
resourcesobject

resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

selectorobject

selector is a label query over volumes to consider for binding.

storageClassNamestring

storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassNamestring

volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).

volumeModestring

volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.

volumeNamestring

volumeName is the binding reference to the PersistentVolume backing this claim.

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.accessModes

Description
accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
Type
array

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.accessModes[]

Type
string

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.dataSource

Description
dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.dataSourceRef

Description
dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
Type
object
Required
kindname
PropertyTypeDescription
apiGroupstring

APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.

kindstring

Kind is the type of resource being referenced

namestring

Name is the name of resource being referenced

namespacestring

Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.resources

Description
resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
Type
object
PropertyTypeDescription
limitsobject

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

requestsobject

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.resources.limits

Description
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.resources.requests

Description
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Type
object

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.selector

Description
selector is a label query over volumes to consider for binding.
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[].values[]

Type
string

.spec.values.ztunnel.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.ztunnel.volumes[].fc

Description
fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
Type
object
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

luninteger

lun is Optional: FC target lun number

readOnlyboolean

readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

targetWWNsarray

targetWWNs is Optional: FC target worldwide names (WWNs)

wwidsarray

wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

.spec.values.ztunnel.volumes[].fc.targetWWNs

Description
targetWWNs is Optional: FC target worldwide names (WWNs)
Type
array

.spec.values.ztunnel.volumes[].fc.targetWWNs[]

Type
string

.spec.values.ztunnel.volumes[].fc.wwids

Description
wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
Type
array

.spec.values.ztunnel.volumes[].fc.wwids[]

Type
string

.spec.values.ztunnel.volumes[].flexVolume

Description
flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
Type
object
Required
driver
PropertyTypeDescription
driverstring

driver is the name of the driver to use for this volume.

fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.

optionsobject

options is Optional: this field holds extra command options if any.

readOnlyboolean

readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretRefobject

secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.

.spec.values.ztunnel.volumes[].flexVolume.options

Description
options is Optional: this field holds extra command options if any.
Type
object

.spec.values.ztunnel.volumes[].flexVolume.secretRef

Description
secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].flocker

Description
flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
Type
object
PropertyTypeDescription
datasetNamestring

datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated

datasetUUIDstring

datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset

.spec.values.ztunnel.volumes[].gcePersistentDisk

Description
gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
Type
object
Required
pdName
PropertyTypeDescription
fsTypestring

fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

partitioninteger

partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

pdNamestring

pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

readOnlyboolean

readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

.spec.values.ztunnel.volumes[].gitRepo

Description
gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.
Type
object
Required
repository
PropertyTypeDescription
directorystring

directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.

repositorystring

repository is the URL

revisionstring

revision is the commit hash for the specified revision.

.spec.values.ztunnel.volumes[].glusterfs

Description
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md
Type
object
Required
endpointspath
PropertyTypeDescription
endpointsstring

endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

pathstring

path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

readOnlyboolean

readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

.spec.values.ztunnel.volumes[].hostPath

Description
hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Type
object
Required
path
PropertyTypeDescription
pathstring

path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

typestring

type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

.spec.values.ztunnel.volumes[].image

Description
image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided: - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
Type
object
PropertyTypeDescription
pullPolicystring

Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.

referencestring

Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.

.spec.values.ztunnel.volumes[].iscsi

Description
iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md
Type
object
Required
iqnluntargetPortal
PropertyTypeDescription
chapAuthDiscoveryboolean

chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication

chapAuthSessionboolean

chapAuthSession defines whether support iSCSI Session CHAP authentication

fsTypestring

fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi

initiatorNamestring

initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.

iqnstring

iqn is the target iSCSI Qualified Name.

iscsiInterfacestring

iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).

luninteger

lun represents iSCSI Target Lun number.

portalsarray

portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

readOnlyboolean

readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.

secretRefobject

secretRef is the CHAP Secret for iSCSI target and initiator authentication

targetPortalstring

targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

.spec.values.ztunnel.volumes[].iscsi.portals

Description
portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).
Type
array

.spec.values.ztunnel.volumes[].iscsi.portals[]

Type
string

.spec.values.ztunnel.volumes[].iscsi.secretRef

Description
secretRef is the CHAP Secret for iSCSI target and initiator authentication
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].nfs

Description
nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
Type
object
Required
pathserver
PropertyTypeDescription
pathstring

path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

readOnlyboolean

readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

serverstring

server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

.spec.values.ztunnel.volumes[].persistentVolumeClaim

Description
persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Type
object
Required
claimName
PropertyTypeDescription
claimNamestring

claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

readOnlyboolean

readOnly Will force the ReadOnly setting in VolumeMounts. Default false.

.spec.values.ztunnel.volumes[].photonPersistentDisk

Description
photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
Type
object
Required
pdID
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

pdIDstring

pdID is the ID that identifies Photon Controller persistent disk

.spec.values.ztunnel.volumes[].portworxVolume

Description
portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.
Type
object
Required
volumeID
PropertyTypeDescription
fsTypestring

fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.

readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

volumeIDstring

volumeID uniquely identifies a Portworx volume

.spec.values.ztunnel.volumes[].projected

Description
projected items for all in one resources secrets, configmaps, and downward API
Type
object
PropertyTypeDescription
defaultModeinteger

defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

sourcesarray

sources is the list of volume projections. Each entry in this list handles one source.

.spec.values.ztunnel.volumes[].projected.sources

Description
sources is the list of volume projections. Each entry in this list handles one source.
Type
array

.spec.values.ztunnel.volumes[].projected.sources[]

Description
Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.
Type
object
PropertyTypeDescription
clusterTrustBundleobject

ClusterTrustBundle allows a pod to access the .spec.trustBundle field of ClusterTrustBundle objects in an auto-updating file.

Alpha, gated by the ClusterTrustBundleProjection feature gate.

ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.

Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.

configMapobject

configMap information about the configMap data to project

downwardAPIobject

downwardAPI information about the downwardAPI data to project

secretobject

secret information about the secret data to project

serviceAccountTokenobject

serviceAccountToken is information about the serviceAccountToken data to project

.spec.values.ztunnel.volumes[].projected.sources[].clusterTrustBundle

Description
ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. Alpha, gated by the ClusterTrustBundleProjection feature gate. ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.
Type
object
Required
path
PropertyTypeDescription
labelSelectorobject

Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as "match nothing". If set but empty, interpreted as "match everything".

namestring

Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.

optionalboolean

If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.

pathstring

Relative path from the volume root to write the bundle.

signerNamestring

Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.

.spec.values.ztunnel.volumes[].projected.sources[].clusterTrustBundle.labelSelector

Description
Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as "match nothing". If set but empty, interpreted as "match everything".
Type
object
PropertyTypeDescription
matchExpressionsarray

matchExpressions is a list of label selector requirements. The requirements are ANDed.

matchLabelsobject

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

.spec.values.ztunnel.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions

Description
matchExpressions is a list of label selector requirements. The requirements are ANDed.
Type
array

.spec.values.ztunnel.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions[]

Description
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
Type
object
Required
keyoperator
PropertyTypeDescription
keystring

key is the label key that the selector applies to.

operatorstring

operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

valuesarray

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

.spec.values.ztunnel.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions[].values

Description
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
Type
array

.spec.values.ztunnel.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions[].values[]

Type
string

.spec.values.ztunnel.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchLabels

Description
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
Type
object

.spec.values.ztunnel.volumes[].projected.sources[].configMap

Description
configMap information about the configMap data to project
Type
object
PropertyTypeDescription
itemsarray

items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

optional specify whether the ConfigMap or its keys must be defined

.spec.values.ztunnel.volumes[].projected.sources[].configMap.items

Description
items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.ztunnel.volumes[].projected.sources[].configMap.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.ztunnel.volumes[].projected.sources[].downwardAPI

Description
downwardAPI information about the downwardAPI data to project
Type
object
PropertyTypeDescription
itemsarray

Items is a list of DownwardAPIVolume file

.spec.values.ztunnel.volumes[].projected.sources[].downwardAPI.items

Description
Items is a list of DownwardAPIVolume file
Type
array

.spec.values.ztunnel.volumes[].projected.sources[].downwardAPI.items[]

Description
DownwardAPIVolumeFile represents information to create the file containing the pod field
Type
object
Required
path
PropertyTypeDescription
fieldRefobject

Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.

modeinteger

Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'

resourceFieldRefobject

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

.spec.values.ztunnel.volumes[].projected.sources[].downwardAPI.items[].fieldRef

Description
Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.
Type
object
Required
fieldPath
PropertyTypeDescription
apiVersionstring

Version of the schema the FieldPath is written in terms of, defaults to "v1".

fieldPathstring

Path of the field to select in the specified API version.

.spec.values.ztunnel.volumes[].projected.sources[].downwardAPI.items[].resourceFieldRef

Description
Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
Type
object
Required
resource
PropertyTypeDescription
containerNamestring

Container name: required for volumes, optional for env vars

divisor

Specifies the output format of the exposed resources, defaults to "1"

resourcestring

Required: resource to select

.spec.values.ztunnel.volumes[].projected.sources[].secret

Description
secret information about the secret data to project
Type
object
PropertyTypeDescription
itemsarray

items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

optionalboolean

optional field specify whether the Secret or its key must be defined

.spec.values.ztunnel.volumes[].projected.sources[].secret.items

Description
items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.ztunnel.volumes[].projected.sources[].secret.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.ztunnel.volumes[].projected.sources[].serviceAccountToken

Description
serviceAccountToken is information about the serviceAccountToken data to project
Type
object
Required
path
PropertyTypeDescription
audiencestring

audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.

expirationSecondsinteger

expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.

pathstring

path is the path relative to the mount point of the file to project the token into.

.spec.values.ztunnel.volumes[].quobyte

Description
quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
Type
object
Required
registryvolume
PropertyTypeDescription
groupstring

group to map volume access to Default is no group

readOnlyboolean

readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.

registrystring

registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes

tenantstring

tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin

userstring

user to map volume access to Defaults to serivceaccount user

volumestring

volume is a string that references an already created Quobyte volume by name.

.spec.values.ztunnel.volumes[].rbd

Description
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md
Type
object
Required
imagemonitors
PropertyTypeDescription
fsTypestring

fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

imagestring

image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

keyringstring

keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

monitorsarray

monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

poolstring

pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

readOnlyboolean

readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

secretRefobject

secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

userstring

user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

.spec.values.ztunnel.volumes[].rbd.monitors

Description
monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
Type
array

.spec.values.ztunnel.volumes[].rbd.monitors[]

Type
string

.spec.values.ztunnel.volumes[].rbd.secretRef

Description
secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].scaleIO

Description
scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
Type
object
Required
gatewaysecretRefsystem
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs".

gatewaystring

gateway is the host address of the ScaleIO API Gateway.

protectionDomainstring

protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.

readOnlyboolean

readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretRefobject

secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.

sslEnabledboolean

sslEnabled Flag enable/disable SSL communication with Gateway, default false

storageModestring

storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.

storagePoolstring

storagePool is the ScaleIO Storage Pool associated with the protection domain.

systemstring

system is the name of the storage system as configured in ScaleIO.

volumeNamestring

volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.

.spec.values.ztunnel.volumes[].scaleIO.secretRef

Description
secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].secret

Description
secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
Type
object
PropertyTypeDescription
defaultModeinteger

defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

itemsarray

items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.

optionalboolean

optional field specify whether the Secret or its keys must be defined

secretNamestring

secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

.spec.values.ztunnel.volumes[].secret.items

Description
items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.
Type
array

.spec.values.ztunnel.volumes[].secret.items[]

Description
Maps a string key to a path within a volume.
Type
object
Required
keypath
PropertyTypeDescription
keystring

key is the key to project.

modeinteger

mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

pathstring

path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.

.spec.values.ztunnel.volumes[].storageos

Description
storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
Type
object
PropertyTypeDescription
fsTypestring

fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

readOnlyboolean

readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

secretRefobject

secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.

volumeNamestring

volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.

volumeNamespacestring

volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.

.spec.values.ztunnel.volumes[].storageos.secretRef

Description
secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.
Type
object
PropertyTypeDescription
namestring

Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

.spec.values.ztunnel.volumes[].vsphereVolume

Description
vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.
Type
object
Required
volumePath
PropertyTypeDescription
fsTypestring

fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

storagePolicyIDstring

storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.

storagePolicyNamestring

storagePolicyName is the storage Policy Based Management (SPBM) profile name.

volumePathstring

volumePath is the path that identifies vSphere volume vmdk

.status

Description
ZTunnelStatus defines the observed state of ZTunnel
Type
object
PropertyTypeDescription
conditionsarray

Represents the latest available observations of the object's current state.

observedGenerationinteger

ObservedGeneration is the most recent generation observed for this ZTunnel object. It corresponds to the object's generation, which is updated on mutation by the API Server. The information in the status pertains to this particular generation of the object.

statestring

Reports the current state of the object.

.status.conditions

Description
Represents the latest available observations of the object's current state.
Type
array

.status.conditions[]

Description
ZTunnelCondition represents a specific observation of the ZTunnel object's state.
Type
object
PropertyTypeDescription
lastTransitionTimestring

Last time the condition transitioned from one status to another.

messagestring

Human-readable message indicating details about the last transition.

reasonstring

Unique, single-word, CamelCase reason for the condition's last transition.

statusstring

The status of this condition. Can be True, False or Unknown.

typestring

The type of this condition.

API Endpoints

The following API endpoints are available:

  • /apis/sailoperator.io/v1alpha1/namespaces/{namespace}/ztunnels
    • DELETE: delete collection of ZTunnel
    • GET: list objects of kind ZTunnel
    • POST: create a new ZTunnel
  • /apis/sailoperator.io/v1alpha1/namespaces/{namespace}/ztunnels/{name}
    • DELETE: delete the specified ZTunnel
    • GET: read the specified ZTunnel
    • PATCH: partially update the specified ZTunnel
    • PUT: replace the specified ZTunnel
  • /apis/sailoperator.io/v1alpha1/namespaces/{namespace}/ztunnels/{name}/status
    • GET: read status of the specified ZTunnel
    • PATCH: partially update status of the specified ZTunnel
    • PUT: replace status of the specified ZTunnel

/apis/sailoperator.io/v1alpha1/namespaces/{namespace}/ztunnels

HTTP method
DELETE
Description
delete collection of ZTunnel
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind ZTunnel
HTTP responses
HTTP codeResponse body
200 - OKZTunnelList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new ZTunnel
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyZTunnel schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKZTunnel schema
201 - CreatedZTunnel schema
202 - AcceptedZTunnel schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1alpha1/namespaces/{namespace}/ztunnels/{name}

HTTP method
DELETE
Description
delete the specified ZTunnel
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified ZTunnel
HTTP responses
HTTP codeResponse body
200 - OKZTunnel schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified ZTunnel
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKZTunnel schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified ZTunnel
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyZTunnel schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKZTunnel schema
201 - CreatedZTunnel schema
401 - UnauthorizedEmpty

/apis/sailoperator.io/v1alpha1/namespaces/{namespace}/ztunnels/{name}/status

HTTP method
GET
Description
read status of the specified ZTunnel
HTTP responses
HTTP codeResponse body
200 - OKZTunnel schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified ZTunnel
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKZTunnel schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified ZTunnel
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyZTunnel schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKZTunnel schema
201 - CreatedZTunnel schema
401 - UnauthorizedEmpty