## @section Global parameters
## 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, imagePullSecrets and storageClass

## @param global.imageRegistry Global Docker image registry
## @param global.imagePullSecrets Global Docker registry secret names as an array
## @param global.storageClass Global StorageClass for Persistent Volume(s)
##
global:
  imageRegistry: ""
  ## E.g.
  ## imagePullSecrets:
  ##   - myRegistryKeySecretName
  ##
  imagePullSecrets: []
  storageClass: ""

## @section Common parameters

## @param nameOverride String to partially override scdf.fullname template (will maintain the release name).
##
nameOverride: ""
## @param fullnameOverride String to fully override scdf.fullname template.
##
fullnameOverride: ""
## @param commonAnnotations Annotations to add to all deployed objects
##
commonAnnotations: {}
## @param commonLabels Labels to add to all deployed objects
##
commonLabels: {}
## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
##
kubeVersion: ""
## @param clusterDomain Default Kubernetes cluster domain
##
clusterDomain: cluster.local
## @param extraDeploy Array of extra objects to deploy with the release
##
extraDeploy: []

## @section Dataflow Server parameters

## Spring Cloud Dataflow Server parameters.
##
server:
  ## Bitnami Spring Cloud Dataflow Server image
  ## ref: https://hub.docker.com/r/bitnami/spring-cloud-dataflow/tags/
  ## @param server.image.registry Spring Cloud Dataflow image registry
  ## @param server.image.repository Spring Cloud Dataflow image repository
  ## @param server.image.tag Spring Cloud Dataflow image tag (immutable tags are recommended)
  ## @param server.image.pullPolicy Spring Cloud Dataflow image pull policy
  ## @param server.image.pullSecrets Specify docker-registry secret names as an array
  ## @param server.image.debug Enable image debug mode
  ##
  image:
    registry: docker.io
    repository: bitnami/spring-cloud-dataflow
    tag: 2.9.4-debian-10-r36
    ## Specify a imagePullPolicy. Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
    ## ref: https://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/
    ## e.g:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
    ## Set to true if you would like to see extra information on logs
    ##
    debug: false
  ## @param server.hostAliases Deployment pod host aliases
  ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  ##
  hostAliases: []
  composedTaskRunner:
    ## Bitnami Spring Cloud Dataflow Composed Task Runner image
    ## ref: https://hub.docker.com/r/bitnami/spring-cloud-dataflow/tags/
    ## @param server.composedTaskRunner.image.registry Spring Cloud Dataflow Composed Task Runner image registry
    ## @param server.composedTaskRunner.image.repository Spring Cloud Dataflow Composed Task Runner image repository
    ## @param server.composedTaskRunner.image.tag Spring Cloud Dataflow Composed Task Runner image tag (immutable tags are recommended)
    ##
    image:
      registry: docker.io
      repository: bitnami/spring-cloud-dataflow-composed-task-runner
      tag: 2.9.4-debian-10-r48
  ## Spring Cloud Dataflow Server configuration parameters
  ##
  configuration:
    ## @param server.configuration.streamingEnabled Enables or disables streaming data processing
    ##
    streamingEnabled: true
    ## @param server.configuration.batchEnabled Enables or disables batch data (tasks and schedules) processing
    ##
    batchEnabled: true
    ## @param server.configuration.accountName The name of the account to configure for the Kubernetes platform
    ##
    accountName: default
    ## @param server.configuration.trustK8sCerts Trust K8s certificates when querying the Kubernetes API
    ##
    trustK8sCerts: false
    ## @param server.configuration.containerRegistries Container registries configuration
    ## Example:
    ## containerRegistries:
    ##   default:
    ##     registry-host: registry-1.docker.io
    ##     authorization-type: dockeroauth2
    ##
    containerRegistries: {}
    ## @param server.configuration.grafanaInfo Endpoint to the grafana instance (Deprecated: use the metricsDashboard instead)
    ##
    grafanaInfo: ""
    ## @param server.configuration.metricsDashboard Endpoint to the metricsDashboard instance
    ##
    metricsDashboard: ""
    ## @param server.configuration.defaultSpringApplicationJSON Injects default values for environment variable SPRING_APPLICATION_JSON
    ## {
    ##   "maven": {
    ##     "local-repository": null,
    ##     "remote-repositories": {
    ##       "repo1": {
    ##         "url": "https://repo.spring.io/libs-snapshot"
    ##       }
    ##     }
    ##   }
    ## }
    ##
    defaultSpringApplicationJSON: true
  ## @param server.existingConfigmap ConfigMap with Spring Cloud Dataflow Server Configuration
  ## NOTE: When it's set the server.configuration.* and deployer.*
  ##  parameters are ignored,
  ##
  existingConfigmap: ""
  ## @param server.command Override default container command (useful when using custom images)
  ##
  command: []
  ## @param server.args Override default container args (useful when using custom images)
  ##
  args: []
  ## @param server.lifecycleHooks for the Dataflow server container(s) to automate configuration before or after startup
  ##
  lifecycleHooks: {}
  ## @param server.extraEnvVars Extra environment variables to be set on Dataflow server container
  ## E.g:
  ## extraEnvVars:
  ##   - name: FOO
  ##     value: BAR
  ##
  extraEnvVars: []
  ## @param server.extraEnvVarsCM ConfigMap with extra environment variables
  ##
  extraEnvVarsCM: ""
  ## @param server.extraEnvVarsSecret Secret with extra environment variables
  ##
  extraEnvVarsSecret: ""
  ## @param server.replicaCount Number of Dataflow server replicas to deploy
  ##
  replicaCount: 1
  ## @param server.podAffinityPreset Dataflow server pod affinity preset. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAffinityPreset: ""
  ## @param server.podAntiAffinityPreset Dataflow server pod anti-affinity preset. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAntiAffinityPreset: soft
  ## @param server.containerPort Dataflow server port
  ##
  containerPort: 8080
  ## Dataflow Server node affinity preset
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  ##
  nodeAffinityPreset:
    ## @param server.nodeAffinityPreset.type Dataflow server node affinity preset type. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
    ##
    type: ""
    ## @param server.nodeAffinityPreset.key Dataflow server node label key to match Ignored if `server.affinity` is set.
    ## E.g.
    ## key: "kubernetes.io/e2e-az-name"
    ##
    key: ""
    ## @param server.nodeAffinityPreset.values Dataflow server node label values to match. Ignored if `server.affinity` is set.
    ## E.g.
    ## values:
    ##   - e2e-az1
    ##   - e2e-az2
    ##
    values: []
  ## @param server.affinity Dataflow server affinity for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ## Note: server.podAffinityPreset, server.podAntiAffinityPreset, and server.nodeAffinityPreset will be ignored when it's set
  ##
  affinity: {}
  ## @param server.nodeSelector Dataflow server node labels for pod assignment
  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  ##
  nodeSelector: {}
  ## @param server.tolerations Dataflow server tolerations for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []
  ## @param server.podAnnotations Annotations for Dataflow server pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations: {}
  ## @param server.updateStrategy.type Deployment strategy type for Dataflow server pods.
  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  ## e.g:
  ## updateStrategy:
  ##  type: RollingUpdate
  ##  rollingUpdate:
  ##    maxSurge: 25%
  ##    maxUnavailable: 25%
  ##
  updateStrategy:
    type: RollingUpdate
  ## @param server.podLabels Extra labels for Dataflow Server pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels: {}
  ## @param server.priorityClassName Dataflow Server pods' priority
  ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName: ""
  ## @param server.schedulerName Name of the k8s scheduler (other than default)
  ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  ##
  schedulerName: ""
  ## @param server.topologySpreadConstraints Topology Spread Constraints for pod assignment
  ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  ## The value is evaluated as a template
  ##
  topologySpreadConstraints: []
  ## Dataflow Server pods' Security Context.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param server.podSecurityContext.enabled Enabled Dataflow Server pods' Security Context
  ## @param server.podSecurityContext.fsGroup Group ID for the volumes of the pod
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 1001
  ## Dataflow Server containers' Security Context (only main container).
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  ## @param server.containerSecurityContext.enabled Enabled Dataflow Server containers' Security Context
  ## @param server.containerSecurityContext.runAsUser Set Dataflow Server container's Security Context runAsUser
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 1001
  ## Dataflow Server containers' resource requests and limits.
  ## ref: https://kubernetes.io/docs/user-guide/compute-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:'.
  ## @param server.resources.limits The resources limits for the Dataflow server container
  ## @param server.resources.requests The requested resources for the Dataflow server container
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 100m
    ##    memory: 128Mi
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 128Mi
    requests: {}
  ## Dataflow Server pods' startup probes. Evaluated as a template.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param server.startupProbe.enabled Enable startupProbe
  ## @param server.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
  ## @param server.startupProbe.periodSeconds Period seconds for startupProbe
  ## @param server.startupProbe.timeoutSeconds Timeout seconds for startupProbe
  ## @param server.startupProbe.failureThreshold Failure threshold for startupProbe
  ## @param server.startupProbe.successThreshold Success threshold for startupProbe
  ##
  startupProbe:
    enabled: false
    initialDelaySeconds: 120
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## Dataflow Server pods' liveness probes. Evaluated as a template.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param server.livenessProbe.enabled Enable livenessProbe
  ## @param server.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  ## @param server.livenessProbe.periodSeconds Period seconds for livenessProbe
  ## @param server.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  ## @param server.livenessProbe.failureThreshold Failure threshold for livenessProbe
  ## @param server.livenessProbe.successThreshold Success threshold for livenessProbe
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 120
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## Dataflow Server pods' readiness probes. Evaluated as a template.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param server.readinessProbe.enabled Enable readinessProbe
  ## @param server.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  ## @param server.readinessProbe.periodSeconds Period seconds for readinessProbe
  ## @param server.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  ## @param server.readinessProbe.failureThreshold Failure threshold for readinessProbe
  ## @param server.readinessProbe.successThreshold Success threshold for readinessProbe
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 120
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## @param server.customStartupProbe Override default startup probe
  ##
  customStartupProbe: {}
  ## @param server.customLivenessProbe Override default liveness probe
  ##
  customLivenessProbe: {}
  ## @param server.customReadinessProbe Override default readiness probe
  ##
  customReadinessProbe: {}
  ## Dataflow Server Service parameters.
  ##
  service:
    ## @param server.service.type Kubernetes service type
    ##
    type: ClusterIP
    ## @param server.service.port Service HTTP port
    ##
    port: 8080
    ## @param server.service.nodePort Specify the nodePort value for the LoadBalancer and NodePort service types
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
    ##
    nodePort: ""
    ## @param server.service.clusterIP Dataflow server service cluster IP
    ## e.g:
    ## clusterIP: None
    ##
    clusterIP: ""
    ## @param server.service.externalTrafficPolicy Enable client source IP preservation
    ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
    ##
    externalTrafficPolicy: Cluster
    ## @param server.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
    ## Set the LoadBalancer service type to internal only
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
    ##
    loadBalancerIP: ""
    ## @param server.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
    ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
    ## e.g:
    ## loadBalancerSourceRanges:
    ## - 10.10.10.0/24
    ##
    loadBalancerSourceRanges: []
    ## @param server.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
    ##
    extraPorts: []
    ## @param server.service.annotations Provide any additional annotations which may be required. Evaluated as a template.
    ##
    annotations: {}
    ## @param server.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
    ## If "ClientIP", consecutive client requests will be directed to the same Pod
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    ##
    sessionAffinity: None
    ## @param server.service.sessionAffinityConfig Additional settings for the sessionAffinity
    ## sessionAffinityConfig:
    ##   clientIP:
    ##     timeoutSeconds: 300
    sessionAffinityConfig: {}
  ## Configure the ingress resource that allows you to access Dataflow Server
  ##
  ingress:
    ## @param server.ingress.enabled Enable ingress controller resource
    ##
    enabled: false
    ## @param server.ingress.path The Path to WordPress. You may need to set this to '/*' in order to use this with ALB ingress controllers.
    ##
    path: /
    ## @param server.ingress.apiVersion Force Ingress API version (automatically detected if not set)
    ##
    apiVersion: ""
    ## @param server.ingress.pathType Ingress path type
    ##
    pathType: ImplementationSpecific
    ## DEPRECATED: Use server.ingress.annotations instead of server.ingress.certManager
    ## certManager: false
    ##

    ## @param server.ingress.hostname Default host for the ingress resource
    ##
    hostname: dataflow.local
    ## @param server.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
    ## For a full list of possible ingress annotations, please see
    ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
    ## Use this parameter to set the required annotations for cert-manager, see
    ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
    ##
    ## e.g:
    ## annotations:
    ##   kubernetes.io/ingress.class: nginx
    ##   cert-manager.io/cluster-issuer: cluster-issuer-name
    ##
    annotations: {}
    ## @param server.ingress.tls Enable TLS configuration for the hostname defined at ingress.hostname parameter
    ## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }}
    ## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
    ##
    tls: false
    ## @param server.ingress.certManager Add the corresponding annotations for cert-manager integration
    ##
    certManager: false
    ## @param server.ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
    ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
    ## extraHosts:
    ## - name: dataflow.local
    ##   path: /
    ##
    extraHosts: []
    ## @param server.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
    ## e.g:
    ## extraPaths:
    ## - path: /*
    ##   backend:
    ##     serviceName: ssl-redirect
    ##     servicePort: use-annotation
    ##
    extraPaths: []
    ## @param server.ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
    ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
    ## extraTls:
    ## - hosts:
    ##     - dataflow.local
    ##   secretName: dataflow.local-tls
    ##
    extraTls: []
    ## @param server.ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
    ## key and certificate should start with -----BEGIN CERTIFICATE----- or
    ## -----BEGIN RSA PRIVATE KEY-----
    ##
    ## name should line up with a tlsSecret set further up
    ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
    ##
    ## It is also possible to create and manage the certificates outside of this helm chart
    ## Please see README.md for more information
    ## e.g:
    ## - name: dataflow.local-tls
    ##   key:
    ##   certificate:
    ##
    secrets: []
    ## @param server.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
    ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
    ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
    ##
    ingressClassName: ""
    ## @param server.ingress.extraRules Additional rules to be covered with this ingress record
    ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
    ## e.g:
    ## extraRules:
    ## - host: example.local
    ##     http:
    ##       path: /
    ##       backend: 
    ##         service:
    ##           name: example-svc
    ##           port:
    ##             name: http
    ##
    extraRules: []
  ## @param server.initContainers Add init containers to the Dataflow Server pods
  ## Example:
  ## initContainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  initContainers: []
  ## @param server.sidecars Add sidecars to the Dataflow Server pods
  ## Example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars: []
  ## Dataflow Server Pod Disruption Budget configuration
  ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  ##
  pdb:
    ## @param server.pdb.create Enable/disable a Pod Disruption Budget creation
    ##
    create: false
    ## @param server.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
    ##
    minAvailable: 1
    ## @param server.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
    ##
    maxUnavailable: ""
  ## Dataflow Server Autoscaling parameters.
  ##
  autoscaling:
    ## @param server.autoscaling.enabled Enable autoscaling for Dataflow server
    ## @param server.autoscaling.minReplicas Minimum number of Dataflow server replicas
    ## @param server.autoscaling.maxReplicas Maximum number of Dataflow server replicas
    ## @param server.autoscaling.targetCPU Target CPU utilization percentage
    ## @param server.autoscaling.targetMemory Target Memory utilization percentage
    ##
    enabled: false
    minReplicas: ""
    maxReplicas: ""
    targetCPU: ""
    targetMemory: ""
  ## @param server.extraVolumes Extra Volumes to be set on the Dataflow Server Pod
  ## e.g:
  ## extraVolumes:
  ##   - name: sample
  ##     emptyDir: {}
  ##
  extraVolumes: []
  ## @param server.extraVolumeMounts Extra VolumeMounts to be set on the Dataflow Container
  ## e.g:
  ## extraVolumeMounts:
  ##   - name: sample
  ##     mountPath: /temp/sample
  ##
  extraVolumeMounts: []
  ## Java Debug Wire Protocol (JDWP) parameters.
  ##
  jdwp:
    ## @param server.jdwp.enabled Set to true to enable Java debugger
    ##
    enabled: false
    ## @param server.jdwp.port Specify port for remote debugging
    ##
    port: 5005
  ## @param server.proxy Add proxy configuration for SCDF server
  ## Example:
  ## proxy:
  ##   host: "myproxy.com"
  ##   port: 8080
  ##   user: ""
  ##   password: ""
  ##
  proxy: {}
  ## @param server.applicationProperties Specify common application properties added by SCDF server to streams and/or tasks
  ## ref: https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#spring-cloud-dataflow-global-properties
  applicationProperties: {}

