Add Fluent Bit chart. (#895)

* Add Fluent Bit chart.

This change adds a chart for deploying Fluent Bit that
ships Kubernetes logs.

* Fix some misnamed entries.

* Add forwarder Retry_Limit

* Remove namespace. Update description.

* Add Notes.txt

* Bump version to 0.11.3

* Add missing imagePullPolicy

* Fix wrong values datatype for env.

* Bump version to 0.11.6

* Bump fluent-bit version.

* Update Chart.yaml

- add appVersion, icon and home
- update maintainers to use github ids

* add trimSuffix to helpers
This commit is contained in:
kfox1111
2017-06-02 15:36:30 +02:00
committed by Adnan Abdulhussein
parent bf2c89f2e3
commit 9d3676a0b9
7 changed files with 196 additions and 0 deletions
+16
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 }}
@@ -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
View File
@@ -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