Helm Charts configuration reference
This page references every available values.yaml option, their utility, default value(s) and behavior.
- FlowG
- HTTPS
- FoundationDB
- Fluentd
Docker image sourcing configuration
Settings related to FlowG's docker image sourcing.
flowg.image.repository — string (Default: linksociety/flowg)
Repository where FlowG image is sourced from.
flowg:
image:
repository: linksociety/flowg
flowg.image.tag - string (Default: latest)
Image tag used by Docker.
flowg:
image:
tag: latest
flowg.image.pullPolicy - string (Default: IfNotPresent)
Image pull policy given to Kubernetes.
flowg:
image:
pullPolicy: IfNotPresent
flowg.image.pullSecrets - array (Default: [])
Image pull secrets for private registries.
flowg:
image:
pullSecrets:
- name: my-secret-registry
FlowG configuration
Settings related to FlowG's configuration. Will use environment variables. Please read the advanced configuration documentation.
Logging configuration
flowg.configuration.logging.verbose - string (Default: "True")
Enable or disable verbose logging.
flowg:
configuration:
logging:
verbose: "True"
flowg.configuration.logging.level - string (Default: info)
Log level (e.g. debug, info, warn, error).
flowg:
configuration:
logging:
level: info
Workers configuration
Number of workers processing data concurrently (minimum: 1).
flowg.configuration.workers.pipelines - string (Default: "64")
Number of records processed by the pipelines at the same time.
flowg:
configuration:
workers:
pipelines: "64"
flowg.configuration.workers.syslog - string (Default: "64")
Number of received syslog messages processed at the same time.
flowg:
configuration:
workers:
syslog: "64"
flowg.configuration.workers.badgerdb - string (Default: "64")
Only available in the single-node chart, the multi-node charts use FoundationDB.
Number of concurrent operations per BadgerDB database.
flowg:
configuration:
workers:
badgerdb: "64"
Seeding credentials configuration
Seeding is a FlowG feature that creates a user and sample data during the first setup phase. The helm chart is designed to source this user's initial (pre-seed) and reset (post-seed) credentials from a secret that you will need to create.
flowg.configuration.seed.secretName - string (Default: "")
Kubernetes secret name containing initial/reset credentials for database seeding.
flowg:
configuration:
seed:
secretName: flowg-seed-secret
flowg.configuration.seed.initialUsernameKey - string (Default: "")
Key in the secret for the initial user's username.
flowg:
configuration:
seed:
initialUsernameKey: initialUsername
flowg.configuration.seed.initialPasswordKey - string (Default: "")
Key in the secret for the initial user's password.
flowg:
configuration:
seed:
initialPasswordKey: initialPassword
flowg.configuration.seed.resetUsernameKey - string (Default: "")
Key in the secret for the reset user's username (applied after initial population).
flowg:
configuration:
seed:
resetUsernameKey: resetUsername
flowg.configuration.seed.resetPasswordKey - string (Default: "")
Key in the secret for the reset user's password (applied after initial population).
flowg:
configuration:
seed:
resetPasswordKey: resetPassword
BadgerDB configuration
Only available in the single-node chart, the multi-node charts use FoundationDB.
Memtable sizes, in MB (minimum: 7), and number of memtables kept in memory (minimum: 1), per database. Memory used by memtables is about their size times their number, so these settings drive most of FlowG's memory usage. Lower them when running with a small memory limit.
flowg.configuration.badger.authMemtableSize - string (Default: "64")
Memtable size of the database holding users, roles and tokens.
flowg:
configuration:
badger:
authMemtableSize: "64"
flowg.configuration.badger.logMemtableSize - string (Default: "64")
Memtable size of the database holding the logs.
flowg:
configuration:
badger:
logMemtableSize: "64"
flowg.configuration.badger.configMemtableSize - string (Default: "64")
Memtable size of the database holding pipelines, transformers and forwarders.
flowg:
configuration:
badger:
configMemtableSize: "64"
flowg.configuration.badger.authMemtablesCount - string (Default: "5")
Number of memtables of the database holding users, roles and tokens.
flowg:
configuration:
badger:
authMemtablesCount: "5"
flowg.configuration.badger.logMemtablesCount - string (Default: "5")
Number of memtables of the database holding the logs.
flowg:
configuration:
badger:
logMemtablesCount: "5"
flowg.configuration.badger.configMemtablesCount - string (Default: "5")
Number of memtables of the database holding pipelines, transformers and forwarders.
flowg:
configuration:
badger:
configMemtablesCount: "5"
Base kubernetes pod/service configuration
flowg.podAnnotations - object (Default: {})
Custom annotations to add to the FlowG pods.
flowg:
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9113"
flowg.serviceAnnotations - object (Default: {})
Custom annotations to add to the FlowG services.
flowg:
serviceAnnotations:
kubernetes.io/description: "flowG load balancer"
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
FlowG pod security context
Security Context configuration for FlowG's pod.
You can also add other Kubernetes option as the entire flowg.podSecurityContext objsect is injected into the manifest.
See more here.
flowg.podSecurityContext.runAsNonRoot - boolean (Default: true)
Requires the pod to run as a non-root user.
flowg:
podSecurityContext:
runAsNonRoot: true
flowg.podSecurityContext.runAsUser - integer (Default: 10001)
The UID to run the container process as.
flowg:
podSecurityContext:
runAsUser: 10001
flowg.podSecurityContext.runAsGroup -integer** (Default: 10001)
The GID to run the container process as.
flowg:
podSecurityContext:
runAsGroup: 10001
flowg.podSecurityContext.fsGroup - integer (Default: 10001)
The filesystem group ID for volumes.
flowg:
podSecurityContext:
fsGroup: 10001
Container-level security context
flowg.securityContext - object (Default: {})
Container-level security context (e.g. allowPrivilegeEscalation, capabilities).
flowg:
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
capabilities:
drop:
- ALL
Liveness/readiness probes configuration
Kubernetes liveness/readiness probes configuration.
flowg.livenessProbe - object (Default: {})
Custom configuration for liveness probe settings (initialDelaySeconds, timeoutSeconds, etc.).
flowg:
probe:
livenessProbe:
initialDelaySeconds: 3
timeoutSeconds: 5
flowg.readinessProbe - object (Default: {})
Custom configuration for readiness probe settings (initialDelaySeconds, timeoutSeconds, etc.).
flowg:
probe:
readinessProbe:
initialDelaySeconds: 3
timeoutSeconds: 5
Node selector tolerations and taints
Kubernetes node selector toleration/taints configuration.
flowg.nodeSelectorTolerations - array (Default: null)
Tolerations for pod scheduling on tainted nodes.
flowg:
nodeSelectorTolerations:
- key: "dedicated"
operator: "Equal"
value: "gpu"
effect: "NoSchedule"
Resources limitations and requests
flowg.resources - object (Default: {})
CPU and memory resource requests and limits for the FlowG container.
flowg:
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
flowg.goMemLimit - string (Default: none)
Go memory limit, passed as the GOMEMLIMIT environment variable. Without it, the Go garbage collector ignores the container memory limit and FlowG can be killed under load. Set it to about 80% of flowg.resources.limits.memory, leaving room for memory outside the Go runtime.
flowg:
resources:
limits:
memory: 256Mi
goMemLimit: "200MiB"
Requested storage configuration
flowg.storage.size - string (Default: 10Gi)
Storage size requested for the data volume PVC.
flowg:
storage:
size: 10Gi
flowg.storageClassName - string (Default: "")
Storage class name for provisioning the PVC.
flowg:
storage:
storageClassName: "standard"
Network exposure configuration
flowg.httpPort - integer (Default: 5080)
Port on which the HTTP server listens inside the container.
flowg:
httpPort: 5080
Syslog server configuration
flowg.syslog.port - integer (Default: 5514)
Port on which the syslog server listens.
flowg:
syslog:
port: 5514
flowg.syslog.protocol - string (Default: UDP)
Protocol used by the syslog server (e.g. UDP, TCP). On fluentd helm chart, UDP is enforced.
flowg:
syslog:
protocol: UDP
FlowG service account configuration
flowg.serviceAccount.create - boolean (Default: true)
Specifies whether a service account should be created.
flowg:
serviceAccount:
create: true
flowg.serviceAccount.annotations - object (Default: {})
Annotations to add to the service account.
flowg:
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-role
flowg.serviceAccount.name - string (Default: "")
The name of the service account to use.
flowg:
serviceAccount:
name: ""
FlowG service configuration
flowg.service.type - string (Default: LoadBalancer)
Kubernetes service type (e.g. LoadBalancer, NodePort, ClusterIP).
flowg:
service:
type: LoadBalancer
flowg.service.nodePort.httpPort - integer (Default: 30080)
NodePort assigned for HTTP traffic when service type is NodePort/LoadBalancer.
flowg:
service:
nodePort:
httpPort: 30080
flowg.service.nodePort.syslogPort - integer (Default: 32514)
NodePort assigned for syslog traffic when service type is NodePort/LoadBalancer.
flowg:
service:
nodePort:
syslogPort: 32514
Multi-node flowg options
flowg.replicas - integer (Default: 4)
Number of FlowG replicas in the multi-node deployment.
flowg:
replicas: 4
flowg.secretKey.useExistingSecret - boolean (Default: false)
Whether to use an existing Kubernetes secret for FLOWG_SECRET_KEY.
flowg:
secretKey:
useExistingSecret: false
flowg.secretKey.secretRef - string (Default: flowg-shared-key)
Name of the secret/key used for shared session encryption across replicas.
flowg:
secretKey:
secretRef: flowg-shared-key
The main https key enables TLS encryption on the web endpoint (port 5080 by default), while https.mgmt enables it on the MGMT endpoint (port 9113).
For simplicity reasons, below reference will only mention flowg.https, but the same configuration can be applied to flowg.https.mgmt as well.
flowg.https.enabled - boolean (Default: false)
Enables HTTPS encryption on the web endpoint (https) or management endpoint (https.mgmt).
flowg:
https:
enabled: true
Custom secret configuration
In case your TLS certificate is already set up and you only want to inject it into FlowG. See more here
flowg.https.certificateFrom.secretRef.name - string (Default: "")
Name of an existing Kubernetes Secret containing tls.crt and tls.key for custom certificate management.
flowg:
https:
enabled: true
certificateFrom:
secretRef:
name: flowg-tls
Cert-manager configuration
Alternatively, cert-manager automatically manages your HTTPS secret.
flowg.https.certificateFrom.certmanager.dnsNames - array (Default: [])
DNS SANs for the automatically generated certificate.
flowg:
https:
enabled: true
certificateFrom:
certmanager:
dnsNames:
- logs.example.com
flowg.https.certificateFrom.certmanager.ipAddresses - array (Default: ["127.0.0.1"])
IP SANs for the automatically generated certificate.
flowg:
https:
enabled: true
certificateFrom:
certmanager:
ipAddresses:
- "127.0.0.1"
flowg.https.certificateFrom.certmanager.issuerRef.name - string (Default: selfsigned-issuer)
Name of the Cert-Manager Issuer or ClusterIssuer.
flowg:
https:
enabled: true
certificateFrom:
certmanager:
issuerRef:
name: selfsigned-issuer
kind: Issuer
flowg.https.certificateFrom.certmanager.issuerRef.kind - string (Default: Issuer)
Kind of the Cert-Manager issuer (Issuer or ClusterIssuer).
flowg:
https:
enabled: true
certificateFrom:
certmanager:
issuerRef:
name: selfsigned-issuer
kind: Issuer
Secret key generator configuration
flowg.https.certificateFrom.certmanager.privateKey.algorithm - string (Default: RSA)
Private key algorithm generated by Cert-Manager (e.g. RSA, ECDSA).
flowg:
https:
enabled: true
certificateFrom:
certmanager:
privateKey:
algorithm: RSA
flowg.https.certificateFrom.certmanager.privateKey.encoding - string (Default: PKCS1)
Private key encoding generated by Cert-Manager.
flowg:
https:
enabled: true
certificateFrom:
certmanager:
privateKey:
encoding: PKCS1
flowg.https.certificateFrom.certmanager.privateKey.size - integer (Default: 2048)
Private key size in bits generated by Cert-Manager.
flowg:
https:
enabled: true
certificateFrom:
certmanager:
privateKey:
size: 2048
These options configure the FoundationDB cluster used by the multi-node FlowG deployment. It is only present in flowg-multinode and flowg-observability helm charts.
Processcounts configuration
FoundationDB allows you to configure the exact number of processes you want in each FoundationDB worker process. Learn more by reading the Official foundationdb documentation.
foundationdb.processCounts.storage - integer (Default: 0)
Number of FoundationDB storage processes per FDB process group (-1 is none, 0 lets FDB decide).
foundationdb:
processCounts:
storage: 0
foundationdb.processCounts.log - integer (Default: -1)
Number of FoundationDB log processes per FDB process group.
foundationdb:
processCounts:
log: -1
foundationdb.processCounts.stateless - integer (Default: -1)
Number of FoundationDB stateless processes per FDB process group.
foundationdb:
processCounts:
stateless: -1
foundationdb.redundancyMode - string (Default: single)
FDB redundancy mode (e.g. single, double, triple).
foundationdb:
redundancyMode: single
Resource limitations
founationdb.resourceRequests.worker.cpu - string/number (Default: 1)
CPU resource request for FDB worker processes.
foundationdb:
resourceRequests:
worker:
cpu: 1
foundationdb.resourceRequests.worker.memory - string (Default: 128Mi)
Memory resource request for FDB worker processes.
foundationdb:
resourceRequests:
worker:
memory: 128Mi
foundationdb.resourceRequests.sidecar.cpu - string/number (Default: 1)
CPU resource request for FDB sidecar container.
foundationdb:
resourceRequests:
sidecar:
cpu: 1
foundationdb.resourceRequests.sidecar.memory - string (Default: 128Mi)
Memory resource request for FDB sidecar container.
foundationdb:
resourceRequests:
sidecar:
memory: 128Mi
foundationdb.resourceLimits.worker.cpu - string/number (Default: 1)
CPU resource limit for FDB worker processes.
foundationdb:
resourceLimits:
worker:
cpu: 1
foundationdb.resourceLimits.worker.memory - string (Default: 128Mi)
Memory resource limit for FDB worker processes.
foundationdb:
resourceLimits:
worker:
memory: 128Mi
foundationdb.resourceLimits.sidecar.cpu - string/number (Default: 1)
CPU resource limit for FDB sidecar container.
foundationdb:
resourceLimits:
sidecar:
cpu: 1
foundationdb.resourceLimits.sidecar.memory - string (Default: 128Mi)
Memory resource limit for FDB sidecar container.
foundationdb:
resourceLimits:
sidecar:
memory: 128Mi
Liveness and readiness probes
foundationdb.sidecarContainer.livenessProbe - boolean (Default: true)
Enable or disable liveness probe for the FDB sidecar container.
foundationdb:
sidecarContainer:
livenessProbe: true
foundationdb.sidecarContainer.readinessProbe - boolean (Default: false)
Enable or disable readiness probe for the FDB sidecar container.
foundationdb:
sidecarContainer:
readinessProbe: false
Other FoundationDB configuration
foundationdb.storageRequest - string (Default: 16Gi)
Storage size requested for each FoundationDB PV.
foundationdb:
storageRequest: 16Gi
These options configure the Fluentd daemonset used in the observability stack chart (flowg-observability).
Docker image configuration
fluentd.image.repository - string (Default: fluent/fluentd-kubernetes-daemonset)
Repository for the Fluentd image.
fluentd:
image:
repository: fluent/fluentd-kubernetes-daemonset
fluentd.image.tag -string (Default: v1-debian-syslog)
Image tag for Fluentd. Syslog version is highly recommended in order to work with FlowG (which is a Syslog server).
fluentd:
image:
tag: v1-debian-syslog
fluentd.image.pullPolicy -string (Default: IfNotPresent)
Image pull policy for Fluentd.
fluentd:
image:
pullPolicy: IfNotPresent
fluentd.image.pullSecrets -array (Default: [])
Image pull secrets for private container registries.
fluentd:
image:
pullSecrets:
- name: my-secret-registry
Fluentd parser configuration
fluentd.logdir -string (Default: /var/log/pods)
Directory on nodes where pod logs are gathered from.
fluentd:
logdir: /var/log/pods
ServiceAccount configuration
fluentd.serviceAccount.create -boolean (Default: true)
Specifies whether a service account should be created for Fluentd.
fluentd:
serviceAccount:
create: true
fluentd.serviceAccount.name -string (Default: "")
Name of the Fluentd service account.
fluentd:
serviceAccount:
name: ""
fluentd.serviceAccount.annotations -object (Default: {})
Annotations to add to Fluentd's service account.
fluentd:
serviceAccount:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-role
Standard kubernetes configuration
fluentd.resources -object (Default: {})
Resource requests and limits for Fluentd pods.
fluentd:
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi