## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
##
global: {}
#   imageRegistry: myRegistryName
#   imagePullSecrets:
#     - myRegistryKeySecretName

## Bitnami Fluentd image version
## ref: https://hub.docker.com/r/bitnami/fluentd/tags/
##
image:
  registry: docker.io
  repository: bitnami/fluentd
  tag: 1.11.4-debian-10-r0
  ## Specify a imagePullPolicy
  ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
  ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  ##
  pullPolicy: IfNotPresent
  ## Optionally specify an array of imagePullSecrets.
  ## Secrets must be manually created in the namespace.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  ##
  # pullSecrets:
  #   - myRegistryKeySecretName

## String to partially override fluentd.fullname template (will maintain the release name)
##
# nameOverride:

## String to fully override fluentd.fullname template
##
# fullnameOverride:

## Cluster Domain
##
clusterDomain: cluster.local

## Forwarder parameters
##
forwarder:
  ## Enable forwarder daemonset
  ##
  enabled: true

  ## Forwarder daemon user and group (set to root by default because it reads from host paths)
  ##
  daemonUser: root
  daemonGroup: root

  ## K8s Security Context for forwarder pods
  ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  ##
  securityContext:
    enabled: true
    runAsUser: 0
    runAsGroup: 0
    fsGroup: 0

  ## K8s Security Context for forwarder container
  ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  containerSecurityContext:
    enabled: true
    privileged: false
    allowPrivilegeEscalation: false
    capabilities:
      drop: ['ALL']
    # Requires mounting an `extraVolume` of type `emptyDir` into /tmp
    # readOnlyRootFilesystem: true

  ## Name of the config file that will be used by Fluentd at launch
  ## Fluentd will look for it under the /opt/bitnami/fluentd/conf directory
  ##
  configFile: fluentd.conf

  ## Name of the configMap that contains the configuration files for fluentd
  ## If not specified, one will be created by default
  ##
  # configMap:

  ## String with extra arguments for the Fluentd command line
  ## ref: https://docs.fluentd.org/deployment/command-line-option
  ##
  extraArgs: ""

  ## Extra environment variables to pass to the container
  ## extraEnv:
  ##   - name: MY_ENV_VAR
  ##     value: my_value
  ##
  extraEnv: []

  ## Forwarder containers' ports
  ##
  containerPorts:
    # - name: syslog-tcp
    #   containerPort: 5140
    #   protocol: TCP
    # - name: syslog-udp
    #   containerPort: 5140
    #   protocol: UDP
    # - name: tcp
    #   containerPort: 24224
    #   protocol: TCP
    - name: http
      containerPort: 9880
      protocol: TCP

  ## Service parameters
  ##
  service:
    ## Service type
    ##
    type: ClusterIP

    ## Service ports
    ##
    ports:
      # syslog-udp:
      #   port: 5140
      #   targetPort: syslog-udp
      #   protocol: UDP
      #   nodePort: 31514
      # syslog-tcp:
      #   port: 5140
      #   targetPort: syslog-tcp
      #   protocol: TCP
      #   nodePort: 31514
      # tcp:
      #   port: 24224
      #   targetPort: tcp
      #   protocol: TCP
      http:
        port: 9880
        targetPort: http
        protocol: TCP

    ## loadBalancerIP for the forwarders service (optional, cloud specific)
    ## ref: http://kubernetes.io/docs/user-guide/services/#type-loadbalancer
    ##
    # loadBalancerIP:

    ## Load Balancer sources
    ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
    ##
    # loadBalancerSourceRanges:
    #   - 10.10.10.0/24

    ## Set the Cluster IP to use
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
    ##
    # clusterIP: None

    ## Provide any additional annotations which may be required
    ##
    annotations: {}

  ## Forwarder containers' liveness and readiness probes
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1
  readinessProbe:
    enabled: true
    initialDelaySeconds: 5
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1

  ## Set up update strategy.
  ## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#daemonset-update-strategy
  ## Example:
  # updateStrategy:
  #  type: RollingUpdate
  #  rollingUpdate:
  #    maxSurge: 25%
  #    maxUnavailable: 25%
  updateStrategy:
    type: RollingUpdate

  ## Forwarder containers' resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ##
  resources:
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    limits: {}
    #   cpu: 500m
    #   memory: 1Gi
    requests: {}
    #   cpu: 300m
    #   memory: 512Mi

  ## Node labels for pod assignment
  ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  ##
  nodeSelector: {}

  ## Tolerations for pod assignment
  ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []

  ## Set Priority Class Name to allow priority control over other pods
  ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName: ""

  ## Affinity for pod assignment
  ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ##
  affinity: {}

  ## Annotations for the forwarder
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  annotations: {}

  ## Pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations: {}

  ## Extra labels to add to Pod
  podLabels: {}

  ## Pods Service Account
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  serviceAccount:
    ## Specifies whether a ServiceAccount should be created
    ##
    create: true
    ## The name of the ServiceAccount to use.
    ## If not set and create is true, a name is generated using the fluentd.fullname template
    # name:
    ## Annotations for the Service Account (evaluated as a template)
    ##
    annotations: {}

  ## Role Based Access
  ## ref: https://kubernetes.io/docs/admin/authorization/rbac/
  ##
  rbac:
    create: true
    pspEnabled: false

  ## Add init containers to forwarder pods
  ## For example:
  ## initContainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##
  initContainers: []

  ## Add sidecars to forwarder pods
  ##
  ## For example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars: []

  ## Extra volumes to mount
  ## Example Use Case: mount systemd journal volume
  # extraVolumes:
  #   - name: systemd
  #       hostPath:
  #         path: /run/log/journal/
  #
  # extraVolumeMounts:
  #   - name: systemd
  #     mountPath: /run/log/journal/

