Skip to content
This repository has been archived by the owner on Feb 22, 2022. It is now read-only.

Add Fluent Bit chart. #895

Merged
merged 12 commits into from Jun 2, 2017
16 changes: 16 additions & 0 deletions 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
31 changes: 31 additions & 0 deletions 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)
9 changes: 9 additions & 0 deletions 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 }}
16 changes: 16 additions & 0 deletions 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 -}}
47 changes: 47 additions & 0 deletions 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 }}
50 changes: 50 additions & 0 deletions 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 }}
27 changes: 27 additions & 0 deletions 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