diff --git a/stable/kibana/.helmignore b/stable/kibana/.helmignore new file mode 100644 index 0000000000..c13e3c8fbb --- /dev/null +++ b/stable/kibana/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj \ No newline at end of file diff --git a/stable/kibana/Chart.yaml b/stable/kibana/Chart.yaml new file mode 100644 index 0000000000..adbc549a07 --- /dev/null +++ b/stable/kibana/Chart.yaml @@ -0,0 +1,14 @@ +name: kibana +version: 0.1.0 +appVersion: 5.4.3 +description: Kibana is an open source data visualization plugin for Elasticsearch +icon: https://raw.githubusercontent.com/elastic/kibana/master/src/ui/public/icons/kibana-color.svg +keywords: +- elasticsearch +- kibana +maintainers: +- name: compleatang + email: casey@monax.io +sources: +- https://github.com/elastic/kibana +engine: gotpl diff --git a/stable/kibana/README.md b/stable/kibana/README.md new file mode 100644 index 0000000000..64d90b522c --- /dev/null +++ b/stable/kibana/README.md @@ -0,0 +1,72 @@ +# kibana + +[kibana](https://github.com/elastic/kibana) is your window into the Elastic Stack. Specifically, it's an open source (Apache Licensed), browser-based analytics and search dashboard for Elasticsearch. + +## TL;DR; + +```console +$ helm install incubator/kibana +``` + +## Introduction + +This chart bootstraps a kibana deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. + +## Installing the Chart + +To install the chart with the release name `my-release`: + +```console +$ helm install incubator/kibana --name my-release +``` + +The command deploys kibana on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. + +## Uninstalling the Chart + +To uninstall/delete the `my-release` deployment: + +```console +$ helm delete my-release +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the kibana chart and their default values. + +Parameter | Description | Default +--- | --- | --- +`affinity` | node/pod affinities | None +`env` | Environment variables to configure Kibana | `{}` +`image.pullPolicy` | Image pull policy | `IfNotPresent` +`image.repository` | Image repository | `kibana` +`image.tag` | Image tag | `5.4.3` +`ingress.enabled` | Enables Ingress | `false` +`ingress.annotations` | Ingress annotations | None: +`ingress.hosts` | Ingress accepted hostnames | None: +`ingress.tls` | Ingress TLS configuration | None: +`nodeSelector` | node labels for pod assignment | `{}` +`podAnnotations` | annotations to add to each pod | `{}` +`replicaCount` | desired number of pods | `1` +`resources` | pod resource requests & limits | `{}` +`service.externalPort` | external port for the service | `443` +`service.internalPort` | internal port for the service | `4180` +`service.type` | type of service | `ClusterIP` +`tolerations` | List of node taints to tolerate | `[]` + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +$ helm install incubator/kibana --name my-release \ + --set=image.tag=v0.0.2,resources.limits.cpu=200m +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +$ helm install incubator/kibana --name my-release -f values.yaml +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) diff --git a/stable/kibana/templates/NOTES.txt b/stable/kibana/templates/NOTES.txt new file mode 100644 index 0000000000..b297cf7c6a --- /dev/null +++ b/stable/kibana/templates/NOTES.txt @@ -0,0 +1,3 @@ +To verify that oauth-proxy has started, run: + + kubectl --namespace={{ .Release.Namespace }} get pods -l "app={{ template "kibana.fullname" . }}" diff --git a/stable/kibana/templates/_helpers.tpl b/stable/kibana/templates/_helpers.tpl new file mode 100644 index 0000000000..24e23d7407 --- /dev/null +++ b/stable/kibana/templates/_helpers.tpl @@ -0,0 +1,20 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "kibana.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 "kibana.fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if ne $name .Release.Name -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s" $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} diff --git a/stable/kibana/templates/deployment.yaml b/stable/kibana/templates/deployment.yaml new file mode 100644 index 0000000000..1abce468e3 --- /dev/null +++ b/stable/kibana/templates/deployment.yaml @@ -0,0 +1,54 @@ +apiVersion: apps/v1beta1 +kind: Deployment +metadata: + labels: + app: {{ template "kibana.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "kibana.fullname" . }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + {{- if .Values.podAnnotations }} + annotations: +{{ toYaml .Values.podAnnotations | indent 8 }} + {{- end }} + labels: + app: {{ template "kibana.name" . }} + release: "{{ .Release.Name }}" + spec: + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + {{- range $key, $value := .Values.env }} + - name: "{{ $key }}" + value: "{{ $value }}" + {{- end }} + ports: + - containerPort: {{ .Values.service.internalPort }} + name: {{ template "kibana.name" . }} + protocol: TCP + # livenessProbe: + # httpGet: + # path: /ping + # port: {{ .Values.service.internalPort }} + # readinessProbe: + # httpGet: + # path: /ping + # port: {{ .Values.service.internalPort }} + resources: +{{ toYaml .Values.resources | indent 10 }} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 8 }} + {{- end }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + tolerations: +{{ toYaml .Values.tolerations | indent 8 }} diff --git a/stable/kibana/templates/ingress.yaml b/stable/kibana/templates/ingress.yaml new file mode 100644 index 0000000000..bfb02eaca5 --- /dev/null +++ b/stable/kibana/templates/ingress.yaml @@ -0,0 +1,32 @@ +{{- if .Values.ingress.enabled -}} +{{- $serviceName := include "kibana.fullname" . -}} +{{- $servicePort := .Values.service.externalPort -}} +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + labels: + app: {{ template "kibana.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + heritage: {{ .Release.Service }} + release: {{ .Release.Name }} + name: {{ template "kibana.fullname" . }} + annotations: + {{- range $key, $value := .Values.ingress.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} +spec: + rules: + {{- range $host := .Values.ingress.hosts }} + - host: {{ $host }} + http: + paths: + - path: / + backend: + serviceName: {{ $serviceName }} + servicePort: {{ $servicePort }} + {{- end -}} + {{- if .Values.ingress.tls }} + tls: +{{ toYaml .Values.ingress.tls | indent 4 }} + {{- end -}} +{{- end -}} diff --git a/stable/kibana/templates/service.yaml b/stable/kibana/templates/service.yaml new file mode 100644 index 0000000000..5c273c6939 --- /dev/null +++ b/stable/kibana/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: {{ template "kibana.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + name: {{ template "kibana.fullname" . }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + protocol: TCP + selector: + app: {{ template "kibana.name" . }} + release: {{ .Release.Name }} diff --git a/stable/kibana/values.yaml b/stable/kibana/values.yaml new file mode 100644 index 0000000000..59fb5375aa --- /dev/null +++ b/stable/kibana/values.yaml @@ -0,0 +1,54 @@ +image: + repository: "kibana" + tag: "5.4.3" + pullPolicy: "IfNotPresent" + +env: + # All Kibana configuration options are adjustable via env vars. + # To adjust a config option to an env var uppercase + replace `.` with `_` + # Ref: https://www.elastic.co/guide/en/kibana/current/settings.html + # + # ELASTICSEARCH_URL: http://elasticsearch-client:9200 + # SERVER_PORT: 5601 + # LOGGING_VERBOSE: "true" + # SERVER_DEFAULTROUTE: "/app/kibana" + +service: + type: ClusterIP + externalPort: 443 + internalPort: 5601 + +ingress: + enabled: false + # hosts: + # - chart-example.local + # annotations: + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + # tls: + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # limits: + # cpu: 100m + # memory: 300Mi + # requests: + # cpu: 100m + # memory: 300Mi + +# Affinity for pod assignment +# Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity +# affinity: {} + +# Tolerations for pod assignment +# Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +tolerations: [] + +# Node labels for pod assignment +# Ref: https://kubernetes.io/docs/user-guide/node-selection/ +nodeSelector: {} + +podAnnotations: {} +replicaCount: 1