## Agregator parameters
##
aggregator:
  ## Enable Aggregator daemonset
  ##
  enabled: true
  ## Number of Aggregator replicas
  ##
  replicaCount: 1

  ## K8s Security Context for Aggregator pods
  ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  ##
  securityContext:
    enabled: true
    runAsUser: 1001
    runAsGroup: 1001
    fsGroup: 1001

  ## K8s Security Context for Aggregator containers
  ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  containerSecurityContext:
    enabled: true
    privileged: false
    allowPrivilegeEscalation: false
    capabilities:
      drop: ['ALL']
    # Requires mounting an `extraVolume` of type `emptyDir` into /tmp
    # readOnlyRootFilesystem: true

  ## Name of the config file that will be used by Fluentd at launch
  ## Fluentd will look for it under the /opt/bitnami/fluentd/conf directory
  ##
  configFile: fluentd.conf

  ## Name of the configMap that contains the configuration files for fluentd
  ## If not specified, one will be created by default
  ##
  # configMap:

  ## Port the Aggregator container will listen for logs. Leave it blank to ignore.
  ## You can specify other ports in the aggregator.containerPorts parameter
  ##
  port: 24224

  ## String with extra arguments for the Fluentd command line
  ## ref: https://docs.fluentd.org/deployment/command-line-option
  ##
  extraArgs: ""

  ## Extra environment variables to pass to the container
  ## extraEnv:
  ##   - name: MY_ENV_VAR
  ##     value: my_value
  ##
  extraEnv: []

  ## Aggregator containers' ports
  ##
  containerPorts:
    # - name: my-port
    #   containerPort: 24222
    #   protocol: TCP
    - name: http
      containerPort: 9880
      protocol: TCP

  ## Service parameters
  ##
  service:
    ## Service type
    ##
    type: ClusterIP

    ## Service ports
    ##
    ports:
      http:
        port: 9880
        targetPort: http
        protocol: TCP
      tcp:
        port: 24224
        targetPort: tcp
        protocol: TCP

    ## loadBalancerIP for the forwarders service (optional, cloud specific)
    ## ref: http://kubernetes.io/docs/user-guide/services/#type-loadbalancer
    ##
    # loadBalancerIP:

    ## Load Balancer sources
    ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
    ##
    # loadBalancerSourceRanges:
    #   - 10.10.10.0/24

    ## Set the Cluster IP to use
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
    ##
    # clusterIP: None

    ## Provide any additional annotations which may be required
    ##
    annotations: {}

  ## Configure extra options for liveness and readiness probes
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 60
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1
  readinessProbe:
    enabled: true
    initialDelaySeconds: 5
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 6
    successThreshold: 1

  ## Set up update strategy.
  ## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets
  ## Example:
  # updateStrategy:
  #  type: RollingUpdate
  #  rollingUpdate:
  #    maxSurge: 25%
  #    maxUnavailable: 25%
  updateStrategy:
    type: RollingUpdate

  ## Aggregator containers' resource requests and limits
  ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
  ##
  resources:
    # We usually recommend not to specify default resources and to leave this as a conscious
    # choice for the user. This also increases chances charts run on environments with little
    # resources, such as Minikube. If you do want to specify resources, uncomment the following
    # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
    limits: {}
    #   cpu: 500m
    #   memory: 1Gi
    requests: {}
    #   cpu: 300m
    #   memory: 512Mi

  ## Node labels for pod assignment
  ## Ref: https://kubernetes.io/docs/user-guide/node-selection/
  ##
  nodeSelector: {}

  ## Tolerations for pod assignment
  ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []

  ## Affinity for pod assignment
  ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ##
  affinity: {}

  ## Annotations for the aggregator
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  annotations: {}

  ## Pod annotations
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations: {}

  ## Extra labels to add to Pod
  podLabels: {}

  ## Pods Service Account
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  serviceAccount:
    ## Specifies whether a ServiceAccount should be created
    ##
    create: false
    ## The name of the ServiceAccount to use.
    ## If not set and create is true, a name is generated using the fluentd.fullname template
    # name:
    ## Annotations for the Service Account (evaluated as a template)
    ##
    annotations: {}

  ## Persist data to a persistent volume
  persistence:
    enabled: false
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
    ##   GKE, AWS & OpenStack)
    ##
    # storageClass: "-"
    accessMode: ReadWriteOnce
    size: 10Gi

  ## Add init containers to aggregator pods
  ## Example
  ##
  ## initContainers:
  ##   - name: do-something
  ##     image: busybox
  ##     command: ['do', 'something']
  ##
  initContainers: []

  ## Add sidecars to aggregator pods
  ##
  ## For example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars: []

  ## Extra volumes to mount
  ## Example Use Case: mount an emptyDir into /tmp to support running with readOnlyRootFileSystem
  # extraVolumes:
  #   - name: tmpDir
  #       emptyDir: {}
  #
  # extraVolumeMounts:
  #   - name: tmpDir
  #     mountPath: /tmp