## @section Dataflow Skipper parameters

## Spring Cloud Skipper parameters.
##
skipper:
  ## @param skipper.enabled Enable Spring Cloud Skipper component
  ## Note: it'll be also enabled if streams are enabled in Dataflow server configuration.
  ##
  enabled: true
  ## @param skipper.hostAliases Deployment pod host aliases
  ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  ##
  hostAliases: []
  ## Bitnami Spring Cloud Skipper image
  ## ref: https://hub.docker.com/r/bitnami/spring-cloud-skipper/tags/
  ## @param skipper.image.registry Spring Cloud Skipper image registry
  ## @param skipper.image.repository Spring Cloud Skipper image repository
  ## @param skipper.image.tag Spring Cloud Skipper image tag (immutable tags are recommended)
  ## @param skipper.image.pullPolicy Spring Cloud Skipper image pull policy
  ## @param skipper.image.pullSecrets Specify docker-registry secret names as an array
  ## @param skipper.image.debug Enable image debug mode
  ##
  image:
    registry: docker.io
    repository: bitnami/spring-cloud-skipper
    tag: 2.8.4-debian-10-r48
    ## Specify a imagePullPolicy. Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
    ## ref: https://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/
    ## e.g:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
    ## Set to true if you would like to see extra information on logs
    ##
    debug: false
  ## Skipper Server configuration parameters
  ##
  configuration:
    ## @param skipper.configuration.accountName The name of the account to configure for the Kubernetes platform
    ##
    accountName: default
    ## @param skipper.configuration.trustK8sCerts Trust K8s certificates when querying the Kubernetes API
    ##
    trustK8sCerts: false
  ## @param skipper.existingConfigmap Name of existing ConfigMap with Skipper server configuration
  ## NOTE: When it's set the server.configuration.* and deployer.*
  ##  parameters are ignored,
  ##
  existingConfigmap: ""
  ## @param skipper.command Override default container command (useful when using custom images)
  ##
  command: []
  ## @param skipper.args Override default container args (useful when using custom images)
  ##
  args: []
  ## @param skipper.lifecycleHooks for the Skipper container(s) to automate configuration before or after startup
  ##
  lifecycleHooks: {}
  ## @param skipper.extraEnvVars Extra environment variables to be set on Skipper server container
  ## E.g:
  ## extraEnvVars:
  ##   - name: FOO
  ##     value: BAR
  ##
  extraEnvVars: []
  ## @param skipper.extraEnvVarsCM Name of existing ConfigMap containing extra environment variables
  ##
  extraEnvVarsCM: ""
  ## @param skipper.extraEnvVarsSecret Name of existing Secret containing extra environment variables
  ##
  extraEnvVarsSecret: ""
  ## @param skipper.replicaCount Number of Skipper server replicas to deploy
  ##
  replicaCount: 1
  ## @param skipper.podAffinityPreset Skipper pod affinity preset. Ignored if `skipper.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAffinityPreset: ""
  ## @param skipper.podAntiAffinityPreset Skipper pod anti-affinity preset. Ignored if `skipper.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAntiAffinityPreset: soft
  ## Skipper node affinity preset
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  ##
  nodeAffinityPreset:
    ## @param skipper.nodeAffinityPreset.type Skipper node affinity preset type. Ignored if `skipper.affinity` is set. Allowed values: `soft` or `hard`
    ##
    type: ""
    ## @param skipper.nodeAffinityPreset.key Skipper node label key to match Ignored if `skipper.affinity` is set.
    ## E.g.
    ## key: "kubernetes.io/e2e-az-name"
    ##
    key: ""
    ## @param skipper.nodeAffinityPreset.values Skipper node label values to match. Ignored if `skipper.affinity` is set.
    ## E.g.
    ## values:
    ##   - e2e-az1
    ##   - e2e-az2
    ##
    values: []
  ## @param skipper.affinity Skipper affinity for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ## Note: skipper.podAffinityPreset, skipper.podAntiAffinityPreset, and skipper.nodeAffinityPreset will be ignored when it's set
  ##
  affinity: {}
  ## @param skipper.nodeSelector Skipper node labels for pod assignment
  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  ##
  nodeSelector: {}
  ## @param skipper.tolerations Skipper tolerations for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []
  ## @param skipper.podAnnotations Annotations for Skipper server pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations: {}
  ## @param skipper.updateStrategy.type Deployment strategy type for Skipper server pods.
  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  ## e.g:
  ## updateStrategy:
  ##  type: RollingUpdate
  ##  rollingUpdate:
  ##    maxSurge: 25%
  ##    maxUnavailable: 25%
  ##
  updateStrategy:
    type: RollingUpdate
  ## @param skipper.podLabels Extra labels for Skipper pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels: {}
  ## @param skipper.priorityClassName Controller priorityClassName
  ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName: ""
  ## @param skipper.schedulerName Name of the k8s scheduler (other than default)
  ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  ##
  schedulerName: ""
  ## @param skipper.topologySpreadConstraints Topology Spread Constraints for pod assignment
  ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  ## The value is evaluated as a template
  ##
  topologySpreadConstraints: []
  ## Skipper pods' Security Context.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param skipper.podSecurityContext.enabled Enabled Skipper pods' Security Context
  ## @param skipper.podSecurityContext.fsGroup Group ID for the volumes of the pod
  ##
  podSecurityContext:
    enabled: true
    fsGroup: 1001
  ## Skipper containers' Security Context (only main container).
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  ## @param skipper.containerSecurityContext.enabled Enabled Datafkiw Skipper containers' Security Context
  ## @param skipper.containerSecurityContext.runAsUser Set Dataflow Skipper container's Security Context runAsUser
  ##
  containerSecurityContext:
    enabled: true
    runAsUser: 1001
  ## Skipper containers' resource requests and limits.
  ## ref: https://kubernetes.io/docs/user-guide/compute-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:'.
  ## @param skipper.resources.limits The resources limits for the Skipper server container
  ## @param skipper.resources.requests The requested resources for the Skipper server container
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 100m
    ##    memory: 128Mi
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 128Mi
    requests: {}
  ## Configure extra options for startup probe
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param skipper.startupProbe.enabled Enable startupProbe
  ## @param skipper.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
  ## @param skipper.startupProbe.periodSeconds Period seconds for startupProbe
  ## @param skipper.startupProbe.timeoutSeconds Timeout seconds for startupProbe
  ## @param skipper.startupProbe.failureThreshold Failure threshold for startupProbe
  ## @param skipper.startupProbe.successThreshold Success threshold for startupProbe
  ##
  startupProbe:
    enabled: false
    initialDelaySeconds: 120
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## Configure extra options for liveness probe
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param skipper.livenessProbe.enabled Enable livenessProbe
  ## @param skipper.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  ## @param skipper.livenessProbe.periodSeconds Period seconds for livenessProbe
  ## @param skipper.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  ## @param skipper.livenessProbe.failureThreshold Failure threshold for livenessProbe
  ## @param skipper.livenessProbe.successThreshold Success threshold for livenessProbe
  ##
  livenessProbe:
    enabled: true
    initialDelaySeconds: 120
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## Configure extra options for readiness probe
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param skipper.readinessProbe.enabled Enable readinessProbe
  ## @param skipper.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  ## @param skipper.readinessProbe.periodSeconds Period seconds for readinessProbe
  ## @param skipper.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  ## @param skipper.readinessProbe.failureThreshold Failure threshold for readinessProbe
  ## @param skipper.readinessProbe.successThreshold Success threshold for readinessProbe
  ##
  readinessProbe:
    enabled: true
    initialDelaySeconds: 120
    timeoutSeconds: 1
    periodSeconds: 20
    failureThreshold: 6
    successThreshold: 1
  ## @param skipper.customStartupProbe Override default startup probe
  ##
  customStartupProbe: {}
  ## @param skipper.customLivenessProbe Override default liveness probe
  ##
  customLivenessProbe: {}
  ## @param skipper.customReadinessProbe Override default readiness probe
  ##
  customReadinessProbe: {}
  ## Skipper Service parameters.
  ##
  service:
    ## @param skipper.service.type Kubernetes service type
    ##
    type: ClusterIP
    ## @param skipper.service.port Service HTTP port
    ##
    port: 80
    ## @param skipper.service.nodePort Service HTTP node port
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
    ##
    nodePort: ""
    ## @param skipper.service.clusterIP Skipper server service cluster IP
    ## e.g:
    ## clusterIP: None
    ##
    clusterIP: ""
    ## @param skipper.service.externalTrafficPolicy Enable client source IP preservation
    ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
    ##
    externalTrafficPolicy: Cluster
    ## @param skipper.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
    ##
    loadBalancerIP: ""
    ## @param skipper.service.loadBalancerSourceRanges Address that are allowed when service is LoadBalancer
    ## Set the LoadBalancer service type to internal only
    ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
    ## e.g:
    ## loadBalancerSourceRanges:
    ## - 10.10.10.0/24
    ##
    loadBalancerSourceRanges: []
    ## @param skipper.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
    ##
    extraPorts: []
    ## @param skipper.service.annotations Annotations for Skipper server service
    ##
    annotations: {}
    ## @param skipper.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
    ## If "ClientIP", consecutive client requests will be directed to the same Pod
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    ##
    sessionAffinity: None
    ## @param skipper.service.sessionAffinityConfig Additional settings for the sessionAffinity
    ## sessionAffinityConfig:
    ##   clientIP:
    ##     timeoutSeconds: 300
    sessionAffinityConfig: {}
  ## @param skipper.initContainers Add init containers to the Dataflow Skipper pods
  ## Example:
  ## initContainers:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  initContainers: []
  ## @param skipper.sidecars Add sidecars to the Skipper pods
  ## Example:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars: []
  ## Skipper Pod Disruption Budget configuration
  ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  ##
  pdb:
    ## @param skipper.pdb.create Enable/disable a Pod Disruption Budget creation
    ##
    create: false
    ## @param skipper.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
    ##
    minAvailable: 1
    ## @param skipper.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
    ##
    maxUnavailable: ""
  ## Skipper Autoscaling parameters.
  ##
  autoscaling:
    ## @param skipper.autoscaling.enabled Enable autoscaling for Skipper server
    ## @param skipper.autoscaling.minReplicas Minimum number of Skipper server replicas
    ## @param skipper.autoscaling.maxReplicas Maximum number of Skipper server replicas
    ## @param skipper.autoscaling.targetCPU Target CPU utilization percentage
    ## @param skipper.autoscaling.targetMemory Target Memory utilization percentage
    ##
    enabled: false
    minReplicas: ""
    maxReplicas: ""
    targetCPU: ""
    targetMemory: ""
  ## @param skipper.extraVolumes Extra Volumes to be set on the Skipper Pod
  ## e.g:
  ## extraVolumes:
  ##   - name: sample
  ##     emptyDir: {}
  ##
  extraVolumes: []
  ## @param skipper.extraVolumeMounts Extra VolumeMounts to be set on the Skipper Container
  ## e.g:
  ## extraVolumeMounts:
  ##   - name: sample
  ##     mountPath: /temp/sample
  ##
  extraVolumeMounts: []
  ## Java Debug Wire Protocol (JDWP) parameters.
  ##
  jdwp:
    ## @param skipper.jdwp.enabled Enable Java Debug Wire Protocol (JDWP)
    ##
    enabled: false
    ## @param skipper.jdwp.port JDWP TCP port for remote debugging
    ##
    port: 5005
