Merge "Stx-monitor: add setup script flexibility"
This commit is contained in:
commit
da6f26b4b1
@ -32,6 +32,7 @@ Patch11: 0011-update-init-container-env-to-include-node-name.patch
|
|||||||
Patch12: 0012-Add-imagePullSecrets.patch
|
Patch12: 0012-Add-imagePullSecrets.patch
|
||||||
Patch13: 0013-removed-unused-images.patch
|
Patch13: 0013-removed-unused-images.patch
|
||||||
Patch14: 0014-Add-rbac-replicasets-to-apps-apigroup-commit-1717e2d.patch
|
Patch14: 0014-Add-rbac-replicasets-to-apps-apigroup-commit-1717e2d.patch
|
||||||
|
Patch15: 0015-script-flexibility.patch
|
||||||
|
|
||||||
BuildRequires: helm
|
BuildRequires: helm
|
||||||
|
|
||||||
@ -54,6 +55,7 @@ Monitor Helm charts
|
|||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
|
%patch15 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# initialize helm and build the toolkit
|
# initialize helm and build the toolkit
|
||||||
|
547
monitor-helm/files/0015-script-flexibility.patch
Normal file
547
monitor-helm/files/0015-script-flexibility.patch
Normal file
@ -0,0 +1,547 @@
|
|||||||
|
From efa0ac8a6ecfe0482f669cf5574687eaf34d41df Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kevin Smith <kevin.smith@windriver.com>
|
||||||
|
Date: Wed, 22 Jan 2020 09:56:22 -0500
|
||||||
|
Subject: [PATCH 1/1] script flexibility
|
||||||
|
|
||||||
|
---
|
||||||
|
stable/filebeat/templates/configmap.yaml | 73 ++------------------------
|
||||||
|
stable/filebeat/templates/daemonset.yaml | 14 +++--
|
||||||
|
stable/filebeat/values.yaml | 84 ++++++++++++++++++++++++++++++
|
||||||
|
stable/logstash/templates/statefulset.yaml | 33 ++++++++++++
|
||||||
|
stable/logstash/values.yaml | 10 ++++
|
||||||
|
stable/metricbeat/templates/configmap.yaml | 73 ++------------------------
|
||||||
|
stable/metricbeat/templates/daemonset.yaml | 19 +++----
|
||||||
|
stable/metricbeat/values.yaml | 83 +++++++++++++++++++++++++++++
|
||||||
|
8 files changed, 240 insertions(+), 149 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/stable/filebeat/templates/configmap.yaml b/stable/filebeat/templates/configmap.yaml
|
||||||
|
index c08a4bc..340f2b9 100644
|
||||||
|
--- a/stable/filebeat/templates/configmap.yaml
|
||||||
|
+++ b/stable/filebeat/templates/configmap.yaml
|
||||||
|
@@ -1,77 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
- name: {{ template "filebeat.fullname" . }}
|
||||||
|
+ name: {{ template "filebeat.fullname" . }}-files
|
||||||
|
labels:
|
||||||
|
app: {{ template "filebeat.fullname" . }}
|
||||||
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||||
|
release: "{{ .Release.Name }}"
|
||||||
|
heritage: "{{ .Release.Service }}"
|
||||||
|
data:
|
||||||
|
- setup-script.sh: |-
|
||||||
|
- #!/bin/bash
|
||||||
|
- #
|
||||||
|
- # This is best effort to load the template into elasticsearch
|
||||||
|
- # if beats are going to elasticsearch via logstash.
|
||||||
|
- #
|
||||||
|
- BEAT='filebeat'
|
||||||
|
- BEAT_VER=$($BEAT version | awk '{print $3}')
|
||||||
|
-
|
||||||
|
- ADDR=$OUTPUT_ELASTICSEARCH_HOSTS
|
||||||
|
- ESPATH=$OUTPUT_ELASTICSEARCH_PATH
|
||||||
|
-
|
||||||
|
- echo $ADDR$ESPATH
|
||||||
|
-
|
||||||
|
- # Check if this is a map of entries. If so, we'll only export the template
|
||||||
|
- # to the first address
|
||||||
|
- if [ ${ADDR: 0:1} == [ ] && [ ${ADDR: -1} == ] ]; then
|
||||||
|
- # Remove the square brackets
|
||||||
|
- ADDR=${ADDR:1:-1}
|
||||||
|
- # Take the first entry in case there are more than one
|
||||||
|
- ADDR=${ADDR%%,*}
|
||||||
|
- fi
|
||||||
|
- echo $ADDR$ESPATH
|
||||||
|
-
|
||||||
|
- # Check if user has formatted with http:// on front, if not we need to add
|
||||||
|
- HTTP='http://'
|
||||||
|
- if [[ ${ADDR} == http* ]]; then
|
||||||
|
- HTTP=''
|
||||||
|
- fi
|
||||||
|
- echo $HTTP
|
||||||
|
-
|
||||||
|
- # Check for ip address containing special characters where -g must be used in curl command
|
||||||
|
- # IPV6 Addresses should come in with square braces around the address.
|
||||||
|
- CURL_G=''
|
||||||
|
- if [[ ${ADDR} == *[* ]]; then
|
||||||
|
- CURL_G=' -g '
|
||||||
|
- fi
|
||||||
|
- echo $CURL_G
|
||||||
|
-
|
||||||
|
- # check if logstash output is enabled, via crude parsing of the .yml file.
|
||||||
|
- sed -e '/output.logstash/,/enabled:/!d' ${BEAT}.yml | grep -i true
|
||||||
|
- if [[ $? -eq 0 ]]; then
|
||||||
|
- echo "logstash configured, exporting template to elasticsearch"
|
||||||
|
- $BEAT export template > /tmp/beat.template.json
|
||||||
|
- # remove the lifecycle section of the yaml, as elasticsearch will choke
|
||||||
|
- # on it as oss version does not support ilm.
|
||||||
|
- sed -i '/lifecycle/,+3d' /tmp/beat.template.json
|
||||||
|
-
|
||||||
|
- # "unset" is the special system name when none has been set through
|
||||||
|
- # overrides.. We key on that to know what template name and index pattern to set
|
||||||
|
- if [[ $SYSTEM_NAME_FOR_INDEX != unset ]]; then
|
||||||
|
- # replace the standard index pattern with one including our system name,
|
||||||
|
- # which will match our created indices
|
||||||
|
- sed -i "s/$BEAT-$BEAT_VER/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX/g" /tmp/beat.template.json
|
||||||
|
- # give the template a name with the system name appended.
|
||||||
|
- curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX -d@/tmp/beat.template.json
|
||||||
|
- else
|
||||||
|
- # apply a higher order to this template in case there are templates with system names
|
||||||
|
- # which should be applied first
|
||||||
|
- sed -i "s/\"order\": 1/\"order\": 2/g" /tmp/beat.template.json
|
||||||
|
- curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER -d@/tmp/beat.template.json
|
||||||
|
- fi
|
||||||
|
- else
|
||||||
|
- echo "logstash not configured, not exporting template, should be done for us."
|
||||||
|
- fi
|
||||||
|
- # Above is non-fatal if there is a problem. Always pass.
|
||||||
|
- exit 0
|
||||||
|
+{{- range $key, $value := .Values.files }}
|
||||||
|
+ {{ $key }}: |-
|
||||||
|
+{{ $value | indent 4 }}
|
||||||
|
+{{- end }}
|
||||||
|
diff --git a/stable/filebeat/templates/daemonset.yaml b/stable/filebeat/templates/daemonset.yaml
|
||||||
|
index 2429892..ea76007 100644
|
||||||
|
--- a/stable/filebeat/templates/daemonset.yaml
|
||||||
|
+++ b/stable/filebeat/templates/daemonset.yaml
|
||||||
|
@@ -44,11 +44,10 @@ spec:
|
||||||
|
command:
|
||||||
|
- /bin/bash
|
||||||
|
- -c
|
||||||
|
- - /usr/share/filebeat/setup-script.sh
|
||||||
|
+ - /usr/share/filebeat/files/setup-script.sh
|
||||||
|
volumeMounts:
|
||||||
|
- - mountPath: /usr/share/filebeat/setup-script.sh
|
||||||
|
- name: setupscript
|
||||||
|
- subPath: setup-script.sh
|
||||||
|
+ - name: files
|
||||||
|
+ mountPath: /usr/share/filebeat/files
|
||||||
|
- name: filebeat-config
|
||||||
|
mountPath: /usr/share/filebeat/filebeat.yml
|
||||||
|
readOnly: true
|
||||||
|
@@ -90,6 +89,9 @@ spec:
|
||||||
|
- name: INDEX_NAME
|
||||||
|
value: "{{ .Values.indexNamePrefix }}"
|
||||||
|
{{- end }}
|
||||||
|
+{{- if .Values.extraVars }}
|
||||||
|
+{{ toYaml .Values.extraVars | indent 8 }}
|
||||||
|
+{{- end }}
|
||||||
|
{{- if .Values.indexTemplateLoad }}
|
||||||
|
- name: "load-es-template"
|
||||||
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||||
|
@@ -221,6 +223,10 @@ spec:
|
||||||
|
hostPath:
|
||||||
|
path: /var/lib/filebeat
|
||||||
|
type: DirectoryOrCreate
|
||||||
|
+ - name: files
|
||||||
|
+ configMap:
|
||||||
|
+ name: {{ template "filebeat.fullname" . }}-files
|
||||||
|
+ defaultMode: 0755
|
||||||
|
{{- if .Values.extraVolumes }}
|
||||||
|
{{ toYaml .Values.extraVolumes | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
diff --git a/stable/filebeat/values.yaml b/stable/filebeat/values.yaml
|
||||||
|
index 3897c82..2490242 100644
|
||||||
|
--- a/stable/filebeat/values.yaml
|
||||||
|
+++ b/stable/filebeat/values.yaml
|
||||||
|
@@ -90,6 +90,90 @@ extraInitContainers: []
|
||||||
|
# - echo
|
||||||
|
# - hello
|
||||||
|
|
||||||
|
+files:
|
||||||
|
+ setup-script.sh: |-
|
||||||
|
+ #!/bin/bash
|
||||||
|
+ #
|
||||||
|
+ # This is best effort to load the template into elasticsearch
|
||||||
|
+ # if beats are going to elasticsearch via logstash.
|
||||||
|
+ #
|
||||||
|
+ BEAT='filebeat'
|
||||||
|
+ BEAT_VER=$($BEAT version | awk '{print $3}')
|
||||||
|
+
|
||||||
|
+ ADDR=$OUTPUT_ELASTICSEARCH_HOSTS
|
||||||
|
+ ESPATH=$OUTPUT_ELASTICSEARCH_PATH
|
||||||
|
+
|
||||||
|
+ echo $ADDR$ESPATH
|
||||||
|
+
|
||||||
|
+ # Check if this is a map of entries. If so, we'll only export the template
|
||||||
|
+ # to the first address
|
||||||
|
+ if [ ${ADDR: 0:1} == [ ] && [ ${ADDR: -1} == ] ]; then
|
||||||
|
+ # Remove the square brackets
|
||||||
|
+ ADDR=${ADDR:1:-1}
|
||||||
|
+ # Take the first entry in case there are more than one
|
||||||
|
+ ADDR=${ADDR%%,*}
|
||||||
|
+ fi
|
||||||
|
+ echo $ADDR$ESPATH
|
||||||
|
+
|
||||||
|
+ # Check if user has formatted with http:// on front, if not we need to add
|
||||||
|
+ HTTP='http://'
|
||||||
|
+ if [[ ${ADDR} == http* ]]; then
|
||||||
|
+ HTTP=''
|
||||||
|
+ fi
|
||||||
|
+ echo $HTTP
|
||||||
|
+
|
||||||
|
+ # Check for ip address containing special characters where -g must be used in curl command
|
||||||
|
+ # IPV6 Addresses should come in with square braces around the address.
|
||||||
|
+ CURL_G=''
|
||||||
|
+ if [[ ${ADDR} == *[* ]]; then
|
||||||
|
+ CURL_G=' -g '
|
||||||
|
+ fi
|
||||||
|
+ echo $CURL_G
|
||||||
|
+
|
||||||
|
+ # check if logstash output is enabled, via crude parsing of the .yml file.
|
||||||
|
+ sed -e '/output.logstash/,/enabled:/!d' ${BEAT}.yml | grep -i true
|
||||||
|
+ if [[ $? -eq 0 ]]; then
|
||||||
|
+ echo "logstash configured, exporting template to elasticsearch"
|
||||||
|
+ $BEAT export template > /tmp/beat.template.json
|
||||||
|
+ # remove the lifecycle section of the yaml, as elasticsearch will choke
|
||||||
|
+ # on it as oss version does not support ilm.
|
||||||
|
+ sed -i '/lifecycle/,+3d' /tmp/beat.template.json
|
||||||
|
+
|
||||||
|
+ # "unset" is the special system name when none has been set through
|
||||||
|
+ # overrides.. We key on that to know what template name and index pattern to set
|
||||||
|
+ if [[ $SYSTEM_NAME_FOR_INDEX != unset ]]; then
|
||||||
|
+ # replace the standard index pattern with one including our system name,
|
||||||
|
+ # which will match our created indices
|
||||||
|
+ sed -i "s/$BEAT-$BEAT_VER/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX/g" /tmp/beat.template.json
|
||||||
|
+ # give the template a name with the system name appended.
|
||||||
|
+
|
||||||
|
+ # check if the template exists first before creating
|
||||||
|
+ curl -v $CURL_G -XGET -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX | grep "$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX"
|
||||||
|
+ if [[ $? -ne 0 ]]; then
|
||||||
|
+ echo "$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX template not found, creating..."
|
||||||
|
+ curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX -d@/tmp/beat.template.json
|
||||||
|
+ else
|
||||||
|
+ echo "$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX template found, not creating..."
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ # apply a higher order to this template in case there are templates with system names
|
||||||
|
+ # which should be applied first
|
||||||
|
+ curl -v $CURL_G -XGET -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER | grep "$BEAT-$BEAT_VER"
|
||||||
|
+ if [[ $? -ne 0 ]]; then
|
||||||
|
+ echo "$BEAT-$BEAT_VER template not found, creating..."
|
||||||
|
+ sed -i "s/\"order\": 1/\"order\": 2/g" /tmp/beat.template.json
|
||||||
|
+ curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER -d@/tmp/beat.template.json
|
||||||
|
+ else
|
||||||
|
+ echo "$BEAT-$BEAT_VER template found, not creating..."
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ echo "logstash not configured, not exporting template, should be done for us."
|
||||||
|
+ fi
|
||||||
|
+ # Above is non-fatal if there is a problem. Always pass.
|
||||||
|
+ exit 0
|
||||||
|
+
|
||||||
|
+
|
||||||
|
resources: {}
|
||||||
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||||
|
# choice for the user. This also increases chances charts run on environments with little
|
||||||
|
diff --git a/stable/logstash/templates/statefulset.yaml b/stable/logstash/templates/statefulset.yaml
|
||||||
|
index 4749bb1..d34dcec 100644
|
||||||
|
--- a/stable/logstash/templates/statefulset.yaml
|
||||||
|
+++ b/stable/logstash/templates/statefulset.yaml
|
||||||
|
@@ -45,6 +45,36 @@ spec:
|
||||||
|
{{- end }}
|
||||||
|
hostNetwork: true
|
||||||
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
+ initContainers:
|
||||||
|
+{{- if .Values.extraInitContainers }}
|
||||||
|
+{{ toYaml .Values.extraInitContainers | indent 8 }}
|
||||||
|
+ env:
|
||||||
|
+ ## Elasticsearch output
|
||||||
|
+ - name: ELASTICSEARCH_HOST
|
||||||
|
+ value: {{ .Values.elasticsearch.host | quote }}
|
||||||
|
+ - name: ELASTICSEARCH_PORT
|
||||||
|
+ value: {{ .Values.elasticsearch.port | quote }}
|
||||||
|
+ ## make system name visible for in setting index.
|
||||||
|
+ {{- if .Values.systemNameForIndex}}
|
||||||
|
+ {{ $systemNameNoSpecial := regexReplaceAll "[^A-Za-z0-9-]+" .Values.systemNameForIndex "" }}
|
||||||
|
+ {{ $systemNameFormatted := $systemNameNoSpecial | lower | trunc 200 }}
|
||||||
|
+ - name: SYSTEM_NAME_FOR_INDEX
|
||||||
|
+ value: {{ printf "-%s" $systemNameFormatted | quote }}
|
||||||
|
+ {{- else }}
|
||||||
|
+ - name: SYSTEM_NAME_FOR_INDEX
|
||||||
|
+ value: ""
|
||||||
|
+ {{- end }}
|
||||||
|
+ ## Additional env vars
|
||||||
|
+ {{- range $key, $value := .Values.config }}
|
||||||
|
+ - name: {{ $key | upper | replace "." "_" }}
|
||||||
|
+ value: {{ $value | quote }}
|
||||||
|
+ {{- end }}
|
||||||
|
+ {{- if .Values.extraEnv }}
|
||||||
|
+{{ .Values.extraEnv | toYaml | indent 12 }}
|
||||||
|
+ {{- end }}
|
||||||
|
+ volumeMounts:
|
||||||
|
+{{ toYaml .Values.volumeMounts | indent 12 }}
|
||||||
|
+{{- end }}
|
||||||
|
containers:
|
||||||
|
|
||||||
|
## logstash
|
||||||
|
@@ -86,6 +116,9 @@ spec:
|
||||||
|
- name: {{ $key | upper | replace "." "_" }}
|
||||||
|
value: {{ $value | quote }}
|
||||||
|
{{- end }}
|
||||||
|
+ {{- if .Values.extraEnv }}
|
||||||
|
+{{ .Values.extraEnv | toYaml | indent 12 }}
|
||||||
|
+ {{- end }}
|
||||||
|
resources:
|
||||||
|
{{ toYaml .Values.resources | indent 12 }}
|
||||||
|
volumeMounts:
|
||||||
|
diff --git a/stable/logstash/values.yaml b/stable/logstash/values.yaml
|
||||||
|
index b8b8de2..2fdebde 100644
|
||||||
|
--- a/stable/logstash/values.yaml
|
||||||
|
+++ b/stable/logstash/values.yaml
|
||||||
|
@@ -167,6 +167,16 @@ volumes: []
|
||||||
|
# hostPath:
|
||||||
|
# path: /tmp
|
||||||
|
|
||||||
|
+extraEnv: []
|
||||||
|
+
|
||||||
|
+extraInitContainers: []
|
||||||
|
+ # - name: echo
|
||||||
|
+ # image: busybox
|
||||||
|
+ # imagePullPolicy: Always
|
||||||
|
+ # args:
|
||||||
|
+ # - echo
|
||||||
|
+ # - hello
|
||||||
|
+
|
||||||
|
exporter:
|
||||||
|
logstash:
|
||||||
|
env: {}
|
||||||
|
diff --git a/stable/metricbeat/templates/configmap.yaml b/stable/metricbeat/templates/configmap.yaml
|
||||||
|
index 9ae276d..8b281b4 100644
|
||||||
|
--- a/stable/metricbeat/templates/configmap.yaml
|
||||||
|
+++ b/stable/metricbeat/templates/configmap.yaml
|
||||||
|
@@ -1,77 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
- name: {{ template "metricbeat.fullname" . }}
|
||||||
|
+ name: {{ template "metricbeat.fullname" . }}-files
|
||||||
|
labels:
|
||||||
|
app: {{ template "metricbeat.fullname" . }}
|
||||||
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||||
|
release: "{{ .Release.Name }}"
|
||||||
|
heritage: "{{ .Release.Service }}"
|
||||||
|
data:
|
||||||
|
- setup-script.sh: |-
|
||||||
|
- #!/bin/bash
|
||||||
|
- #
|
||||||
|
- # This is best effort to load the template into elasticsearch
|
||||||
|
- # if beats are going to elasticsearch via logstash.
|
||||||
|
- #
|
||||||
|
- BEAT='metricbeat'
|
||||||
|
- BEAT_VER=$($BEAT version | awk '{print $3}')
|
||||||
|
-
|
||||||
|
- ADDR=$OUTPUT_ELASTICSEARCH_HOSTS
|
||||||
|
- ESPATH=$OUTPUT_ELASTICSEARCH_PATH
|
||||||
|
-
|
||||||
|
- echo $ADDR$ESPATH
|
||||||
|
-
|
||||||
|
- # Check if this is a map of entries. If so, we'll only export the template
|
||||||
|
- # to the first address
|
||||||
|
- if [ ${ADDR: 0:1} == [ ] && [ ${ADDR: -1} == ] ]; then
|
||||||
|
- # Remove the square brackets
|
||||||
|
- ADDR=${ADDR:1:-1}
|
||||||
|
- # Take the first entry in case there are more than one
|
||||||
|
- ADDR=${ADDR%%,*}
|
||||||
|
- fi
|
||||||
|
- echo $ADDR$ESPATH
|
||||||
|
-
|
||||||
|
- # Check if user has formatted with http:// on front, if not we need to add
|
||||||
|
- HTTP='http://'
|
||||||
|
- if [[ ${ADDR} == http* ]]; then
|
||||||
|
- HTTP=''
|
||||||
|
- fi
|
||||||
|
- echo $HTTP
|
||||||
|
-
|
||||||
|
- # Check for ip address containing special characters where -g must be used in curl command
|
||||||
|
- # IPV6 Addresses should come in with square braces around the address.
|
||||||
|
- CURL_G=''
|
||||||
|
- if [[ ${ADDR} == *[* ]]; then
|
||||||
|
- CURL_G=' -g '
|
||||||
|
- fi
|
||||||
|
- echo $CURL_G
|
||||||
|
-
|
||||||
|
- # check if logstash output is enabled, via crude parsing of the .yml file.
|
||||||
|
- sed -e '/output.logstash/,/enabled:/!d' ${BEAT}.yml | grep -i true
|
||||||
|
- if [[ $? -eq 0 ]]; then
|
||||||
|
- echo "logstash configured, exporting template to elasticsearch"
|
||||||
|
- $BEAT export template > /tmp/beat.template.json
|
||||||
|
- # remove the lifecycle section of the yaml, as elasticsearch will choke
|
||||||
|
- # on it as oss version does not support ilm.
|
||||||
|
- sed -i '/lifecycle/,+3d' /tmp/beat.template.json
|
||||||
|
-
|
||||||
|
- # "unset" is the special system name when none has been set through
|
||||||
|
- # overrides.. We key on that to know what template name and index pattern to set
|
||||||
|
- if [[ $SYSTEM_NAME_FOR_INDEX != unset ]]; then
|
||||||
|
- # replace the standard index pattern with one including our system name,
|
||||||
|
- # which will match our created indices
|
||||||
|
- sed -i "s/$BEAT-$BEAT_VER/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX/g" /tmp/beat.template.json
|
||||||
|
- # give the template a name with the system name appended.
|
||||||
|
- curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX -d@/tmp/beat.template.json
|
||||||
|
- else
|
||||||
|
- # apply a higher order to this template in case there are templates with system names
|
||||||
|
- # which should be applied first
|
||||||
|
- sed -i "s/\"order\": 1/\"order\": 2/g" /tmp/beat.template.json
|
||||||
|
- curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER -d@/tmp/beat.template.json
|
||||||
|
- fi
|
||||||
|
- else
|
||||||
|
- echo "logstash not configured, not exporting template, should be done for us."
|
||||||
|
- fi
|
||||||
|
- # Above is non-fatal if there is a problem. Always pass.
|
||||||
|
- exit 0
|
||||||
|
+{{- range $key, $value := .Values.files }}
|
||||||
|
+ {{ $key }}: |-
|
||||||
|
+{{ $value | indent 4 }}
|
||||||
|
+{{- end }}
|
||||||
|
diff --git a/stable/metricbeat/templates/daemonset.yaml b/stable/metricbeat/templates/daemonset.yaml
|
||||||
|
index 247304e..581c120 100644
|
||||||
|
--- a/stable/metricbeat/templates/daemonset.yaml
|
||||||
|
+++ b/stable/metricbeat/templates/daemonset.yaml
|
||||||
|
@@ -39,11 +39,10 @@ spec:
|
||||||
|
command:
|
||||||
|
- /bin/bash
|
||||||
|
- -c
|
||||||
|
- - /usr/share/metricbeat/setup-script.sh
|
||||||
|
+ - /usr/share/metricbeat/files/setup-script.sh
|
||||||
|
volumeMounts:
|
||||||
|
- - mountPath: /usr/share/metricbeat/setup-script.sh
|
||||||
|
- name: setupscript
|
||||||
|
- subPath: setup-script.sh
|
||||||
|
+ - name: files
|
||||||
|
+ mountPath: /usr/share/metricbeat/files
|
||||||
|
- name: config
|
||||||
|
mountPath: /usr/share/metricbeat/metricbeat.yml
|
||||||
|
readOnly: true
|
||||||
|
@@ -85,6 +84,9 @@ spec:
|
||||||
|
- name: INDEX_NAME
|
||||||
|
value: "{{ .Values.indexNamePrefix }}"
|
||||||
|
{{- end }}
|
||||||
|
+{{- if .Values.extraEnv }}
|
||||||
|
+{{ toYaml .Values.extraEnv | indent 8 }}
|
||||||
|
+{{- end }}
|
||||||
|
containers:
|
||||||
|
- name: {{ .Chart.Name }}
|
||||||
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||||
|
@@ -168,9 +170,8 @@ spec:
|
||||||
|
- name: dockersock
|
||||||
|
mountPath: /var/run/docker.sock
|
||||||
|
#Mount the script so we can see it from running containter
|
||||||
|
- - mountPath: /usr/share/metricbeat/setup-script.sh
|
||||||
|
- name: setupscript
|
||||||
|
- subPath: setup-script.sh
|
||||||
|
+ - name: files
|
||||||
|
+ mountPath: /usr/share/metricbeat/files
|
||||||
|
{{- if .Values.extraVolumeMounts }}
|
||||||
|
{{ toYaml .Values.extraVolumeMounts | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
@@ -194,9 +195,9 @@ spec:
|
||||||
|
- name: dockersock
|
||||||
|
hostPath:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
- - name: setupscript
|
||||||
|
+ - name: files
|
||||||
|
configMap:
|
||||||
|
- name: {{ template "metricbeat.fullname" . }}
|
||||||
|
+ name: {{ template "metricbeat.fullname" . }}-files
|
||||||
|
defaultMode: 0755
|
||||||
|
{{- if .Values.extraVolumes }}
|
||||||
|
{{ toYaml .Values.extraVolumes | indent 6 }}
|
||||||
|
diff --git a/stable/metricbeat/values.yaml b/stable/metricbeat/values.yaml
|
||||||
|
index b59c428..8f80bb6 100644
|
||||||
|
--- a/stable/metricbeat/values.yaml
|
||||||
|
+++ b/stable/metricbeat/values.yaml
|
||||||
|
@@ -144,6 +144,89 @@ extraVolumeMounts: []
|
||||||
|
# mountPath: /host/var/log
|
||||||
|
# readOnly: true
|
||||||
|
|
||||||
|
+files:
|
||||||
|
+ setup-script.sh: |-
|
||||||
|
+ #!/bin/bash
|
||||||
|
+ #
|
||||||
|
+ # This is best effort to load the template into elasticsearch
|
||||||
|
+ # if beats are going to elasticsearch via logstash.
|
||||||
|
+ #
|
||||||
|
+ BEAT='metricbeat'
|
||||||
|
+ BEAT_VER=$($BEAT version | awk '{print $3}')
|
||||||
|
+
|
||||||
|
+ ADDR=$OUTPUT_ELASTICSEARCH_HOSTS
|
||||||
|
+ ESPATH=$OUTPUT_ELASTICSEARCH_PATH
|
||||||
|
+
|
||||||
|
+ echo $ADDR$ESPATH
|
||||||
|
+
|
||||||
|
+ # Check if this is a map of entries. If so, we'll only export the template
|
||||||
|
+ # to the first address
|
||||||
|
+ if [ ${ADDR: 0:1} == [ ] && [ ${ADDR: -1} == ] ]; then
|
||||||
|
+ # Remove the square brackets
|
||||||
|
+ ADDR=${ADDR:1:-1}
|
||||||
|
+ # Take the first entry in case there are more than one
|
||||||
|
+ ADDR=${ADDR%%,*}
|
||||||
|
+ fi
|
||||||
|
+ echo $ADDR$ESPATH
|
||||||
|
+
|
||||||
|
+ # Check if user has formatted with http:// on front, if not we need to add
|
||||||
|
+ HTTP='http://'
|
||||||
|
+ if [[ ${ADDR} == http* ]]; then
|
||||||
|
+ HTTP=''
|
||||||
|
+ fi
|
||||||
|
+ echo $HTTP
|
||||||
|
+
|
||||||
|
+ # Check for ip address containing special characters where -g must be used in curl command
|
||||||
|
+ # IPV6 Addresses should come in with square braces around the address.
|
||||||
|
+ CURL_G=''
|
||||||
|
+ if [[ ${ADDR} == *[* ]]; then
|
||||||
|
+ CURL_G=' -g '
|
||||||
|
+ fi
|
||||||
|
+ echo $CURL_G
|
||||||
|
+
|
||||||
|
+ # check if logstash output is enabled, via crude parsing of the .yml file.
|
||||||
|
+ sed -e '/output.logstash/,/enabled:/!d' ${BEAT}.yml | grep -i true
|
||||||
|
+ if [[ $? -eq 0 ]]; then
|
||||||
|
+ echo "logstash configured, exporting template to elasticsearch"
|
||||||
|
+ $BEAT export template > /tmp/beat.template.json
|
||||||
|
+ # remove the lifecycle section of the yaml, as elasticsearch will choke
|
||||||
|
+ # on it as oss version does not support ilm.
|
||||||
|
+ sed -i '/lifecycle/,+3d' /tmp/beat.template.json
|
||||||
|
+
|
||||||
|
+ # "unset" is the special system name when none has been set through
|
||||||
|
+ # overrides.. We key on that to know what template name and index pattern to set
|
||||||
|
+ if [[ $SYSTEM_NAME_FOR_INDEX != unset ]]; then
|
||||||
|
+ # replace the standard index pattern with one including our system name,
|
||||||
|
+ # which will match our created indices
|
||||||
|
+ sed -i "s/$BEAT-$BEAT_VER/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX/g" /tmp/beat.template.json
|
||||||
|
+ # give the template a name with the system name appended.
|
||||||
|
+
|
||||||
|
+ # check if the template exists first before creating
|
||||||
|
+ curl -v $CURL_G -XGET -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX | grep "$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX"
|
||||||
|
+ if [[ $? -ne 0 ]]; then
|
||||||
|
+ echo "$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX template not found, creating..."
|
||||||
|
+ curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX -d@/tmp/beat.template.json
|
||||||
|
+ else
|
||||||
|
+ echo "$BEAT-$BEAT_VER$SYSTEM_NAME_FOR_INDEX template found, not creating..."
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ # apply a higher order to this template in case there are templates with system names
|
||||||
|
+ # which should be applied first
|
||||||
|
+ curl -v $CURL_G -XGET -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER | grep "$BEAT-$BEAT_VER"
|
||||||
|
+ if [[ $? -ne 0 ]]; then
|
||||||
|
+ echo "$BEAT-$BEAT_VER template not found, creating..."
|
||||||
|
+ sed -i "s/\"order\": 1/\"order\": 2/g" /tmp/beat.template.json
|
||||||
|
+ curl -v $CURL_G -XPUT -H "Content-Type: application/json" $HTTP$ADDR$ESPATH/_template/$BEAT-$BEAT_VER -d@/tmp/beat.template.json
|
||||||
|
+ else
|
||||||
|
+ echo "$BEAT-$BEAT_VER template found, not creating..."
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ echo "logstash not configured, not exporting template, should be done for us."
|
||||||
|
+ fi
|
||||||
|
+ # Above is non-fatal if there is a problem. Always pass.
|
||||||
|
+ exit 0
|
||||||
|
+
|
||||||
|
resources: {}
|
||||||
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||||
|
# choice for the user. This also increases chances charts run on environments with little
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
@ -107,6 +107,7 @@ data:
|
|||||||
masterService: 'mon-elasticsearch-data-headless, mon-elasticsearch-master'
|
masterService: 'mon-elasticsearch-data-headless, mon-elasticsearch-master'
|
||||||
podManagementPolicy: OrderedReady
|
podManagementPolicy: OrderedReady
|
||||||
clusterHealthCheckParams: 'local=true'
|
clusterHealthCheckParams: 'local=true'
|
||||||
|
maxUnavailable: 1
|
||||||
extraEnvs:
|
extraEnvs:
|
||||||
- name: DATA_PRESTOP_SLEEP
|
- name: DATA_PRESTOP_SLEEP
|
||||||
value: "100"
|
value: "100"
|
||||||
@ -188,6 +189,7 @@ data:
|
|||||||
masterService: 'mon-elasticsearch-data-headless, mon-elasticsearch-master'
|
masterService: 'mon-elasticsearch-data-headless, mon-elasticsearch-master'
|
||||||
podManagementPolicy: OrderedReady
|
podManagementPolicy: OrderedReady
|
||||||
clusterHealthCheckParams: 'local=true'
|
clusterHealthCheckParams: 'local=true'
|
||||||
|
maxUnavailable: 1
|
||||||
wait:
|
wait:
|
||||||
resources:
|
resources:
|
||||||
- labels:
|
- labels:
|
||||||
@ -242,6 +244,7 @@ data:
|
|||||||
masterService: 'mon-elasticsearch-data-headless, mon-elasticsearch-master'
|
masterService: 'mon-elasticsearch-data-headless, mon-elasticsearch-master'
|
||||||
podManagementPolicy: OrderedReady
|
podManagementPolicy: OrderedReady
|
||||||
clusterHealthCheckParams: 'local=true'
|
clusterHealthCheckParams: 'local=true'
|
||||||
|
maxUnavailable: 1
|
||||||
wait:
|
wait:
|
||||||
resources:
|
resources:
|
||||||
- labels:
|
- labels:
|
||||||
@ -446,14 +449,8 @@ data:
|
|||||||
# Mount the setup_script to main container for visibility
|
# Mount the setup_script to main container for visibility
|
||||||
# even though not used there.
|
# even though not used there.
|
||||||
extraVolumeMounts:
|
extraVolumeMounts:
|
||||||
- mountPath: /usr/share/filebeat/setup-script.sh
|
- name: files
|
||||||
name: setupscript
|
mountPath: /usr/share/filebeat/files
|
||||||
subPath: setup-script.sh
|
|
||||||
extraVolumes:
|
|
||||||
- configMap:
|
|
||||||
defaultMode: 493
|
|
||||||
name: mon-filebeat
|
|
||||||
name: setupscript
|
|
||||||
tolerations:
|
tolerations:
|
||||||
- key: "services"
|
- key: "services"
|
||||||
operator: "Equal"
|
operator: "Equal"
|
||||||
|
Loading…
Reference in New Issue
Block a user