## Pods Service Account
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
##
## This top-level global entry is DEPRECATED. Please use "forwarder.serviceAccount" instead. Only the
## forwarder was affected by the historical usage here.
serviceAccount: {}

## Role Based Access
## ref: https://kubernetes.io/docs/admin/authorization/rbac/
##
## This top-level global entry is DEPRECATED. Please use "forwarder.rbac" instead. Only the
## forwarder was affected by the historical usage here.
rbac: {}

## Prometheus Exporter / Metrics
##
metrics:
  enabled: false
  ## Prometheus Exporter service parameters
  ##
  service:
    ## Service type
    ##
    type: ClusterIP
    ## Service port
    ##
    port: 24231
    ## loadBalancerIP for the Prometheus Exporter service (optional, cloud specific)
    ## ref: http://kubernetes.io/docs/user-guide/services/#type-loadbalancer
    ##
    # loadBalancerIP:
    ## Annotations for the Prometheus Exporter service service
    ##
    annotations:
      prometheus.io/scrape: "true"
      prometheus.io/port: "24231"
      prometheus.io/path: "/metrics"

  ## Prometheus Operator ServiceMonitor configuration
  ##
  serviceMonitor:
    enabled: false
    ## Namespace in which Prometheus is running
    ##
    # namespace: monitoring

    ## Interval at which metrics should be scraped.
    ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
    ##
    # interval: 10s

    ## Timeout after which the scrape is ended
    ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
    ##
    # scrapeTimeout: 10s

    ## ServiceMonitor selector labels
    ## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration
    ##
    # selector:
    #   prometheus: my-prometheus

## Mount TLS certificates
##
tls:
  enabled: false
  certificate: |-
  key: |-
  # existingSecret: name-of-existing-secret-to-certificates