## External Skipper Configuration
## All of these values are ignored when skipper.enabled is set to true
##
externalSkipper:
  ## @param externalSkipper.host Host of a external Skipper Server
  ##
  host: localhost
  ## @param externalSkipper.port External Skipper Server port number
  ##
  port: 7577

## @section Deployer parameters

## Spring Cloud Deployer for Kubernetes parameters.
##
deployer:
  ## Streaming applications resource requests and limits.
  ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  ## @param deployer.resources.limits [object] Streaming applications resource limits
  ## @param deployer.resources.requests Streaming applications resource requests
  ##
  resources:
    limits:
      cpu: 500m
      memory: 1024Mi
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 128Mi
    requests: {}
  ## Configure extra options for readiness probe
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param deployer.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  ##
  readinessProbe:
    initialDelaySeconds: 120
  ## Configure extra options for liveness probe
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  ## @param deployer.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  ##
  livenessProbe:
    initialDelaySeconds: 90
  ## @param deployer.nodeSelector The node selectors to apply to the streaming applications deployments in "key:value" format
  ## Multiple node selectors are comma separated.
  ##
  nodeSelector: ""
  ## @param deployer.tolerations Streaming applications tolerations
  ##
  tolerations: {}
  ## @param deployer.volumeMounts Streaming applications extra volume mounts
  ##
  volumeMounts: {}
  ## @param deployer.volumes Streaming applications extra volumes
  ##
  volumes: {}
  ## @param deployer.environmentVariables Streaming applications environment variables
  ## RabbitMQ/Kafka envs.
  ## Example:
  ## environmentVariables:
  ##   - JAVA_TOOL_OPTIONS=-Xmx1024m
  ##   - SPRING_REDIS_HOST=redis
  ##   - SPRING_REDIS_PORT=6379
  ##
  environmentVariables: []
  ## Streams containers' Security Context. This security context will be use in every deployed stream.
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  ## @param deployer.podSecurityContext.enabled Enabled pods' Security Context of the deployed pods batch or stream pods
  ## @param deployer.podSecurityContext.runAsUser Set Dataflow Streams container's Security Context runAsUser
  podSecurityContext:
    enabled: true
    runAsUser: 1001
  ## @param deployer.imagePullSecrets Streaming applications imagePullSecrets
  ##
  imagePullSecrets: []
  ## @param deployer.secretRefs Streaming applications secretRefs
  ##
  secretRefs: []
  ## @param deployer.entryPointStyle An entry point style affects how application properties are passed to the container to be deployed. Allowed values: exec (default), shell, boot
  ## ref: https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#_entry_point_style
  entryPointStyle: exec
  ## @param deployer.imagePullPolicy An image pull policy defines when a Docker image should be pulled to the local registry. Allowed values: IfNotPresent (default), Always, Never
  ## ref: https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#_image_pull_policy
  imagePullPolicy: IfNotPresent

