## 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 Logstash image ## ref: https://hub.docker.com/r/bitnami/logstash/tags/ ## image: registry: docker.io repository: bitnami/logstash tag: 7.12.1-debian-10-r9 ## 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 ## Set to true if you would like to see extra information on logs ## debug: false ## Force target Kubernetes version (using Helm capabilites if not set) ## kubeVersion: ## Deployment pod host aliases ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/ ## hostAliases: [] ## String to partially override logstash.fullname template (will maintain the release name) ## # nameOverride: ## String to fully override logstash.fullname template ## # fullnameOverride: ## Kubernetes Cluster Domain ## clusterDomain: cluster.local ## Logstash configuration file name. It must match the name of the configuration file mounted as a configmap ## configFileName: logstash.conf ## Whether to enable the Logstash Monitoring API or not Kubernetes cluster domain ## enableMonitoringAPI: true ## Logstash Monitoring API Port ## monitoringAPIPort: 9600 ## An array to add extra environment variables ## For example: ## extraEnvVars: ## - name: ELASTICSEARCH_HOST ## value: "x.y.z" ## # extraEnvVars: ## To add secrets or configmaps to environment ## extraEnvVarsSecret: "x" ## extraEnvVarsCM: "y" ## ## Input Plugins configuration ## ref: https://www.elastic.co/guide/en/logstash/current/input-plugins.html ## input: |- # udp { # port => 1514 # type => syslog # } # tcp { # port => 1514 # type => syslog # } http { port => 8080 } ## Filter Plugins configuration ## ref: https://www.elastic.co/guide/en/logstash/current/filter-plugins.html ## # filter: |- # grok { # match => { "message" => "%{COMBINEDAPACHELOG}" } # } # date { # match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] # } ## Output Plugins configuration ## ref: https://www.elastic.co/guide/en/logstash/current/output-plugins.html ## output: |- # elasticsearch { # hosts => ["${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"] # manage_template => false # index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" # } # gelf { # host => "${GRAYLOG_HOST}" # port => ${GRAYLOG_PORT} # } stdout {} ## ConfigMap with Logstash configuration ## NOTE: This will override input, filter, and output parameters ## # existingConfiguration: ## Allows user to use multiple pipelines ## ref: https://www.elastic.co/guide/en/logstash/master/multiple-pipelines.html ## enableMultiplePipelines: false ## Array to add extra volumes (evaluated as a template) ## extraVolumes: ## - name: myvolume ## configMap: ## name: myconfigmap ## extraVolumes: [] ## Array to add extra mounts (normally used with extraVolumes, evaluated as a template) ## ## extraVolumeMounts: ## - mountPath: /opt/bitnami/desired-path ## name: myvolume ## readOnly: true ## extraVolumeMounts: [] containerPorts: # - name: syslog-udp # containerPort: 1514 # protocol: UDP # - name: syslog-tcp # containerPort: 1514 # protocol: TCP - name: http containerPort: 8080 protocol: TCP - name: monitoring containerPort: 9600 protocol: TCP ## Number of Logstash replicas to deploy ## replicaCount: 1 ## Update strategy, can be set to RollingUpdate or OnDelete by default. ## ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets ## updateStrategy: RollingUpdate ## Pod management policy ## https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies ## podManagementPolicy: OrderedReady ## Pod annotations. Evaluated as a template ## Ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ ## podAnnotations: {} ## Pod affinity preset ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity ## Allowed values: soft, hard ## podAffinityPreset: "" ## Pod anti-affinity preset ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity ## Allowed values: soft, hard ## podAntiAffinityPreset: soft ## Node affinity preset ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity ## Allowed values: soft, hard ## nodeAffinityPreset: ## Node affinity type ## Allowed values: soft, hard ## type: "" ## Node label key to match ## E.g. ## key: "kubernetes.io/e2e-az-name" ## key: "" ## Node label values to match ## E.g. ## values: ## - e2e-az1 ## - e2e-az2 ## values: [] ## Affinity for pod assignment. Evaluated as a template. ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set ## affinity: {} ## Node labels for pod assignment. Evaluated as a template. ## ref: https://kubernetes.io/docs/user-guide/node-selection/ ## nodeSelector: {} ## Tolerations for pod assignment. Evaluated as a template. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] ## Pod priority ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ ## # priorityClassName: "" ## K8s Security Context for Logstash pods ## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ ## securityContext: enabled: true fsGroup: 1001 runAsUser: 1001 ## Logstash 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: 100m # memory: 128Mi requests: {} # cpu: 100m # memory: 128Mi ## Logstash pods' liveness and readiness probes ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes ## livenessProbe: httpGet: path: / port: monitoring initialDelaySeconds: 60 # periodSeconds: 10 # timeoutSeconds: 5 # successThreshold: 1 # failureThreshold: 6 readinessProbe: httpGet: path: / port: monitoring initialDelaySeconds: 60 # periodSeconds: 10 # timeoutSeconds: 5 # successThreshold: 1 # failureThreshold: 6 ## Logstash pods' lifecycle hooks ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/ ## lifecycle: {} # preStop: # exec: # command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] # postStart: # exec: # command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"] ## Service parameters ## service: ## Service type ## type: ClusterIP ## Logstash svc ports ## ports: # syslog-udp: # port: 1514 # targetPort: syslog-udp # protocol: UDP # syslog-tcp: # port: 1514 # targetPort: syslog-tcp # protocol: TCP http: port: 8080 targetPort: http protocol: TCP # loadBalancerIP: ## Load Balancer sources ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service ## ## Enable client source IP preservation ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip ## externalTrafficPolicy: "" # 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: {} ## Persistence parameters ## persistence: enabled: false ## A manually managed Persistent Volume and Claim ## If defined, PVC must be created manually before volume will be bound ## The value is evaluated as a template ## # existingClaim: ## PV Storage Class ## If defined, storageClassName: ## 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. ## # storageClass: "-" ## PV Access Mode ## accessModes: - ReadWriteOnce ## PVC size ## size: 2Gi ## PVC annotations ## annotations: {} ## Mount point for persistence ## mountPath: /bitnami/logstash/data ## Init Container parameters ## Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each component ## values from the securityContext section of the component ## volumePermissions: enabled: false ## The security context for the volumePermissions init container ## securityContext: runAsUser: 0 image: registry: docker.io repository: bitnami/bitnami-shell tag: "10" ## 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: Always ## 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: 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: 100m # memory: 128Mi requests: {} # cpu: 100m # memory: 128Mi ## Configure the ingress resource that allows you to access the ## Logstash installation. Set up the URL ## ref: http://kubernetes.io/docs/user-guide/ingress/ ## ingress: ## Set to true to enable ingress record generation ## enabled: false ## Set this to true in order to add the corresponding annotations for cert-manager ## certManager: false ## Ingress Path type ## pathType: ImplementationSpecific ## Override API Version (automatically detected if not set) ## apiVersion: ## When the ingress is enabled, a host pointing to this will be created ## hostname: logstash.local ## The Path to Logstash. You may need to set this to '/*' in order to use this ## with ALB ingress controllers. ## path: / ## Ingress annotations done as key:value pairs ## 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 ## ## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set ## annotations: {} ## 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 ## 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: logstash.local ## path: / ## ## Any additional arbitrary paths that may need to be added to the ingress under the main host. ## For example: The ALB ingress controller requires a special rule for handling SSL redirection. ## extraPaths: ## - path: /* ## backend: ## serviceName: ssl-redirect ## servicePort: use-annotation ## ## 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: ## - logstash.local ## secretName: logstash.local-tls ## ## 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 ## secrets: [] ## - name: logstash.local-tls ## key: ## certificate: ## ## Prometheus metrics ## metrics: enabled: false ## Bitnami Logstash Promtheus Exporter image ## ref: https://hub.docker.com/r/bitnami/logstash-exporter/tags/ ## image: registry: docker.io repository: bitnami/logstash-exporter tag: 7.3.0-debian-10-r177 ## 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 ## Logstash Prometheus Exporter 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: 100m # memory: 128Mi requests: {} # cpu: 100m # memory: 128Mi ## 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 ## Logstash Prometheus Exporter containers' liveness and readiness probes ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes ## livenessProbe: httpGet: path: /metrics port: metrics initialDelaySeconds: 60 # periodSeconds: 10 # timeoutSeconds: 5 # successThreshold: 1 # failureThreshold: 6 readinessProbe: httpGet: path: /metrics port: metrics initialDelaySeconds: 60 # periodSeconds: 10 # timeoutSeconds: 5 # successThreshold: 1 # failureThreshold: 6 service: ## Service type ## type: ClusterIP ## Logstash Prometheus port ## port: 9198 ## Specify the nodePort value for the LoadBalancer and NodePort service types. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport ## nodePort: "" ## Set the LoadBalancer service type to internal only. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer ## # 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 ## Annotations for the Prometheus metrics service ## annotations: prometheus.io/scrape: "true" prometheus.io/port: "9198" prometheus.io/path: "/metrics" ## Pod disruption budget configuration ## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ ## podDisruptionBudget: ## Specifies whether a Pod disruption budget should be created ## create: false minAvailable: 1 # maxUnavailable: 1 ## Array of extra objects to deploy ## extraDeploy: ## Init Containers to run before pod assignment. Evaluated as a template. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ ## initContainers: []