Nagios: Use helm-toolkit template renderer for config files
This updates the Nagios chart to use the helm-toolkit template renderer snippet for generating the Nagios configuration files. This was done to make the exposure of the configuration files simpler for those who are more familiar with traditional Nagios configuration files, as well as allowing for values overrides for adding custom host names or custom object definitions to nagios objects (as Nagios doesn't easily allow for this via environment accessible macros). Change-Id: I84d5c83d84d6438af5f3ab57997e80e8b1fc8312 Signed-off-by: Steve Wilkerson <sw5822@att.com>
This commit is contained in:
parent
d23e847e1f
commit
d72299db4b
@ -14,15 +14,6 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/}}
|
*/}}
|
||||||
|
|
||||||
{{ define "configmap_etc._nagios_objects" }}
|
|
||||||
{{- tuple "contact" $.Values.conf.nagios.contacts | include "nagios.utils.object_definition" }}
|
|
||||||
{{- tuple "contactgroup" $.Values.conf.nagios.contactgroups | include "nagios.utils.object_definition" }}
|
|
||||||
{{- tuple "host" $.Values.conf.nagios.hosts | include "nagios.utils.object_definition" }}
|
|
||||||
{{- tuple "hostgroup" $.Values.conf.nagios.host_groups | include "nagios.utils.object_definition" }}
|
|
||||||
{{- tuple "command" $.Values.conf.nagios.commands | include "nagios.utils.object_definition" }}
|
|
||||||
{{- tuple "service" $.Values.conf.nagios.services | include "nagios.utils.object_definition" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if .Values.manifests.configmap_etc }}
|
{{- if .Values.manifests.configmap_etc }}
|
||||||
{{- $envAll := . }}
|
{{- $envAll := . }}
|
||||||
---
|
---
|
||||||
@ -32,12 +23,12 @@ metadata:
|
|||||||
name: nagios-etc
|
name: nagios-etc
|
||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
data:
|
||||||
cgi.cfg: {{ include "nagios.utils.to_nagios_conf" .Values.conf.nagios.cgi | b64enc }}
|
|
||||||
nagios.cfg: {{ include "nagios.utils.to_nagios_conf" .Values.conf.nagios.nagios | b64enc }}
|
|
||||||
{{- if not (empty .Values.conf.nagios.query_es_clauses) }}
|
{{- if not (empty .Values.conf.nagios.query_es_clauses) }}
|
||||||
query_es_clauses.json: {{ .Values.conf.nagios.query_es_clauses | toJson | b64enc }}
|
query_es_clauses.json: {{ .Values.conf.nagios.query_es_clauses | toJson | b64enc }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
nagios_objects.cfg: {{ include "configmap_etc._nagios_objects" $ | b64enc }}
|
{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.nagios.nagios.template "key" "nagios.cfg" "format" "Secret") | indent 2 }}
|
||||||
|
{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.nagios.cgi.template "key" "cgi.cfg" "format" "Secret") | indent 2 }}
|
||||||
|
{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.nagios.objects.template "key" "nagios_objects.cfg" "format" "Secret") | indent 2 }}
|
||||||
#NOTE(portdirect): this must be last, to work round helm ~2.7 bug.
|
#NOTE(portdirect): this must be last, to work round helm ~2.7 bug.
|
||||||
{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.httpd "key" "httpd.conf" "format" "Secret") | indent 2 }}
|
{{- include "helm-toolkit.snippets.values_template_renderer" (dict "envAll" $envAll "template" .Values.conf.httpd "key" "httpd.conf" "format" "Secret") | indent 2 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
{{/*
|
|
||||||
Copyright 2017 The Openstack-Helm Authors.
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/}}
|
|
||||||
|
|
||||||
# This function defines commands, hosts, hostgroups, and services for nagios by
|
|
||||||
# consuming yaml trees to define the fields for these objects
|
|
||||||
|
|
||||||
{{- define "nagios.utils.object_definition" -}}
|
|
||||||
{{- $type := index . 0 }}
|
|
||||||
{{- $objects := index . 1 }}
|
|
||||||
{{- range $object := $objects }}
|
|
||||||
{{ range $config := $object }}
|
|
||||||
define {{ $type }} {
|
|
||||||
{{- range $key, $value := $config }}
|
|
||||||
{{ $key }} {{ $value }}
|
|
||||||
{{- end }}
|
|
||||||
}
|
|
||||||
{{end -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||||||
{{/*
|
|
||||||
Copyright 2017 The Openstack-Helm Authors.
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/}}
|
|
||||||
|
|
||||||
{{- define "nagios.utils.to_nagios_conf" -}}
|
|
||||||
{{- range $key, $value := . -}}
|
|
||||||
{{ if eq $key "cfg_file" }}
|
|
||||||
{{ range $file := $value -}}
|
|
||||||
{{ $key }}={{ $file }}
|
|
||||||
{{ end }}
|
|
||||||
{{- else }}
|
|
||||||
{{ $key }}={{ $value }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- end -}}
|
|
2031
nagios/values.yaml
2031
nagios/values.yaml
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user