From a7193c37d4566ac53e1e139f1b5aa47380deb279 Mon Sep 17 00:00:00 2001 From: Pete Birley Date: Wed, 21 Mar 2018 13:27:40 -0500 Subject: [PATCH] Neutron: agent host targetting This PS adds the ablity to target different configs to different hosts for the nutron agents, in the same manner as nova-compute. Change-Id: Iebd87e30014d6cac2127c7e1a14259b10d74fbf8 --- neutron/templates/configmap-etc.yaml | 13 ++++++-- neutron/templates/daemonset-dhcp-agent.yaml | 30 ++++++++++++++----- neutron/templates/daemonset-l3-agent.yaml | 30 ++++++++++++++----- neutron/templates/daemonset-lb-agent.yaml | 30 ++++++++++++++----- .../templates/daemonset-metadata-agent.yaml | 30 ++++++++++++++----- neutron/templates/daemonset-ovs-agent.yaml | 30 ++++++++++++++----- neutron/templates/daemonset-sriov-agent.yaml | 30 ++++++++++++++----- 7 files changed, 142 insertions(+), 51 deletions(-) diff --git a/neutron/templates/configmap-etc.yaml b/neutron/templates/configmap-etc.yaml index 1d7fe0c8ca..a05e638d77 100644 --- a/neutron/templates/configmap-etc.yaml +++ b/neutron/templates/configmap-etc.yaml @@ -14,8 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if .Values.manifests.configmap_etc }} -{{- $envAll := . }} +{{- define "neutron.configmap.etc" }} +{{- $configMapName := index . 0 }} +{{- $envAll := index . 1 }} +{{- with $envAll }} {{- if empty $envAll.Values.conf.neutron.keystone_authtoken.auth_uri -}} {{- tuple "identity" "internal" "api" . | include "helm-toolkit.endpoints.keystone_endpoint_uri_lookup"| set $envAll.Values.conf.neutron.keystone_authtoken "auth_uri" | quote | trunc 0 -}} @@ -150,7 +152,7 @@ limitations under the License. apiVersion: v1 kind: ConfigMap metadata: - name: neutron-etc + name: {{ $configMapName }} data: rally_tests.yaml: | {{ toYaml $envAll.Values.conf.rally_tests.tests | indent 4 }} @@ -206,3 +208,8 @@ data: openvswitch-plugin.filters: | {{- tuple $envAll.Values.conf.rootwrap_filters.openvswitch_plugin "etc/rootwrap.d/_openvswitch-plugin.filters.tpl" . | include "helm-toolkit.utils.configmap_templater" }} {{- end }} +{{- end }} + +{{- if .Values.manifests.configmap_etc }} +{{- list "neutron-etc" . | include "neutron.configmap.etc" }} +{{- end }} diff --git a/neutron/templates/daemonset-dhcp-agent.yaml b/neutron/templates/daemonset-dhcp-agent.yaml index c4e352b5ba..923d3e3a58 100644 --- a/neutron/templates/daemonset-dhcp-agent.yaml +++ b/neutron/templates/daemonset-dhcp-agent.yaml @@ -14,17 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if .Values.manifests.daemonset_dhcp_agent }} -{{- $envAll := . }} - -{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "dhcp" -}} -{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{- define "neutron.dhcp_agent.daemonset" }} +{{- $daemonset := index . 0 }} +{{- $configMapName := index . 1 }} +{{- $serviceAccountName := index . 2 }} +{{- $dependencies := index . 3 }} +{{- $envAll := index . 4 }} +{{- with $envAll }} {{- $mounts_neutron_dhcp_agent := .Values.pod.mounts.neutron_dhcp_agent.neutron_dhcp_agent }} {{- $mounts_neutron_dhcp_agent_init := .Values.pod.mounts.neutron_dhcp_agent.init_container }} -{{- $serviceAccountName := "neutron-dhcp-agent" }} -{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} --- apiVersion: extensions/v1beta1 kind: DaemonSet @@ -151,7 +151,7 @@ spec: defaultMode: 0555 - name: neutron-etc configMap: - name: neutron-etc + name: {{ $configMapName }} defaultMode: 0444 {{- if ( has "openvswitch" .Values.network.backend ) }} - name: runopenvswitch @@ -163,3 +163,17 @@ spec: path: /var/lib/neutron/openstack-helm {{ if $mounts_neutron_dhcp_agent.volumes }}{{ toYaml $mounts_neutron_dhcp_agent.volumes | indent 8 }}{{ end }} {{- end }} +{{- end }} + +{{- if .Values.manifests.daemonset_dhcp_agent }} +{{- $envAll := . }} +{{- $daemonset := "dhcp-agent" }} +{{- $configMapName := "neutron-etc" }} +{{- $serviceAccountName := "neutron-dhcp-agent" }} +{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "dhcp" -}} +{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} +{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName $dependencies . | include "neutron.dhcp_agent.daemonset" | toString | fromYaml }} +{{- $configmap_yaml := "neutron.configmap.etc" }} +{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }} +{{- end }} diff --git a/neutron/templates/daemonset-l3-agent.yaml b/neutron/templates/daemonset-l3-agent.yaml index b0752d83f5..422feea159 100644 --- a/neutron/templates/daemonset-l3-agent.yaml +++ b/neutron/templates/daemonset-l3-agent.yaml @@ -14,17 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if .Values.manifests.daemonset_l3_agent }} -{{- $envAll := . }} - -{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "l3" -}} -{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{- define "neutron.l3_agent.daemonset" }} +{{- $daemonset := index . 0 }} +{{- $configMapName := index . 1 }} +{{- $serviceAccountName := index . 2 }} +{{- $dependencies := index . 3 }} +{{- $envAll := index . 4 }} +{{- with $envAll }} {{- $mounts_neutron_l3_agent := .Values.pod.mounts.neutron_l3_agent.neutron_l3_agent }} {{- $mounts_neutron_l3_agent_init := .Values.pod.mounts.neutron_l3_agent.init_container }} -{{- $serviceAccountName := "neutron-l3-agent" }} -{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} --- apiVersion: extensions/v1beta1 kind: DaemonSet @@ -150,7 +150,7 @@ spec: defaultMode: 0555 - name: neutron-etc configMap: - name: neutron-etc + name: {{ $configMapName }} defaultMode: 0444 {{- if ( has "openvswitch" .Values.network.backend ) }} - name: runopenvswitch @@ -165,3 +165,17 @@ spec: path: /var/lib/neutron/openstack-helm {{ if $mounts_neutron_l3_agent.volumes }}{{ toYaml $mounts_neutron_l3_agent.volumes | indent 8 }}{{ end }} {{- end }} +{{- end }} + +{{- if .Values.manifests.daemonset_l3_agent }} +{{- $envAll := . }} +{{- $daemonset := "l3-agent" }} +{{- $configMapName := "neutron-etc" }} +{{- $serviceAccountName := "neutron-l3-agent" }} +{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "l3" -}} +{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} +{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName $dependencies . | include "neutron.l3_agent.daemonset" | toString | fromYaml }} +{{- $configmap_yaml := "neutron.configmap.etc" }} +{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }} +{{- end }} diff --git a/neutron/templates/daemonset-lb-agent.yaml b/neutron/templates/daemonset-lb-agent.yaml index d1621c7002..f58940ba87 100644 --- a/neutron/templates/daemonset-lb-agent.yaml +++ b/neutron/templates/daemonset-lb-agent.yaml @@ -14,17 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if and .Values.manifests.daemonset_lb_agent ( has "linuxbridge" .Values.network.backend ) }} -{{- $envAll := . }} - -{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "lb_agent" -}} -{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{- define "neutron.lb_agent.daemonset" }} +{{- $daemonset := index . 0 }} +{{- $configMapName := index . 1 }} +{{- $serviceAccountName := index . 2 }} +{{- $dependencies := index . 3 }} +{{- $envAll := index . 4 }} +{{- with $envAll }} {{- $mounts_neutron_lb_agent := .Values.pod.mounts.neutron_lb_agent.neutron_lb_agent }} {{- $mounts_neutron_lb_agent_init := .Values.pod.mounts.neutron_lb_agent.init_container }} -{{- $serviceAccountName := "neutron-lb-agent" }} -{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} --- apiVersion: extensions/v1beta1 kind: DaemonSet @@ -245,7 +245,7 @@ spec: defaultMode: 0555 - name: neutron-etc configMap: - name: neutron-etc + name: {{ $configMapName }} defaultMode: 0444 - name: run hostPath: @@ -255,3 +255,17 @@ spec: path: / {{ if $mounts_neutron_lb_agent.volumes }}{{ toYaml $mounts_neutron_lb_agent.volumes | indent 8 }}{{ end }} {{- end }} +{{- end }} + +{{- if and .Values.manifests.daemonset_lb_agent ( has "linuxbridge" .Values.network.backend ) }} +{{- $envAll := . }} +{{- $daemonset := "lb-agent" }} +{{- $configMapName := "neutron-etc" }} +{{- $serviceAccountName := "neutron-lb-agent" }} +{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "lb_agent" -}} +{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} +{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName $dependencies . | include "neutron.lb_agent.daemonset" | toString | fromYaml }} +{{- $configmap_yaml := "neutron.configmap.etc" }} +{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }} +{{- end }} diff --git a/neutron/templates/daemonset-metadata-agent.yaml b/neutron/templates/daemonset-metadata-agent.yaml index d19fdd7b5d..e5b8332430 100644 --- a/neutron/templates/daemonset-metadata-agent.yaml +++ b/neutron/templates/daemonset-metadata-agent.yaml @@ -14,17 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if .Values.manifests.daemonset_metadata_agent }} -{{- $envAll := . }} - -{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "metadata" -}} -{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{- define "neutron.metadata_agent.daemonset" }} +{{- $daemonset := index . 0 }} +{{- $configMapName := index . 1 }} +{{- $serviceAccountName := index . 2 }} +{{- $dependencies := index . 3 }} +{{- $envAll := index . 4 }} +{{- with $envAll }} {{- $mounts_neutron_metadata_agent := .Values.pod.mounts.neutron_metadata_agent.neutron_metadata_agent }} {{- $mounts_neutron_metadata_agent_init := .Values.pod.mounts.neutron_metadata_agent.init_container }} -{{- $serviceAccountName := "neutron-metadata-agent" }} -{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} --- apiVersion: extensions/v1beta1 kind: DaemonSet @@ -165,7 +165,7 @@ spec: defaultMode: 0555 - name: neutron-etc configMap: - name: neutron-etc + name: {{ $configMapName }} defaultMode: 0444 {{- if ( has "openvswitch" .Values.network.backend ) }} - name: runopenvswitch @@ -177,3 +177,17 @@ spec: path: /var/lib/neutron/openstack-helm {{ if $mounts_neutron_metadata_agent.volumes }}{{ toYaml $mounts_neutron_metadata_agent.volumes | indent 8 }}{{ end }} {{- end }} +{{- end }} + +{{- if .Values.manifests.daemonset_metadata_agent }} +{{- $envAll := . }} +{{- $daemonset := "metadata-agent" }} +{{- $configMapName := "neutron-etc" }} +{{- $serviceAccountName := "neutron-metadata-agent" }} +{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "metadata" -}} +{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} +{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName $dependencies . | include "neutron.metadata_agent.daemonset" | toString | fromYaml }} +{{- $configmap_yaml := "neutron.configmap.etc" }} +{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }} +{{- end }} diff --git a/neutron/templates/daemonset-ovs-agent.yaml b/neutron/templates/daemonset-ovs-agent.yaml index 28d58c6b20..3076232ae3 100644 --- a/neutron/templates/daemonset-ovs-agent.yaml +++ b/neutron/templates/daemonset-ovs-agent.yaml @@ -14,17 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if and .Values.manifests.daemonset_ovs_agent ( has "openvswitch" .Values.network.backend ) }} -{{- $envAll := . }} - -{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "ovs_agent" -}} -{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{- define "neutron.ovs_agent.daemonset" }} +{{- $daemonset := index . 0 }} +{{- $configMapName := index . 1 }} +{{- $serviceAccountName := index . 2 }} +{{- $dependencies := index . 3 }} +{{- $envAll := index . 4 }} +{{- with $envAll }} {{- $mounts_neutron_ovs_agent := .Values.pod.mounts.neutron_ovs_agent.neutron_ovs_agent }} {{- $mounts_neutron_ovs_agent_init := .Values.pod.mounts.neutron_ovs_agent.init_container }} -{{- $serviceAccountName := "neutron-ovs-agent" }} -{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} --- apiVersion: extensions/v1beta1 kind: DaemonSet @@ -249,7 +249,7 @@ spec: defaultMode: 0555 - name: neutron-etc configMap: - name: neutron-etc + name: {{ $configMapName }} defaultMode: 0444 - name: run hostPath: @@ -259,3 +259,17 @@ spec: path: / {{ if $mounts_neutron_ovs_agent.volumes }}{{ toYaml $mounts_neutron_ovs_agent.volumes | indent 8 }}{{ end }} {{- end }} +{{- end }} + +{{- if and .Values.manifests.daemonset_ovs_agent ( has "openvswitch" .Values.network.backend ) }} +{{- $envAll := . }} +{{- $daemonset := "ovs-agent" }} +{{- $configMapName := "neutron-etc" }} +{{- $serviceAccountName := "neutron-ovs-agent" }} +{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "ovs_agent" -}} +{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} +{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName $dependencies . | include "neutron.ovs_agent.daemonset" | toString | fromYaml }} +{{- $configmap_yaml := "neutron.configmap.etc" }} +{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }} +{{- end }} diff --git a/neutron/templates/daemonset-sriov-agent.yaml b/neutron/templates/daemonset-sriov-agent.yaml index b0478b929f..64068698bf 100644 --- a/neutron/templates/daemonset-sriov-agent.yaml +++ b/neutron/templates/daemonset-sriov-agent.yaml @@ -14,17 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */}} -{{- if and .Values.manifests.daemonset_sriov_agent ( has "sriov" .Values.network.backend ) }} -{{- $envAll := . }} - -{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "sriov_agent" -}} -{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{- define "neutron.sriov_agent.daemonset" }} +{{- $daemonset := index . 0 }} +{{- $configMapName := index . 1 }} +{{- $serviceAccountName := index . 2 }} +{{- $dependencies := index . 3 }} +{{- $envAll := index . 4 }} +{{- with $envAll }} {{- $mounts_neutron_sriov_agent := .Values.pod.mounts.neutron_sriov_agent.neutron_sriov_agent }} {{- $mounts_neutron_sriov_agent_init := .Values.pod.mounts.neutron_sriov_agent.init_container }} -{{- $serviceAccountName := "neutron-sriov-agent" }} -{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} --- apiVersion: extensions/v1beta1 kind: DaemonSet @@ -221,7 +221,7 @@ spec: defaultMode: 0555 - name: neutron-etc configMap: - name: neutron-etc + name: {{ $configMapName }} defaultMode: 0444 - name: run hostPath: @@ -231,3 +231,17 @@ spec: path: / {{ if $mounts_neutron_sriov_agent.volumes }}{{ toYaml $mounts_neutron_sriov_agent.volumes | indent 8 }}{{ end }} {{- end }} +{{- end }} + +{{- if and .Values.manifests.daemonset_sriov_agent ( has "sriov" .Values.network.backend ) }} +{{- $envAll := . }} +{{- $daemonset := "sriov-agent" }} +{{- $configMapName := "neutron-etc" }} +{{- $serviceAccountName := "neutron-sriov-agent" }} +{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "sriov_agent" -}} +{{- $dependencies := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }} +{{ tuple $envAll $dependencies $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }} +{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName $dependencies . | include "neutron.ovs_agent.daemonset" | toString | fromYaml }} +{{- $configmap_yaml := "neutron.configmap.etc" }} +{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }} +{{- end }}