## Install Default RBAC roles and bindings
rbac:
  install: false
  apiVersion: v1beta1

istio:
  install: false
  release: 0.2.12

## Enable Istio auth feature
## This deploys a CA in the namespace and enables mTLS between the services
auth:
  enabled: true

## Initializer configuration
initializer:
  customConfigMap: false
  enabled: false
  policy: enabled

  deployment:
    name: initializer
    image: docker.io/istio/sidecar_initializer
    initImage: docker.io/istio/proxy_init
    proxyImage: docker.io/istio/proxy
    imagePullPolicy: IfNotPresent
    replicas: 1
    annotations:
      sidecar.istio.io/inject: "false"
    ## Node labels for pod assignment
    ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
    ##
    nodeSelector: {}
    resources: {}
    #  limits:
    #   cpu: 100m
    #   memory: 128Mi
    # requests:
    #   cpu: 100m
    #   memory: 128Mi

## Mixer configuration
mixer:
  customConfigMap: false

  service:
    type: ClusterIP
    annotations: {}
    externalTcpPort: 9091
    externalHttpHeathPort: 9093
    externalStatsdPromPort: 9102
    externalStatsdUdpPort: 9125
    externalConfigApiPort: 9094
    externalPrometheusPort: 42422

  deployment:
    name: mixer
    image: docker.io/istio/mixer
    imagePullPolicy: IfNotPresent
    replicas: 1
    annotations:
      sidecar.istio.io/inject: "false"
    ## Node labels for pod assignment
    ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
    ##
    nodeSelector: {}
    resources: {}
    #  limits:
    #    cpu: 100m
    #    memory: 128Mi
    #  requests:
    #    cpu: 100m
    #    memory: 128Mi

## Pilot configuration
pilot:
  name: pilot
  customConfigMap: false

  service:
    type: ClusterIP
    externalHttpDiscovery: 8080
    externalAdmissionWebhookServer: 443

  deployment:
    replicas: 1
    annotations:
      sidecar.istio.io/inject: "false"
    ## Node labels for pod assignment
    ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
    ##
    nodeSelector: {}

    discovery:
      name: discovery
      image: docker.io/istio/pilot
      imagePullPolicy: IfNotPresent
      resources: {}
      #  limits:
      #    cpu: 100m
      #    memory: 128Mi
      #  requests:
      #    cpu: 100m
      #    memory: 128Mi

## Ingress configuration
ingress:

  service:
    type: LoadBalancer
    externalHttpPort: 80
    externalHttpsPort: 443

  deployment:
    name: ingress
    annotations:
      sidecar.istio.io/inject: "false"
    image: docker.io/istio/proxy_debug
    imagePullPolicy: IfNotPresent
    replicas: 1
    ## Node labels for pod assignment
    ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
    ##
    nodeSelector: {}
    resources:
    #  limits:
    #    cpu: 100m
    #    memory: 128Mi
    #  requests:
    #    cpu: 100m
    #    memory: 128Mi

## Engress configuration
egress:

  service:
    type: ClusterIP
    externalHttpPort: 80

  deployment:
    name: egress
    annotations:
      sidecar.istio.io/inject: "false"
    image: docker.io/istio/proxy_debug
    imagePullPolicy: IfNotPresent
    replicas: 1
    ## Node labels for pod assignment
    ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
    ##
    nodeSelector: {}
    resources: {}
    #  limits:
    #    cpu: 100m
    #    memory: 128Mi
    #  requests:
    #    cpu: 100m
    #    memory: 128Mi

## CA configuration
## Only installed if auth.enabled
ca:

  deployment:
    name: ca
    annotations:
      sidecar.istio.io/inject: "false"
    image: docker.io/istio/istio-ca
    imagePullPolicy: IfNotPresent
    replicas: 1
    ## Node labels for pod assignment
    ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
    ##
    nodeSelector: {}
    resources: {}
    #  limits:
    #    cpu: 100m
    #    memory: 128Mi
    #  requests:
    #    cpu: 100m
    #    memory: 128Mi

## Addons configuration
## Each addon may be disabled
addons:

  zipkin:

    enabled: true

    service:
      type: NodePort
      externalPort: 9411

    deployment:
      name: zipkin
      annotations:
        sidecar.istio.io/inject: "false"
      image: docker.io/openzipkin/zipkin
      imageTag: latest
      imagePullPolicy: IfNotPresent
      replicas: 1
      ## Node labels for pod assignment
      ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
      ##
      nodeSelector: {}
      resources: {}
      #  limits:
      #    cpu: 100m
      #    memory: 128Mi
      #  requests:
      #    cpu: 100m
      #    memory: 128Mi

  prometheus:

    enabled: true

    service:
      type: NodePort
      externalPort: 9090
      annotations:
        prometheus.io/scrape: 'true'

    deployment:
      name: prometheus
      annotations:
        sidecar.istio.io/inject: "false"
      image: quay.io/coreos/prometheus
      imageTag: v1.1.1
      imagePullPolicy: IfNotPresent
      replicas: 1
      ## Node labels for pod assignment
      ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
      ##
      nodeSelector: {}
      resources: {}
      #  limits:
      #    cpu: 100m
      #    memory: 128Mi
      #  requests:
      #    cpu: 100m
      #    memory: 128Mi

  grafana:

    enabled: true

    service:
      type: NodePort
      externalPort: 3000

    deployment:
      name: grafana
      annotations:
        sidecar.istio.io/inject: "false"
      image: docker.io/istio/grafana
      imagePullPolicy: IfNotPresent
      replicas: 1
      ## Node labels for pod assignment
      ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
      ##
      nodeSelector: {}
      resources: {}
      #  limits:
      #    cpu: 100m
      #    memory: 128Mi
      #  requests:
      #    cpu: 100m
      #    memory: 128Mi

  servicegraph:

    enabled: true

    service:
      type: NodePort
      externalPort: 8088

    deployment:
      name: servicegraph
      annotations:
        sidecar.istio.io/inject: "false"
      image: docker.io/istio/servicegraph
      imagePullPolicy: IfNotPresent
      replicas: 1
      ## Node labels for pod assignment
      ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
      ##
      nodeSelector: {}
      resources: {}
      #  limits:
      #    cpu: 100m
      #    memory: 128Mi
      #  requests:
      #    cpu: 100m
      #    memory: 128Mi
