mirror of
https://github.com/helm/charts.git
synced 2026-08-22 22:07:36 +00:00
* [stable/graylog] Added helm hooks to trigger provisioner job on upgrades Signed-off-by: Volodymyr Linevych <linevych.v@gmail.com> * version bump Signed-off-by: Volodymyr Linevych <linevych.v@gmail.com> * make the annotations optional Signed-off-by: Volodymyr Linevych <linevych.v@gmail.com> * use generic annotations Signed-off-by: Volodymyr Linevych <linevych.v@gmail.com> * updated README Signed-off-by: Volodymyr Linevych <linevych.v@gmail.com> Co-authored-by: Volodymyr Linevych <linevych.v@gmail.com>
400 lines
12 KiB
YAML
400 lines
12 KiB
YAML
# Default values for Graylog.
|
|
# This is a YAML-formatted file.
|
|
# Declare variables to be passed into your templates.
|
|
|
|
rbac:
|
|
# Specifies whether RBAC resources should be created
|
|
##
|
|
create: true
|
|
|
|
resources:
|
|
- pods
|
|
- secrets
|
|
|
|
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 fullname template
|
|
##
|
|
name:
|
|
|
|
tags:
|
|
# If true, this chart will install Elasticsearch from requirement dependencies
|
|
install-elasticsearch: true
|
|
# If true, this chart will install MongoDB replicaset from requirement dependencies
|
|
install-mongodb: true
|
|
|
|
## Enable only if your current release was migrated from helm2 (using 2to3 plugin).
|
|
##
|
|
## Because Kubernetes considers some StatefulSets fields/labels immutable,
|
|
## this flag preserves the values rendered by helm2. This allows helm3
|
|
## to upgrade the current release without a complete purge/reinstall.
|
|
##
|
|
## Further details: https://github.com/helm/charts/issues/20306
|
|
##
|
|
# helm2Compatibility: true
|
|
|
|
graylog:
|
|
## Graylog image version
|
|
## Ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
|
|
##
|
|
## Important note: Official Graylog Docker image may replace the existing Docker image tags and cause some corrupt when starting the pod.
|
|
## Make sure you strict with the `x` version of Graylog where `x` is ${version}-${x}
|
|
##
|
|
image:
|
|
repository: "graylog/graylog:3.1"
|
|
pullPolicy: "IfNotPresent"
|
|
|
|
## Number of Graylog instance
|
|
##
|
|
replicas: 2
|
|
|
|
## Additional environment variables to be added to Graylog pods
|
|
##
|
|
env: {}
|
|
|
|
## Additional environment variables in raw yaml format
|
|
## - name: POD_IP
|
|
## valueFrom:
|
|
## fieldRef:
|
|
## fieldPath: status.podIP
|
|
## - name: SERVICE_8000_NAME
|
|
## value: servicename
|
|
envRaw: {}
|
|
|
|
## Run as privileged container
|
|
##
|
|
privileged: false
|
|
|
|
## Pod affinity
|
|
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
|
##
|
|
affinity: {}
|
|
|
|
## Node tolerations for node-exporter scheduling to nodes with taints
|
|
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
|
|
##
|
|
tolerations: []
|
|
# - key: "key"
|
|
# operator: "Equal|Exists"
|
|
# value: "value"
|
|
# effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
|
|
|
|
## Node labels for node-exporter pod assignment
|
|
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
|
|
##
|
|
nodeSelector: {}
|
|
|
|
## Annotations to be added to Graylog pods
|
|
##
|
|
podAnnotations: {}
|
|
|
|
persistence:
|
|
## If true, Graylog will create/use a Persistent Volume Claim
|
|
## If false, use emptyDir
|
|
##
|
|
enabled: true
|
|
## Graylog data Persistent Volume access modes
|
|
## Must match those of existing PV or dynamic provisioner
|
|
## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
|
##
|
|
accessMode: ReadWriteOnce
|
|
## Graylog data Persistent Volume size
|
|
##
|
|
size: "20Gi"
|
|
## Graylog data Persistent Volume Storage Class
|
|
## 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: "ssd"
|
|
|
|
## Additional plugins you need to install on Graylog.
|
|
##
|
|
plugins: []
|
|
# - name: graylog-plugin-slack-notification-3.1.0.jar
|
|
# url: https://github.com/omise/graylog-plugin-slack-notification/releases/download/v3.1.0/graylog-plugin-slack-notification-3.1.0.jar
|
|
# - name: graylog-plugin-function-check-diff-1.0.0.jar
|
|
# url: https://github.com/omise/graylog-plugin-function-check-diff/releases/download/1.0.0/graylog-plugin-function-check-diff-1.0.0.jar
|
|
# - name: graylog-plugin-auth-sso-3.0.0.jar
|
|
# url: https://github.com/Graylog2/graylog-plugin-auth-sso/releases/download/3.0.0/graylog-plugin-auth-sso-3.0.0.jar
|
|
|
|
## Sidecar containers
|
|
##
|
|
sidecarContainers: []
|
|
|
|
## Additional init containers
|
|
##
|
|
extraInitContainers: []
|
|
|
|
## Additional volume mounts
|
|
##
|
|
extraVolumeMounts: []
|
|
|
|
## Additional volumes
|
|
##
|
|
extraVolumes: []
|
|
|
|
## A service for Graylog web interface
|
|
##
|
|
service:
|
|
type: ClusterIP
|
|
port: 9000
|
|
## Add additional ports for the service/statefulset to expose
|
|
##
|
|
ports: []
|
|
|
|
headless:
|
|
## Add suffix to headless service name
|
|
##
|
|
suffix: ""
|
|
|
|
master:
|
|
## Enable Graylog master service
|
|
##
|
|
enabled: true
|
|
## Graylog master service Ingress annotations
|
|
##
|
|
annotations: {}
|
|
## Graylog master service port.
|
|
##
|
|
port: 9000
|
|
|
|
## Additional input ports for receiving logs from servers
|
|
## Note: Name must be in IANA_SVC_NAME (at most 15 characters, matching regex [a-z0-9]([a-z0-9-]*[a-z0-9])* and it must contains at least one letter [a-z], hyphens cannot be adjacent to other hyphens)
|
|
## Note: Array must be sorted by port order
|
|
##
|
|
input: {}
|
|
# tcp:
|
|
# service:
|
|
# type: LoadBalancer
|
|
# loadBalancerIP:
|
|
# ports:
|
|
# - name: gelf
|
|
# port: 12222
|
|
# udp:
|
|
# service:
|
|
# type: ClusterIP
|
|
# ports:
|
|
# - name: syslog
|
|
# port: 12222
|
|
|
|
tls:
|
|
## If true, Graylog server will run with TLS enabled
|
|
##
|
|
enabled: false
|
|
## TLS certificate key file
|
|
##
|
|
keyFile: /etc/graylog/server/server.key
|
|
## TLS certificate file
|
|
##
|
|
certFile: /etc/graylog/server/server.cert
|
|
|
|
## External URL to access Graylog at
|
|
##
|
|
externalUri: ""
|
|
|
|
ingress:
|
|
## If true, Graylog server Ingress will be created
|
|
##
|
|
enabled: false
|
|
## Graylog server Ingress annotations
|
|
##
|
|
annotations: {}
|
|
## Graylog server Ingress hostnames with optional path
|
|
## Must be provided if Ingress is enabled
|
|
## Note: Graylog does not support two URL. You can specify only single URL
|
|
##
|
|
hosts: []
|
|
# - graylog.yourdomain.com
|
|
|
|
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
|
|
extraPaths: []
|
|
# - path: /*
|
|
# backend:
|
|
# serviceName: ssl-redirect
|
|
# servicePort: use-annotation
|
|
|
|
## Graylog server Ingress TLS configuration
|
|
## Secrets must be manually created in the namespace
|
|
##
|
|
tls: []
|
|
# - secretName: graylog-server-tls
|
|
# hosts:
|
|
# - graylog.yourdomain.com
|
|
|
|
|
|
## Configure resource requests and limits
|
|
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
##
|
|
resources:
|
|
limits:
|
|
cpu: "1"
|
|
requests:
|
|
cpu: "500m"
|
|
memory: "1024Mi"
|
|
|
|
## Set Graylog Java heapsize. If this value empty, chart will allocate heapsize using `-XX:+UseCGroupMemoryLimitForHeap`
|
|
## ref: https://blogs.oracle.com/java-platform-group/java-se-support-for-docker-cpu-and-memory-limits
|
|
##
|
|
# heapSize: "1024g"
|
|
|
|
## RollingUpdate update strategy
|
|
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
|
|
##
|
|
updateStrategy: RollingUpdate
|
|
## Graylog server pod termination grace period
|
|
##
|
|
terminationGracePeriodSeconds: 120
|
|
|
|
metrics:
|
|
## If true, prometheus annotations will be attached
|
|
##
|
|
enabled: false
|
|
|
|
geoip:
|
|
## If true, Maxmind GeoLite2 will be installed to ${GRAYLOG_HOME}/geoip location
|
|
##
|
|
enabled: false
|
|
## If true, mmdbUri points to the URI where to find the DB
|
|
# https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/
|
|
mmdbUri: ""
|
|
|
|
## Graylog root user name
|
|
##
|
|
rootUsername: "admin"
|
|
|
|
## Graylog root password
|
|
## Defaults to a random 16-character alphanumeric string if not set
|
|
##
|
|
# rootPassword: ""
|
|
|
|
## Graylog root email
|
|
##
|
|
rootEmail: ""
|
|
|
|
## Graylog root timezone
|
|
##
|
|
rootTimezone: "UTC"
|
|
|
|
## Grayog existing root secret
|
|
##
|
|
existingRootSecret: ""
|
|
|
|
elasticsearch:
|
|
## List of Elasticsearch hosts Graylog should connect to.
|
|
## Need to be specified as a comma-separated list of valid URIs for the http ports of your elasticsearch nodes.
|
|
## If one or more of your elasticsearch hosts require authentication, include the credentials in each node URI that
|
|
## requires authentication.
|
|
##
|
|
# hosts: http://elasticsearch-client.graylog.svc.cluster.local:9200
|
|
hosts: ""
|
|
# Allow elasticsearch hosts to be fetched from a k8s secret
|
|
# {{ graylog.fullname }}-es will be used as uriSecretName if left empty
|
|
uriSecretName: ""
|
|
uriSecretKey: ""
|
|
uriSSL: false
|
|
|
|
mongodb:
|
|
## MongoDB connection string
|
|
## See https://docs.mongodb.com/manual/reference/connection-string/ for details
|
|
# uri: mongodb://user:pass@host1:27017,host2:27017,host3:27017/graylog?replicaSet=rs01
|
|
uri: ""
|
|
# Allow mongodb uri to be fetched from a k8s secret
|
|
# {{ graylog.fullname }}-mongodb will be used as uriSecretName if left empty
|
|
uriSecretName: ""
|
|
uriSecretKey: ""
|
|
|
|
## Increase this value according to the maximum connections your MongoDB server can handle from a single client
|
|
## if you encounter MongoDB connection problems.
|
|
##
|
|
maxConnections: 1000
|
|
|
|
transportEmail:
|
|
## If true, enable Email transport.
|
|
## See http://docs.graylog.org/en/3.0/pages/configuration/server.conf.html#email for detail
|
|
##
|
|
enabled: false
|
|
hostname: ""
|
|
port: 2587
|
|
useAuth: true
|
|
useTls: true
|
|
useSsl: false
|
|
authUsername: ""
|
|
authPassword: ""
|
|
subjectPrefix: "[graylog]"
|
|
fromEmail: ""
|
|
|
|
## Additional graylog config which is defined on `graylog.conf`.
|
|
## You can find a complete list of graylog config from http://docs.graylog.org/en/3.0/pages/configuration/server.conf.html
|
|
## Graylog config is written in Java properites format. Make sure you write it correctly.
|
|
##
|
|
# config: |
|
|
# elasticsearch_connect_timeout = 10s
|
|
# elasticsearch_socket_timeout = 60s
|
|
# elasticsearch_idle_timeout = -1s
|
|
|
|
journal:
|
|
## Sometime Graylog journal continually grow up or corrupt and cause Graylog unable to start.
|
|
## You need to clean up all journal files in order to run the Graylog.
|
|
## Change `graylog.journal.deleteBeforeStart` to `true` to delete all journal files before start
|
|
## Note: All uncommitted logs will be permanently DELETED when this value is true
|
|
##
|
|
deleteBeforeStart: false
|
|
|
|
init:
|
|
# Additional environment variables to be added to Graylog initContainer
|
|
env: {}
|
|
|
|
# Configure resource requests and limits for the Graylog StatefulSet initContainer
|
|
resources: {}
|
|
|
|
## Additional server files will be deployed to /etc/graylog/server
|
|
## For example, you can put server certificates or authorized clients certificates here
|
|
##
|
|
serverFiles: {}
|
|
# server.key: |
|
|
# server.cert: |
|
|
|
|
## Configure whether Graylog pods should log in JSON (one event per line)
|
|
logInJson: false
|
|
|
|
## Specify a Bash script to run as Kubernetes Job (running on Alpine with curl and bash packages already installed).
|
|
## Useful for calling the API to pre-configure some aspect of Graylog, as in the example.
|
|
##
|
|
provisioner:
|
|
enabled: false
|
|
annotations: {}
|
|
useGraylogServiceAccount: false
|
|
# script: |
|
|
# json='{
|
|
# "username_header": "X-Auth-Request-User",
|
|
# "fullname_header": "X-Auth-Request-User",
|
|
# "email_header": "X-Auth-Request-Email",
|
|
# "default_group": "Admin",
|
|
# "auto_create_user": true,
|
|
# "require_trusted_proxies": true,
|
|
# "trusted_proxies": "0.0.0.0/0",
|
|
# "default_email_domain": "mydomain.com",
|
|
# "sync_roles": false,
|
|
# "roles_header": "Roles"
|
|
# }'
|
|
# curl -v -u "admin:$GRAYLOG_PASSWORD_SECRET" -X PUT --header 'Content-Type: application/json' --header 'X-Requested-By: localhost' --data-binary "${json}" http://graylog-master:9000/api/plugins/org.graylog.plugins.auth.sso/config
|
|
## Specify image pull secrets used in the deployment
|
|
imagePullSecrets: []
|
|
## imagePullSecrets:
|
|
## - name: some-registry
|
|
## - name: another-registry
|
|
## Specify Elasticsearch version from requirement dependencies. Ignore this seection if you install Elasticsearch manually.
|
|
## Note: Graylog 2.4 requires Elasticsearch version <= 5.6
|
|
elasticsearch:
|
|
image:
|
|
repository: "docker.elastic.co/elasticsearch/elasticsearch-oss"
|
|
tag: "6.5.4"
|
|
cluster:
|
|
xpackEnable: false
|