diff --git a/libvirt/templates/configmap-etc.yaml b/libvirt/templates/configmap-etc.yaml index 0dcbc099e4..cab19942f7 100644 --- a/libvirt/templates/configmap-etc.yaml +++ b/libvirt/templates/configmap-etc.yaml @@ -15,7 +15,6 @@ limitations under the License. */}} {{- if .Values.manifests.configmap_etc }} - --- apiVersion: v1 kind: ConfigMap @@ -23,7 +22,7 @@ metadata: name: libvirt-etc data: libvirtd.conf: | -{{- include "helm-toolkit.utils.to_kv_list" .Values.conf.libvirt | indent 4 }} +{{- include "libvirt.utils.to_libvirt_conf" .Values.conf.libvirt | indent 4 }} qemu.conf: | -{{- include "helm-toolkit.utils.to_kv_list" .Values.conf.qemu | indent 4 }} +{{- include "libvirt.utils.to_libvirt_conf" .Values.conf.qemu | indent 4 }} {{- end }} diff --git a/libvirt/templates/utils/_to_libvirt_conf.tpl b/libvirt/templates/utils/_to_libvirt_conf.tpl new file mode 100644 index 0000000000..8d7c712a41 --- /dev/null +++ b/libvirt/templates/utils/_to_libvirt_conf.tpl @@ -0,0 +1,53 @@ +{{/* +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. +*/}} + +{{/* +abstract: | + Builds a libvirt compatible config file. +values: | + conf: + libvirt: + log_level: 3 + cgroup_controllers: + - cpu + - cpuacct +usage: | + {{ include "libvirt.utils.to_libvirt_conf" .Values.conf.libvirt }} +return: | + cgroup_controllers = [ "cpu", "cpuacct" ] + log_level = 3 +*/}} + +{{- define "libvirt.utils._to_libvirt_conf.list_to_string" -}} +{{- $local := dict "first" true -}} +{{- range $k, $v := . -}}{{- if not $local.first -}}, {{ end -}}{{- $v | quote -}}{{- $_ := set $local "first" false -}}{{- end -}} +{{- end -}} + +{{- define "libvirt.utils.to_libvirt_conf" -}} +{{- range $key, $value := . -}} +{{- if kindIs "slice" $value }} +{{ $key }} = [ {{ include "libvirt.utils._to_libvirt_conf.list_to_string" $value }} ] +{{- else if kindIs "string" $value }} +{{- if regexMatch "^[0-9]+$" $value }} +{{ $key }} = {{ $value }} +{{- else }} +{{ $key }} = {{ $value | quote }} +{{- end }} +{{- else }} +{{ $key }} = {{ $value }} +{{- end }} +{{- end -}} +{{- end -}}