## @section RBAC parameters

## K8s Service Account.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
## @param serviceAccount.create Enable the creation of a ServiceAccount for Dataflow server and Skipper server pods
## @param serviceAccount.name Name of the created serviceAccount. If not set and create is true, a name is generated using the scdf.fullname template
## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
## @param serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
##
serviceAccount:
  create: true
  name: ""
  automountServiceAccountToken: true
  annotations: {}
## Role Based Access
## ref: https://kubernetes.io/docs/admin/authorization/rbac/
##
rbac:
  ## @param rbac.create Whether to create and use RBAC resources or not
  ## binding Spring Cloud Dataflow ServiceAccount to a role
  ## that allows pods querying the K8s API
  ##
  create: true

## @section Metrics parameters

## Prometheus metrics
##
metrics:
  ## @param metrics.enabled Enable Prometheus metrics
  ##
  enabled: false
  ## Bitnami Prometheus Rsocket Proxy image
  ## ref: https://hub.docker.com/r/bitnami/prometheus-rsocket-proxy/tags/
  ## @param metrics.image.registry Prometheus Rsocket Proxy image registry
  ## @param metrics.image.repository Prometheus Rsocket Proxy image repository
  ## @param metrics.image.tag Prometheus Rsocket Proxy image tag (immutable tags are recommended)
  ## @param metrics.image.pullPolicy Prometheus Rsocket Proxy image pull policy
  ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array
  ##
  image:
    registry: docker.io
    repository: bitnami/prometheus-rsocket-proxy
    tag: 1.4.0-debian-10-r87
    ## Specify a imagePullPolicy. Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
    ## ref: https://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/
    ## e.g:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## Prometheus Rsocket Proxy containers' resource requests and limits.
  ## ref: https://kubernetes.io/docs/user-guide/compute-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:'.
  ## @param metrics.resources.limits The resources limits for the Prometheus Rsocket Proxy container
  ## @param metrics.resources.requests The requested resources for the Prometheus Rsocket Proxy container
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 100m
    ##    memory: 128Mi
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 128Mi
    requests: {}
  ## @param metrics.replicaCount Number of Prometheus Rsocket Proxy replicas to deploy
  ##
  replicaCount: 1
  ## @param metrics.podAffinityPreset Prometheus Rsocket Proxy pod affinity preset. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAffinityPreset: ""
  ## @param metrics.podAntiAffinityPreset Prometheus Rsocket Proxy pod anti-affinity preset. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  ##
  podAntiAffinityPreset: soft
  ## Prometheus Rsocket Proxy node affinity preset
  ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  ##
  nodeAffinityPreset:
    ## @param metrics.nodeAffinityPreset.type Prometheus Rsocket Proxy node affinity preset type. Ignored if `metrics.affinity` is set. Allowed values: `soft` or `hard`
    ##
    type: ""
    ## @param metrics.nodeAffinityPreset.key Prometheus Rsocket Proxy node label key to match Ignored if `metrics.affinity` is set.
    ## E.g.
    ## key: "kubernetes.io/e2e-az-name"
    ##
    key: ""
    ## @param metrics.nodeAffinityPreset.values Prometheus Rsocket Proxy node label values to match. Ignored if `metrics.affinity` is set.
    ## E.g.
    ## values:
    ##   - e2e-az1
    ##   - e2e-az2
    ##
    values: []
  ## @param metrics.affinity Prometheus Rsocket Proxy affinity for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  ## Note: metrics.podAffinityPreset, metrics.podAntiAffinityPreset, and metrics.nodeAffinityPreset will be ignored when it's set
  ##
  affinity: {}
  ## @param metrics.nodeSelector Prometheus Rsocket Proxy node labels for pod assignment
  ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  ##
  nodeSelector: {}
  ## @param metrics.hostAliases Prometheus Proxy pods host aliases
  ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  ##
  hostAliases: []
  ## @param metrics.tolerations Prometheus Rsocket Proxy tolerations for pod assignment
  ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  ##
  tolerations: []
  ## @param metrics.podAnnotations Annotations for Prometheus Rsocket Proxy pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  ##
  podAnnotations: {}
  ## @param metrics.podLabels Extra labels for Prometheus Proxy pods
  ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  ##
  podLabels: {}
  ## Configure Pods Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param metrics.podSecurityContext.enabled Enabled Prometheus Proxy pods' Security Context
  ## @param metrics.podSecurityContext.fsGroup Set Prometheus Proxy pod's Security Context fsGroup
  ##
  podSecurityContext:
    enabled: false
    fsGroup: 1001
  ## Configure Container Security Context
  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  ## @param metrics.containerSecurityContext.enabled Enabled Prometheus Proxy containers' Security Context
  ## @param metrics.containerSecurityContext.runAsUser Set Prometheus Proxy containers' Security Context runAsUser
  ##
  containerSecurityContext:
    enabled: false
    runAsUser: 1001
  ## @param metrics.command Override default container command (useful when using custom images)
  ##
  command: []
  ## @param metrics.args Override default container args (useful when using custom images)
  ##
  args: []
  ## @param metrics.lifecycleHooks for the Prometheus Proxy container(s) to automate configuration before or after startup
  ##
  lifecycleHooks: {}
  ## @param metrics.extraEnvVars Array with extra environment variables to add to Prometheus Proxy nodes
  ## e.g:
  ## extraEnvVars:
  ##   - name: FOO
  ##     value: "bar"
  ##
  extraEnvVars: []
  ## @param metrics.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Prometheus Proxy nodes
  ##
  extraEnvVarsCM: ""
  ## @param metrics.extraEnvVarsSecret Name of existing Secret containing extra env vars for Prometheus Proxy nodes
  ##
  extraEnvVarsSecret: ""
  ## @param metrics.extraVolumes Optionally specify extra list of additional volumes for the Prometheus Proxy pod(s)
  ##
  extraVolumes: []
  ## @param metrics.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Prometheus Proxy container(s)
  ##
  extraVolumeMounts: []
  ## Prometheus Proxy container ports
  ## @param metrics.containerPorts.http Prometheus Proxy HTTP container port
  ## @param metrics.containerPorts.rsocket Prometheus Proxy Rsocket container port
  ##
  containerPorts:
    http: 8080
    rsocket: 7001
  ## @param metrics.sidecars Add additional sidecar containers to the Prometheus Proxy pod(s)
  ## e.g:
  ## sidecars:
  ##   - name: your-image-name
  ##     image: your-image
  ##     imagePullPolicy: Always
  ##     ports:
  ##       - name: portname
  ##         containerPort: 1234
  ##
  sidecars: []
  ## @param metrics.initContainers Add additional init containers to the Prometheus Proxy pod(s)
  ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
  ## e.g:
  ## initContainers:
  ##  - name: your-image-name
  ##    image: your-image
  ##    imagePullPolicy: Always
  ##    command: ['sh', '-c', 'echo "hello world"']
  ##
  initContainers: []
  ## @param metrics.updateStrategy.type Prometheus Proxy deployment strategy type.
  ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  ## e.g:
  ## updateStrategy:
  ##  type: RollingUpdate
  ##  rollingUpdate:
  ##    maxSurge: 25%
  ##    maxUnavailable: 25%
  ##
  updateStrategy:
    type: RollingUpdate
  ## @param metrics.priorityClassName Prometheus Rsocket Proxy pods' priority.
  ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  ##
  priorityClassName: ""
  ## @param metrics.schedulerName Name of the k8s scheduler (other than default)
  ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  ##
  schedulerName: ""
  ## @param metrics.topologySpreadConstraints Topology Spread Constraints for pod assignment
  ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  ## The value is evaluated as a template
  ##
  topologySpreadConstraints: []
  ## Prometheus Proxy service parameters
  ##
  service:
    ## @param metrics.service.type Prometheus Proxy service type
    ##
    type: ClusterIP
    ## @param metrics.service.ports.http Prometheus Rsocket Proxy HTTP port
    ## @param metrics.service.ports.rsocket Prometheus Rsocket Proxy Rsocket port
    ##
    ports:
      http: 8080
      rsocket: 7001
    ## Node ports to expose
    ## @param metrics.service.nodePorts.http Node port for HTTP
    ## @param metrics.service.nodePorts.rsocket Node port for Rsocket
    ## NOTE: choose port between <30000-32767>
    ##
    nodePorts:
      http: ""
      rsocket: ""
    ## @param metrics.service.clusterIP Prometheys Proxy service Cluster IP
    ## e.g.:
    ## clusterIP: None
    ##
    clusterIP: ""
    ## @param metrics.service.loadBalancerIP Prometheys Proxy service Load Balancer IP
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
    ##
    loadBalancerIP: ""
    ## @param metrics.service.loadBalancerSourceRanges Prometheys Proxy service Load Balancer sources
    ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
    ## e.g:
    ## loadBalancerSourceRanges:
    ##   - 10.10.10.0/24
    ##
    loadBalancerSourceRanges: []
    ## @param metrics.service.externalTrafficPolicy Prometheys Proxy service external traffic policy
    ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
    ##
    externalTrafficPolicy: Cluster
    ## @param metrics.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
    ##
    extraPorts: []
    ## @param metrics.service.annotations [object] Annotations for the Prometheus Rsocket Proxy service
    ##
    annotations:
      prometheus.io/scrape: 'true'
      prometheus.io/port: '{{ .Values.metrics.service.ports.http }}'
      prometheus.io/path: '/metrics/proxy'
    ## @param metrics.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
    ## If "ClientIP", consecutive client requests will be directed to the same Pod
    ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
    ##
    sessionAffinity: None
    ## @param metrics.service.sessionAffinityConfig Additional settings for the sessionAffinity
    ## sessionAffinityConfig:
    ##   clientIP:
    ##     timeoutSeconds: 300
    sessionAffinityConfig: {}
  ## Prometheus Operator ServiceMonitor configuration
  ##
  serviceMonitor:
    ## @param metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
    ##
    enabled: false
    ## @param metrics.serviceMonitor.namespace Namespace in which ServiceMonitor is created if different from release
    ##
    namespace: ""
    ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
    ##
    jobLabel: ""
    ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
    ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
    ## e.g:
    ## interval: 10s
    ##
    interval: ""
    ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
    ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
    ## e.g:
    ## scrapeTimeout: 10s
    ##
    scrapeTimeout: ""
    ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
    ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
    ##
    relabelings: []
    ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
    ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
    ##
    metricRelabelings: []
    ## @param metrics.serviceMonitor.selector ServiceMonitor selector labels
    ## ref: https://github.com/bitnami/charts/tree/master/bitnami/prometheus-operator#prometheus-configuration
    ##
    ## selector:
    ##   prometheus: my-prometheus
    ##
    selector: {}
    ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
    ##
    labels: {}
    ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
    ##
    honorLabels: false
  ## Prometheus Rsocket Proxy Pod Disruption Budget configuration
  ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  ##
  pdb:
    ## @param metrics.pdb.create Enable/disable a Pod Disruption Budget creation
    ##
    create: false
    ## @param metrics.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
    ##
    minAvailable: 1
    ## @param metrics.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
    ##
    maxUnavailable: ""
  ## Prometheus Rsocket Proxy Autoscaling parameters.
  ## @param metrics.autoscaling.enabled Enable autoscaling for Prometheus Rsocket Proxy
  ## @param metrics.autoscaling.minReplicas Minimum number of Prometheus Rsocket Proxy replicas
  ## @param metrics.autoscaling.maxReplicas Maximum number of Prometheus Rsocket Proxy replicas
  ## @param metrics.autoscaling.targetCPU Target CPU utilization percentage
  ## @param metrics.autoscaling.targetMemory Target Memory utilization percentage
  ##
  autoscaling:
    enabled: false
    minReplicas: ""
    maxReplicas: ""
    targetCPU: ""
    targetMemory: ""

