# Top level istio values file has the following sections. # # global: This file is the authoritative and exhaustive source for the global section. # # chart sections: Every subdirectory inside the charts/ directory has a top level # configuration key in this file. This file overrides the values specified # by the charts/${chartname}/values.yaml. # Check the chart level values file for exhaustive list of configuration options. # # Gateways Configuration, refer to the charts/gateways/values.yaml # for detailed configuration # gateways: enabled: true # # sidecar-injector webhook configuration, refer to the # charts/sidecarInjectorWebhook/values.yaml for detailed configuration # sidecarInjectorWebhook: enabled: true # # galley configuration, refer to charts/galley/values.yaml # for detailed configuration # galley: enabled: true # # mixer configuration # # @see charts/mixer/values.yaml, it takes precedence mixer: enabled: true policy: # if policy is enabled the global.disablePolicyChecks has affect. enabled: true telemetry: enabled: true # # pilot configuration # # @see charts/pilot/values.yaml pilot: enabled: true # # security configuration # security: enabled: true # # nodeagent configuration # nodeagent: enabled: false # # addon grafana configuration # grafana: enabled: false # # addon prometheus configuration # prometheus: enabled: true # # addon servicegraph configuration # servicegraph: enabled: false # # addon jaeger tracing configuration # tracing: enabled: false # # addon kiali tracing configuration # kiali: enabled: false # # Istio CNI plugin enabled # This must be enabled to use the CNI plugin in Istio. The CNI plugin is installed separately. # If true, the privileged initContainer istio-init is not needed to perform the traffic redirect # settings for the istio-proxy. # istio_cni: enabled: false # addon Istio CoreDNS configuration # istiocoredns: enabled: false # Common settings used among istio subcharts. global: # Default hub for Istio images. # Releases are published to docker hub under 'istio' project. # Daily builds from prow are on gcr.io, and nightly builds from circle on docker.io/istionightly hub: gcr.io/istio-release # Default tag for Istio images. tag: release-1.1-latest-daily # 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 logging: level: "default:info" # monitoring port used by mixer, pilot, galley monitoringPort: 15014 k8sIngress: enabled: false # Gateway used for k8s Ingress resources. By default it is # using 'istio:ingressgateway' that will be installed by setting # 'gateways.enabled' and 'gateways.istio-ingressgateway.enabled' # flags to true. gatewayName: ingressgateway # enableHttps will add port 443 on the ingress. # It REQUIRES that the certificates are installed in the # expected secrets - enabling this option without certificates # will result in LDS rejection and the ingress will not work. enableHttps: false proxy: image: proxyv2 # cluster domain. Default value is "cluster.local". clusterDomain: "cluster.local" # Resources for the sidecar. resources: requests: cpu: 100m memory: 128Mi limits: cpu: 2000m memory: 1024Mi # Controls number of Proxy worker threads. # If set to 0 (default), then start worker thread for each CPU thread/core. concurrency: 2 # Configures the access log for each sidecar. # Options: # "" - disables access log # "/dev/stdout" - enables access log accessLogFile: "" # Configure how and what fields are displayed in sidecar access log. Setting to # empty string will result in default log format accessLogFormat: "" # Configure the access log for sidecar to JSON or TEXT. accessLogEncoding: TEXT # 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 logLevel: "" # Configure the DNS refresh rate for Envoy cluster of type STRICT_DNS # 5 seconds is the default refresh rate used by Envoy dnsRefreshRate: 5s #If set to true, istio-proxy container will have privileged securityContext privileged: false # If set, newly injected sidecars will have core dumps enabled. enableCoreDump: false # Default port for Pilot agent health checks. A value of 0 will disable health checking. statusPort: 15020 # The initial delay for readiness probes in seconds. readinessInitialDelaySeconds: 1 # The period between readiness probes. readinessPeriodSeconds: 2 # The number of successive failed probes before indicating readiness failure. readinessFailureThreshold: 30 # istio egress capture whitelist # https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly # example: includeIPRanges: "172.30.0.0/16,172.20.0.0/16" # would only capture egress traffic on those two IP Ranges, all other outbound traffic would # be allowed by the sidecar includeIPRanges: "*" excludeIPRanges: "" # pod internal interfaces kubevirtInterfaces: "" # istio ingress capture whitelist # examples: # Redirect no inbound traffic to Envoy: --includeInboundPorts="" # Redirect all inbound traffic to Envoy: --includeInboundPorts="*" # Redirect only selected ports: --includeInboundPorts="80,8080" includeInboundPorts: "*" excludeInboundPorts: "" # This controls the 'policy' in the sidecar injector. autoInject: enabled # Sets the destination Statsd in envoy (the value of the "--statsdUdpAddress" proxy argument # would be :). # Disabled by default. # The istio-statsd-prom-bridge is deprecated and should not be used moving forward. envoyStatsd: # If enabled is set to true, host and port must also be provided. Istio no longer provides a statsd collector. enabled: false host: # example: statsd-svc.istio-system port: # example: 9125 # Sets the Envoy Metrics Service address, used to push Envoy metrics to an external collector # via the Metrics Service gRPC API. This contains detailed stats information emitted directly # by Envoy and should not be confused with the the Istio telemetry. The Envoy stats are also # available to scrape via the Envoy admin port at either /stats or /stats/prometheus. # # See https://www.envoyproxy.io/docs/envoy/latest/api-v2/config/metrics/v2/metrics_service.proto # for details about Envoy's Metrics Service API. # # Disabled by default. envoyMetricsService: enabled: false host: # example: metrics-service.istio-system port: # example: 15000 # Specify which tracer to use. One of: lightstep, zipkin, datadog tracer: "zipkin" proxy_init: # Base name for the proxy_init container, used to configure iptables. image: proxy_init # imagePullPolicy is applied to istio control plane components. # local tests require IfNotPresent, to avoid uploading to dockerhub. # TODO: Switch to Always as default, and override in the local tests. imagePullPolicy: IfNotPresent # controlPlaneMtls enabled. Will result in delays starting the pods while secrets are # propagated, not recommended for tests. controlPlaneSecurityEnabled: false # disablePolicyChecks disables mixer policy checks. # if mixer.policy.enabled==true then disablePolicyChecks has affect. # Will set the value with same name in istio config map - pilot needs to be restarted to take effect. disablePolicyChecks: true # policyCheckFailOpen allows traffic in cases when the mixer policy service cannot be reached. # Default is false which means the traffic is denied when the client is unable to connect to Mixer. policyCheckFailOpen: false # EnableTracing sets the value with same name in istio config map, requires pilot restart to take effect. enableTracing: true # Configuration for each of the supported tracers tracer: # Configuration for envoy to send trace data to LightStep. # Disabled by default. # address: the : of the satellite pool # accessToken: required for sending data to the pool # secure: specifies whether data should be sent with TLS # cacertPath: the path to the file containing the cacert to use when verifying TLS. If secure is true, this is # required. If a value is specified then a secret called "lightstep.cacert" must be created in the destination # namespace with the key matching the base of the provided cacertPath and the value being the cacert itself. # lightstep: address: "" # example: lightstep-satellite:443 accessToken: "" # example: abcdefg1234567 secure: true # example: true|false cacertPath: "" # example: /etc/lightstep/cacert.pem zipkin: # Host:Port for reporting trace data in zipkin format. If not specified, will default to # zipkin service (port 9411) in the same namespace as the other istio components. address: "" datadog: # Host:Port for submitting traces to the Datadog agent. address: "$(HOST_IP):8126" # Default mtls policy. If true, mtls between services will be enabled by default. mtls: # Default setting for service-to-service mtls. Can be set explicitly using # destination rules or service annotations. enabled: false # ImagePullSecrets for all ServiceAccount, list of secrets in the same namespace # to use for pulling any images in pods that reference this ServiceAccount. # For components that don't use ServiceAccounts (i.e. grafana, servicegraph, tracing) # ImagePullSecrets will be added to the corresponding Deployment(StatefulSet) objects. # Must be set for any clustser configured with private docker registry. imagePullSecrets: # - private-registry-key # Specify pod scheduling arch(amd64, ppc64le, s390x) and weight as follows: # 0 - Never scheduled # 1 - Least preferred # 2 - No preference # 3 - Most preferred arch: amd64: 2 s390x: 2 ppc64le: 2 # Whether to restrict the applications namespace the controller manages; # If not set, controller watches all namespaces oneNamespace: false # Default node selector to be applied to all deployments so that all pods can be # constrained to run a particular nodes. Each component can overwrite these default # values by adding its node selector block in the relevant section below and setting # the desired values. defaultNodeSelector: {} # Whether to perform server-side validation of configuration. configValidation: true # 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). # NOTE: If using templates, follow the pattern in the commented example below. #podDNSSearchNamespaces: #- global #- "[[ valueOrDefault .DeploymentMeta.Namespace \"default\" ]].global" # If set to true, the pilot and citadel mtls will be exposed on the # ingress gateway meshExpansion: enabled: false # If set to true, the pilot and citadel mtls and the plain text pilot ports # will be exposed on an internal gateway useILB: false multiCluster: # Set to true to connect two kubernetes clusters via their respective # ingressgateway services when pods in each cluster cannot directly # talk to one another. All clusters should be using Istio mTLS and must # have a shared root CA for this model to work. enabled: false # A minimal set of requested resources to applied to all deployments so that # Horizontal Pod Autoscaler will be able to function (if set). # Each component can overwrite these default values by adding its own resources # block in the relevant section below and setting the desired resources values. defaultResources: requests: cpu: 10m # memory: 128Mi # limits: # cpu: 100m # memory: 128Mi # enable pod distruption budget for the control plane, which is used to # ensure Istio control plane components are gradually upgraded or recovered. defaultPodDisruptionBudget: enabled: true # The values aren't mutable due to a current PodDisruptionBudget limitation # minAvailable: 1 # Kubernetes >=v1.11.0 will create two PriorityClass, including system-cluster-critical and # system-node-critical, it is better to configure this in order to make sure your Istio pods # will not be killed because of low priority class. # Refer to https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass # for more detail. priorityClassName: "" # Use the Mesh Control Protocol (MCP) for configuring Mixer and # Pilot. Requires galley (`--set galley.enabled=true`). useMCP: true # The trust domain corresponds to the trust root of a system # Refer to https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain # Indicate the domain used in SPIFFE identity URL # The default depends on the environment. # kubernetes: cluster.local # else: default dns domain trustDomain: "" # Set the default behavior of the sidecar for handling outbound traffic from the application: # ALLOW_ANY - outbound traffic to unknown destinations will be allowed, in case there are no # services or ServiceEntries for the destination port # REGISTRY_ONLY - restrict outbound traffic to services defined in the service registry as well # as those defined through ServiceEntries # ALLOW_ANY is the default in 1.1. This means each pod will be able to make outbound requests # to services outside of the mesh without any ServiceEntry. # REGISTRY_ONLY was the default in 1.0. If this behavior is desired, set the value below to REGISTRY_ONLY. outboundTrafficPolicy: mode: ALLOW_ANY # The namespace where globally shared configurations should be present. # DestinationRules that apply to the entire mesh (e.g., enabling mTLS), # default Sidecar configs, etc. should be added to this namespace. # configRootNamespace: istio-config # set the default set of namespaces to which services, service entries, virtual services, destination # rules should be exported to. Currently only one value can be provided in this list. This value # should be one of the following two options: # * implies these objects are visible to all namespaces, enabling any sidecar to talk to any other sidecar. # . implies these objects are visible to only to sidecars in the same namespace, or if imported as a Sidecar.egress.host #defaultConfigVisibilitySettings: #- '*' sds: # SDS enabled. IF set to true, mTLS certificates for the sidecars will be # distributed through the SecretDiscoveryService instead of using K8S secrets to mount the certificates. enabled: false udsPath: "" useTrustworthyJwt: false useNormalJwt: false # 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 (not # supported yet). # # 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 # port: 443 # meshNetworks: {} # Specifies the global locality load balancing settings. # Locality-weighted load balancing allows administrators to control the distribution of traffic to # endpoints based on the localities of where the traffic originates and where it will terminate. # Please set either failover or distribute configuration but not both. # # localityLbSetting: # distribute: # - from: "us-central1/*" # to: # "us-central1/*": 80 # "us-central2/*": 20 # # localityLbSetting: # failover: # - from: us-east # to: eu-west # - from: us-west # to: us-east localityLbSetting: {} # Specifies whether helm test is enabled or not. # This field is set to false by default, so 'helm template ...' # will ignore the helm test yaml files when generating the template enableHelmTest: false