[bitnami/logstash] Major change: Adapt ingress (#4988)

This commit is contained in:
Javier J. Salmerón-García
2021-01-14 11:03:46 +01:00
committed by GitHub
parent deb6d3c0d7
commit 0f8b53bd42
7 changed files with 177 additions and 72 deletions

View File

@@ -1,6 +1,6 @@
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 1.1.2
digest: sha256:e96477f37f86a4595dce9057f8d04f903f761f340440986129e53cc55f3d63ee
generated: "2020-12-11T12:21:27.260238+01:00"
version: 1.2.3
digest: sha256:3fc1fbf3ae204e0121f1e202d6d57f9381f3a45d8821647d1dfe0a475644da0c
generated: "2021-01-13T11:38:38.463181+01:00"

View File

@@ -23,4 +23,4 @@ name: logstash
sources:
- https://github.com/bitnami/bitnami-docker-logstash
- https://www.elastic.co/products/logstash
version: 2.0.2
version: 3.0.0

View File

@@ -58,6 +58,7 @@ The following tables lists the configurable parameters of the Logstash chart and
| `image.pullPolicy` | Logstash image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `image.debug` | Specify if debug logs should be enabled | `false` |
| `kubeVersion` | Force target Kubernetes version (using Helm capabilities if not set) | `nil` |
| `nameOverride` | String to partially override logstash.fullname template with a string (will prepend the release name) | `nil` |
| `fullnameOverride` | String to fully override logstash.fullname template with a string | `nil` |
| `clusterDomain` | Default Kubernetes cluster domain | `cluster.local` |
@@ -101,11 +102,15 @@ The following tables lists the configurable parameters of the Logstash chart and
| `service.clusterIP` | Static clusterIP or None for headless services | `nil` |
| `ingress.enabled` | Enable ingress controller resource | `false` |
| `ingress.certManager` | Add annotations for cert-manager | `false` |
| `ingress.annotations` | Ingress annotations | `{}` |
| `ingress.hosts[0].name` | Hostname for Logstash service | `logstash.local` |
| `ingress.hosts[0].path` | Path within the url structure | `/` |
| `ingress.tls[0].hosts[0]` | TLS hosts | `logstash.local` |
| `ingress.tls[0].secretName` | TLS Secret (certificates) | `logstash.local-tls` |
| `ingress.hostname` | Default host for the ingress resource | `logstash.local` |
| `ingress.path` | Default path for the ingress resource | `/` |
| `ingress.tls` | Create TLS Secret | `false` |
| `ingress.annotations` | Ingress annotations | `[]` (evaluated as a template) |
| `ingress.extraHosts[0].name` | Additional hostnames to be covered | `nil` |
| `ingress.extraHosts[0].path` | Additional hostnames to be covered | `nil` |
| `ingress.extraPaths` | Additional arbitrary path/backend objects | `nil` |
| `ingress.extraTls[0].hosts[0]` | TLS configuration for additional hostnames to be covered | `nil` |
| `ingress.extraTls[0].secretName` | TLS configuration for additional hostnames to be covered | `nil` |
| `ingress.secrets[0].name` | TLS Secret Name | `nil` |
| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` |
| `ingress.secrets[0].key` | TLS Secret Key | `nil` |
@@ -303,6 +308,10 @@ Find more information about how to deal with common errors related to Bitnami
## Upgrading
### To 3.0.0
This version standardizes the way of defining Ingress rules. When configuring a single hostname for the Ingress rule, set the `ingress.hostname` value. When defining more than one, set the `ingress.extraHosts` array. Apart from this case, no issues are expected to appear when upgrading.
### To 2.0.0
This version drops support of including files in the `files/` folder, as it was working only under certain circumstances and the chart already provides alternative mechanisms like the `input` , `output` and `filter`, the `existingConfiguration` or the `extraDeploy` values.

View File

@@ -8,21 +8,13 @@ Logstash can be accessed through following DNS names from within your cluster:
Logstash Prometheus Metrics: {{ include "common.names.fullname" . }}-metrics.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }} (port {{ .Values.metrics.service.port }})
{{- end }}
To access Logstash from outside the cluster execute the following commands:
{{- if .Values.ingress.enabled }}
{{- $ingressHost := first .Values.ingress.hosts }}
You should be able to access your new Logstash server(s) through:
{{- range .Values.ingress.hosts }}
{{ if .tls }}https{{- else }}http{{ end }}://{{ .name }}
{{- end }}
e.g.:
curl {{ if .tls }}https{{- else }}http{{ end }}://{{ $ingressHost.name }}
curl {{ if .Values.ingress.tls }}https{{- else }}http{{ end }}://{{ .Values.ingress.hostname }}
{{- else if contains "NodePort" .Values.service.type }}

View File

@@ -1,33 +1,59 @@
{{- if .Values.ingress.enabled -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
{{- if .Values.ingress.enabled }}
apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }}
kind: Ingress
metadata:
name: {{ template "common.names.fullname" . }}
labels: {{ include "common.labels.standard" . | nindent 4 }}
name: {{ include "common.names.fullname" . }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
annotations:
{{- if .Values.ingress.certManager }}
kubernetes.io/tls-acme: "true"
{{- end }}
{{- range $key, $value := .Values.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- if .Values.ingress.annotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.ingress.annotations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .name }}
{{- if .Values.ingress.hostname }}
- host: {{ .Values.ingress.hostname }}
http:
paths:
{{- if .Values.ingress.extraPaths }}
{{- toYaml .Values.ingress.extraPaths | nindent 10 }}
{{- end }}
- path: {{ .Values.ingress.path }}
{{- if eq "true" (include "common.ingress.supportsPathType" .) }}
pathType: {{ .Values.ingress.pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "http" "context" $) | nindent 14 }}
{{- end }}
{{- range .Values.ingress.extraHosts }}
- host: {{ .name | quote }}
http:
paths:
- path: {{ default "/" .path }}
backend:
serviceName: {{ include "common.names.fullname" $ }}
servicePort: http
{{- end }}
{{- if .Values.ingress.tls }}
{{- if eq "true" (include "common.ingress.supportsPathType" $) }}
pathType: {{ default "ImplementationSpecific" .pathType }}
{{- end }}
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }}
{{- end }}
{{- if or .Values.ingress.tls .Values.ingress.extraTls }}
tls:
{{- toYaml .Values.ingress.tls | nindent 4 }}
{{- if .Values.ingress.tls }}
- hosts:
- {{ .Values.ingress.hostname }}
{{- range .Values.ingress.extraHosts }}
- {{ .name }}
{{- end }}
secretName: {{ printf "%s-tls" .Values.ingress.hostname }}
{{- end }}
{{- if .Values.ingress.extraTls }}
{{- include "common.tplvalues.render" ( dict "value" .Values.ingress.extraTls "context" $ ) | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -29,6 +29,10 @@ image:
##
debug: false
## Force target Kubernetes version (using Helm capabilites if not set)
##
kubeVersion:
## String to partially override logstash.fullname template (will maintain the release name)
##
# nameOverride:
@@ -292,7 +296,9 @@ service:
##
annotations: {}
## Ingress parameters
## Configure the ingress resource that allows you to access the
## Logstash installation. Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
ingress:
## Set to true to enable ingress record generation
@@ -303,31 +309,61 @@ ingress:
##
certManager: false
## Ingress Path type
##
pathType: ImplementationSpecific
## Override API Version (automatically detected if not set)
##
apiVersion:
## When the ingress is enabled, a host pointing to this will be created
##
hostname: logstash.local
## The Path to Logstash. You may need to set this to '/*' in order to use this
## with ALB ingress controllers.
##
path: /
## Ingress annotations done as key:value pairs
## For a full list of possible ingress annotations, please see
## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md
## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
##
## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set
## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set
##
annotations: {}
# kubernetes.io/ingress.class: nginx
## The list of hostnames to be covered with this ingress record.
## Most likely this will be just one host, but in the event more hosts are needed, this is an array
## Enable TLS configuration for the hostname defined at ingress.hostname parameter
## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }}
## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
##
hosts:
- name: logstash.local
path: /
tls: false
## The tls configuration for the ingress
## The list of additional hostnames to be covered with this ingress record.
## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
## extraHosts:
## - name: logstash.local
## path: /
##
## Any additional arbitrary paths that may need to be added to the ingress under the main host.
## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
## extraPaths:
## - path: /*
## backend:
## serviceName: ssl-redirect
## servicePort: use-annotation
##
## The tls configuration for additional hostnames to be covered with this ingress record.
## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
# tls:
# - hosts:
# - logstash.local
# secretName: logstash.local-tls
## extraTls:
## - hosts:
## - logstash.local
## secretName: logstash.local-tls
##
secrets:
## If you're providing your own certificates, please use this to add the certificates as secrets
## key and certificate should start with -----BEGIN CERTIFICATE----- or
## -----BEGIN RSA PRIVATE KEY-----
@@ -337,9 +373,12 @@ ingress:
##
## It is also possible to create and manage the certificates outside of this helm chart
## Please see README.md for more information
# - name: logstash.local-tls
# key:
# certificate:
##
secrets: []
## - name: logstash.local-tls
## key:
## certificate:
##
## Prometheus metrics
##

View File

@@ -29,6 +29,10 @@ image:
##
debug: false
## Force target Kubernetes version (using Helm capabilites if not set)
##
kubeVersion:
## String to partially override logstash.fullname template (will maintain the release name)
##
# nameOverride:
@@ -292,7 +296,9 @@ service:
##
annotations: {}
## Ingress parameters
## Configure the ingress resource that allows you to access the
## Logstash installation. Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
ingress:
## Set to true to enable ingress record generation
@@ -303,31 +309,61 @@ ingress:
##
certManager: false
## Ingress Path type
##
pathType: ImplementationSpecific
## Override API Version (automatically detected if not set)
##
apiVersion:
## When the ingress is enabled, a host pointing to this will be created
##
hostname: logstash.local
## The Path to Logstash. You may need to set this to '/*' in order to use this
## with ALB ingress controllers.
##
path: /
## Ingress annotations done as key:value pairs
## For a full list of possible ingress annotations, please see
## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md
## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
##
## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set
## If certManager is set to true, annotation kubernetes.io/tls-acme: "true" will automatically be set
##
annotations: {}
# kubernetes.io/ingress.class: nginx
## The list of hostnames to be covered with this ingress record.
## Most likely this will be just one host, but in the event more hosts are needed, this is an array
## Enable TLS configuration for the hostname defined at ingress.hostname parameter
## TLS certificates will be retrieved from a TLS secret with name: {{- printf "%s-tls" .Values.ingress.hostname }}
## You can use the ingress.secrets parameter to create this TLS secret or relay on cert-manager to create it
##
hosts:
- name: logstash.local
path: /
tls: false
## The tls configuration for the ingress
## The list of additional hostnames to be covered with this ingress record.
## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
## extraHosts:
## - name: logstash.local
## path: /
##
## Any additional arbitrary paths that may need to be added to the ingress under the main host.
## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
## extraPaths:
## - path: /*
## backend:
## serviceName: ssl-redirect
## servicePort: use-annotation
##
## The tls configuration for additional hostnames to be covered with this ingress record.
## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
# tls:
# - hosts:
# - logstash.local
# secretName: logstash.local-tls
## extraTls:
## - hosts:
## - logstash.local
## secretName: logstash.local-tls
##
secrets:
## If you're providing your own certificates, please use this to add the certificates as secrets
## key and certificate should start with -----BEGIN CERTIFICATE----- or
## -----BEGIN RSA PRIVATE KEY-----
@@ -337,9 +373,12 @@ ingress:
##
## It is also possible to create and manage the certificates outside of this helm chart
## Please see README.md for more information
# - name: logstash.local-tls
# key:
# certificate:
##
secrets: []
## - name: logstash.local-tls
## key:
## certificate:
##
## Prometheus metrics
##