## @section Init Container parameters

## Init containers parameters:
## wait-for-backends: Wait for the database and other services (such as Kafka or RabbitMQ) used when enabling streaming
##
waitForBackends:
  ## @param waitForBackends.enabled Wait for the database and other services (such as Kafka or RabbitMQ) used when enabling streaming
  ##
  enabled: true
  ## @param waitForBackends.image.registry Init container wait-for-backend image registry
  ## @param waitForBackends.image.repository Init container wait-for-backend image name
  ## @param waitForBackends.image.tag Init container wait-for-backend image tag
  ## @param waitForBackends.image.pullPolicy Init container wait-for-backend image pull policy
  ## @param waitForBackends.image.pullSecrets Specify docker-registry secret names as an array
  ##
  image:
    registry: docker.io
    repository: bitnami/kubectl
    tag: 1.24.0-debian-10-r6
    ## Specify a imagePullPolicy
    ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
    ## ref: https://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/
    ## Example:
    ## pullSecrets:
    ##   - myRegistryKeySecretName
    ##
    pullSecrets: []
  ## Init container resource requests and limits.
  ## ref: https://kubernetes.io/docs/user-guide/compute-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:'.
  ## @param waitForBackends.resources.limits Init container wait-for-backend resource limits
  ## @param waitForBackends.resources.requests Init container wait-for-backend resource requests
  ##
  resources:
    ## Example:
    ## limits:
    ##    cpu: 100m
    ##    memory: 128Mi
    limits: {}
    ## Examples:
    ## requests:
    ##    cpu: 100m
    ##    memory: 128Mi
    requests: {}

