Merge "feat(neutron): allow users to provide configs in neutron.conf.d"

This commit is contained in:
Zuul
2025-12-01 16:59:57 +00:00
committed by Gerrit Code Review
31 changed files with 163 additions and 43 deletions

View File

@@ -18,4 +18,5 @@ set -x
exec neutron-bgp-dragent \
--config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/bgp_dragent.ini \
--config-dir /etc/neutron/neutron.conf.d \
--debug

View File

@@ -26,4 +26,5 @@ exec neutron-dhcp-agent \
{{- if ( has "openvswitch" .Values.network.backend ) }}
--config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini \
{{- end }}
--config-file /etc/neutron/dhcp_agent.ini
--config-file /etc/neutron/dhcp_agent.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -23,7 +23,8 @@ function start () {
{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
--config-file /tmp/pod-shared/neutron-agent.ini \
{{- end }}
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
--config-dir /etc/neutron/neutron.conf.d
}
function stop () {

View File

@@ -20,4 +20,5 @@ exec neutron-l2gateway-agent \
{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
--config-file /tmp/pod-shared/neutron-agent.ini \
{{- end }}
--config-file=/etc/neutron/l2gw_agent.ini
--config-file=/etc/neutron/l2gw_agent.ini \
--config-dir=/etc/neutron/neutron.conf.d

View File

@@ -21,4 +21,5 @@ exec neutron-l3-agent \
{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
--config-file /tmp/pod-shared/neutron-agent.ini \
{{- end }}
--config-file /etc/neutron/l3_agent.ini
--config-file /etc/neutron/l3_agent.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -23,4 +23,5 @@ exec neutron-linuxbridge-agent \
{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
--config-file /tmp/pod-shared/neutron-agent.ini \
{{- end }}
--config-file /etc/neutron/plugins/ml2/linuxbridge_agent.ini
--config-file /etc/neutron/plugins/ml2/linuxbridge_agent.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -20,5 +20,6 @@ exec neutron-metadata-agent \
{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
--config-file /tmp/pod-shared/neutron-agent.ini \
{{- end }}
--config-file /etc/neutron/metadata_agent.ini
--config-file /etc/neutron/metadata_agent.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -21,5 +21,6 @@ while sleep 300; do
neutron-netns-cleanup \
--config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/dhcp_agent.ini \
--config-file /etc/neutron/l3_agent.ini
--config-file /etc/neutron/l3_agent.ini \
--config-dir /etc/neutron/neutron.conf.d
done

View File

@@ -28,4 +28,5 @@ exec neutron-openvswitch-agent \
--config-file /etc/neutron/plugins/ml2/taas.ini \
{{- end }}
--config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -22,5 +22,6 @@ exec neutron-ovn-metadata-agent \
{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
--config-file /tmp/pod-shared/neutron-agent.ini \
{{- end }}
--config-file /tmp/pod-shared/ovn.ini
--config-file /tmp/pod-shared/ovn.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -23,5 +23,6 @@ exec neutron-ovn-vpn-agent \
{{- if and ( empty .Values.conf.neutron.DEFAULT.host ) ( .Values.pod.use_fqdn.neutron_agent ) }}
--config-file /tmp/pod-shared/neutron-agent.ini \
{{- end }}
--config-file /tmp/pod-shared/ovn.ini
--config-file /tmp/pod-shared/ovn.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -33,10 +33,11 @@ function start () {
--config-file /etc/neutron/l2gw_plugin.ini \
{{- end }}
{{- if ( has "tungstenfabric" .Values.network.backend ) }}
--config-file /etc/neutron/plugins/tungstenfabric/tf_plugin.ini
--config-file /etc/neutron/plugins/tungstenfabric/tf_plugin.ini \
{{- else }}
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini \
{{- end }}
--config-dir /etc/neutron/neutron.conf.d
}
function stop () {

View File

@@ -42,6 +42,7 @@ function start () {
{{- else }}
confs+=" --config-file /etc/neutron/plugins/ml2/ml2_conf.ini"
{{- end }}
confs+=" --config-dir /etc/neutron/neutron.conf.d"
exec uwsgi --ini /etc/neutron/neutron-api-uwsgi.ini --pyargv " $confs "
}

View File

@@ -25,4 +25,5 @@ exec neutron-sriov-nic-agent \
{{- if .Values.conf.plugins.taas.taas.enabled }}
--config-file /etc/neutron/plugins/ml2/taas.ini \
{{- end }}
--config-file /etc/neutron/plugins/ml2/sriov_agent.ini
--config-file /etc/neutron/plugins/ml2/sriov_agent.ini \
--config-dir /etc/neutron/neutron.conf.d

View File

@@ -17,6 +17,10 @@ limitations under the License.
{{- $mounts_neutron_ovn_db_sync := .Values.pod.mounts.neutron_ovn_db_sync.neutron_ovn_db_sync }}
{{- $mounts_neutron_ovn_db_sync_init := .Values.pod.mounts.neutron_ovn_db_sync.init_container }}
{{- $etcSources := .Values.pod.etcSources.neutron_ovn_db_sync }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
{{- $serviceAccountName := "neutron-ovn-db-sync" }}
{{ tuple $envAll "pod_dependency" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -172,11 +176,12 @@ spec:
secret:
secretName: neutron-etc
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 18 }}
{{ end }}
{{- if ( has "tungstenfabric" .Values.network.backend ) }}
- name: neutron-plugin-shared
emptyDir: {}

View File

@@ -30,6 +30,10 @@ exec:
{{- $mounts_neutron_bgp_dragent := .Values.pod.mounts.bgp_dragent.bgp_dragent }}
{{- $mounts_neutron_bgp_dragent_init := .Values.pod.mounts.bgp_dragent.init_container }}
{{- $etcSources := .Values.pod.etcSources.bgp_dragent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -149,11 +153,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: libmodules
hostPath:
path: /lib/modules

View File

@@ -52,6 +52,10 @@ exec:
{{- $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 }}
{{- $etcSources := .Values.pod.etcSources.neutron_dhcp_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -285,11 +289,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: iptables-lockfile
hostPath:
path: /run/xtables.lock

View File

@@ -54,6 +54,10 @@ exec:
{{- $mounts_neutron_l2gw_agent := .Values.pod.mounts.neutron_l2gw_agent.neutron_l2gw_agent }}
{{- $mounts_neutron_l2gw_agent_init := .Values.pod.mounts.neutron_l2gw_agent.init_container }}
{{- $etcSources := .Values.pod.etcSources.neutron_l2gw_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -156,11 +160,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
{{- dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
{{ if $mounts_neutron_l2gw_agent.volumes }}{{ toYaml $mounts_neutron_l2gw_agent.volumes | indent 8 }}{{ end }}
{{- end }}

View File

@@ -53,6 +53,10 @@ exec:
{{- $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 }}
{{- $etcSources := .Values.pod.etcSources.neutron_l3_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -268,11 +272,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: libmodules
hostPath:
path: /lib/modules

View File

@@ -29,6 +29,10 @@ exec:
{{- $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 }}
{{- $etcSources := .Values.pod.etcSources.neutron_lb_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -224,11 +228,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: run
hostPath:
path: /run

View File

@@ -49,6 +49,10 @@ exec:
{{- $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 }}
{{- $etcSources := .Values.pod.etcSources.neutron_metadata_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -217,11 +221,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: socket
hostPath:
path: /var/lib/neutron/openstack-helm

View File

@@ -21,6 +21,10 @@ limitations under the License.
{{- $mounts_neutron_netns_cleanup_cron := .Values.pod.mounts.neutron_netns_cleanup_cron.neutron_netns_cleanup_cron }}
{{- $mounts_neutron_netns_cleanup_cron_init := .Values.pod.mounts.neutron_netns_cleanup_cron.init_container }}
{{- $etcSources := .Values.pod.etcSources.neutron_netns_cleanup_cron }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -151,11 +155,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: libmodules
hostPath:
path: /lib/modules

View File

@@ -53,6 +53,10 @@ exec:
{{- $mounts_ovn_vpn_agent := .Values.pod.mounts.ovn_vpn_agent.ovn_vpn_agent }}
{{- $mounts_ovn_vpn_agent_init := .Values.pod.mounts.ovn_vpn_agent.init_container }}
{{- $etcSources := .Values.pod.etcSources.ovn_vpn_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -241,11 +245,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: socket
hostPath:
path: /var/lib/neutron/openstack-helm

View File

@@ -49,6 +49,10 @@ exec:
{{- $mounts_neutron_ovn_metadata_agent := .Values.pod.mounts.neutron_ovn_metadata_agent.neutron_ovn_metadata_agent }}
{{- $mounts_neutron_ovn_metadata_agent_init := .Values.pod.mounts.neutron_ovn_metadata_agent.init_container }}
{{- $etcSources := .Values.pod.etcSources.neutron_ovn_metadata_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -237,11 +241,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: socket
hostPath:
path: /var/lib/neutron/openstack-helm

View File

@@ -32,6 +32,10 @@ exec:
{{- $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 }}
{{- $etcSources := .Values.pod.etcSources.neutron_ovs_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -306,11 +310,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: run
hostPath:
path: /run

View File

@@ -35,6 +35,10 @@ exec:
{{- $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 }}
{{- $etcSources := .Values.pod.etcSources.neutron_sriov_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
---
apiVersion: apps/v1
@@ -244,11 +248,12 @@ spec:
secret:
secretName: {{ $configMapName }}
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
- name: run
hostPath:
path: /run

View File

@@ -20,6 +20,10 @@ limitations under the License.
{{- $mounts_neutron_ironic_agent := .Values.pod.mounts.neutron_ironic_agent.neutron_ironic_agent }}
{{- $mounts_neutron_ironic_agent_init := .Values.pod.mounts.neutron_ironic_agent.init_container }}
{{- $etcSources := .Values.pod.etcSources.neutron_ironic_agent }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
{{- $serviceAccountName := "neutron-ironic-agent" }}
{{ tuple $envAll "pod_dependency" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -134,11 +138,12 @@ spec:
secret:
secretName: neutron-etc
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
{{- dict "enabled" $envAll.Values.manifests.certificates "name" $envAll.Values.endpoints.oslo_messaging.auth.admin.secret.tls.internal | include "helm-toolkit.snippets.tls_volume" | indent 8 }}
{{ if $mounts_neutron_ironic_agent.volumes }}{{ toYaml $mounts_neutron_ironic_agent.volumes | indent 8 }}{{ end }}
{{- end }}

View File

@@ -20,6 +20,10 @@ limitations under the License.
{{- $mounts_neutron_rpc_server := .Values.pod.mounts.neutron_rpc_server.neutron_rpc_server }}
{{- $mounts_neutron_rpc_server_init := .Values.pod.mounts.neutron_rpc_server.init_container }}
{{- $etcSources := .Values.pod.etcSources.neutron_rpc_server }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
{{- $serviceAccountName := "neutron-rpc-server" }}
{{ tuple $envAll "pod_dependency" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -221,11 +225,12 @@ spec:
secret:
secretName: neutron-etc
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
{{- if ( has "tungstenfabric" .Values.network.backend ) }}
- name: neutron-plugin-shared
emptyDir: {}

View File

@@ -55,6 +55,10 @@ httpGet:
{{- $mounts_neutron_server := .Values.pod.mounts.neutron_server.neutron_server }}
{{- $mounts_neutron_server_init := .Values.pod.mounts.neutron_server.init_container }}
{{- $etcSources := .Values.pod.etcSources.neutron_server }}
{{- if .Values.manifests.secret_ks_etc }}
{{- $etcSources = append $etcSources (dict "secret" (dict "name" "neutron-ks-etc")) }}
{{- end }}
{{- $serviceAccountName := "neutron-server" }}
{{ tuple $envAll "pod_dependency" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
@@ -317,11 +321,12 @@ spec:
secret:
secretName: neutron-etc
defaultMode: 0444
{{- if $etcSources }}
- name: neutron-etc-snippets
projected:
sources:
- secret:
name: neutron-ks-etc
{{ toYaml $etcSources | indent 14 }}
{{ end }}
{{- if ( has "tungstenfabric" .Values.network.backend ) }}
- name: neutron-plugin-shared
emptyDir: {}

View File

@@ -806,6 +806,29 @@ pod:
subPath: ml2_conf.ini
readOnly: true
volumes:
# -- This allows users to add Kubernetes Projected Volumes to be mounted at /etc/neutron/neutron.conf.d/
## This is a list of projected volume source objects for each deployment/statefulset/daemonset/cronjob
## https://kubernetes.io/docs/concepts/storage/projected-volumes/
etcSources:
neutron_server: []
neutron_rpc_server: []
neutron_dhcp_agent: []
neutron_l3_agent: []
neutron_lb_agent: []
neutron_metadata_agent: []
neutron_ovn_db_sync: []
neutron_ovn_metadata_agent: []
ovn_vpn_agent: []
neutron_ovs_agent: []
neutron_sriov_agent: []
neutron_l2gw_agent: []
bagpipe_bgp: []
bgp_dragent: []
neutron_ironic_agent: []
neutron_netns_cleanup_cron: []
neutron_tests: []
neutron_bootstrap: []
neutron_db_sync: []
replicas:
server: 1
rpc_server: 1

View File

@@ -0,0 +1,8 @@
---
neutron:
- |
Allow users to add additional sources to the Projected Volume that is mounted
at /etc/neutron/neutron.conf.d/ so they may more easily override configs or provide
additional configs for the various services in the chart. Ensure that the neutron
chart always loads config overrides from /etc/neutron/neutron.conf.d
...