diff --git a/stable/fluent-bit/Chart.yaml b/stable/fluent-bit/Chart.yaml new file mode 100755 index 0000000000..47558aed8b --- /dev/null +++ b/stable/fluent-bit/Chart.yaml @@ -0,0 +1,16 @@ +name: fluent-bit +version: 0.1.0 +appVersion: 0.11.7 +description: Fast and Lightweight Log/Data Forwarder for Linux, BSD and OSX +keywords: +- fluent +- bit +sources: +- http://fluentbit.io +icon: http://fluentbit.io/assets/img/logo1-default.png +home: http://fluentbit.io +maintainers: +- name: edsiper + email: eduardo@treasure-data.com +- name: kfox1111 + email: Kevin.Fox@pnnl.gov diff --git a/stable/fluent-bit/README.md b/stable/fluent-bit/README.md new file mode 100644 index 0000000000..884a865097 --- /dev/null +++ b/stable/fluent-bit/README.md @@ -0,0 +1,31 @@ +# fluent-bit Chart + +[Fluent Bit](http://fluentbit.io/) is an open source and multi-platform Log Forwarder. + +## Chart Details +This chart will do the following: + +* Install a configmap for fluent bit +* Install a daemonset that provisions the fluent bit [per-host architecture] + +## Installing the Chart + +To install the chart with the release name `my-release`: + +```bash +$ helm install --name my-release stable/fluent-bit +``` + +## Configuration + +Configurable values are documented in the `values.yaml`. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. + +Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, + +```bash +$ helm install --name my-release -f values.yaml stable/fluent-bit +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) diff --git a/stable/fluent-bit/templates/NOTES.txt b/stable/fluent-bit/templates/NOTES.txt new file mode 100644 index 0000000000..458c37a162 --- /dev/null +++ b/stable/fluent-bit/templates/NOTES.txt @@ -0,0 +1,9 @@ +fluent-bit is now running. + +{{- if eq .Values.backend.type "forward" }} + +It will forward all container logs to the svc named {{ .Values.backend.forward.host }} on port: {{ .Values.backend.forward.port }} +{{- else if eq .Values.backend.type "es" }} + +It will forward all container logs to the svc named {{ .Values.backend.es.host }} on port: {{ .Values.backend.es.port }} +{{- end }} diff --git a/stable/fluent-bit/templates/_helpers.tpl b/stable/fluent-bit/templates/_helpers.tpl new file mode 100644 index 0000000000..f0d83d2edb --- /dev/null +++ b/stable/fluent-bit/templates/_helpers.tpl @@ -0,0 +1,16 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/stable/fluent-bit/templates/config.yaml b/stable/fluent-bit/templates/config.yaml new file mode 100644 index 0000000000..9d9b5256d6 --- /dev/null +++ b/stable/fluent-bit/templates/config.yaml @@ -0,0 +1,47 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "fullname" . }}-config + labels: + app: {{ template "fullname" . }} +data: + fluent-bit.conf: |- + [SERVICE] + Flush 1 + Daemon Off + Log_Level info + Parsers_File parsers.conf + + [INPUT] + Name tail + Path /var/log/containers/*.log + Parser docker + Tag kube.* + Refresh_Interval 5 + Mem_Buf_Limit 5MB + + [FILTER] + Name kubernetes + Match kube.* + +{{ if eq .Values.backend.type "test" }} + [OUTPUT] + Name file + Match * + Path /tmp/fluent-bit.log +{{ else if eq .Values.backend.type "forward" }} + [OUTPUT] + Name forward + Match * + Host {{ .Values.backend.forward.host }} + Port {{ .Values.backend.forward.port }} + Retry_Limit False +{{ else if eq .Values.backend.type "es" }} + [OUTPUT] + Name es + Match * + Host {{ .Values.backend.es.host }} + Port {{ .Values.backend.es.port }} + Logstash_Format On + Retry_Limit False +{{- end }} diff --git a/stable/fluent-bit/templates/daemonset.yaml b/stable/fluent-bit/templates/daemonset.yaml new file mode 100644 index 0000000000..23658b8459 --- /dev/null +++ b/stable/fluent-bit/templates/daemonset.yaml @@ -0,0 +1,50 @@ +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: fluent-bit + labels: + app: {{ template "fullname" . }} +spec: + template: + metadata: + labels: + app: {{ template "fullname" . }} + spec: + containers: + - name: fluent-bit + image: "{{ .Values.image.fluent_bit.repository }}:{{ .Values.image.fluent_bit.tag }}" + imagePullPolicy: "{{ .Values.image.pullPolicy}}" + env: +{{ toYaml .Values.env | indent 10 }} + resources: +{{ toYaml .Values.resources | indent 10 }} + volumeMounts: + - name: varlog + mountPath: /var/log + - name: varlibdockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + - name: config + mountPath: /fluent-bit/etc/fluent-bit.conf + subPath: fluent-bit.conf +{{ if .Values.on_minikube }} + - name: mnt + mountPath: /mnt + readOnly: true +{{ end }} + terminationGracePeriodSeconds: 10 + volumes: + - name: varlog + hostPath: + path: /var/log + - name: varlibdockercontainers + hostPath: + path: /var/lib/docker/containers + - name: config + configMap: + name: {{ template "fullname" . }}-config +{{ if .Values.on_minikube }} + - name: mnt + hostPath: + path: /mnt +{{ end }} diff --git a/stable/fluent-bit/values.yaml b/stable/fluent-bit/values.yaml new file mode 100644 index 0000000000..fb46a9d6a5 --- /dev/null +++ b/stable/fluent-bit/values.yaml @@ -0,0 +1,27 @@ +# Minikube stores its logs in a seperate directory. +# enable if started in minikube. +on_minikube: false + +image: + fluent_bit: + repository: fluent/fluent-bit + tag: 0.11.7 + pullPolicy: IfNotPresent + +backend: + type: forward + forward: + host: fluentd + port: 24284 + es: + host: elasticsearch + port: 9200 + +env: [] + +resources: + limits: + memory: 100Mi + requests: + cpu: 100m + memory: 100Mi