## @section Database parameters

## MariaDB chart configuration
## https://github.com/bitnami/charts/blob/master/bitnami/mariadb/values.yaml
##
mariadb:
  ## @param mariadb.enabled Enable/disable MariaDB chart installation
  ##
  enabled: true
  ## @param mariadb.architecture MariaDB architecture. Allowed values: `standalone` or `replication`
  ##
  architecture: standalone
  ## Custom user/db credentials
  ##
  auth:
    ## @param mariadb.auth.rootPassword Password for the MariaDB `root` user
    ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-the-root-password-on-first-run
    ##
    rootPassword: ""
    ## @param mariadb.auth.username Username of new user to create
    ## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-on-first-run
    ##
    username: dataflow
    ## @param mariadb.auth.password Password for the new user
    ##
    password: change-me
    ## @param mariadb.auth.database Database name to create
    ## ref: https://github.com/bitnami/bitnami-docker-mariadb#creating-a-database-on-first-run
    ##
    database: dataflow
    ## @param mariadb.auth.forcePassword Force users to specify required passwords in the database
    ##
    forcePassword: false
    ## @param mariadb.auth.usePasswordFiles Mount credentials as a file instead of using an environment variable
    ##
    usePasswordFiles: false
  ## @param mariadb.initdbScripts [object] Specify dictionary of scripts to be run at first boot
  ## We can only create one database on MariaDB using parameters. However, when streaming
  ## is enabled we need a second database for Skipper.
  ## Improvements: support creating N users/databases on MariaDB chart.
  ##
  initdbScripts:
    create_databases.sql: |
      CREATE OR REPLACE USER 'skipper'@'%' identified by 'change-me';
      CREATE DATABASE IF NOT EXISTS `skipper`;
      GRANT ALL ON skipper.* to 'skipper'@'%';
      FLUSH PRIVILEGES;
