helm/core/values.yaml (346 lines of code) (raw):

revision: "" global: enableH3: false enableIPv6: false enableProxyProtocol: false enableLDSCache: false enablePushAllMCPClusters: true liteMetrics: false xdsMaxRecvMsgSize: "104857600" defaultUpstreamConcurrencyThreshold: 10000 enableSRDS: true # -- Whether to enable Redis(redis-stack-server) for Higress, default is false. enableRedis: false onDemandRDS: false hostRDSMergeSubset: false onlyPushRouteCluster: true # -- IngressClass filters which ingress resources the higress controller watches. # The default ingress class is higress. # There are some special cases for special ingress class. # 1. When the ingress class is set as nginx, the higress controller will watch ingress # resources with the nginx ingress class or without any ingress class. # 2. When the ingress class is set empty, the higress controller will watch all ingress # resources in the k8s cluster. ingressClass: "higress" # -- If not empty, Higress Controller will only watch resources in the specified namespace. # When isolating different business systems using K8s namespace, # if each namespace requires a standalone gateway instance, # this parameter can be used to confine the Ingress watching of Higress within the given namespace. watchNamespace: "" # -- Whether to disable HTTP/2 in ALPN disableAlpnH2: false # -- If true, Higress Controller will update the status field of Ingress resources. # When migrating from Nginx Ingress, in order to avoid status field of Ingress objects being overwritten, # this parameter needs to be set to false, # so Higress won't write the entry IP to the status field of the corresponding Ingress object. enableStatus: true # -- whether to use autoscaling/v2 template for HPA settings # for internal usage only, not to be configured by users. autoscalingv2API: true # -- When deploying to a local cluster (e.g.: kind cluster), set this to true. local: false kind: false # Deprecated. Please use "global.local" instead. Will be removed later. # -- If true, Higress Controller will monitor istio resources as well enableIstioAPI: true # -- If true, Higress Controller will monitor Gateway API resources as well enableGatewayAPI: false # -- Used to locate istiod. istioNamespace: istio-system # -- enable pod disruption budget for the control plane, which is used to # ensure Istio control plane components are gradually upgraded or recovered. defaultPodDisruptionBudget: enabled: false # The values aren't mutable due to a current PodDisruptionBudget limitation # minAvailable: 1 # -- 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 # -- Default hub for Istio images. # Releases are published to docker hub under 'istio' project. # Dev builds from prow are on gcr.io hub: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress # -- Specify image pull policy if default behavior isn't desired. # Default behavior: latest images will be Always else IfNotPresent. imagePullPolicy: "" # -- 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 cluster configured with private docker registry. imagePullSecrets: [] # - private-registry-key # -- Enabled by default in master for maximising testing. istiod: enableAnalysis: false # -- To output all istio components logs in json format by adding --log_as_json argument to each container argument logAsJson: false # -- Comma-separated minimum per-scope logging level of messages to output, in the form of <scope>:<level>,<scope>:<level> # 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" omitSidecarInjectorConfigMap: false # -- Whether to restrict the applications namespace the controller manages; # If not set, controller watches all namespaces oneNamespace: false # -- Configure whether Operator manages webhook configurations. The current behavior # of Istiod is to manage its own webhook configurations. # When this option is set as true, Istio Operator, instead of webhooks, manages the # webhook configurations. When this option is set as false, webhooks manage their # own webhook configurations. operatorManageWebhooks: false # 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" # -- 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: "" proxy: image: proxyv2 # -- This controls the 'policy' in the sidecar injector. autoInject: enabled # -- CAUTION: It is important to ensure that all Istio helm charts specify the same clusterDomain value # cluster domain. Default value is "cluster.local". clusterDomain: "cluster.local" # -- 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. componentLogLevel: "misc:error" # -- If set, newly injected sidecars will have core dumps enabled. enableCoreDump: false # istio ingress capture allowlist # examples: # Redirect only selected ports: --includeInboundPorts="80,8080" excludeInboundPorts: "" includeInboundPorts: "*" # -- istio egress capture allowlist # 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: "" includeOutboundPorts: "" excludeOutboundPorts: "" # -- Log level for proxy, applies to gateways and sidecars. # Expected values are: trace|debug|info|warning|error|critical|off logLevel: warning # -- If set to true, istio-proxy container will have privileged securityContext privileged: false # -- The number of successive failed probes before indicating readiness failure. readinessFailureThreshold: 30 # -- The number of successive successed probes before indicating readiness success. readinessSuccessThreshold: 30 # -- The initial delay for readiness probes in seconds. readinessInitialDelaySeconds: 1 # -- The period between readiness probes. readinessPeriodSeconds: 2 # -- The readiness timeout seconds readinessTimeoutSeconds: 3 # -- Resources for the sidecar. resources: requests: cpu: 100m memory: 128Mi limits: cpu: 2000m memory: 1024Mi # -- Default port for Pilot agent health checks. A value of 0 will disable health checking. statusPort: 15020 # -- Specify which tracer to use. One of: lightstep, datadog, stackdriver. # If using stackdriver tracer outside GCP, set env GOOGLE_APPLICATION_CREDENTIALS to the GCP credential file. tracer: "" # -- 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 holdApplicationUntilProxyStarts: false # -- Proxy stats name regexps matcher for inclusion proxyStatsMatcher: inclusionRegexps: - ".*" proxy_init: # -- Base name for the proxy_init container, used to configure iptables. image: proxyv2 resources: limits: cpu: 2000m memory: 1024Mi requests: cpu: 10m memory: 10Mi # -- configure remote pilot and istiod service and endpoint remotePilotAddress: "" ############################################################################################## # The following values are found in other charts. To effectively modify these values, make # # make sure they are consistent across your Istio helm charts # ############################################################################################## # -- The customized CA address to retrieve certificates for the pods in the cluster. # CSR clients such as the Istio Agent and ingress gateways can use this to specify the CA endpoint. # If not set explicitly, default to the Istio discovery address. caAddress: "" # -- Configure a remote cluster data plane controlled by an external istiod. # When set to true, istiod is not deployed locally and only a subset of the other # discovery charts are enabled. externalIstiod: false # -- Configure a remote cluster as the config cluster for an external istiod. configCluster: false # -- Configure the policy for validating JWT. # Currently, two options are supported: "third-party-jwt" and "first-party-jwt". jwtPolicy: "third-party-jwt" # Mesh ID means 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. meshID: "" # 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 # meshNetworks: {} # -- Use the user-specified, secret volume mounted key and certs for Pilot and workloads. mountMtlsCerts: 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: true # -- Should be set to the name of the cluster this installation will run in. This is required for sidecar injection # to properly label proxies clusterName: "" # -- Network defines the network this cluster belong to. This name # corresponds to the networks in the map of mesh networks. network: "" # -- Configure the certificate provider for control plane communication. # Currently, two providers are supported: "kubernetes" and "istiod". # As some platforms may not have kubernetes signing APIs, # Istiod is the default pilotCertProvider: istiod sds: # -- The JWT token for SDS and the aud field of such JWT. See RFC 7519, section 4.1.3. # When a CSR is sent from Istio Agent to the CA (e.g. Istiod), this aud is to make sure the # JWT is intended for the CA. token: aud: istio-ca sts: # -- The service port used by Security Token Service (STS) server to handle token exchange requests. # Setting this port to a non-zero value enables STS server. servicePort: 0 # -- Configuration for each of the supported tracers tracer: # -- Configuration for envoy to send trace data to LightStep. # Disabled by default. # address: the <host>:<port> of the satellite pool # accessToken: required for sending data to the pool # datadog: # -- Host:Port for submitting traces to the Datadog agent. address: "$(HOST_IP):8126" lightstep: # -- example: lightstep-satellite:443 address: "" # -- example: abcdefg1234567 accessToken: "" stackdriver: # -- enables trace output to stdout. debug: false # -- The global default max number of message events per span. maxNumberOfMessageEvents: 200 # -- The global default max number of annotation events per span. maxNumberOfAnnotations: 200 # -- The global default max number of attributes per span. maxNumberOfAttributes: 200 # -- Use the Mesh Control Protocol (MCP) for configuring Istiod. Requires an MCP source. useMCP: false # -- Observability (o11y) configurations o11y: enabled: false promtail: image: repository: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/promtail tag: 2.9.4 port: 3101 resources: limits: cpu: 500m memory: 2Gi securityContext: {} # -- The name of the CA for workload certificates. # 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). caName: "" hub: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress clusterName: "" # -- meshConfig 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 meshConfig: enablePrometheusMerge: true # Config for the default ProxyConfig. # Initially using directly the proxy metadata - can also be activated using annotations # on the pod. This is an unsupported low-level API, pending review and decisions on # enabling the feature. Enabling the DNS listener is safe - and allows further testing # and gradual adoption by setting capture only on specific workloads. It also allows # VMs to use other DNS options, like dnsmasq or unbound. # -- 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. rootNamespace: # -- 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 trustDomain: "cluster.local" # TODO: the intent is to eventually have this enabled by default when security is used. # It is not clear if user should normally need to configure - the metadata is typically # used as an escape and to control testing and rollout, but it is not intended as a long-term # stable API. # What we may configure in mesh config is the ".global" - and use of other suffixes. # No hurry to do this in 1.6, we're trying to prove the code. gateway: name: "higress-gateway" # -- Number of Higress Gateway pods replicas: 2 image: gateway # -- Use a `DaemonSet` or `Deployment` kind: Deployment # -- The number of successive failed probes before indicating readiness failure. readinessFailureThreshold: 30 # -- The number of successive successed probes before indicating readiness success. readinessSuccessThreshold: 1 # -- The initial delay for readiness probes in seconds. readinessInitialDelaySeconds: 1 # -- The period between readiness probes. readinessPeriodSeconds: 2 # -- The readiness timeout seconds readinessTimeoutSeconds: 3 hub: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress tag: "" # -- revision declares which revision this gateway is a part of revision: "" rbac: # -- If enabled, roles will be created to enable accessing certificates from Gateways. This is not needed # when using http://gateway-api.org/. enabled: true serviceAccount: # -- If set, a service account will be created. Otherwise, the default is used create: true # -- Annotations to add to the service account annotations: {} # -- The name of the service account to use. # If not set, the release name is used name: "" # -- Pod environment variables env: {} httpPort: 80 httpsPort: 443 hostNetwork: false # -- Labels to apply to all resources labels: {} # -- Annotations to apply to all resources annotations: {} podAnnotations: prometheus.io/port: "15020" prometheus.io/scrape: "true" prometheus.io/path: "/stats/prometheus" sidecar.istio.io/inject: "false" # -- Labels to apply to the pod podLabels: {} # -- Define the security context for the pod. # If unset, this will be automatically set to the minimum privileges required to bind to port 80 and 443. # On Kubernetes 1.22+, this only requires the `net.ipv4.ip_unprivileged_port_start` sysctl. securityContext: ~ containerSecurityContext: ~ unprivilegedPortSupported: ~ service: # -- Type of service. Set to "None" to disable the service entirely type: LoadBalancer ports: - name: http2 port: 80 protocol: TCP targetPort: 80 - name: https port: 443 protocol: TCP targetPort: 443 annotations: {} loadBalancerIP: "" loadBalancerClass: "" loadBalancerSourceRanges: [] externalTrafficPolicy: "" rollingMaxSurge: 100% # -- If global.local is true, the default value is 100%, otherwise it is 25% rollingMaxUnavailable: 25% resources: requests: cpu: 2000m memory: 2048Mi limits: cpu: 2000m memory: 2048Mi autoscaling: enabled: false minReplicas: 1 maxReplicas: 5 targetCPUUtilizationPercentage: 80 nodeSelector: {} tolerations: [] affinity: {} # -- If specified, the gateway will act as a network gateway for the given network. networkGateway: "" metrics: # -- If true, create PodMonitor or VMPodScrape for gateway enabled: false # -- provider group name for CustomResourceDefinition, can be monitoring.coreos.com or operator.victoriametrics.com provider: monitoring.coreos.com interval: "" scrapeTimeout: "" honorLabels: false # -- for monitoring.coreos.com/v1.PodMonitor metricRelabelings: [] relabelings: [] # -- for operator.victoriametrics.com/v1beta1.VMPodScrape metricRelabelConfigs: [] relabelConfigs: [] # -- some more raw podMetricsEndpoints spec rawSpec: {} controller: name: "higress-controller" # -- Number of Higress Controller pods replicas: 1 image: higress hub: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress tag: "" env: {} labels: {} probe: httpGet: path: /ready port: 8888 initialDelaySeconds: 1 periodSeconds: 3 timeoutSeconds: 5 imagePullSecrets: [] rbac: create: true serviceAccount: # -- Specifies whether a service account should be created create: true # -- Annotations to add to the service account annotations: {} # -- The name of the service account to use. # -- If not set and create is true, a name is generated using the fullname template name: "" podAnnotations: {} # -- Labels to apply to the pod podLabels: {} podSecurityContext: {} # fsGroup: 2000 ports: - name: http protocol: TCP port: 8888 targetPort: 8888 - name: http-solver protocol: TCP port: 8889 targetPort: 8889 - name: grpc protocol: TCP port: 15051 targetPort: 15051 service: type: ClusterIP securityContext: {} # capabilities: # drop: # - ALL # readOnlyRootFilesystem: true # runAsNonRoot: true # runAsUser: 1000 resources: requests: cpu: 500m memory: 2048Mi limits: cpu: 1000m memory: 2048Mi nodeSelector: {} tolerations: [] affinity: {} autoscaling: enabled: false minReplicas: 1 maxReplicas: 5 targetCPUUtilizationPercentage: 80 automaticHttps: enabled: true email: "" ## -- Discovery Settings pilot: autoscaleEnabled: false autoscaleMin: 1 autoscaleMax: 5 replicaCount: 1 rollingMaxSurge: 100% rollingMaxUnavailable: 25% hub: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress tag: "" # -- Can be a full hub/image:tag image: pilot traceSampling: 1.0 # -- Resources for a small pilot install resources: requests: cpu: 500m memory: 2048Mi env: PILOT_SCOPE_GATEWAY_TO_NAMESPACE: "false" PILOT_ENABLE_METADATA_EXCHANGE: "false" PILOT_ENABLE_CROSS_CLUSTER_WORKLOAD_ENTRY: "false" VALIDATION_ENABLED: "false" cpu: targetAverageUtilization: 80 # -- if protocol sniffing is enabled for outbound enableProtocolSniffingForOutbound: true # -- if protocol sniffing is enabled for inbound enableProtocolSniffingForInbound: true nodeSelector: {} podAnnotations: {} serviceAnnotations: {} # -- You can use jwksResolverExtraRootCA to provide a root certificate # in PEM format. This will then be trusted by pilot when resolving # JWKS URIs. jwksResolverExtraRootCA: "" # -- This is used to set the source of configuration for # the associated address in configSource, if nothing is specified # the default MCP is assumed. configSource: subscribedResources: [] plugins: [] # -- The following is used to limit how long a sidecar can be connected # to a pilot. It balances out load across pilot instances at the cost of # increasing system churn. keepaliveMaxServerConnectionAge: 30m # -- Additional labels to apply to the deployment. deploymentLabels: {} ## Mesh config settings # -- Install the mesh config map, generated from values.yaml. # If false, pilot wil use default values (by default) or user-supplied values. configMap: true # -- Additional labels to apply on the pod level for monitoring and logging configuration. podLabels: {} # Tracing config settings tracing: enable: false sampling: 100 timeout: 500 skywalking: # access_token: "" service: "" port: 11800 # zipkin: # service: "" # port: 9411 # -- Downstream config settings downstream: idleTimeout: 180 maxRequestHeadersKb: 60 connectionBufferLimits: 32768 http2: maxConcurrentStreams: 100 initialStreamWindowSize: 65535 initialConnectionWindowSize: 1048576 routeTimeout: 0 # -- Upstream config settings upstream: idleTimeout: 10 connectionBufferLimits: 10485760 redis: redis: name: redis-stack-server # -- Specify the image image: "redis-stack-server" # -- Specify the tag tag: "7.4.0-v3" # -- Specify the number of replicas replicas: 1 # -- Specify the password, if not set, no password is used password: "" # -- Service parameters service: # -- Exporter service type type: ClusterIP # -- Exporter service port port: 6379 # -- Specify the resources resources: {} # -- NodeSelector Node labels for Redis nodeSelector: {} # -- Tolerations for Redis tolerations: [] # -- Affinity for Redis affinity: {} persistence: # -- Enable persistence on Redis, default is false enabled: false # -- If defined, storageClassName: <storageClass> # -- If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner storageClass: "" # -- Persistent Volume access modes accessModes: - ReadWriteOnce # -- Persistent Volume size size: 1Gi