## Flyway Configuration
## @param flyway.enabled Enable/disable flyway running Dataflow and Skipper Database creation scripts on startup
## All database creation scripts are ignored on startup when flyway.enabled is set to false
## This feature can be used in scenario, where Database tables are already present in Mariadb or ExternalDatabase.
##
flyway:
  enabled: true
## External Database Configuration
## All of these values are ignored when mariadb.enabled is set to true
##
externalDatabase:
  ## @param externalDatabase.host Host of the external database
  ##
  host: localhost
  ## @param externalDatabase.port External database port number
  ##
  port: 3306
  ## @param externalDatabase.driver The fully qualified name of the JDBC Driver class
  ##
  driver: ""
  ## @param externalDatabase.scheme The scheme is a vendor-specific or shared protocol string that follows the "jdbc:" of the URL
  ##
  scheme: ""
  ## @param externalDatabase.password Password for the above username
  ##
  password: ""
  ## @param externalDatabase.existingPasswordSecret Existing secret with database password
  ##
  existingPasswordSecret: ""
  ## @param externalDatabase.existingPasswordKey Key of the existing secret with database password, defaults to `datasource-password`
  ##
  existingPasswordKey: ""
  ## Data Flow user and database
  ##
  dataflow:
    ## @param externalDatabase.dataflow.url JDBC URL for dataflow server. Overrides external scheme, host, port, database, and jdbc parameters.
    ## This provides a mechanism to define a fully customized JDBC URL for the data flow server rather than having it
    ## derived from the common, individual attributes. This property, when defined, has precedence over the
    ## individual attributes (scheme, host, port, database)
    ##
    url: ""
    ## @param externalDatabase.dataflow.database Name of the existing database to be used by Dataflow server
    ##
    database: dataflow
    ## @param externalDatabase.dataflow.username Existing username in the external db to be used by Dataflow server
    ##
    username: dataflow
  ## Skipper and database
  ##
  skipper:
    ## @param externalDatabase.skipper.url JDBC URL for skipper. Overrides external scheme, host, port, database, and jdbc parameters.
    ## This provides a mechanism to define a fully customized JDBC URL for skipper rather than having it
    ## derived from the common, individual attributes. This property, when defined, has precedence over the
    ## individual attributes (scheme, host, port, database)
    ##
    url: ""
    ## @param externalDatabase.skipper.database Name of the existing database to be used by Skipper server
    ##
    database: skipper
    ## @param externalDatabase.skipper.username Existing username in the external db to be used by Skipper server
    ##
    username: skipper
  ## @param externalDatabase.hibernateDialect Hibernate Dialect used by Dataflow/Skipper servers
  ## e.g: org.hibernate.dialect.MariaDB102Dialect
  ##
  hibernateDialect: ""

## @section RabbitMQ chart parameters

## RabbitMQ chart configuration
## https://github.com/bitnami/charts/blob/master/bitnami/rabbitmq/values.yaml
##
rabbitmq:
  ## @param rabbitmq.enabled Enable/disable RabbitMQ chart installation
  ##
  enabled: true
  ## @param rabbitmq.auth.username RabbitMQ username
  ##
  auth:
    username: user
## External RabbitMQ Configuration
## All of these values are ignored when rabbitmq.enabled is set to true
##
externalRabbitmq:
  ## @param externalRabbitmq.enabled Enable/disable external RabbitMQ
  ##
  enabled: false
  ## @param externalRabbitmq.host Host of the external RabbitMQ
  ##
  host: localhost
  ## @param externalRabbitmq.port External RabbitMQ port number
  ##
  port: 5672
  ## @param externalRabbitmq.username External RabbitMQ username
  ##
  username: guest
  ## @param externalRabbitmq.password External RabbitMQ password. It will be saved in a kubernetes secret
  ##
  password: guest
  ## @param externalRabbitmq.vhost External RabbitMQ virtual host. It will be saved in a kubernetes secret
  ## e.g:
  ## vhost: /
  ##
  vhost: ""
  ## @param externalRabbitmq.existingPasswordSecret Existing secret with RabbitMQ password. It will be saved in a kubernetes secret
  ##
  existingPasswordSecret: ""

## @section Kafka chart parameters

## Kafka chart configuration
## https://github.com/bitnami/charts/blob/master/bitnami/kafka/values.yaml
##
kafka:
  ## @param kafka.enabled Enable/disable Kafka chart installation
  ##
  enabled: false
  ## @param kafka.replicaCount Number of Kafka brokers
  ##
  replicaCount: 1
  ## @param kafka.offsetsTopicReplicationFactor Kafka Secret Key
  ##
  offsetsTopicReplicationFactor: 1
  ## Zookeeper chart configuration
  ## https://github.com/bitnami/charts/blob/master/bitnami/zookeeper/values.yaml
  ## @param kafka.zookeeper.replicaCount Number of Zookeeper replicas
  ##
  zookeeper:
    replicaCount: 1
## External Kafka Configuration
## All of these values are ignored when kafka.enabled is set to true
##
externalKafka:
  ## @param externalKafka.enabled Enable/disable external Kafka
  ##
  enabled: false
  ## @param externalKafka.brokers External Kafka brokers
  ## Multiple brokers can be provided in a comma separated list, e.g. host1:port1,host2:port2
  ##
  brokers: localhost:9092
  ## @param externalKafka.zkNodes External Zookeeper nodes
  ##
  zkNodes: localhost:2181
