diff --git a/neutron/templates/bin/_init.sh.tpl b/neutron/templates/bin/_init.sh.tpl index f8f942a4af..020e245b6c 100644 --- a/neutron/templates/bin/_init.sh.tpl +++ b/neutron/templates/bin/_init.sh.tpl @@ -17,17 +17,20 @@ set -ex export HOME=/tmp -ansible localhost -vvv -m mysql_db -a "login_host='{{ include "helm-toolkit.mariadb_host" . }}' \ -login_port='{{ .Values.database.port }}' \ -login_user='{{ .Values.database.root_user }}' \ -login_password='{{ .Values.database.root_password }}' \ -name='{{ .Values.database.neutron_database_name }}'" +ansible localhost -vvv \ + -m mysql_db -a "login_host='{{ .Values.endpoints.oslo_db.hosts.internal | default .Values.endpoints.oslo_db.hosts.default }}' \ + login_port='{{ .Values.endpoints.oslo_db.port.mysql }}' \ + login_user='{{ .Values.endpoints.oslo_db.auth.admin.username }}' \ + login_password='{{ .Values.endpoints.oslo_db.auth.admin.password }}' \ + name='{{ .Values.endpoints.oslo_db.path | trimAll "/" }}'" -ansible localhost -vvv -m mysql_user -a "login_host='{{ include "helm-toolkit.mariadb_host" . }}' \ -login_port='{{ .Values.database.port }}' \ -login_user='{{ .Values.database.root_user }}' \ -login_password='{{ .Values.database.root_password }}' \ -name='{{ .Values.database.neutron_user }}' \ -password='{{ .Values.database.neutron_password }}' \ -host='%' \ -priv='{{ .Values.database.neutron_database_name }}.*:ALL' append_privs='yes'" +ansible localhost -vvv \ + -m mysql_user -a "login_host='{{ .Values.endpoints.oslo_db.hosts.internal | default .Values.endpoints.oslo_db.hosts.default }}' \ + login_port='{{ .Values.endpoints.oslo_db.port.mysql }}' \ + login_user='{{ .Values.endpoints.oslo_db.auth.admin.username }}' \ + login_password='{{ .Values.endpoints.oslo_db.auth.admin.password }}' \ + name='{{ .Values.endpoints.oslo_db.auth.user.username }}' \ + password='{{ .Values.endpoints.oslo_db.auth.user.password }}' \ + host='%' \ + priv='{{ .Values.endpoints.oslo_db.path | trimAll "/" }}.*:ALL' \ + append_privs='yes'" diff --git a/neutron/templates/bin/_neutron-openvswitch-agent.sh.tpl b/neutron/templates/bin/_neutron-openvswitch-agent.sh.tpl index 9370278b31..233c8d7e64 100644 --- a/neutron/templates/bin/_neutron-openvswitch-agent.sh.tpl +++ b/neutron/templates/bin/_neutron-openvswitch-agent.sh.tpl @@ -24,18 +24,20 @@ chown neutron: /run/openvswitch/db.sock # which means we need to do a create action # # see https://github.com/att-comdev/openstack-helm/issues/88 -timeout 3m neutron-sanity-check --config-file /etc/neutron/neutron.conf --ovsdb_native --nokeepalived_ipv6_support +timeout 3m neutron-sanity-check --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --ovsdb_native --nokeepalived_ipv6_support # determine local-ip dynamically based on interface provided but only if tunnel_types is not null -{{- if .Values.ml2.agent.tunnel_types }} IP=$(ip a s {{ .Values.network.interface.tunnel | default .Values.network.interface.default}} | grep 'inet ' | awk '{print $2}' | awk -F "/" '{print $1}') cat </tmp/ml2-local-ip.ini [ovs] local_ip = $IP EOF -{{- else }} -touch /tmp/ml2-local-ip.ini -{{- end }} -exec sudo -E -u neutron neutron-openvswitch-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2-conf.ini --config-file /tmp/ml2-local-ip.ini +# TODO: make this configurable going forward as today +# it forces openvswitch agent +exec sudo -E -u neutron neutron-openvswitch-agent \ +--config-file /etc/neutron/neutron.conf \ +--config-file /etc/neutron/plugins/ml2/ml2-conf.ini \ +--config-file /tmp/ml2-local-ip.ini \ +--config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini diff --git a/neutron/templates/bin/_openvswitch-vswitchd.sh.tpl b/neutron/templates/bin/_openvswitch-vswitchd.sh.tpl index 6a9ece87ef..c93168ae08 100644 --- a/neutron/templates/bin/_openvswitch-vswitchd.sh.tpl +++ b/neutron/templates/bin/_openvswitch-vswitchd.sh.tpl @@ -19,10 +19,8 @@ set -ex # load tunnel kernel modules we may use and gre/vxlan modprobe openvswitch -{{- if .Values.ml2.agent.tunnel_types }} modprobe gre modprobe vxlan -{{- end }} ovs-vsctl --no-wait show bash /tmp/openvswitch-ensure-configured.sh {{ .Values.network.external_bridge }} {{ .Values.network.interface.external | default .Values.network.interface.default }} diff --git a/neutron/templates/configmap-etc.yaml b/neutron/templates/configmap-etc.yaml index 4ab338b364..77dbd205c7 100644 --- a/neutron/templates/configmap-etc.yaml +++ b/neutron/templates/configmap-etc.yaml @@ -12,22 +12,205 @@ # See the License for the specific language governing permissions and # limitations under the License. +{{- include "neutron.conf.neutron_values_skeleton" .Values.conf.neutron | trunc 0 -}} +{{- include "neutron.conf.dhcp_agent_values_skeleton" .Values.conf.dhcp_agent | trunc 0 -}} +{{- include "neutron.conf.l3_agent_values_skeleton" .Values.conf.l3_agent | trunc 0 -}} +{{- include "neutron.conf.metadata_agent_values_skeleton" .Values.conf.metadata_agent | trunc 0 -}} +{{- include "neutron.conf.metering_agent_values_skeleton" .Values.conf.metering_agent | trunc 0 -}} + +{{- include "neutron.conf.linuxbridge_agent_values_skeleton" .Values.conf.linuxbridge_agent | trunc 0 -}} +{{- include "neutron.conf.macvtap_agent_values_skeleton" .Values.conf.macvtap_agent | trunc 0 -}} +{{- include "neutron.conf.ml2_conf_values_skeleton" .Values.conf.ml2_conf | trunc 0 -}} +{{- include "neutron.conf.ml2_conf_sriov_values_skeleton" .Values.conf.ml2_conf_sriov | trunc 0 -}} +{{- include "neutron.conf.openvswitch_agent_values_skeleton" .Values.conf.openvswitch_agent | trunc 0 -}} +{{- include "neutron.conf.sriov_agent_values_skeleton" .Values.conf.sriov_agent | trunc 0 -}} + +{{- if empty .Values.conf.neutron.keystone_authtoken.keystonemiddleware.auth_token.auth_uri -}} +{{- tuple "identity" "internal" "api" . | include "helm-toolkit.keystone_endpoint_uri_lookup"| set .Values.conf.neutron.keystone_authtoken.keystonemiddleware.auth_token "auth_uri" | quote | trunc 0 -}} +{{- end }} + +{{- if empty .Values.conf.neutron.keystone_authtoken.keystonemiddleware.auth_token.auth_url -}} +{{- tuple "identity" "internal" "api" . | include "helm-toolkit.keystone_endpoint_uri_lookup"| set .Values.conf.neutron.keystone_authtoken.keystonemiddleware.auth_token "auth_url" | quote | trunc 0 -}} +{{- end }} + +{{- if empty .Values.conf.neutron.keystone_authtoken.keystonemiddleware.auth_token.memcached_servers -}} +{{- tuple "oslo_cache" "internal" "memcache" . | include "helm-toolkit.hostname_endpoint_uri_lookup" | set .Values.conf.neutron.keystone_authtoken.keystonemiddleware.auth_token "memcached_servers" | quote | trunc 0 -}} +{{- end }} + +{{- if empty .Values.conf.neutron.database.oslo.db.connection -}} +{{- tuple "oslo_db" "internal" "user" "mysql" . | include "helm-toolkit.authenticated_endpoint_uri_lookup"| set .Values.conf.neutron.database.oslo.db "connection" | quote | trunc 0 -}} +{{- end }} + +{{- if empty .Values.conf.neutron.default.oslo.messaging.transport_url -}} +{{- tuple "oslo_messaging" "internal" "user" "amqp" . | include "helm-toolkit.authenticated_endpoint_uri_lookup" | set .Values.conf.neutron.default.oslo.messaging "transport_url" | quote | trunc 0 -}} +{{- end }} + +{{- if empty .Values.conf.neutron.nova.nova.auth.auth_url -}} +{{- tuple "identity" "internal" "api" . | include "helm-toolkit.keystone_endpoint_uri_lookup"| set .Values.conf.neutron.nova.nova.auth "auth_url" | quote | trunc 0 -}} +{{- end }} + apiVersion: v1 kind: ConfigMap metadata: name: neutron-etc data: - dhcp-agent.ini: | -{{ tuple "etc/_dhcp-agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} - l3-agent.ini: | -{{ tuple "etc/_l3-agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} - metadata-agent.ini: | -{{ tuple "etc/_metadata-agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} - ml2-conf.ini: | -{{ tuple "etc/_ml2-conf.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} - neutron.conf: | + api-paste.ini: |+ +{{ if .Values.conf.paste.override -}} +{{ .Values.conf.paste.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.paste.prefix -}} +{{ .Values.conf.paste.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/_api-paste.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.paste.append -}} +{{ .Values.conf.paste.append | indent 4 }} +{{- end }} + policy.json: |+ +{{ if .Values.conf.policy.override -}} +{{ .Values.conf.policy.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.policy.prefix -}} +{{ .Values.conf.policy.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/_policy.json.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.policy.append -}} +{{ .Values.conf.policy.append | indent 4 }} +{{- end }} + dhcp_agent.ini: |+ +{{ if .Values.conf.dhcp_agent.override -}} +{{ .Values.conf.dhcp_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.dhcp_agent.prefix -}} +{{ .Values.conf.dhcp_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/_dhcp_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.dhcp_agent.append -}} +{{ .Values.conf.dhcp_agent.append | indent 4 }} +{{- end }} + l3_agent.ini: |+ +{{ if .Values.conf.l3_agent.override -}} +{{ .Values.conf.l3_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.l3_agent.prefix -}} +{{ .Values.conf.l3_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/_l3_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.l3_agent.append -}} +{{ .Values.conf.l3_agent.append | indent 4 }} +{{- end }} + metadata_agent.ini: |+ +{{ if .Values.conf.metadata_agent.override -}} +{{ .Values.conf.metadata_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.metadata_agent.prefix -}} +{{ .Values.conf.metadata_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/_metadata_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.metadata_agent.append -}} +{{ .Values.conf.metadata_agent.append | indent 4 }} +{{- end }} + metering_agent.ini: |+ +{{ if .Values.conf.metering_agent.override -}} +{{ .Values.conf.metering_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.metering_agent.prefix -}} +{{ .Values.conf.metering_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/_metering_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.metering_agent.append -}} +{{ .Values.conf.metering_agent.append | indent 4 }} +{{- end }} + neutron.conf: |+ +{{ if .Values.conf.neutron.override -}} +{{ .Values.conf.neutron.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.neutron.prefix -}} +{{ .Values.conf.neutron.prefix | indent 4 }} +{{- end }} {{ tuple "etc/_neutron.conf.tpl" . | include "helm-toolkit.template" | indent 4 }} - resolv.conf: | +{{- end }} +{{- if .Values.conf.neutron.append -}} +{{ .Values.conf.neutron.append | indent 4 }} +{{- end }} + ml2_conf.ini: |+ +{{ if .Values.conf.ml2_conf.override -}} +{{ .Values.conf.ml2_conf.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.ml2_conf.prefix -}} +{{ .Values.conf.ml2_conf.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/plugins/_ml2_conf.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.ml2_conf.append -}} +{{ .Values.conf.ml2_conf.append | indent 4 }} +{{- end }} + ml2_conf_sriov.ini: |+ +{{ if .Values.conf.ml2_conf_sriov.override -}} +{{ .Values.conf.ml2_conf_sriov.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.ml2_conf_sriov.prefix -}} +{{ .Values.conf.ml2_conf_sriov.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/plugins/_ml2_conf_sriov.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.ml2_conf_sriov.append -}} +{{ .Values.conf.ml2_conf_sriov.append | indent 4 }} +{{- end }} + macvtap_agent.ini: |+ +{{ if .Values.conf.macvtap_agent.override -}} +{{ .Values.conf.macvtap_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.macvtap_agent.prefix -}} +{{ .Values.conf.macvtap_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/plugins/_macvtap_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.macvtap_agent.append -}} +{{ .Values.conf.macvtap_agent.append | indent 4 }} +{{- end }} + linuxbridge_agent.ini: |+ +{{ if .Values.conf.linuxbridge_agent.override -}} +{{ .Values.conf.linuxbridge_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.linuxbridge_agent.prefix -}} +{{ .Values.conf.linuxbridge_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/plugins/_linuxbridge_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.linuxbridge_agent.append -}} +{{ .Values.conf.linuxbridge_agent.append | indent 4 }} +{{- end }} + openvswitch_agent.ini: |+ +{{ if .Values.conf.openvswitch_agent.override -}} +{{ .Values.conf.openvswitch_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.openvswitch_agent.prefix -}} +{{ .Values.conf.openvswitch_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/plugins/_openvswitch_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.openvswitch_agent.append -}} +{{ .Values.conf.openvswitch_agent.append | indent 4 }} +{{- end }} + sriov_agent.ini: |+ +{{ if .Values.conf.sriov_agent.override -}} +{{ .Values.conf.sriov_agent.override | indent 4 }} +{{- else -}} +{{- if .Values.conf.sriov_agent.prefix -}} +{{ .Values.conf.sriov_agent.prefix | indent 4 }} +{{- end }} +{{ tuple "etc/plugins/_sriov_agent.ini.tpl" . | include "helm-toolkit.template" | indent 4 }} +{{- end }} +{{- if .Values.conf.sriov_agent.append -}} +{{ .Values.conf.sriov_agent.append | indent 4 }} +{{- end }} + resolv.conf: |+ {{ tuple "etc/_resolv.conf.tpl" . | include "helm-toolkit.template" | indent 4 }} dnsmasq.conf: "" - + diff --git a/neutron/templates/daemonset-dhcp-agent.yaml b/neutron/templates/daemonset-dhcp-agent.yaml index 87c48c07df..4157b99918 100644 --- a/neutron/templates/daemonset-dhcp-agent.yaml +++ b/neutron/templates/daemonset-dhcp-agent.yaml @@ -56,17 +56,17 @@ spec: - --config-file - /etc/neutron/neutron.conf - --config-file - - /etc/neutron/dhcp-agent.ini + - /etc/neutron/dhcp_agent.ini volumeMounts: - name: neutronconf mountPath: /etc/neutron/neutron.conf subPath: neutron.conf - name: ml2confini - mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini - subPath: ml2-conf.ini + mountPath: /etc/neutron/plugins/ml2/ml2_conf.ini + subPath: ml2_conf.ini - name: dhcpagentini - mountPath: /etc/neutron/dhcp-agent.ini - subPath: dhcp-agent.ini + mountPath: /etc/neutron/dhcp_agent.ini + subPath: dhcp_agent.ini - name: dnsmasqconf mountPath: /etc/neutron/dnsmasq.conf subPath: dnsmasq.conf diff --git a/neutron/templates/daemonset-l3-agent.yaml b/neutron/templates/daemonset-l3-agent.yaml index c944354ec7..087b2ad077 100644 --- a/neutron/templates/daemonset-l3-agent.yaml +++ b/neutron/templates/daemonset-l3-agent.yaml @@ -56,19 +56,19 @@ spec: - --config-file - /etc/neutron/neutron.conf - --config-file - - /etc/neutron/l3-agent.ini + - /etc/neutron/l3_agent.ini - --config-file - - /etc/neutron/plugins/ml2/ml2-conf.ini + - /etc/neutron/plugins/ml2/ml2_conf.ini volumeMounts: - name: neutronconf mountPath: /etc/neutron/neutron.conf subPath: neutron.conf - name: ml2confini - mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini - subPath: ml2-conf.ini + mountPath: /etc/neutron/plugins/ml2/ml2_conf.ini + subPath: ml2_conf.ini - name: l3agentini - mountPath: /etc/neutron/l3-agent.ini - subPath: l3-agent.ini + mountPath: /etc/neutron/l3_agent.ini + subPath: l3_agent.ini - name: resolvconf mountPath: /etc/resolv.conf subPath: resolv.conf diff --git a/neutron/templates/daemonset-metadata-agent.yaml b/neutron/templates/daemonset-metadata-agent.yaml index 1a17eb7d0a..a763d75c49 100644 --- a/neutron/templates/daemonset-metadata-agent.yaml +++ b/neutron/templates/daemonset-metadata-agent.yaml @@ -56,7 +56,7 @@ spec: - --config-file - /etc/neutron/neutron.conf - --config-file - - /etc/neutron/metadata-agent.ini + - /etc/neutron/metadata_agent.ini ports: - containerPort: {{ .Values.network.port.metadata }} volumeMounts: @@ -64,11 +64,11 @@ spec: mountPath: /etc/neutron/neutron.conf subPath: neutron.conf - name: ml2confini - mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini - subPath: ml2-conf.ini + mountPath: /etc/neutron/plugins/ml2/ml2_conf.ini + subPath: ml2_conf.ini - name: metadataagentini - mountPath: /etc/neutron/metadata-agent.ini - subPath: metadata-agent.ini + mountPath: /etc/neutron/metadata_agent.ini + subPath: metadata_agent.ini - name: resolvconf mountPath: /etc/resolv.conf subPath: resolv.conf diff --git a/neutron/templates/daemonset-ovs-agent.yaml b/neutron/templates/daemonset-ovs-agent.yaml index 04472d2ea0..13409bf373 100644 --- a/neutron/templates/daemonset-ovs-agent.yaml +++ b/neutron/templates/daemonset-ovs-agent.yaml @@ -66,19 +66,22 @@ spec: - name: neutronopenvswitchagentsh mountPath: /tmp/neutron-openvswitch-agent.sh subPath: neutron-openvswitch-agent.sh - - name: neutronconf + - name: neutron-etc mountPath: /etc/neutron/neutron.conf subPath: neutron.conf - - name: ml2confini - mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini - subPath: ml2-conf.ini + - name: neutron-etc + mountPath: /etc/neutron/plugins/ml2/ml2_conf.ini + subPath: ml2_conf.ini + - name: neutron-etc + mountPath: /etc/neutron/plugins/ml2/openvswitch_agent.ini + subPath: openvswitch_agent.ini - name: libmodules mountPath: /lib/modules readOnly: true - name: run mountPath: /run - - mountPath: /etc/resolv.conf - name: resolvconf + - name: neutron-etc + mountPath: /etc/resolv.conf subPath: resolv.conf volumes: - name: varlibopenvswitch @@ -86,13 +89,7 @@ spec: - name: neutronopenvswitchagentsh configMap: name: neutron-bin - - name: neutronconf - configMap: - name: neutron-etc - - name: ml2confini - configMap: - name: neutron-etc - - name: resolvconf + - name: neutron-etc configMap: name: neutron-etc - name: libmodules diff --git a/neutron/templates/deployment-server.yaml b/neutron/templates/deployment-server.yaml index 00df8b2ef9..bc7439c285 100644 --- a/neutron/templates/deployment-server.yaml +++ b/neutron/templates/deployment-server.yaml @@ -50,7 +50,7 @@ spec: - --config-file - /etc/neutron/neutron.conf - --config-file - - /etc/neutron/plugins/ml2/ml2-conf.ini + - /etc/neutron/plugins/ml2/ml2_conf.ini {{- if .Values.resources.enabled }} resources: limits: @@ -66,16 +66,19 @@ spec: tcpSocket: port: {{ .Values.network.port.server }} volumeMounts: - - name: neutronconf + - name: neutron-etc mountPath: /etc/neutron/neutron.conf subPath: neutron.conf - - name: ml2confini - mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini - subPath: ml2-conf.ini + - name: neutron-etc + mountPath: /etc/neutron/plugins/ml2/ml2_conf.ini + subPath: ml2_conf.ini + - name: neutron-etc + mountPath: /etc/neutron/api-paste.ini + subPath: api-paste.ini + - name: neutron-etc + mountPath: /etc/neutron/policy.json + subPath: policy.json volumes: - - name: neutronconf - configMap: - name: neutron-etc - - name: ml2confini + - name: neutron-etc configMap: name: neutron-etc diff --git a/neutron/templates/etc/_api-paste.ini.tpl b/neutron/templates/etc/_api-paste.ini.tpl new file mode 100644 index 0000000000..1c98cfe367 --- /dev/null +++ b/neutron/templates/etc/_api-paste.ini.tpl @@ -0,0 +1,45 @@ +[composite:neutron] +use = egg:Paste#urlmap +/: neutronversions_composite +/v2.0: neutronapi_v2_0 + +[composite:neutronapi_v2_0] +use = call:neutron.auth:pipeline_factory +noauth = cors http_proxy_to_wsgi request_id catch_errors extensions neutronapiapp_v2_0 +keystone = cors http_proxy_to_wsgi request_id catch_errors authtoken keystonecontext extensions neutronapiapp_v2_0 + +[composite:neutronversions_composite] +use = call:neutron.auth:pipeline_factory +noauth = cors http_proxy_to_wsgi neutronversions +keystone = cors http_proxy_to_wsgi neutronversions + +[filter:request_id] +paste.filter_factory = oslo_middleware:RequestId.factory + +[filter:catch_errors] +paste.filter_factory = oslo_middleware:CatchErrors.factory + +[filter:cors] +paste.filter_factory = oslo_middleware.cors:filter_factory +oslo_config_project = neutron + +[filter:http_proxy_to_wsgi] +paste.filter_factory = oslo_middleware.http_proxy_to_wsgi:HTTPProxyToWSGI.factory + +[filter:keystonecontext] +paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory + +[filter:authtoken] +paste.filter_factory = keystonemiddleware.auth_token:filter_factory + +[filter:extensions] +paste.filter_factory = neutron.api.extensions:plugin_aware_extension_middleware_factory + +[app:neutronversions] +paste.app_factory = neutron.api.versions:Versions.factory + +[app:neutronapiapp_v2_0] +paste.app_factory = neutron.api.v2.router:APIRouter.factory + +[filter:osprofiler] +paste.filter_factory = osprofiler.web:WsgiMiddleware.factory diff --git a/neutron/templates/etc/_dhcp-agent.ini.tpl b/neutron/templates/etc/_dhcp-agent.ini.tpl deleted file mode 100644 index efdae4a7c0..0000000000 --- a/neutron/templates/etc/_dhcp-agent.ini.tpl +++ /dev/null @@ -1,19 +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. - -[DEFAULT] -dnsmasq_config_file = /etc/neutron/dnsmasq.conf -enable_isolated_metadata = true -force_metadata = true -interface_driver = openvswitch diff --git a/neutron/templates/etc/_dhcp_agent.ini.tpl b/neutron/templates/etc/_dhcp_agent.ini.tpl new file mode 100644 index 0000000000..1f0ef83b6e --- /dev/null +++ b/neutron/templates/etc/_dhcp_agent.ini.tpl @@ -0,0 +1,293 @@ + +# 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. + +{{ include "neutron.conf.dhcp_agent_values_skeleton" .Values.conf.dhcp_agent | trunc 0 }} +{{ include "neutron.conf.dhcp_agent" .Values.conf.dhcp_agent }} + + +{{- define "neutron.conf.dhcp_agent_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.neutron -}}{{- set .default "neutron" dict -}}{{- end -}} +{{- if not .default.neutron.base -}}{{- set .default.neutron "base" dict -}}{{- end -}} +{{- if not .default.neutron.base.agent -}}{{- set .default.neutron.base "agent" dict -}}{{- end -}} +{{- if not .default.neutron.dhcp -}}{{- set .default.neutron "dhcp" dict -}}{{- end -}} +{{- if not .default.neutron.dhcp.agent -}}{{- set .default.neutron.dhcp "agent" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .agent -}}{{- set . "agent" dict -}}{{- end -}} +{{- if not .agent.neutron -}}{{- set .agent "neutron" dict -}}{{- end -}} +{{- if not .agent.neutron.base -}}{{- set .agent.neutron "base" dict -}}{{- end -}} +{{- if not .agent.neutron.base.agent -}}{{- set .agent.neutron.base "agent" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.dhcp_agent" -}} + +[DEFAULT] + +# +# From neutron.base.agent +# + +# Name of Open vSwitch bridge to use (string value) +# from .default.neutron.base.agent.ovs_integration_bridge +{{ if not .default.neutron.base.agent.ovs_integration_bridge }}#{{ end }}ovs_integration_bridge = {{ .default.neutron.base.agent.ovs_integration_bridge | default "br-int" }} + +# Uses veth for an OVS interface or not. Support kernels with limited namespace +# support (e.g. RHEL 6.5) so long as ovs_use_veth is set to True. (boolean +# value) +# from .default.neutron.base.agent.ovs_use_veth +{{ if not .default.neutron.base.agent.ovs_use_veth }}#{{ end }}ovs_use_veth = {{ .default.neutron.base.agent.ovs_use_veth | default "false" }} + +# The driver used to manage the virtual interface. (string value) +# from .default.neutron.base.agent.interface_driver +{{ if not .default.neutron.base.agent.interface_driver }}#{{ end }}interface_driver = {{ .default.neutron.base.agent.interface_driver | default "" }} + +# Timeout in seconds for ovs-vsctl commands. If the timeout expires, ovs +# commands will fail with ALARMCLOCK error. (integer value) +# from .default.neutron.base.agent.ovs_vsctl_timeout +{{ if not .default.neutron.base.agent.ovs_vsctl_timeout }}#{{ end }}ovs_vsctl_timeout = {{ .default.neutron.base.agent.ovs_vsctl_timeout | default "10" }} + +# +# From neutron.dhcp.agent +# + +# The DHCP agent will resync its state with Neutron to recover from any +# transient notification or RPC errors. The interval is number of seconds +# between attempts. (integer value) +# from .default.neutron.dhcp.agent.resync_interval +{{ if not .default.neutron.dhcp.agent.resync_interval }}#{{ end }}resync_interval = {{ .default.neutron.dhcp.agent.resync_interval | default "5" }} + +# The driver used to manage the DHCP server. (string value) +# from .default.neutron.dhcp.agent.dhcp_driver +{{ if not .default.neutron.dhcp.agent.dhcp_driver }}#{{ end }}dhcp_driver = {{ .default.neutron.dhcp.agent.dhcp_driver | default "neutron.agent.linux.dhcp.Dnsmasq" }} + +# The DHCP server can assist with providing metadata support on isolated +# networks. Setting this value to True will cause the DHCP server to append +# specific host routes to the DHCP request. The metadata service will only be +# activated when the subnet does not contain any router port. The guest +# instance must be configured to request host routes via DHCP (Option 121). +# This option doesn't have any effect when force_metadata is set to True. +# (boolean value) +# from .default.neutron.dhcp.agent.enable_isolated_metadata +{{ if not .default.neutron.dhcp.agent.enable_isolated_metadata }}#{{ end }}enable_isolated_metadata = {{ .default.neutron.dhcp.agent.enable_isolated_metadata | default "false" }} + +# In some cases the Neutron router is not present to provide the metadata IP +# but the DHCP server can be used to provide this info. Setting this value will +# force the DHCP server to append specific host routes to the DHCP request. If +# this option is set, then the metadata service will be activated for all the +# networks. (boolean value) +# from .default.neutron.dhcp.agent.force_metadata +{{ if not .default.neutron.dhcp.agent.force_metadata }}#{{ end }}force_metadata = {{ .default.neutron.dhcp.agent.force_metadata | default "false" }} + +# Allows for serving metadata requests coming from a dedicated metadata access +# network whose CIDR is 169.254.169.254/16 (or larger prefix), and is connected +# to a Neutron router from which the VMs send metadata:1 request. In this case +# DHCP Option 121 will not be injected in VMs, as they will be able to reach +# 169.254.169.254 through a router. This option requires +# enable_isolated_metadata = True. (boolean value) +# from .default.neutron.dhcp.agent.enable_metadata_network +{{ if not .default.neutron.dhcp.agent.enable_metadata_network }}#{{ end }}enable_metadata_network = {{ .default.neutron.dhcp.agent.enable_metadata_network | default "false" }} + +# Number of threads to use during sync process. Should not exceed connection +# pool size configured on server. (integer value) +# from .default.neutron.dhcp.agent.num_sync_threads +{{ if not .default.neutron.dhcp.agent.num_sync_threads }}#{{ end }}num_sync_threads = {{ .default.neutron.dhcp.agent.num_sync_threads | default "4" }} + +# Location to store DHCP server config files. (string value) +# from .default.neutron.dhcp.agent.dhcp_confs +{{ if not .default.neutron.dhcp.agent.dhcp_confs }}#{{ end }}dhcp_confs = {{ .default.neutron.dhcp.agent.dhcp_confs | default "$state_path/dhcp" }} + +# DEPRECATED: Domain to use for building the hostnames. This option is +# deprecated. It has been moved to neutron.conf as dns_domain. It will be +# removed in a future release. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.dhcp.agent.dhcp_domain +{{ if not .default.neutron.dhcp.agent.dhcp_domain }}#{{ end }}dhcp_domain = {{ .default.neutron.dhcp.agent.dhcp_domain | default "openstacklocal" }} + +# Override the default dnsmasq settings with this file. (string value) +# from .default.neutron.dhcp.agent.dnsmasq_config_file +{{ if not .default.neutron.dhcp.agent.dnsmasq_config_file }}#{{ end }}dnsmasq_config_file = {{ .default.neutron.dhcp.agent.dnsmasq_config_file | default "" }} + +# Comma-separated list of the DNS servers which will be used as forwarders. +# (list value) +# from .default.neutron.dhcp.agent.dnsmasq_dns_servers +{{ if not .default.neutron.dhcp.agent.dnsmasq_dns_servers }}#{{ end }}dnsmasq_dns_servers = {{ .default.neutron.dhcp.agent.dnsmasq_dns_servers | default "" }} + +# Base log dir for dnsmasq logging. The log contains DHCP and DNS log +# information and is useful for debugging issues with either DHCP or DNS. If +# this section is null, disable dnsmasq log. (string value) +# from .default.neutron.dhcp.agent.dnsmasq_base_log_dir +{{ if not .default.neutron.dhcp.agent.dnsmasq_base_log_dir }}#{{ end }}dnsmasq_base_log_dir = {{ .default.neutron.dhcp.agent.dnsmasq_base_log_dir | default "" }} + +# Enables the dnsmasq service to provide name resolution for instances via DNS +# resolvers on the host running the DHCP agent. Effectively removes the '--no- +# resolv' option from the dnsmasq process arguments. Adding custom DNS +# resolvers to the 'dnsmasq_dns_servers' option disables this feature. (boolean +# value) +# from .default.neutron.dhcp.agent.dnsmasq_local_resolv +{{ if not .default.neutron.dhcp.agent.dnsmasq_local_resolv }}#{{ end }}dnsmasq_local_resolv = {{ .default.neutron.dhcp.agent.dnsmasq_local_resolv | default "false" }} + +# Limit number of leases to prevent a denial-of-service. (integer value) +# from .default.neutron.dhcp.agent.dnsmasq_lease_max +{{ if not .default.neutron.dhcp.agent.dnsmasq_lease_max }}#{{ end }}dnsmasq_lease_max = {{ .default.neutron.dhcp.agent.dnsmasq_lease_max | default "16777216" }} + +# Use broadcast in DHCP replies. (boolean value) +# from .default.neutron.dhcp.agent.dhcp_broadcast_reply +{{ if not .default.neutron.dhcp.agent.dhcp_broadcast_reply }}#{{ end }}dhcp_broadcast_reply = {{ .default.neutron.dhcp.agent.dhcp_broadcast_reply | default "false" }} + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + + +[AGENT] + +# +# From neutron.base.agent +# + +# Seconds between nodes reporting state to server; should be less than +# agent_down_time, best if it is half or less than agent_down_time. (floating +# point value) +# from .agent.neutron.base.agent.report_interval +{{ if not .agent.neutron.base.agent.report_interval }}#{{ end }}report_interval = {{ .agent.neutron.base.agent.report_interval | default "30" }} + +# Log agent heartbeats (boolean value) +# from .agent.neutron.base.agent.log_agent_heartbeats +{{ if not .agent.neutron.base.agent.log_agent_heartbeats }}#{{ end }}log_agent_heartbeats = {{ .agent.neutron.base.agent.log_agent_heartbeats | default "false" }} + +# Availability zone of this node (string value) +# from .agent.neutron.base.agent.availability_zone +{{ if not .agent.neutron.base.agent.availability_zone }}#{{ end }}availability_zone = {{ .agent.neutron.base.agent.availability_zone | default "nova" }} + +{{- end -}} + diff --git a/neutron/templates/etc/_l3-agent.ini.tpl b/neutron/templates/etc/_l3-agent.ini.tpl deleted file mode 100644 index edf5a4da92..0000000000 --- a/neutron/templates/etc/_l3-agent.ini.tpl +++ /dev/null @@ -1,18 +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. - -[DEFAULT] -agent_mode = legacy -enable_metadata_proxy = True -enable_isolated_metadata = True diff --git a/neutron/templates/etc/_l3_agent.ini.tpl b/neutron/templates/etc/_l3_agent.ini.tpl new file mode 100644 index 0000000000..ac748e2cda --- /dev/null +++ b/neutron/templates/etc/_l3_agent.ini.tpl @@ -0,0 +1,355 @@ + +# 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. + +{{ include "neutron.conf.l3_agent_values_skeleton" .Values.conf.l3_agent | trunc 0 }} +{{ include "neutron.conf.l3_agent" .Values.conf.l3_agent }} + + +{{- define "neutron.conf.l3_agent_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.neutron -}}{{- set .default "neutron" dict -}}{{- end -}} +{{- if not .default.neutron.base -}}{{- set .default.neutron "base" dict -}}{{- end -}} +{{- if not .default.neutron.base.agent -}}{{- set .default.neutron.base "agent" dict -}}{{- end -}} +{{- if not .default.neutron.l3 -}}{{- set .default.neutron "l3" dict -}}{{- end -}} +{{- if not .default.neutron.l3.agent -}}{{- set .default.neutron.l3 "agent" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .agent -}}{{- set . "agent" dict -}}{{- end -}} +{{- if not .agent.neutron -}}{{- set .agent "neutron" dict -}}{{- end -}} +{{- if not .agent.neutron.base -}}{{- set .agent.neutron "base" dict -}}{{- end -}} +{{- if not .agent.neutron.base.agent -}}{{- set .agent.neutron.base "agent" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.l3_agent" -}} + +[DEFAULT] + +# +# From neutron.base.agent +# + +# Name of Open vSwitch bridge to use (string value) +# from .default.neutron.base.agent.ovs_integration_bridge +{{ if not .default.neutron.base.agent.ovs_integration_bridge }}#{{ end }}ovs_integration_bridge = {{ .default.neutron.base.agent.ovs_integration_bridge | default "br-int" }} + +# Uses veth for an OVS interface or not. Support kernels with limited namespace +# support (e.g. RHEL 6.5) so long as ovs_use_veth is set to True. (boolean +# value) +# from .default.neutron.base.agent.ovs_use_veth +{{ if not .default.neutron.base.agent.ovs_use_veth }}#{{ end }}ovs_use_veth = {{ .default.neutron.base.agent.ovs_use_veth | default "false" }} + +# The driver used to manage the virtual interface. (string value) +# from .default.neutron.base.agent.interface_driver +{{ if not .default.neutron.base.agent.interface_driver }}#{{ end }}interface_driver = {{ .default.neutron.base.agent.interface_driver | default "" }} + +# Timeout in seconds for ovs-vsctl commands. If the timeout expires, ovs +# commands will fail with ALARMCLOCK error. (integer value) +# from .default.neutron.base.agent.ovs_vsctl_timeout +{{ if not .default.neutron.base.agent.ovs_vsctl_timeout }}#{{ end }}ovs_vsctl_timeout = {{ .default.neutron.base.agent.ovs_vsctl_timeout | default "10" }} + +# +# From neutron.l3.agent +# + +# The working mode for the agent. Allowed modes are: 'legacy' - this preserves +# the existing behavior where the L3 agent is deployed on a centralized +# networking node to provide L3 services like DNAT, and SNAT. Use this mode if +# you do not want to adopt DVR. 'dvr' - this mode enables DVR functionality and +# must be used for an L3 agent that runs on a compute host. 'dvr_snat' - this +# enables centralized SNAT support in conjunction with DVR. This mode must be +# used for an L3 agent running on a centralized node (or in single-host +# deployments, e.g. devstack) (string value) +# Allowed values: dvr, dvr_snat, legacy +# from .default.neutron.l3.agent.agent_mode +{{ if not .default.neutron.l3.agent.agent_mode }}#{{ end }}agent_mode = {{ .default.neutron.l3.agent.agent_mode | default "legacy" }} + +# TCP Port used by Neutron metadata namespace proxy. (port value) +# Minimum value: 0 +# Maximum value: 65535 +# from .default.neutron.l3.agent.metadata_port +{{ if not .default.neutron.l3.agent.metadata_port }}#{{ end }}metadata_port = {{ .default.neutron.l3.agent.metadata_port | default "9697" }} + +# Send this many gratuitous ARPs for HA setup, if less than or equal to 0, the +# feature is disabled (integer value) +# from .default.neutron.l3.agent.send_arp_for_ha +{{ if not .default.neutron.l3.agent.send_arp_for_ha }}#{{ end }}send_arp_for_ha = {{ .default.neutron.l3.agent.send_arp_for_ha | default "3" }} + +# Indicates that this L3 agent should also handle routers that do not have an +# external network gateway configured. This option should be True only for a +# single agent in a Neutron deployment, and may be False for all agents if all +# routers must have an external network gateway. (boolean value) +# from .default.neutron.l3.agent.handle_internal_only_routers +{{ if not .default.neutron.l3.agent.handle_internal_only_routers }}#{{ end }}handle_internal_only_routers = {{ .default.neutron.l3.agent.handle_internal_only_routers | default "true" }} + +# When external_network_bridge is set, each L3 agent can be associated with no +# more than one external network. This value should be set to the UUID of that +# external network. To allow L3 agent support multiple external networks, both +# the external_network_bridge and gateway_external_network_id must be left +# empty. (string value) +# from .default.neutron.l3.agent.gateway_external_network_id +{{ if not .default.neutron.l3.agent.gateway_external_network_id }}#{{ end }}gateway_external_network_id = {{ .default.neutron.l3.agent.gateway_external_network_id | default "" }} + +# With IPv6, the network used for the external gateway does not need to have an +# associated subnet, since the automatically assigned link-local address (LLA) +# can be used. However, an IPv6 gateway address is needed for use as the next- +# hop for the default route. If no IPv6 gateway address is configured here, +# (and only then) the neutron router will be configured to get its default +# route from router advertisements (RAs) from the upstream router; in which +# case the upstream router must also be configured to send these RAs. The +# ipv6_gateway, when configured, should be the LLA of the interface on the +# upstream router. If a next-hop using a global unique address (GUA) is +# desired, it needs to be done via a subnet allocated to the network and not +# through this parameter. (string value) +# from .default.neutron.l3.agent.ipv6_gateway +{{ if not .default.neutron.l3.agent.ipv6_gateway }}#{{ end }}ipv6_gateway = {{ .default.neutron.l3.agent.ipv6_gateway | default "" }} + +# Driver used for ipv6 prefix delegation. This needs to be an entry point +# defined in the neutron.agent.linux.pd_drivers namespace. See setup.cfg for +# entry points included with the neutron source. (string value) +# from .default.neutron.l3.agent.prefix_delegation_driver +{{ if not .default.neutron.l3.agent.prefix_delegation_driver }}#{{ end }}prefix_delegation_driver = {{ .default.neutron.l3.agent.prefix_delegation_driver | default "dibbler" }} + +# Allow running metadata proxy. (boolean value) +# from .default.neutron.l3.agent.enable_metadata_proxy +{{ if not .default.neutron.l3.agent.enable_metadata_proxy }}#{{ end }}enable_metadata_proxy = {{ .default.neutron.l3.agent.enable_metadata_proxy | default "true" }} + +# Iptables mangle mark used to mark metadata valid requests. This mark will be +# masked with 0xffff so that only the lower 16 bits will be used. (string +# value) +# from .default.neutron.l3.agent.metadata_access_mark +{{ if not .default.neutron.l3.agent.metadata_access_mark }}#{{ end }}metadata_access_mark = {{ .default.neutron.l3.agent.metadata_access_mark | default "0x1" }} + +# Iptables mangle mark used to mark ingress from external network. This mark +# will be masked with 0xffff so that only the lower 16 bits will be used. +# (string value) +# from .default.neutron.l3.agent.external_ingress_mark +{{ if not .default.neutron.l3.agent.external_ingress_mark }}#{{ end }}external_ingress_mark = {{ .default.neutron.l3.agent.external_ingress_mark | default "0x2" }} + +# DEPRECATED: Name of bridge used for external network traffic. When this +# parameter is set, the L3 agent will plug an interface directly into an +# external bridge which will not allow any wiring by the L2 agent. Using this +# will result in incorrect port statuses. This option is deprecated and will be +# removed in Ocata. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.l3.agent.external_network_bridge +{{ if not .default.neutron.l3.agent.external_network_bridge }}#{{ end }}external_network_bridge = {{ .default.neutron.l3.agent.external_network_bridge | default "" }} + +# Seconds between running periodic tasks. (integer value) +# from .default.neutron.l3.agent.periodic_interval +{{ if not .default.neutron.l3.agent.periodic_interval }}#{{ end }}periodic_interval = {{ .default.neutron.l3.agent.periodic_interval | default "40" }} + +# Number of separate API worker processes for service. If not specified, the +# default is equal to the number of CPUs available for best performance. +# (integer value) +# from .default.neutron.l3.agent.api_workers +{{ if not .default.neutron.l3.agent.api_workers }}#{{ end }}api_workers = {{ .default.neutron.l3.agent.api_workers | default "" }} + +# Number of RPC worker processes for service. (integer value) +# from .default.neutron.l3.agent.rpc_workers +{{ if not .default.neutron.l3.agent.rpc_workers }}#{{ end }}rpc_workers = {{ .default.neutron.l3.agent.rpc_workers | default "1" }} + +# Number of RPC worker processes dedicated to state reports queue. (integer +# value) +# from .default.neutron.l3.agent.rpc_state_report_workers +{{ if not .default.neutron.l3.agent.rpc_state_report_workers }}#{{ end }}rpc_state_report_workers = {{ .default.neutron.l3.agent.rpc_state_report_workers | default "1" }} + +# Range of seconds to randomly delay when starting the periodic task scheduler +# to reduce stampeding. (Disable by setting to 0) (integer value) +# from .default.neutron.l3.agent.periodic_fuzzy_delay +{{ if not .default.neutron.l3.agent.periodic_fuzzy_delay }}#{{ end }}periodic_fuzzy_delay = {{ .default.neutron.l3.agent.periodic_fuzzy_delay | default "5" }} + +# Location to store keepalived/conntrackd config files (string value) +# from .default.neutron.l3.agent.ha_confs_path +{{ if not .default.neutron.l3.agent.ha_confs_path }}#{{ end }}ha_confs_path = {{ .default.neutron.l3.agent.ha_confs_path | default "$state_path/ha_confs" }} + +# VRRP authentication type (string value) +# Allowed values: AH, PASS +# from .default.neutron.l3.agent.ha_vrrp_auth_type +{{ if not .default.neutron.l3.agent.ha_vrrp_auth_type }}#{{ end }}ha_vrrp_auth_type = {{ .default.neutron.l3.agent.ha_vrrp_auth_type | default "PASS" }} + +# VRRP authentication password (string value) +# from .default.neutron.l3.agent.ha_vrrp_auth_password +{{ if not .default.neutron.l3.agent.ha_vrrp_auth_password }}#{{ end }}ha_vrrp_auth_password = {{ .default.neutron.l3.agent.ha_vrrp_auth_password | default "" }} + +# The advertisement interval in seconds (integer value) +# from .default.neutron.l3.agent.ha_vrrp_advert_int +{{ if not .default.neutron.l3.agent.ha_vrrp_advert_int }}#{{ end }}ha_vrrp_advert_int = {{ .default.neutron.l3.agent.ha_vrrp_advert_int | default "2" }} + +# Number of concurrent threads for keepalived server connection requests.More +# threads create a higher CPU load on the agent node. (integer value) +# Minimum value: 1 +# from .default.neutron.l3.agent.ha_keepalived_state_change_server_threads +{{ if not .default.neutron.l3.agent.ha_keepalived_state_change_server_threads }}#{{ end }}ha_keepalived_state_change_server_threads = {{ .default.neutron.l3.agent.ha_keepalived_state_change_server_threads | default "4" }} + +# Service to handle DHCPv6 Prefix delegation. (string value) +# from .default.neutron.l3.agent.pd_dhcp_driver +{{ if not .default.neutron.l3.agent.pd_dhcp_driver }}#{{ end }}pd_dhcp_driver = {{ .default.neutron.l3.agent.pd_dhcp_driver | default "dibbler" }} + +# Location to store IPv6 RA config files (string value) +# from .default.neutron.l3.agent.ra_confs +{{ if not .default.neutron.l3.agent.ra_confs }}#{{ end }}ra_confs = {{ .default.neutron.l3.agent.ra_confs | default "$state_path/ra" }} + +# MinRtrAdvInterval setting for radvd.conf (integer value) +# from .default.neutron.l3.agent.min_rtr_adv_interval +{{ if not .default.neutron.l3.agent.min_rtr_adv_interval }}#{{ end }}min_rtr_adv_interval = {{ .default.neutron.l3.agent.min_rtr_adv_interval | default "30" }} + +# MaxRtrAdvInterval setting for radvd.conf (integer value) +# from .default.neutron.l3.agent.max_rtr_adv_interval +{{ if not .default.neutron.l3.agent.max_rtr_adv_interval }}#{{ end }}max_rtr_adv_interval = {{ .default.neutron.l3.agent.max_rtr_adv_interval | default "100" }} + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + + +[AGENT] + +# +# From neutron.base.agent +# + +# Seconds between nodes reporting state to server; should be less than +# agent_down_time, best if it is half or less than agent_down_time. (floating +# point value) +# from .agent.neutron.base.agent.report_interval +{{ if not .agent.neutron.base.agent.report_interval }}#{{ end }}report_interval = {{ .agent.neutron.base.agent.report_interval | default "30" }} + +# Log agent heartbeats (boolean value) +# from .agent.neutron.base.agent.log_agent_heartbeats +{{ if not .agent.neutron.base.agent.log_agent_heartbeats }}#{{ end }}log_agent_heartbeats = {{ .agent.neutron.base.agent.log_agent_heartbeats | default "false" }} + +# Availability zone of this node (string value) +# from .agent.neutron.base.agent.availability_zone +{{ if not .agent.neutron.base.agent.availability_zone }}#{{ end }}availability_zone = {{ .agent.neutron.base.agent.availability_zone | default "nova" }} + +{{- end -}} + diff --git a/neutron/templates/etc/_metadata-agent.ini.tpl b/neutron/templates/etc/_metadata-agent.ini.tpl deleted file mode 100644 index ef243c8106..0000000000 --- a/neutron/templates/etc/_metadata-agent.ini.tpl +++ /dev/null @@ -1,43 +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. - -[DEFAULT] -debug = {{ .Values.metadata_agent.default.debug }} - -# Neutron credentials for API access -auth_url = {{ tuple "identity" "admin" "admin" . | include "helm-toolkit.keystone_endpoint_uri_lookup" }} -auth_plugin = password -auth_region = {{ .Values.keystone.neutron_region_name }} -project_domain_name = {{ .Values.keystone.neutron_project_domain }} -project_name = {{ .Values.keystone.neutron_project_name }} -user_domain_name = {{ .Values.keystone.neutron_user_domain }} -username = {{ .Values.keystone.neutron_user }} -password = {{ .Values.keystone.neutron_password }} -endpoint_type = adminURL - -# Nova metadata service IP and port -nova_metadata_ip = {{ include "helm-toolkit.nova_metadata_host" . }} -nova_metadata_port = {{ .Values.network.port.metadata }} -nova_metadata_protocol = http - -# Metadata proxy shared secret -metadata_proxy_shared_secret = {{ .Values.neutron.metadata_secret }} - -metadata_port = {{ .Values.network.port.metadata }} - -# Workers and backlog requests -metadata_workers = {{ .Values.metadata.workers }} - -# Caching -cache_url = memory://?default_ttl=5 diff --git a/neutron/templates/etc/_metadata_agent.ini.tpl b/neutron/templates/etc/_metadata_agent.ini.tpl new file mode 100644 index 0000000000..8fc45855ea --- /dev/null +++ b/neutron/templates/etc/_metadata_agent.ini.tpl @@ -0,0 +1,347 @@ + +# 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. + +{{ include "neutron.conf.metadata_agent_values_skeleton" .Values.conf.metadata_agent | trunc 0 }} +{{ include "neutron.conf.metadata_agent" .Values.conf.metadata_agent }} + + +{{- define "neutron.conf.metadata_agent_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.neutron -}}{{- set .default "neutron" dict -}}{{- end -}} +{{- if not .default.neutron.metadata -}}{{- set .default.neutron "metadata" dict -}}{{- end -}} +{{- if not .default.neutron.metadata.agent -}}{{- set .default.neutron.metadata "agent" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .agent -}}{{- set . "agent" dict -}}{{- end -}} +{{- if not .agent.neutron -}}{{- set .agent "neutron" dict -}}{{- end -}} +{{- if not .agent.neutron.metadata -}}{{- set .agent.neutron "metadata" dict -}}{{- end -}} +{{- if not .agent.neutron.metadata.agent -}}{{- set .agent.neutron.metadata "agent" dict -}}{{- end -}} +{{- if not .cache -}}{{- set . "cache" dict -}}{{- end -}} +{{- if not .cache.oslo -}}{{- set .cache "oslo" dict -}}{{- end -}} +{{- if not .cache.oslo.cache -}}{{- set .cache.oslo "cache" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.metadata_agent" -}} + +[DEFAULT] + +# +# From neutron.metadata.agent +# + +# Location for Metadata Proxy UNIX domain socket. (string value) +# from .default.neutron.metadata.agent.metadata_proxy_socket +{{ if not .default.neutron.metadata.agent.metadata_proxy_socket }}#{{ end }}metadata_proxy_socket = {{ .default.neutron.metadata.agent.metadata_proxy_socket | default "$state_path/metadata_proxy" }} + +# User (uid or name) running metadata proxy after its initialization (if empty: +# agent effective user). (string value) +# from .default.neutron.metadata.agent.metadata_proxy_user +{{ if not .default.neutron.metadata.agent.metadata_proxy_user }}#{{ end }}metadata_proxy_user = {{ .default.neutron.metadata.agent.metadata_proxy_user | default "" }} + +# Group (gid or name) running metadata proxy after its initialization (if +# empty: agent effective group). (string value) +# from .default.neutron.metadata.agent.metadata_proxy_group +{{ if not .default.neutron.metadata.agent.metadata_proxy_group }}#{{ end }}metadata_proxy_group = {{ .default.neutron.metadata.agent.metadata_proxy_group | default "" }} + +# Certificate Authority public key (CA cert) file for ssl (string value) +# from .default.neutron.metadata.agent.auth_ca_cert +{{ if not .default.neutron.metadata.agent.auth_ca_cert }}#{{ end }}auth_ca_cert = {{ .default.neutron.metadata.agent.auth_ca_cert | default "" }} + +# IP address used by Nova metadata server. (string value) +# from .default.neutron.metadata.agent.nova_metadata_ip +{{ if not .default.neutron.metadata.agent.nova_metadata_ip }}#{{ end }}nova_metadata_ip = {{ .default.neutron.metadata.agent.nova_metadata_ip | default "127.0.0.1" }} + +# TCP Port used by Nova metadata server. (port value) +# Minimum value: 0 +# Maximum value: 65535 +# from .default.neutron.metadata.agent.nova_metadata_port +{{ if not .default.neutron.metadata.agent.nova_metadata_port }}#{{ end }}nova_metadata_port = {{ .default.neutron.metadata.agent.nova_metadata_port | default "8775" }} + +# When proxying metadata requests, Neutron signs the Instance-ID header with a +# shared secret to prevent spoofing. You may select any string for a secret, +# but it must match here and in the configuration used by the Nova Metadata +# Server. NOTE: Nova uses the same config key, but in [neutron] section. +# (string value) +# from .default.neutron.metadata.agent.metadata_proxy_shared_secret +{{ if not .default.neutron.metadata.agent.metadata_proxy_shared_secret }}#{{ end }}metadata_proxy_shared_secret = {{ .default.neutron.metadata.agent.metadata_proxy_shared_secret | default "" }} + +# Protocol to access nova metadata, http or https (string value) +# Allowed values: http, https +# from .default.neutron.metadata.agent.nova_metadata_protocol +{{ if not .default.neutron.metadata.agent.nova_metadata_protocol }}#{{ end }}nova_metadata_protocol = {{ .default.neutron.metadata.agent.nova_metadata_protocol | default "http" }} + +# Allow to perform insecure SSL (https) requests to nova metadata (boolean +# value) +# from .default.neutron.metadata.agent.nova_metadata_insecure +{{ if not .default.neutron.metadata.agent.nova_metadata_insecure }}#{{ end }}nova_metadata_insecure = {{ .default.neutron.metadata.agent.nova_metadata_insecure | default "false" }} + +# Client certificate for nova metadata api server. (string value) +# from .default.neutron.metadata.agent.nova_client_cert +{{ if not .default.neutron.metadata.agent.nova_client_cert }}#{{ end }}nova_client_cert = {{ .default.neutron.metadata.agent.nova_client_cert | default "" }} + +# Private key of client certificate. (string value) +# from .default.neutron.metadata.agent.nova_client_priv_key +{{ if not .default.neutron.metadata.agent.nova_client_priv_key }}#{{ end }}nova_client_priv_key = {{ .default.neutron.metadata.agent.nova_client_priv_key | default "" }} + +# Metadata Proxy UNIX domain socket mode, 4 values allowed: 'deduce': deduce +# mode from metadata_proxy_user/group values, 'user': set metadata proxy socket +# mode to 0o644, to use when metadata_proxy_user is agent effective user or +# root, 'group': set metadata proxy socket mode to 0o664, to use when +# metadata_proxy_group is agent effective group or root, 'all': set metadata +# proxy socket mode to 0o666, to use otherwise. (string value) +# Allowed values: deduce, user, group, all +# from .default.neutron.metadata.agent.metadata_proxy_socket_mode +{{ if not .default.neutron.metadata.agent.metadata_proxy_socket_mode }}#{{ end }}metadata_proxy_socket_mode = {{ .default.neutron.metadata.agent.metadata_proxy_socket_mode | default "deduce" }} + +# Number of separate worker processes for metadata server (defaults to half of +# the number of CPUs) (integer value) +# from .default.neutron.metadata.agent.metadata_workers +{{ if not .default.neutron.metadata.agent.metadata_workers }}#{{ end }}metadata_workers = {{ .default.neutron.metadata.agent.metadata_workers | default "4" }} + +# Number of backlog requests to configure the metadata server socket with +# (integer value) +# from .default.neutron.metadata.agent.metadata_backlog +{{ if not .default.neutron.metadata.agent.metadata_backlog }}#{{ end }}metadata_backlog = {{ .default.neutron.metadata.agent.metadata_backlog | default "4096" }} + +# DEPRECATED: URL to connect to the cache back end. This option is deprecated +# in the Newton release and will be removed. Please add a [cache] group for +# oslo.cache in your neutron.conf and add "enable" and "backend" options in +# this section. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.metadata.agent.cache_url +{{ if not .default.neutron.metadata.agent.cache_url }}#{{ end }}cache_url = {{ .default.neutron.metadata.agent.cache_url | default "" }} + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + + +[AGENT] + +# +# From neutron.metadata.agent +# + +# Seconds between nodes reporting state to server; should be less than +# agent_down_time, best if it is half or less than agent_down_time. (floating +# point value) +# from .agent.neutron.metadata.agent.report_interval +{{ if not .agent.neutron.metadata.agent.report_interval }}#{{ end }}report_interval = {{ .agent.neutron.metadata.agent.report_interval | default "30" }} + +# Log agent heartbeats (boolean value) +# from .agent.neutron.metadata.agent.log_agent_heartbeats +{{ if not .agent.neutron.metadata.agent.log_agent_heartbeats }}#{{ end }}log_agent_heartbeats = {{ .agent.neutron.metadata.agent.log_agent_heartbeats | default "false" }} + + +[cache] + +# +# From oslo.cache +# + +# Prefix for building the configuration dictionary for the cache region. This +# should not need to be changed unless there is another dogpile.cache region +# with the same configuration name. (string value) +# from .cache.oslo.cache.config_prefix +{{ if not .cache.oslo.cache.config_prefix }}#{{ end }}config_prefix = {{ .cache.oslo.cache.config_prefix | default "cache.oslo" }} + +# Default TTL, in seconds, for any cached item in the dogpile.cache region. +# This applies to any cached method that doesn't have an explicit cache +# expiration time defined for it. (integer value) +# from .cache.oslo.cache.expiration_time +{{ if not .cache.oslo.cache.expiration_time }}#{{ end }}expiration_time = {{ .cache.oslo.cache.expiration_time | default "600" }} + +# Dogpile.cache backend module. It is recommended that Memcache or Redis +# (dogpile.cache.redis) be used in production deployments. For eventlet-based +# or highly threaded servers, Memcache with pooling (oslo_cache.memcache_pool) +# is recommended. For low thread servers, dogpile.cache.memcached is +# recommended. Test environments with a single instance of the server can use +# the dogpile.cache.memory backend. (string value) +# from .cache.oslo.cache.backend +{{ if not .cache.oslo.cache.backend }}#{{ end }}backend = {{ .cache.oslo.cache.backend | default "dogpile.cache.null" }} + +# Arguments supplied to the backend module. Specify this option once per +# argument to be passed to the dogpile.cache backend. Example format: +# ":". (multi valued) +# from .cache.oslo.cache.backend_argument (multiopt) +{{ if not .cache.oslo.cache.backend_argument }}#backend_argument = {{ .cache.oslo.cache.backend_argument | default "" }}{{ else }}{{ range .cache.oslo.cache.backend_argument }}backend_argument = {{ . }}{{ end }}{{ end }} + +# Proxy classes to import that will affect the way the dogpile.cache backend +# functions. See the dogpile.cache documentation on changing-backend-behavior. +# (list value) +# from .cache.oslo.cache.proxies +{{ if not .cache.oslo.cache.proxies }}#{{ end }}proxies = {{ .cache.oslo.cache.proxies | default "" }} + +# Global toggle for caching. (boolean value) +# from .cache.oslo.cache.enabled +{{ if not .cache.oslo.cache.enabled }}#{{ end }}enabled = {{ .cache.oslo.cache.enabled | default "false" }} + +# Extra debugging from the cache backend (cache keys, get/set/delete/etc +# calls). This is only really useful if you need to see the specific cache- +# backend get/set/delete calls with the keys/values. Typically this should be +# left set to false. (boolean value) +# from .cache.oslo.cache.debug_cache_backend +{{ if not .cache.oslo.cache.debug_cache_backend }}#{{ end }}debug_cache_backend = {{ .cache.oslo.cache.debug_cache_backend | default "false" }} + +# Memcache servers in the format of "host:port". (dogpile.cache.memcache and +# oslo_cache.memcache_pool backends only). (list value) +# from .cache.oslo.cache.memcache_servers +{{ if not .cache.oslo.cache.memcache_servers }}#{{ end }}memcache_servers = {{ .cache.oslo.cache.memcache_servers | default "localhost:11211" }} + +# Number of seconds memcached server is considered dead before it is tried +# again. (dogpile.cache.memcache and oslo_cache.memcache_pool backends only). +# (integer value) +# from .cache.oslo.cache.memcache_dead_retry +{{ if not .cache.oslo.cache.memcache_dead_retry }}#{{ end }}memcache_dead_retry = {{ .cache.oslo.cache.memcache_dead_retry | default "300" }} + +# Timeout in seconds for every call to a server. (dogpile.cache.memcache and +# oslo_cache.memcache_pool backends only). (integer value) +# from .cache.oslo.cache.memcache_socket_timeout +{{ if not .cache.oslo.cache.memcache_socket_timeout }}#{{ end }}memcache_socket_timeout = {{ .cache.oslo.cache.memcache_socket_timeout | default "3" }} + +# Max total number of open connections to every memcached server. +# (oslo_cache.memcache_pool backend only). (integer value) +# from .cache.oslo.cache.memcache_pool_maxsize +{{ if not .cache.oslo.cache.memcache_pool_maxsize }}#{{ end }}memcache_pool_maxsize = {{ .cache.oslo.cache.memcache_pool_maxsize | default "10" }} + +# Number of seconds a connection to memcached is held unused in the pool before +# it is closed. (oslo_cache.memcache_pool backend only). (integer value) +# from .cache.oslo.cache.memcache_pool_unused_timeout +{{ if not .cache.oslo.cache.memcache_pool_unused_timeout }}#{{ end }}memcache_pool_unused_timeout = {{ .cache.oslo.cache.memcache_pool_unused_timeout | default "60" }} + +# Number of seconds that an operation will wait to get a memcache client +# connection. (integer value) +# from .cache.oslo.cache.memcache_pool_connection_get_timeout +{{ if not .cache.oslo.cache.memcache_pool_connection_get_timeout }}#{{ end }}memcache_pool_connection_get_timeout = {{ .cache.oslo.cache.memcache_pool_connection_get_timeout | default "10" }} + +{{- end -}} + diff --git a/neutron/templates/etc/_metering_agent.ini.tpl b/neutron/templates/etc/_metering_agent.ini.tpl new file mode 100644 index 0000000000..81ad7e73c6 --- /dev/null +++ b/neutron/templates/etc/_metering_agent.ini.tpl @@ -0,0 +1,174 @@ + +# 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. + +{{ include "neutron.conf.metering_agent_values_skeleton" .Values.conf.metering_agent | trunc 0 }} +{{ include "neutron.conf.metering_agent" .Values.conf.metering_agent }} + + +{{- define "neutron.conf.metering_agent_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.neutron -}}{{- set .default "neutron" dict -}}{{- end -}} +{{- if not .default.neutron.metering -}}{{- set .default.neutron "metering" dict -}}{{- end -}} +{{- if not .default.neutron.metering.agent -}}{{- set .default.neutron.metering "agent" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.metering_agent" -}} + +[DEFAULT] + +# +# From neutron.metering.agent +# + +# Metering driver (string value) +# from .default.neutron.metering.agent.driver +{{ if not .default.neutron.metering.agent.driver }}#{{ end }}driver = {{ .default.neutron.metering.agent.driver | default "neutron.services.metering.drivers.noop.noop_driver.NoopMeteringDriver" }} + +# Interval between two metering measures (integer value) +# from .default.neutron.metering.agent.measure_interval +{{ if not .default.neutron.metering.agent.measure_interval }}#{{ end }}measure_interval = {{ .default.neutron.metering.agent.measure_interval | default "30" }} + +# Interval between two metering reports (integer value) +# from .default.neutron.metering.agent.report_interval +{{ if not .default.neutron.metering.agent.report_interval }}#{{ end }}report_interval = {{ .default.neutron.metering.agent.report_interval | default "300" }} + +# The driver used to manage the virtual interface. (string value) +# from .default.neutron.metering.agent.interface_driver +{{ if not .default.neutron.metering.agent.interface_driver }}#{{ end }}interface_driver = {{ .default.neutron.metering.agent.interface_driver | default "" }} + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + +{{- end -}} + diff --git a/neutron/templates/etc/_ml2-conf.ini.tpl b/neutron/templates/etc/_ml2-conf.ini.tpl deleted file mode 100644 index 4c1adab5e1..0000000000 --- a/neutron/templates/etc/_ml2-conf.ini.tpl +++ /dev/null @@ -1,58 +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. - -[ml2] -# Changing type_drivers after bootstrap can lead to database inconsistencies -type_drivers = {{ include "helm-toolkit.joinListWithComma" .Values.ml2.type_drivers }} -tenant_network_types = {{ .Values.ml2.tenant_network_types }} -mechanism_drivers = {{ include "helm-toolkit.joinListWithComma" .Values.ml2.mechanism_drivers }} -extension_drivers = {{ include "helm-toolkit.joinListWithComma" .Values.ml2.extension_drivers }} - -[ml2_type_flat] -flat_networks = {{ include "helm-toolkit.joinListWithComma" .Values.ml2.ml2_type_flat.flat_networks }} - -[ml2_type_gre] -# (ListOpt) Comma-separated list of : tuples enumerating ranges -# of GRE tunnel IDs that are available for tenant network allocation -tunnel_id_ranges = {{ .Values.ml2.ml2_type_gre.tunnel_id_ranges }} - -[ml2_type_vxlan] -vni_ranges = {{ .Values.ml2.ml2_type_vxlan.vni_ranges }} -vxlan_group = {{ .Values.ml2.ml2_type_vxlan.vxlan_group }} - -[ml2_type_vlan] -# (ListOpt) List of [::] tuples -# specifying physical_network names usable for VLAN provider and -# tenant networks, as well as ranges of VLAN tags on each -# physical_network available for allocation as tenant networks. -network_vlan_ranges = {{ .Values.ml2.ml2_type_vlan.network_vlan_ranges }} - -[securitygroup] -firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver -enable_security_group = True - -{{- if .Values.ml2.agent.tunnel_types }} -[agent] -tunnel_types = {{ .Values.ml2.agent.tunnel_types }} -l2_population = false -arp_responder = false -{{- end }} - -[ovs] -bridge_mappings = {{ include "helm-toolkit.joinListWithComma" .Values.ml2.ovs.bridge_mappings }} -tenant_network_type = {{ .Values.ml2.agent.tunnel_types }} - -[vxlan] -l2_population = true -ovsdb_interface = {{ .Values.network.interface.openvswitch | default .Values.network.interface.default }} diff --git a/neutron/templates/etc/_neutron.conf.tpl b/neutron/templates/etc/_neutron.conf.tpl index 4adcf32805..ed1b25a897 100644 --- a/neutron/templates/etc/_neutron.conf.tpl +++ b/neutron/templates/etc/_neutron.conf.tpl @@ -1,3 +1,4 @@ + # Copyright 2017 The Openstack-Helm Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -12,78 +13,2211 @@ # See the License for the specific language governing permissions and # limitations under the License. +{{ include "neutron.conf.neutron_values_skeleton" .Values.conf.neutron | trunc 0 }} +{{ include "neutron.conf.neutron" .Values.conf.neutron }} + + +{{- define "neutron.conf.neutron_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.neutron -}}{{- set .default "neutron" dict -}}{{- end -}} +{{- if not .default.neutron.agent -}}{{- set .default.neutron "agent" dict -}}{{- end -}} +{{- if not .default.neutron.db -}}{{- set .default.neutron "db" dict -}}{{- end -}} +{{- if not .default.neutron.extensions -}}{{- set .default.neutron "extensions" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .default.oslo.messaging -}}{{- set .default.oslo "messaging" dict -}}{{- end -}} +{{- if not .default.oslo.service -}}{{- set .default.oslo "service" dict -}}{{- end -}} +{{- if not .default.oslo.service.wsgi -}}{{- set .default.oslo.service "wsgi" dict -}}{{- end -}} +{{- if not .agent -}}{{- set . "agent" dict -}}{{- end -}} +{{- if not .agent.neutron -}}{{- set .agent "neutron" dict -}}{{- end -}} +{{- if not .agent.neutron.agent -}}{{- set .agent.neutron "agent" dict -}}{{- end -}} +{{- if not .cors -}}{{- set . "cors" dict -}}{{- end -}} +{{- if not .cors.oslo -}}{{- set .cors "oslo" dict -}}{{- end -}} +{{- if not .cors.oslo.middleware -}}{{- set .cors.oslo "middleware" dict -}}{{- end -}} +{{- if not .cors.oslo.middleware.cors -}}{{- set .cors.oslo.middleware "cors" dict -}}{{- end -}} +{{- if not .cors.subdomain -}}{{- set .cors "subdomain" dict -}}{{- end -}} +{{- if not .cors.subdomain.oslo -}}{{- set .cors.subdomain "oslo" dict -}}{{- end -}} +{{- if not .cors.subdomain.oslo.middleware -}}{{- set .cors.subdomain.oslo "middleware" dict -}}{{- end -}} +{{- if not .cors.subdomain.oslo.middleware.cors -}}{{- set .cors.subdomain.oslo.middleware "cors" dict -}}{{- end -}} +{{- if not .database -}}{{- set . "database" dict -}}{{- end -}} +{{- if not .database.neutron -}}{{- set .database "neutron" dict -}}{{- end -}} +{{- if not .database.neutron.db -}}{{- set .database.neutron "db" dict -}}{{- end -}} +{{- if not .database.oslo -}}{{- set .database "oslo" dict -}}{{- end -}} +{{- if not .database.oslo.db -}}{{- set .database.oslo "db" dict -}}{{- end -}} +{{- if not .keystone_authtoken -}}{{- set . "keystone_authtoken" dict -}}{{- end -}} +{{- if not .keystone_authtoken.keystonemiddleware -}}{{- set .keystone_authtoken "keystonemiddleware" dict -}}{{- end -}} +{{- if not .keystone_authtoken.keystonemiddleware.auth_token -}}{{- set .keystone_authtoken.keystonemiddleware "auth_token" dict -}}{{- end -}} +{{- if not .matchmaker_redis -}}{{- set . "matchmaker_redis" dict -}}{{- end -}} +{{- if not .matchmaker_redis.oslo -}}{{- set .matchmaker_redis "oslo" dict -}}{{- end -}} +{{- if not .matchmaker_redis.oslo.messaging -}}{{- set .matchmaker_redis.oslo "messaging" dict -}}{{- end -}} +{{- if not .nova -}}{{- set . "nova" dict -}}{{- end -}} +{{- if not .nova.neutron -}}{{- set .nova "neutron" dict -}}{{- end -}} +{{- if not .nova.nova -}}{{- set .nova "nova" dict -}}{{- end -}} +{{- if not .nova.nova.auth -}}{{- set .nova.nova "auth" dict -}}{{- end -}} +{{- if not .oslo_concurrency -}}{{- set . "oslo_concurrency" dict -}}{{- end -}} +{{- if not .oslo_concurrency.oslo -}}{{- set .oslo_concurrency "oslo" dict -}}{{- end -}} +{{- if not .oslo_concurrency.oslo.concurrency -}}{{- set .oslo_concurrency.oslo "concurrency" dict -}}{{- end -}} +{{- if not .oslo_messaging_amqp -}}{{- set . "oslo_messaging_amqp" dict -}}{{- end -}} +{{- if not .oslo_messaging_amqp.oslo -}}{{- set .oslo_messaging_amqp "oslo" dict -}}{{- end -}} +{{- if not .oslo_messaging_amqp.oslo.messaging -}}{{- set .oslo_messaging_amqp.oslo "messaging" dict -}}{{- end -}} +{{- if not .oslo_messaging_notifications -}}{{- set . "oslo_messaging_notifications" dict -}}{{- end -}} +{{- if not .oslo_messaging_notifications.oslo -}}{{- set .oslo_messaging_notifications "oslo" dict -}}{{- end -}} +{{- if not .oslo_messaging_notifications.oslo.messaging -}}{{- set .oslo_messaging_notifications.oslo "messaging" dict -}}{{- end -}} +{{- if not .oslo_messaging_rabbit -}}{{- set . "oslo_messaging_rabbit" dict -}}{{- end -}} +{{- if not .oslo_messaging_rabbit.oslo -}}{{- set .oslo_messaging_rabbit "oslo" dict -}}{{- end -}} +{{- if not .oslo_messaging_rabbit.oslo.messaging -}}{{- set .oslo_messaging_rabbit.oslo "messaging" dict -}}{{- end -}} +{{- if not .oslo_messaging_zmq -}}{{- set . "oslo_messaging_zmq" dict -}}{{- end -}} +{{- if not .oslo_messaging_zmq.oslo -}}{{- set .oslo_messaging_zmq "oslo" dict -}}{{- end -}} +{{- if not .oslo_messaging_zmq.oslo.messaging -}}{{- set .oslo_messaging_zmq.oslo "messaging" dict -}}{{- end -}} +{{- if not .oslo_middleware -}}{{- set . "oslo_middleware" dict -}}{{- end -}} +{{- if not .oslo_middleware.oslo -}}{{- set .oslo_middleware "oslo" dict -}}{{- end -}} +{{- if not .oslo_middleware.oslo.middleware -}}{{- set .oslo_middleware.oslo "middleware" dict -}}{{- end -}} +{{- if not .oslo_middleware.oslo.middleware.http_proxy_to_wsgi -}}{{- set .oslo_middleware.oslo.middleware "http_proxy_to_wsgi" dict -}}{{- end -}} +{{- if not .oslo_policy -}}{{- set . "oslo_policy" dict -}}{{- end -}} +{{- if not .oslo_policy.oslo -}}{{- set .oslo_policy "oslo" dict -}}{{- end -}} +{{- if not .oslo_policy.oslo.policy -}}{{- set .oslo_policy.oslo "policy" dict -}}{{- end -}} +{{- if not .qos -}}{{- set . "qos" dict -}}{{- end -}} +{{- if not .qos.neutron -}}{{- set .qos "neutron" dict -}}{{- end -}} +{{- if not .qos.neutron.qos -}}{{- set .qos.neutron "qos" dict -}}{{- end -}} +{{- if not .quotas -}}{{- set . "quotas" dict -}}{{- end -}} +{{- if not .quotas.neutron -}}{{- set .quotas "neutron" dict -}}{{- end -}} +{{- if not .quotas.neutron.extensions -}}{{- set .quotas.neutron "extensions" dict -}}{{- end -}} +{{- if not .ssl -}}{{- set . "ssl" dict -}}{{- end -}} +{{- if not .ssl.oslo -}}{{- set .ssl "oslo" dict -}}{{- end -}} +{{- if not .ssl.oslo.service -}}{{- set .ssl.oslo "service" dict -}}{{- end -}} +{{- if not .ssl.oslo.service.sslutils -}}{{- set .ssl.oslo.service "sslutils" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.neutron" -}} + [DEFAULT] -debug = {{ .Values.neutron.default.debug }} -use_syslog = False -use_stderr = True -bind_host = {{ .Values.network.ip_address }} -bind_port = {{ .Values.network.port.server }} +# +# From neutron +# -#lock_path = /var/lock/neutron -api_paste_config = /usr/share/neutron/api-paste.ini +# Where to store Neutron state files. This directory must be writable by the +# agent. (string value) +# from .default.neutron.state_path +{{ if not .default.neutron.state_path }}#{{ end }}state_path = {{ .default.neutron.state_path | default "/var/lib/neutron" }} -api_workers = {{ .Values.neutron.workers }} +# The host IP to bind to (string value) +# from .default.neutron.bind_host +{{ if not .default.neutron.bind_host }}#{{ end }}bind_host = {{ .default.neutron.bind_host | default "0.0.0.0" }} -allow_overlapping_ips = True -core_plugin = ml2 -service_plugins = router +# The port to bind to (port value) +# Minimum value: 0 +# Maximum value: 65535 +# from .default.neutron.bind_port +{{ if not .default.neutron.bind_port }}#{{ end }}bind_port = {{ .default.neutron.bind_port | default "9696" }} -interface_driver = openvswitch +# The path for API extensions. Note that this can be a colon-separated list of +# paths. For example: api_extensions_path = +# extensions:/path/to/more/exts:/even/more/exts. The __path__ of +# neutron.extensions is appended to this, so if your extensions are in there +# you don't need to specify them here. (string value) +# from .default.neutron.api_extensions_path +{{ if not .default.neutron.api_extensions_path }}#{{ end }}api_extensions_path = {{ .default.neutron.api_extensions_path | default "" }} -metadata_proxy_socket = /var/lib/neutron/openstack-helm/metadata_proxy +# The type of authentication to use (string value) +# from .default.neutron.auth_strategy +{{ if not .default.neutron.auth_strategy }}#{{ end }}auth_strategy = {{ .default.neutron.auth_strategy | default "keystone" }} -allow_automatic_l3agent_failover = True -l3_ha = true -min_l3_agents_per_router = 1 -max_l3_agents_per_router = 2 -l3_ha_network_type = {{ .Values.neutron.default.l3_ha_network_type }} +# The core plugin Neutron will use (string value) +# from .default.neutron.core_plugin +{{ if not .default.neutron.core_plugin }}#{{ end }}core_plugin = {{ .default.neutron.core_plugin | default "" }} -dhcp_agents_per_network = 3 +# The service plugins Neutron will use (list value) +# from .default.neutron.service_plugins +{{ if not .default.neutron.service_plugins }}#{{ end }}service_plugins = {{ .default.neutron.service_plugins | default "" }} -network_auto_schedule = True -router_auto_schedule = True +# The base MAC address Neutron will use for VIFs. The first 3 octets will +# remain unchanged. If the 4th octet is not 00, it will also be used. The +# others will be randomly generated. (string value) +# from .default.neutron.base_mac +{{ if not .default.neutron.base_mac }}#{{ end }}base_mac = {{ .default.neutron.base_mac | default "fa:16:3e:00:00:00" }} -transport_url = rabbit://{{ .Values.rabbitmq.admin_user }}:{{ .Values.rabbitmq.admin_password }}@{{ .Values.rabbitmq.address }}:{{ .Values.rabbitmq.port }} +# DEPRECATED: How many times Neutron will retry MAC generation. This option is +# now obsolete and so is deprecated to be removed in the Ocata release. +# (integer value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.mac_generation_retries +{{ if not .default.neutron.mac_generation_retries }}#{{ end }}mac_generation_retries = {{ .default.neutron.mac_generation_retries | default "16" }} -[nova] -memcached_servers = "{{ .Values.memcached.host }}:{{ .Values.memcached.port }}" -auth_version = v3 -auth_url = {{ tuple "identity" "internal" "api" . | include "helm-toolkit.keystone_endpoint_uri_lookup" }} -auth_type = password -region_name = {{ .Values.keystone.nova_region_name }} -project_domain_name = {{ .Values.keystone.nova_project_domain }} -project_name = {{ .Values.keystone.nova_project_name }} -user_domain_name = {{ .Values.keystone.nova_user_domain }} -username = {{ .Values.keystone.nova_user }} -password = {{ .Values.keystone.nova_password }} +# Allow the usage of the bulk API (boolean value) +# from .default.neutron.allow_bulk +{{ if not .default.neutron.allow_bulk }}#{{ end }}allow_bulk = {{ .default.neutron.allow_bulk | default "true" }} -[oslo_concurrency] -lock_path = /var/lib/neutron/tmp +# DEPRECATED: Allow the usage of the pagination. This option has been +# deprecated and will now be enabled unconditionally. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.allow_pagination +{{ if not .default.neutron.allow_pagination }}#{{ end }}allow_pagination = {{ .default.neutron.allow_pagination | default "true" }} + +# DEPRECATED: Allow the usage of the sorting. This option has been deprecated +# and will now be enabled unconditionally. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.allow_sorting +{{ if not .default.neutron.allow_sorting }}#{{ end }}allow_sorting = {{ .default.neutron.allow_sorting | default "true" }} + +# The maximum number of items returned in a single response, value was +# 'infinite' or negative integer means no limit (string value) +# from .default.neutron.pagination_max_limit +{{ if not .default.neutron.pagination_max_limit }}#{{ end }}pagination_max_limit = {{ .default.neutron.pagination_max_limit | default "-1" }} + +# Default value of availability zone hints. The availability zone aware +# schedulers use this when the resources availability_zone_hints is empty. +# Multiple availability zones can be specified by a comma separated string. +# This value can be empty. In this case, even if availability_zone_hints for a +# resource is empty, availability zone is considered for high availability +# while scheduling the resource. (list value) +# from .default.neutron.default_availability_zones +{{ if not .default.neutron.default_availability_zones }}#{{ end }}default_availability_zones = {{ .default.neutron.default_availability_zones | default "" }} + +# Maximum number of DNS nameservers per subnet (integer value) +# from .default.neutron.max_dns_nameservers +{{ if not .default.neutron.max_dns_nameservers }}#{{ end }}max_dns_nameservers = {{ .default.neutron.max_dns_nameservers | default "5" }} + +# Maximum number of host routes per subnet (integer value) +# from .default.neutron.max_subnet_host_routes +{{ if not .default.neutron.max_subnet_host_routes }}#{{ end }}max_subnet_host_routes = {{ .default.neutron.max_subnet_host_routes | default "20" }} + +# DEPRECATED: Maximum number of fixed ips per port. This option is deprecated +# and will be removed in the Ocata release. (integer value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.max_fixed_ips_per_port +{{ if not .default.neutron.max_fixed_ips_per_port }}#{{ end }}max_fixed_ips_per_port = {{ .default.neutron.max_fixed_ips_per_port | default "5" }} + +# Enables IPv6 Prefix Delegation for automatic subnet CIDR allocation. Set to +# True to enable IPv6 Prefix Delegation for subnet allocation in a PD-capable +# environment. Users making subnet creation requests for IPv6 subnets without +# providing a CIDR or subnetpool ID will be given a CIDR via the Prefix +# Delegation mechanism. Note that enabling PD will override the behavior of the +# default IPv6 subnetpool. (boolean value) +# from .default.neutron.ipv6_pd_enabled +{{ if not .default.neutron.ipv6_pd_enabled }}#{{ end }}ipv6_pd_enabled = {{ .default.neutron.ipv6_pd_enabled | default "false" }} + +# DHCP lease duration (in seconds). Use -1 to tell dnsmasq to use infinite +# lease times. (integer value) +# from .default.neutron.dhcp_lease_duration +{{ if not .default.neutron.dhcp_lease_duration }}#{{ end }}dhcp_lease_duration = {{ .default.neutron.dhcp_lease_duration | default "86400" }} + +# Domain to use for building the hostnames (string value) +# from .default.neutron.dns_domain +{{ if not .default.neutron.dns_domain }}#{{ end }}dns_domain = {{ .default.neutron.dns_domain | default "openstacklocal" }} + +# Driver for external DNS integration. (string value) +# from .default.neutron.external_dns_driver +{{ if not .default.neutron.external_dns_driver }}#{{ end }}external_dns_driver = {{ .default.neutron.external_dns_driver | default "" }} + +# Allow sending resource operation notification to DHCP agent (boolean value) +# from .default.neutron.dhcp_agent_notification +{{ if not .default.neutron.dhcp_agent_notification }}#{{ end }}dhcp_agent_notification = {{ .default.neutron.dhcp_agent_notification | default "true" }} + +# Allow overlapping IP support in Neutron. Attention: the following parameter +# MUST be set to False if Neutron is being used in conjunction with Nova +# security groups. (boolean value) +# from .default.neutron.allow_overlapping_ips +{{ if not .default.neutron.allow_overlapping_ips }}#{{ end }}allow_overlapping_ips = {{ .default.neutron.allow_overlapping_ips | default "false" }} + +# Hostname to be used by the Neutron server, agents and services running on +# this machine. All the agents and services running on this machine must use +# the same host value. (string value) +# from .default.neutron.host +{{ if not .default.neutron.host }}#{{ end }}host = {{ .default.neutron.host | default "example.domain" }} + +# Send notification to nova when port status changes (boolean value) +# from .default.neutron.notify_nova_on_port_status_changes +{{ if not .default.neutron.notify_nova_on_port_status_changes }}#{{ end }}notify_nova_on_port_status_changes = {{ .default.neutron.notify_nova_on_port_status_changes | default "true" }} + +# Send notification to nova when port data (fixed_ips/floatingip) changes so +# nova can update its cache. (boolean value) +# from .default.neutron.notify_nova_on_port_data_changes +{{ if not .default.neutron.notify_nova_on_port_data_changes }}#{{ end }}notify_nova_on_port_data_changes = {{ .default.neutron.notify_nova_on_port_data_changes | default "true" }} + +# Number of seconds between sending events to nova if there are any events to +# send. (integer value) +# from .default.neutron.send_events_interval +{{ if not .default.neutron.send_events_interval }}#{{ end }}send_events_interval = {{ .default.neutron.send_events_interval | default "2" }} + +# DEPRECATED: If True, advertise network MTU values if core plugin calculates +# them. MTU is advertised to running instances via DHCP and RA MTU options. +# (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.advertise_mtu +{{ if not .default.neutron.advertise_mtu }}#{{ end }}advertise_mtu = {{ .default.neutron.advertise_mtu | default "true" }} + +# Neutron IPAM (IP address management) driver to use. By default, the reference +# implementation of the Neutron IPAM driver is used. (string value) +# from .default.neutron.ipam_driver +{{ if not .default.neutron.ipam_driver }}#{{ end }}ipam_driver = {{ .default.neutron.ipam_driver | default "internal" }} + +# If True, then allow plugins that support it to create VLAN transparent +# networks. (boolean value) +# from .default.neutron.vlan_transparent +{{ if not .default.neutron.vlan_transparent }}#{{ end }}vlan_transparent = {{ .default.neutron.vlan_transparent | default "false" }} + +# This will choose the web framework in which to run the Neutron API server. +# 'pecan' is a new experimental rewrite of the API server. (string value) +# Allowed values: legacy, pecan +# from .default.neutron.web_framework +{{ if not .default.neutron.web_framework }}#{{ end }}web_framework = {{ .default.neutron.web_framework | default "legacy" }} + +# MTU of the underlying physical network. Neutron uses this value to calculate +# MTU for all virtual network components. For flat and VLAN networks, neutron +# uses this value without modification. For overlay networks such as VXLAN, +# neutron automatically subtracts the overlay protocol overhead from this +# value. Defaults to 1500, the standard value for Ethernet. (integer value) +# Deprecated group/name - [ml2]/segment_mtu +# from .default.neutron.global_physnet_mtu +{{ if not .default.neutron.global_physnet_mtu }}#{{ end }}global_physnet_mtu = {{ .default.neutron.global_physnet_mtu | default "1500" }} + +# Number of backlog requests to configure the socket with (integer value) +# from .default.neutron.backlog +{{ if not .default.neutron.backlog }}#{{ end }}backlog = {{ .default.neutron.backlog | default "4096" }} + +# Number of seconds to keep retrying to listen (integer value) +# from .default.neutron.retry_until_window +{{ if not .default.neutron.retry_until_window }}#{{ end }}retry_until_window = {{ .default.neutron.retry_until_window | default "30" }} + +# Enable SSL on the API server (boolean value) +# from .default.neutron.use_ssl +{{ if not .default.neutron.use_ssl }}#{{ end }}use_ssl = {{ .default.neutron.use_ssl | default "false" }} + +# Seconds between running periodic tasks. (integer value) +# from .default.neutron.periodic_interval +{{ if not .default.neutron.periodic_interval }}#{{ end }}periodic_interval = {{ .default.neutron.periodic_interval | default "40" }} + +# Number of separate API worker processes for service. If not specified, the +# default is equal to the number of CPUs available for best performance. +# (integer value) +# from .default.neutron.api_workers +{{ if not .default.neutron.api_workers }}#{{ end }}api_workers = {{ .default.neutron.api_workers | default "" }} + +# Number of RPC worker processes for service. (integer value) +# from .default.neutron.rpc_workers +{{ if not .default.neutron.rpc_workers }}#{{ end }}rpc_workers = {{ .default.neutron.rpc_workers | default "1" }} + +# Number of RPC worker processes dedicated to state reports queue. (integer +# value) +# from .default.neutron.rpc_state_report_workers +{{ if not .default.neutron.rpc_state_report_workers }}#{{ end }}rpc_state_report_workers = {{ .default.neutron.rpc_state_report_workers | default "1" }} + +# Range of seconds to randomly delay when starting the periodic task scheduler +# to reduce stampeding. (Disable by setting to 0) (integer value) +# from .default.neutron.periodic_fuzzy_delay +{{ if not .default.neutron.periodic_fuzzy_delay }}#{{ end }}periodic_fuzzy_delay = {{ .default.neutron.periodic_fuzzy_delay | default "5" }} + +# +# From neutron.agent +# + +# The driver used to manage the virtual interface. (string value) +# from .default.neutron.agent.interface_driver +{{ if not .default.neutron.agent.interface_driver }}#{{ end }}interface_driver = {{ .default.neutron.agent.interface_driver | default "" }} + +# Location for Metadata Proxy UNIX domain socket. (string value) +# from .default.neutron.agent.metadata_proxy_socket +{{ if not .default.neutron.agent.metadata_proxy_socket }}#{{ end }}metadata_proxy_socket = {{ .default.neutron.agent.metadata_proxy_socket | default "$state_path/metadata_proxy" }} + +# User (uid or name) running metadata proxy after its initialization (if empty: +# agent effective user). (string value) +# from .default.neutron.agent.metadata_proxy_user +{{ if not .default.neutron.agent.metadata_proxy_user }}#{{ end }}metadata_proxy_user = {{ .default.neutron.agent.metadata_proxy_user | default "" }} + +# Group (gid or name) running metadata proxy after its initialization (if +# empty: agent effective group). (string value) +# from .default.neutron.agent.metadata_proxy_group +{{ if not .default.neutron.agent.metadata_proxy_group }}#{{ end }}metadata_proxy_group = {{ .default.neutron.agent.metadata_proxy_group | default "" }} + +# Enable/Disable log watch by metadata proxy. It should be disabled when +# metadata_proxy_user/group is not allowed to read/write its log file and +# copytruncate logrotate option must be used if logrotate is enabled on +# metadata proxy log files. Option default value is deduced from +# metadata_proxy_user: watch log is enabled if metadata_proxy_user is agent +# effective user id/name. (boolean value) +# from .default.neutron.agent.metadata_proxy_watch_log +{{ if not .default.neutron.agent.metadata_proxy_watch_log }}#{{ end }}metadata_proxy_watch_log = {{ .default.neutron.agent.metadata_proxy_watch_log | default "" }} + +# +# From neutron.db +# + +# Seconds to regard the agent is down; should be at least twice +# report_interval, to be sure the agent is down for good. (integer value) +# from .default.neutron.db.agent_down_time +{{ if not .default.neutron.db.agent_down_time }}#{{ end }}agent_down_time = {{ .default.neutron.db.agent_down_time | default "75" }} + +# Representing the resource type whose load is being reported by the agent. +# This can be "networks", "subnets" or "ports". When specified (Default is +# networks), the server will extract particular load sent as part of its agent +# configuration object from the agent report state, which is the number of +# resources being consumed, at every report_interval.dhcp_load_type can be used +# in combination with network_scheduler_driver = +# neutron.scheduler.dhcp_agent_scheduler.WeightScheduler When the +# network_scheduler_driver is WeightScheduler, dhcp_load_type can be configured +# to represent the choice for the resource being balanced. Example: +# dhcp_load_type=networks (string value) +# Allowed values: networks, subnets, ports +# from .default.neutron.db.dhcp_load_type +{{ if not .default.neutron.db.dhcp_load_type }}#{{ end }}dhcp_load_type = {{ .default.neutron.db.dhcp_load_type | default "networks" }} + +# Agent starts with admin_state_up=False when enable_new_agents=False. In the +# case, user's resources will not be scheduled automatically to the agent until +# admin changes admin_state_up to True. (boolean value) +# from .default.neutron.db.enable_new_agents +{{ if not .default.neutron.db.enable_new_agents }}#{{ end }}enable_new_agents = {{ .default.neutron.db.enable_new_agents | default "true" }} + +# Maximum number of routes per router (integer value) +# from .default.neutron.db.max_routes +{{ if not .default.neutron.db.max_routes }}#{{ end }}max_routes = {{ .default.neutron.db.max_routes | default "30" }} + +# Define the default value of enable_snat if not provided in +# external_gateway_info. (boolean value) +# from .default.neutron.db.enable_snat_by_default +{{ if not .default.neutron.db.enable_snat_by_default }}#{{ end }}enable_snat_by_default = {{ .default.neutron.db.enable_snat_by_default | default "true" }} + +# Driver to use for scheduling network to DHCP agent (string value) +# from .default.neutron.db.network_scheduler_driver +{{ if not .default.neutron.db.network_scheduler_driver }}#{{ end }}network_scheduler_driver = {{ .default.neutron.db.network_scheduler_driver | default "neutron.scheduler.dhcp_agent_scheduler.WeightScheduler" }} + +# Allow auto scheduling networks to DHCP agent. (boolean value) +# from .default.neutron.db.network_auto_schedule +{{ if not .default.neutron.db.network_auto_schedule }}#{{ end }}network_auto_schedule = {{ .default.neutron.db.network_auto_schedule | default "true" }} + +# Automatically remove networks from offline DHCP agents. (boolean value) +# from .default.neutron.db.allow_automatic_dhcp_failover +{{ if not .default.neutron.db.allow_automatic_dhcp_failover }}#{{ end }}allow_automatic_dhcp_failover = {{ .default.neutron.db.allow_automatic_dhcp_failover | default "true" }} + +# Number of DHCP agents scheduled to host a tenant network. If this number is +# greater than 1, the scheduler automatically assigns multiple DHCP agents for +# a given tenant network, providing high availability for DHCP service. +# (integer value) +# from .default.neutron.db.dhcp_agents_per_network +{{ if not .default.neutron.db.dhcp_agents_per_network }}#{{ end }}dhcp_agents_per_network = {{ .default.neutron.db.dhcp_agents_per_network | default "1" }} + +# Enable services on an agent with admin_state_up False. If this option is +# False, when admin_state_up of an agent is turned False, services on it will +# be disabled. Agents with admin_state_up False are not selected for automatic +# scheduling regardless of this option. But manual scheduling to such agents is +# available if this option is True. (boolean value) +# from .default.neutron.db.enable_services_on_agents_with_admin_state_down +{{ if not .default.neutron.db.enable_services_on_agents_with_admin_state_down }}#{{ end }}enable_services_on_agents_with_admin_state_down = {{ .default.neutron.db.enable_services_on_agents_with_admin_state_down | default "false" }} + +# The base mac address used for unique DVR instances by Neutron. The first 3 +# octets will remain unchanged. If the 4th octet is not 00, it will also be +# used. The others will be randomly generated. The 'dvr_base_mac' *must* be +# different from 'base_mac' to avoid mixing them up with MAC's allocated for +# tenant ports. A 4 octet example would be dvr_base_mac = fa:16:3f:4f:00:00. +# The default is 3 octet (string value) +# from .default.neutron.db.dvr_base_mac +{{ if not .default.neutron.db.dvr_base_mac }}#{{ end }}dvr_base_mac = {{ .default.neutron.db.dvr_base_mac | default "fa:16:3f:00:00:00" }} + +# System-wide flag to determine the type of router that tenants can create. +# Only admin can override. (boolean value) +# from .default.neutron.db.router_distributed +{{ if not .default.neutron.db.router_distributed }}#{{ end }}router_distributed = {{ .default.neutron.db.router_distributed | default "false" }} + +# Driver to use for scheduling router to a default L3 agent (string value) +# from .default.neutron.db.router_scheduler_driver +{{ if not .default.neutron.db.router_scheduler_driver }}#{{ end }}router_scheduler_driver = {{ .default.neutron.db.router_scheduler_driver | default "neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler" }} + +# Allow auto scheduling of routers to L3 agent. (boolean value) +# from .default.neutron.db.router_auto_schedule +{{ if not .default.neutron.db.router_auto_schedule }}#{{ end }}router_auto_schedule = {{ .default.neutron.db.router_auto_schedule | default "true" }} + +# Automatically reschedule routers from offline L3 agents to online L3 agents. +# (boolean value) +# from .default.neutron.db.allow_automatic_l3agent_failover +{{ if not .default.neutron.db.allow_automatic_l3agent_failover }}#{{ end }}allow_automatic_l3agent_failover = {{ .default.neutron.db.allow_automatic_l3agent_failover | default "false" }} + +# Enable HA mode for virtual routers. (boolean value) +# from .default.neutron.db.l3_ha +{{ if not .default.neutron.db.l3_ha }}#{{ end }}l3_ha = {{ .default.neutron.db.l3_ha | default "false" }} + +# Maximum number of L3 agents which a HA router will be scheduled on. If it is +# set to 0 then the router will be scheduled on every agent. (integer value) +# from .default.neutron.db.max_l3_agents_per_router +{{ if not .default.neutron.db.max_l3_agents_per_router }}#{{ end }}max_l3_agents_per_router = {{ .default.neutron.db.max_l3_agents_per_router | default "3" }} + +# DEPRECATED: Minimum number of L3 agents that have to be available in order to +# allow a new HA router to be scheduled. This option is deprecated in the +# Newton release and will be removed for the Ocata release where the scheduling +# of new HA routers will always be allowed. (integer value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.neutron.db.min_l3_agents_per_router +{{ if not .default.neutron.db.min_l3_agents_per_router }}#{{ end }}min_l3_agents_per_router = {{ .default.neutron.db.min_l3_agents_per_router | default "2" }} + +# Subnet used for the l3 HA admin network. (string value) +# from .default.neutron.db.l3_ha_net_cidr +{{ if not .default.neutron.db.l3_ha_net_cidr }}#{{ end }}l3_ha_net_cidr = {{ .default.neutron.db.l3_ha_net_cidr | default "169.254.192.0/18" }} + +# The network type to use when creating the HA network for an HA router. By +# default or if empty, the first 'tenant_network_types' is used. This is +# helpful when the VRRP traffic should use a specific network which is not the +# default one. (string value) +# from .default.neutron.db.l3_ha_network_type +{{ if not .default.neutron.db.l3_ha_network_type }}#{{ end }}l3_ha_network_type = {{ .default.neutron.db.l3_ha_network_type | default "" }} + +# The physical network name with which the HA network can be created. (string +# value) +# from .default.neutron.db.l3_ha_network_physical_name +{{ if not .default.neutron.db.l3_ha_network_physical_name }}#{{ end }}l3_ha_network_physical_name = {{ .default.neutron.db.l3_ha_network_physical_name | default "" }} + +# +# From neutron.extensions +# + +# Maximum number of allowed address pairs (integer value) +# from .default.neutron.extensions.max_allowed_address_pair +{{ if not .default.neutron.extensions.max_allowed_address_pair }}#{{ end }}max_allowed_address_pair = {{ .default.neutron.extensions.max_allowed_address_pair | default "10" }} + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + +# +# From oslo.messaging +# + +# Size of RPC connection pool. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_conn_pool_size +# from .default.oslo.messaging.rpc_conn_pool_size +{{ if not .default.oslo.messaging.rpc_conn_pool_size }}#{{ end }}rpc_conn_pool_size = {{ .default.oslo.messaging.rpc_conn_pool_size | default "30" }} + +# The pool size limit for connections expiration policy (integer value) +# from .default.oslo.messaging.conn_pool_min_size +{{ if not .default.oslo.messaging.conn_pool_min_size }}#{{ end }}conn_pool_min_size = {{ .default.oslo.messaging.conn_pool_min_size | default "2" }} + +# The time-to-live in sec of idle connections in the pool (integer value) +# from .default.oslo.messaging.conn_pool_ttl +{{ if not .default.oslo.messaging.conn_pool_ttl }}#{{ end }}conn_pool_ttl = {{ .default.oslo.messaging.conn_pool_ttl | default "1200" }} + +# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. +# The "host" option should point or resolve to this address. (string value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address +# from .default.oslo.messaging.rpc_zmq_bind_address +{{ if not .default.oslo.messaging.rpc_zmq_bind_address }}#{{ end }}rpc_zmq_bind_address = {{ .default.oslo.messaging.rpc_zmq_bind_address | default "*" }} + +# MatchMaker driver. (string value) +# Allowed values: redis, dummy +# Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker +# from .default.oslo.messaging.rpc_zmq_matchmaker +{{ if not .default.oslo.messaging.rpc_zmq_matchmaker }}#{{ end }}rpc_zmq_matchmaker = {{ .default.oslo.messaging.rpc_zmq_matchmaker | default "redis" }} + +# Number of ZeroMQ contexts, defaults to 1. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_contexts +# from .default.oslo.messaging.rpc_zmq_contexts +{{ if not .default.oslo.messaging.rpc_zmq_contexts }}#{{ end }}rpc_zmq_contexts = {{ .default.oslo.messaging.rpc_zmq_contexts | default "1" }} + +# Maximum number of ingress messages to locally buffer per topic. Default is +# unlimited. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog +# from .default.oslo.messaging.rpc_zmq_topic_backlog +{{ if not .default.oslo.messaging.rpc_zmq_topic_backlog }}#{{ end }}rpc_zmq_topic_backlog = {{ .default.oslo.messaging.rpc_zmq_topic_backlog | default "" }} + +# Directory for holding IPC sockets. (string value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir +# from .default.oslo.messaging.rpc_zmq_ipc_dir +{{ if not .default.oslo.messaging.rpc_zmq_ipc_dir }}#{{ end }}rpc_zmq_ipc_dir = {{ .default.oslo.messaging.rpc_zmq_ipc_dir | default "/var/run/openstack" }} + +# Name of this node. Must be a valid hostname, FQDN, or IP address. Must match +# "host" option, if running Nova. (string value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_host +# from .default.oslo.messaging.rpc_zmq_host +{{ if not .default.oslo.messaging.rpc_zmq_host }}#{{ end }}rpc_zmq_host = {{ .default.oslo.messaging.rpc_zmq_host | default "localhost" }} + +# Seconds to wait before a cast expires (TTL). The default value of -1 +# specifies an infinite linger period. The value of 0 specifies no linger +# period. Pending messages shall be discarded immediately when the socket is +# closed. Only supported by impl_zmq. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_cast_timeout +# from .default.oslo.messaging.rpc_cast_timeout +{{ if not .default.oslo.messaging.rpc_cast_timeout }}#{{ end }}rpc_cast_timeout = {{ .default.oslo.messaging.rpc_cast_timeout | default "-1" }} + +# The default number of seconds that poll should wait. Poll raises timeout +# exception when timeout expired. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_poll_timeout +# from .default.oslo.messaging.rpc_poll_timeout +{{ if not .default.oslo.messaging.rpc_poll_timeout }}#{{ end }}rpc_poll_timeout = {{ .default.oslo.messaging.rpc_poll_timeout | default "1" }} + +# Expiration timeout in seconds of a name service record about existing target +# ( < 0 means no timeout). (integer value) +# Deprecated group/name - [DEFAULT]/zmq_target_expire +# from .default.oslo.messaging.zmq_target_expire +{{ if not .default.oslo.messaging.zmq_target_expire }}#{{ end }}zmq_target_expire = {{ .default.oslo.messaging.zmq_target_expire | default "300" }} + +# Update period in seconds of a name service record about existing target. +# (integer value) +# Deprecated group/name - [DEFAULT]/zmq_target_update +# from .default.oslo.messaging.zmq_target_update +{{ if not .default.oslo.messaging.zmq_target_update }}#{{ end }}zmq_target_update = {{ .default.oslo.messaging.zmq_target_update | default "180" }} + +# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean +# value) +# Deprecated group/name - [DEFAULT]/use_pub_sub +# from .default.oslo.messaging.use_pub_sub +{{ if not .default.oslo.messaging.use_pub_sub }}#{{ end }}use_pub_sub = {{ .default.oslo.messaging.use_pub_sub | default "true" }} + +# Use ROUTER remote proxy. (boolean value) +# Deprecated group/name - [DEFAULT]/use_router_proxy +# from .default.oslo.messaging.use_router_proxy +{{ if not .default.oslo.messaging.use_router_proxy }}#{{ end }}use_router_proxy = {{ .default.oslo.messaging.use_router_proxy | default "true" }} + +# Minimal port number for random ports range. (port value) +# Minimum value: 0 +# Maximum value: 65535 +# Deprecated group/name - [DEFAULT]/rpc_zmq_min_port +# from .default.oslo.messaging.rpc_zmq_min_port +{{ if not .default.oslo.messaging.rpc_zmq_min_port }}#{{ end }}rpc_zmq_min_port = {{ .default.oslo.messaging.rpc_zmq_min_port | default "49153" }} + +# Maximal port number for random ports range. (integer value) +# Minimum value: 1 +# Maximum value: 65536 +# Deprecated group/name - [DEFAULT]/rpc_zmq_max_port +# from .default.oslo.messaging.rpc_zmq_max_port +{{ if not .default.oslo.messaging.rpc_zmq_max_port }}#{{ end }}rpc_zmq_max_port = {{ .default.oslo.messaging.rpc_zmq_max_port | default "65536" }} + +# Number of retries to find free port number before fail with ZMQBindError. +# (integer value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries +# from .default.oslo.messaging.rpc_zmq_bind_port_retries +{{ if not .default.oslo.messaging.rpc_zmq_bind_port_retries }}#{{ end }}rpc_zmq_bind_port_retries = {{ .default.oslo.messaging.rpc_zmq_bind_port_retries | default "100" }} + +# Default serialization mechanism for serializing/deserializing +# outgoing/incoming messages (string value) +# Allowed values: json, msgpack +# Deprecated group/name - [DEFAULT]/rpc_zmq_serialization +# from .default.oslo.messaging.rpc_zmq_serialization +{{ if not .default.oslo.messaging.rpc_zmq_serialization }}#{{ end }}rpc_zmq_serialization = {{ .default.oslo.messaging.rpc_zmq_serialization | default "json" }} + +# This option configures round-robin mode in zmq socket. True means not keeping +# a queue when server side disconnects. False means to keep queue and messages +# even if server is disconnected, when the server appears we send all +# accumulated messages to it. (boolean value) +# from .default.oslo.messaging.zmq_immediate +{{ if not .default.oslo.messaging.zmq_immediate }}#{{ end }}zmq_immediate = {{ .default.oslo.messaging.zmq_immediate | default "false" }} + +# Size of executor thread pool. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_thread_pool_size +# from .default.oslo.messaging.executor_thread_pool_size +{{ if not .default.oslo.messaging.executor_thread_pool_size }}#{{ end }}executor_thread_pool_size = {{ .default.oslo.messaging.executor_thread_pool_size | default "64" }} + +# Seconds to wait for a response from a call. (integer value) +# from .default.oslo.messaging.rpc_response_timeout +{{ if not .default.oslo.messaging.rpc_response_timeout }}#{{ end }}rpc_response_timeout = {{ .default.oslo.messaging.rpc_response_timeout | default "60" }} + +# A URL representing the messaging driver to use and its full configuration. +# (string value) +# from .default.oslo.messaging.transport_url +{{ if not .default.oslo.messaging.transport_url }}#{{ end }}transport_url = {{ .default.oslo.messaging.transport_url | default "" }} + +# DEPRECATED: The messaging driver to use, defaults to rabbit. Other drivers +# include amqp and zmq. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .default.oslo.messaging.rpc_backend +{{ if not .default.oslo.messaging.rpc_backend }}#{{ end }}rpc_backend = {{ .default.oslo.messaging.rpc_backend | default "rabbit" }} + +# The default exchange under which topics are scoped. May be overridden by an +# exchange name specified in the transport_url option. (string value) +# from .default.oslo.messaging.control_exchange +{{ if not .default.oslo.messaging.control_exchange }}#{{ end }}control_exchange = {{ .default.oslo.messaging.control_exchange | default "neutron" }} + +# +# From oslo.service.wsgi +# + +# File name for the paste.deploy config for api service (string value) +# from .default.oslo.service.wsgi.api_paste_config +{{ if not .default.oslo.service.wsgi.api_paste_config }}#{{ end }}api_paste_config = {{ .default.oslo.service.wsgi.api_paste_config | default "api-paste.ini" }} + +# A python format string that is used as the template to generate log lines. +# The following values can beformatted into it: client_ip, date_time, +# request_line, status_code, body_length, wall_seconds. (string value) +# from .default.oslo.service.wsgi.wsgi_log_format +{{ if not .default.oslo.service.wsgi.wsgi_log_format }}#{{ end }}wsgi_log_format = {{ .default.oslo.service.wsgi.wsgi_log_format | default "%(client_ip)s \"%(request_line)s\" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f" }} + +# Sets the value of TCP_KEEPIDLE in seconds for each server socket. Not +# supported on OS X. (integer value) +# from .default.oslo.service.wsgi.tcp_keepidle +{{ if not .default.oslo.service.wsgi.tcp_keepidle }}#{{ end }}tcp_keepidle = {{ .default.oslo.service.wsgi.tcp_keepidle | default "600" }} + +# Size of the pool of greenthreads used by wsgi (integer value) +# from .default.oslo.service.wsgi.wsgi_default_pool_size +{{ if not .default.oslo.service.wsgi.wsgi_default_pool_size }}#{{ end }}wsgi_default_pool_size = {{ .default.oslo.service.wsgi.wsgi_default_pool_size | default "100" }} + +# Maximum line size of message headers to be accepted. max_header_line may need +# to be increased when using large tokens (typically those generated when +# keystone is configured to use PKI tokens with big service catalogs). (integer +# value) +# from .default.oslo.service.wsgi.max_header_line +{{ if not .default.oslo.service.wsgi.max_header_line }}#{{ end }}max_header_line = {{ .default.oslo.service.wsgi.max_header_line | default "16384" }} + +# If False, closes the client socket connection explicitly. (boolean value) +# from .default.oslo.service.wsgi.wsgi_keep_alive +{{ if not .default.oslo.service.wsgi.wsgi_keep_alive }}#{{ end }}wsgi_keep_alive = {{ .default.oslo.service.wsgi.wsgi_keep_alive | default "true" }} + +# Timeout for client connections' socket operations. If an incoming connection +# is idle for this number of seconds it will be closed. A value of '0' means +# wait forever. (integer value) +# from .default.oslo.service.wsgi.client_socket_timeout +{{ if not .default.oslo.service.wsgi.client_socket_timeout }}#{{ end }}client_socket_timeout = {{ .default.oslo.service.wsgi.client_socket_timeout | default "900" }} -[ovs] -ovsdb_connection = unix:/var/run/openvswitch/db.sock [agent] -root_helper = sudo /var/lib/kolla/venv/bin/neutron-rootwrap /etc/neutron/rootwrap.conf -l2_population = true -arp_responder = true + +# +# From neutron.agent +# + +# Root helper application. Use 'sudo neutron-rootwrap +# /etc/neutron/rootwrap.conf' to use the real root filter facility. Change to +# 'sudo' to skip the filtering and just run the command directly. (string +# value) +# from .agent.neutron.agent.root_helper +{{ if not .agent.neutron.agent.root_helper }}#{{ end }}root_helper = {{ .agent.neutron.agent.root_helper | default "sudo" }} + +# Use the root helper when listing the namespaces on a system. This may not be +# required depending on the security configuration. If the root helper is not +# required, set this to False for a performance improvement. (boolean value) +# from .agent.neutron.agent.use_helper_for_ns_read +{{ if not .agent.neutron.agent.use_helper_for_ns_read }}#{{ end }}use_helper_for_ns_read = {{ .agent.neutron.agent.use_helper_for_ns_read | default "true" }} + +# Root helper daemon application to use when possible. (string value) +# from .agent.neutron.agent.root_helper_daemon +{{ if not .agent.neutron.agent.root_helper_daemon }}#{{ end }}root_helper_daemon = {{ .agent.neutron.agent.root_helper_daemon | default "" }} + +# Seconds between nodes reporting state to server; should be less than +# agent_down_time, best if it is half or less than agent_down_time. (floating +# point value) +# from .agent.neutron.agent.report_interval +{{ if not .agent.neutron.agent.report_interval }}#{{ end }}report_interval = {{ .agent.neutron.agent.report_interval | default "30" }} + +# Log agent heartbeats (boolean value) +# from .agent.neutron.agent.log_agent_heartbeats +{{ if not .agent.neutron.agent.log_agent_heartbeats }}#{{ end }}log_agent_heartbeats = {{ .agent.neutron.agent.log_agent_heartbeats | default "false" }} + +# Add comments to iptables rules. Set to false to disallow the addition of +# comments to generated iptables rules that describe each rule's purpose. +# System must support the iptables comments module for addition of comments. +# (boolean value) +# from .agent.neutron.agent.comment_iptables_rules +{{ if not .agent.neutron.agent.comment_iptables_rules }}#{{ end }}comment_iptables_rules = {{ .agent.neutron.agent.comment_iptables_rules | default "true" }} + +# Duplicate every iptables difference calculation to ensure the format being +# generated matches the format of iptables-save. This option should not be +# turned on for production systems because it imposes a performance penalty. +# (boolean value) +# from .agent.neutron.agent.debug_iptables_rules +{{ if not .agent.neutron.agent.debug_iptables_rules }}#{{ end }}debug_iptables_rules = {{ .agent.neutron.agent.debug_iptables_rules | default "false" }} + +# Action to be executed when a child process dies (string value) +# Allowed values: respawn, exit +# from .agent.neutron.agent.check_child_processes_action +{{ if not .agent.neutron.agent.check_child_processes_action }}#{{ end }}check_child_processes_action = {{ .agent.neutron.agent.check_child_processes_action | default "respawn" }} + +# Interval between checks of child process liveness (seconds), use 0 to disable +# (integer value) +# from .agent.neutron.agent.check_child_processes_interval +{{ if not .agent.neutron.agent.check_child_processes_interval }}#{{ end }}check_child_processes_interval = {{ .agent.neutron.agent.check_child_processes_interval | default "60" }} + +# Availability zone of this node (string value) +# from .agent.neutron.agent.availability_zone +{{ if not .agent.neutron.agent.availability_zone }}#{{ end }}availability_zone = {{ .agent.neutron.agent.availability_zone | default "nova" }} + + +[cors] + +# +# From oslo.middleware.cors +# + +# Indicate whether this resource may be shared with the domain received in the +# requests "origin" header. Format: "://[:]", no trailing +# slash. Example: https://horizon.example.com (list value) +# from .cors.oslo.middleware.cors.allowed_origin +{{ if not .cors.oslo.middleware.cors.allowed_origin }}#{{ end }}allowed_origin = {{ .cors.oslo.middleware.cors.allowed_origin | default "" }} + +# Indicate that the actual request can include user credentials (boolean value) +# from .cors.oslo.middleware.cors.allow_credentials +{{ if not .cors.oslo.middleware.cors.allow_credentials }}#{{ end }}allow_credentials = {{ .cors.oslo.middleware.cors.allow_credentials | default "true" }} + +# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple +# Headers. (list value) +# from .cors.oslo.middleware.cors.expose_headers +{{ if not .cors.oslo.middleware.cors.expose_headers }}#{{ end }}expose_headers = {{ .cors.oslo.middleware.cors.expose_headers | default "X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID,OpenStack-Volume-microversion" }} + +# Maximum cache age of CORS preflight requests. (integer value) +# from .cors.oslo.middleware.cors.max_age +{{ if not .cors.oslo.middleware.cors.max_age }}#{{ end }}max_age = {{ .cors.oslo.middleware.cors.max_age | default "3600" }} + +# Indicate which methods can be used during the actual request. (list value) +# from .cors.oslo.middleware.cors.allow_methods +{{ if not .cors.oslo.middleware.cors.allow_methods }}#{{ end }}allow_methods = {{ .cors.oslo.middleware.cors.allow_methods | default "GET,PUT,POST,DELETE,PATCH" }} + +# Indicate which header field names may be used during the actual request. +# (list value) +# from .cors.oslo.middleware.cors.allow_headers +{{ if not .cors.oslo.middleware.cors.allow_headers }}#{{ end }}allow_headers = {{ .cors.oslo.middleware.cors.allow_headers | default "X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID" }} + + +[cors.subdomain] + +# +# From oslo.middleware.cors +# + +# Indicate whether this resource may be shared with the domain received in the +# requests "origin" header. Format: "://[:]", no trailing +# slash. Example: https://horizon.example.com (list value) +# from .cors.subdomain.oslo.middleware.cors.allowed_origin +{{ if not .cors.subdomain.oslo.middleware.cors.allowed_origin }}#{{ end }}allowed_origin = {{ .cors.subdomain.oslo.middleware.cors.allowed_origin | default "" }} + +# Indicate that the actual request can include user credentials (boolean value) +# from .cors.subdomain.oslo.middleware.cors.allow_credentials +{{ if not .cors.subdomain.oslo.middleware.cors.allow_credentials }}#{{ end }}allow_credentials = {{ .cors.subdomain.oslo.middleware.cors.allow_credentials | default "true" }} + +# Indicate which headers are safe to expose to the API. Defaults to HTTP Simple +# Headers. (list value) +# from .cors.subdomain.oslo.middleware.cors.expose_headers +{{ if not .cors.subdomain.oslo.middleware.cors.expose_headers }}#{{ end }}expose_headers = {{ .cors.subdomain.oslo.middleware.cors.expose_headers | default "X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID,OpenStack-Volume-microversion" }} + +# Maximum cache age of CORS preflight requests. (integer value) +# from .cors.subdomain.oslo.middleware.cors.max_age +{{ if not .cors.subdomain.oslo.middleware.cors.max_age }}#{{ end }}max_age = {{ .cors.subdomain.oslo.middleware.cors.max_age | default "3600" }} + +# Indicate which methods can be used during the actual request. (list value) +# from .cors.subdomain.oslo.middleware.cors.allow_methods +{{ if not .cors.subdomain.oslo.middleware.cors.allow_methods }}#{{ end }}allow_methods = {{ .cors.subdomain.oslo.middleware.cors.allow_methods | default "GET,PUT,POST,DELETE,PATCH" }} + +# Indicate which header field names may be used during the actual request. +# (list value) +# from .cors.subdomain.oslo.middleware.cors.allow_headers +{{ if not .cors.subdomain.oslo.middleware.cors.allow_headers }}#{{ end }}allow_headers = {{ .cors.subdomain.oslo.middleware.cors.allow_headers | default "X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID" }} + [database] -connection = mysql+pymysql://{{ .Values.database.neutron_user }}:{{ .Values.database.neutron_password }}@{{ include "helm-toolkit.mariadb_host" . }}/{{ .Values.database.neutron_database_name }} -max_retries = -1 + +# +# From neutron.db +# + +# Database engine for which script will be generated when using offline +# migration. (string value) +# from .database.neutron.db.engine +{{ if not .database.neutron.db.engine }}#{{ end }}engine = {{ .database.neutron.db.engine | default "" }} + +# +# From oslo.db +# + +# DEPRECATED: The file name to use with SQLite. (string value) +# Deprecated group/name - [DEFAULT]/sqlite_db +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Should use config option connection or slave_connection to connect +# the database. +# from .database.oslo.db.sqlite_db +{{ if not .database.oslo.db.sqlite_db }}#{{ end }}sqlite_db = {{ .database.oslo.db.sqlite_db | default "oslo.sqlite" }} + +# If True, SQLite uses synchronous mode. (boolean value) +# Deprecated group/name - [DEFAULT]/sqlite_synchronous +# from .database.oslo.db.sqlite_synchronous +{{ if not .database.oslo.db.sqlite_synchronous }}#{{ end }}sqlite_synchronous = {{ .database.oslo.db.sqlite_synchronous | default "true" }} + +# The back end to use for the database. (string value) +# Deprecated group/name - [DEFAULT]/db_backend +# from .database.oslo.db.backend +{{ if not .database.oslo.db.backend }}#{{ end }}backend = {{ .database.oslo.db.backend | default "sqlalchemy" }} + +# The SQLAlchemy connection string to use to connect to the database. (string +# value) +# Deprecated group/name - [DEFAULT]/sql_connection +# Deprecated group/name - [DATABASE]/sql_connection +# Deprecated group/name - [sql]/connection +# from .database.oslo.db.connection +{{ if not .database.oslo.db.connection }}#{{ end }}connection = {{ .database.oslo.db.connection | default "" }} + +# The SQLAlchemy connection string to use to connect to the slave database. +# (string value) +# from .database.oslo.db.slave_connection +{{ if not .database.oslo.db.slave_connection }}#{{ end }}slave_connection = {{ .database.oslo.db.slave_connection | default "" }} + +# The SQL mode to be used for MySQL sessions. This option, including the +# default, overrides any server-set SQL mode. To use whatever SQL mode is set +# by the server configuration, set this to no value. Example: mysql_sql_mode= +# (string value) +# from .database.oslo.db.mysql_sql_mode +{{ if not .database.oslo.db.mysql_sql_mode }}#{{ end }}mysql_sql_mode = {{ .database.oslo.db.mysql_sql_mode | default "TRADITIONAL" }} + +# Timeout before idle SQL connections are reaped. (integer value) +# Deprecated group/name - [DEFAULT]/sql_idle_timeout +# Deprecated group/name - [DATABASE]/sql_idle_timeout +# Deprecated group/name - [sql]/idle_timeout +# from .database.oslo.db.idle_timeout +{{ if not .database.oslo.db.idle_timeout }}#{{ end }}idle_timeout = {{ .database.oslo.db.idle_timeout | default "3600" }} + +# Minimum number of SQL connections to keep open in a pool. (integer value) +# Deprecated group/name - [DEFAULT]/sql_min_pool_size +# Deprecated group/name - [DATABASE]/sql_min_pool_size +# from .database.oslo.db.min_pool_size +{{ if not .database.oslo.db.min_pool_size }}#{{ end }}min_pool_size = {{ .database.oslo.db.min_pool_size | default "1" }} + +# Maximum number of SQL connections to keep open in a pool. Setting a value of +# 0 indicates no limit. (integer value) +# Deprecated group/name - [DEFAULT]/sql_max_pool_size +# Deprecated group/name - [DATABASE]/sql_max_pool_size +# from .database.oslo.db.max_pool_size +{{ if not .database.oslo.db.max_pool_size }}#{{ end }}max_pool_size = {{ .database.oslo.db.max_pool_size | default "5" }} + +# Maximum number of database connection retries during startup. Set to -1 to +# specify an infinite retry count. (integer value) +# Deprecated group/name - [DEFAULT]/sql_max_retries +# Deprecated group/name - [DATABASE]/sql_max_retries +# from .database.oslo.db.max_retries +{{ if not .database.oslo.db.max_retries }}#{{ end }}max_retries = {{ .database.oslo.db.max_retries | default "10" }} + +# Interval between retries of opening a SQL connection. (integer value) +# Deprecated group/name - [DEFAULT]/sql_retry_interval +# Deprecated group/name - [DATABASE]/reconnect_interval +# from .database.oslo.db.retry_interval +{{ if not .database.oslo.db.retry_interval }}#{{ end }}retry_interval = {{ .database.oslo.db.retry_interval | default "10" }} + +# If set, use this value for max_overflow with SQLAlchemy. (integer value) +# Deprecated group/name - [DEFAULT]/sql_max_overflow +# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow +# from .database.oslo.db.max_overflow +{{ if not .database.oslo.db.max_overflow }}#{{ end }}max_overflow = {{ .database.oslo.db.max_overflow | default "50" }} + +# Verbosity of SQL debugging information: 0=None, 100=Everything. (integer +# value) +# Minimum value: 0 +# Maximum value: 100 +# Deprecated group/name - [DEFAULT]/sql_connection_debug +# from .database.oslo.db.connection_debug +{{ if not .database.oslo.db.connection_debug }}#{{ end }}connection_debug = {{ .database.oslo.db.connection_debug | default "0" }} + +# Add Python stack traces to SQL as comment strings. (boolean value) +# Deprecated group/name - [DEFAULT]/sql_connection_trace +# from .database.oslo.db.connection_trace +{{ if not .database.oslo.db.connection_trace }}#{{ end }}connection_trace = {{ .database.oslo.db.connection_trace | default "false" }} + +# If set, use this value for pool_timeout with SQLAlchemy. (integer value) +# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout +# from .database.oslo.db.pool_timeout +{{ if not .database.oslo.db.pool_timeout }}#{{ end }}pool_timeout = {{ .database.oslo.db.pool_timeout | default "" }} + +# Enable the experimental use of database reconnect on connection lost. +# (boolean value) +# from .database.oslo.db.use_db_reconnect +{{ if not .database.oslo.db.use_db_reconnect }}#{{ end }}use_db_reconnect = {{ .database.oslo.db.use_db_reconnect | default "false" }} + +# Seconds between retries of a database transaction. (integer value) +# from .database.oslo.db.db_retry_interval +{{ if not .database.oslo.db.db_retry_interval }}#{{ end }}db_retry_interval = {{ .database.oslo.db.db_retry_interval | default "1" }} + +# If True, increases the interval between retries of a database operation up to +# db_max_retry_interval. (boolean value) +# from .database.oslo.db.db_inc_retry_interval +{{ if not .database.oslo.db.db_inc_retry_interval }}#{{ end }}db_inc_retry_interval = {{ .database.oslo.db.db_inc_retry_interval | default "true" }} + +# If db_inc_retry_interval is set, the maximum seconds between retries of a +# database operation. (integer value) +# from .database.oslo.db.db_max_retry_interval +{{ if not .database.oslo.db.db_max_retry_interval }}#{{ end }}db_max_retry_interval = {{ .database.oslo.db.db_max_retry_interval | default "10" }} + +# Maximum retries in case of connection error or deadlock error before error is +# raised. Set to -1 to specify an infinite retry count. (integer value) +# from .database.oslo.db.db_max_retries +{{ if not .database.oslo.db.db_max_retries }}#{{ end }}db_max_retries = {{ .database.oslo.db.db_max_retries | default "20" }} + [keystone_authtoken] -memcached_servers = "{{ .Values.memcached.host }}:{{ .Values.memcached.port }}" -auth_version = v3 -auth_url = {{ tuple "identity" "internal" "api" . | include "helm-toolkit.keystone_endpoint_uri_lookup" }} -auth_type = password -region_name = {{ .Values.keystone.neutron_region_name }} -project_domain_name = {{ .Values.keystone.neutron_project_domain }} -project_name = {{ .Values.keystone.neutron_project_name }} -user_domain_name = {{ .Values.keystone.neutron_user_domain }} -username = {{ .Values.keystone.neutron_user }} -password = {{ .Values.keystone.neutron_password }} + +# +# From keystonemiddleware.auth_token +# + +# Complete "public" Identity API endpoint. This endpoint should not be an +# "admin" endpoint, as it should be accessible by all end users. +# Unauthenticated clients are redirected to this endpoint to authenticate. +# Although this endpoint should ideally be unversioned, client support in the +# wild varies. If you're using a versioned v2 endpoint here, then this should +# *not* be the same endpoint the service user utilizes for validating tokens, +# because normal end users may not be able to reach that endpoint. (string +# value) +# from .keystone_authtoken.keystonemiddleware.auth_token.auth_uri +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.auth_uri }}#{{ end }}auth_uri = {{ .keystone_authtoken.keystonemiddleware.auth_token.auth_uri | default "" }} + +# API version of the admin Identity API endpoint. (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.auth_version +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.auth_version }}#{{ end }}auth_version = {{ .keystone_authtoken.keystonemiddleware.auth_token.auth_version | default "" }} + +# Do not handle authorization requests within the middleware, but delegate the +# authorization decision to downstream WSGI components. (boolean value) +# from .keystone_authtoken.keystonemiddleware.auth_token.delay_auth_decision +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.delay_auth_decision }}#{{ end }}delay_auth_decision = {{ .keystone_authtoken.keystonemiddleware.auth_token.delay_auth_decision | default "false" }} + +# Request timeout value for communicating with Identity API server. (integer +# value) +# from .keystone_authtoken.keystonemiddleware.auth_token.http_connect_timeout +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.http_connect_timeout }}#{{ end }}http_connect_timeout = {{ .keystone_authtoken.keystonemiddleware.auth_token.http_connect_timeout | default "" }} + +# How many times are we trying to reconnect when communicating with Identity +# API Server. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.http_request_max_retries +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.http_request_max_retries }}#{{ end }}http_request_max_retries = {{ .keystone_authtoken.keystonemiddleware.auth_token.http_request_max_retries | default "3" }} + +# Request environment key where the Swift cache object is stored. When +# auth_token middleware is deployed with a Swift cache, use this option to have +# the middleware share a caching backend with swift. Otherwise, use the +# ``memcached_servers`` option instead. (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.cache +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.cache }}#{{ end }}cache = {{ .keystone_authtoken.keystonemiddleware.auth_token.cache | default "" }} + +# Required if identity server requires client certificate (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.certfile +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.certfile }}#{{ end }}certfile = {{ .keystone_authtoken.keystonemiddleware.auth_token.certfile | default "" }} + +# Required if identity server requires client certificate (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.keyfile +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.keyfile }}#{{ end }}keyfile = {{ .keystone_authtoken.keystonemiddleware.auth_token.keyfile | default "" }} + +# A PEM encoded Certificate Authority to use when verifying HTTPs connections. +# Defaults to system CAs. (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.cafile +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.cafile }}#{{ end }}cafile = {{ .keystone_authtoken.keystonemiddleware.auth_token.cafile | default "" }} + +# Verify HTTPS connections. (boolean value) +# from .keystone_authtoken.keystonemiddleware.auth_token.insecure +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.insecure }}#{{ end }}insecure = {{ .keystone_authtoken.keystonemiddleware.auth_token.insecure | default "false" }} + +# The region in which the identity server can be found. (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.region_name +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.region_name }}#{{ end }}region_name = {{ .keystone_authtoken.keystonemiddleware.auth_token.region_name | default "" }} + +# Directory used to cache files related to PKI tokens. (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.signing_dir +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.signing_dir }}#{{ end }}signing_dir = {{ .keystone_authtoken.keystonemiddleware.auth_token.signing_dir | default "" }} + +# Optionally specify a list of memcached server(s) to use for caching. If left +# undefined, tokens will instead be cached in-process. (list value) +# Deprecated group/name - [keystone_authtoken]/memcache_servers +# from .keystone_authtoken.keystonemiddleware.auth_token.memcached_servers +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcached_servers }}#{{ end }}memcached_servers = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcached_servers | default "" }} + +# In order to prevent excessive effort spent validating tokens, the middleware +# caches previously-seen tokens for a configurable duration (in seconds). Set +# to -1 to disable caching completely. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.token_cache_time +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.token_cache_time }}#{{ end }}token_cache_time = {{ .keystone_authtoken.keystonemiddleware.auth_token.token_cache_time | default "300" }} + +# Determines the frequency at which the list of revoked tokens is retrieved +# from the Identity service (in seconds). A high number of revocation events +# combined with a low cache duration may significantly reduce performance. Only +# valid for PKI tokens. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.revocation_cache_time +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.revocation_cache_time }}#{{ end }}revocation_cache_time = {{ .keystone_authtoken.keystonemiddleware.auth_token.revocation_cache_time | default "10" }} + +# (Optional) If defined, indicate whether token data should be authenticated or +# authenticated and encrypted. If MAC, token data is authenticated (with HMAC) +# in the cache. If ENCRYPT, token data is encrypted and authenticated in the +# cache. If the value is not one of these options or empty, auth_token will +# raise an exception on initialization. (string value) +# Allowed values: None, MAC, ENCRYPT +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_security_strategy +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_security_strategy }}#{{ end }}memcache_security_strategy = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_security_strategy | default "None" }} + +# (Optional, mandatory if memcache_security_strategy is defined) This string is +# used for key derivation. (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_secret_key +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_secret_key }}#{{ end }}memcache_secret_key = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_secret_key | default "" }} + +# (Optional) Number of seconds memcached server is considered dead before it is +# tried again. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_dead_retry +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_dead_retry }}#{{ end }}memcache_pool_dead_retry = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_dead_retry | default "300" }} + +# (Optional) Maximum total number of open connections to every memcached +# server. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_maxsize +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_maxsize }}#{{ end }}memcache_pool_maxsize = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_maxsize | default "10" }} + +# (Optional) Socket timeout in seconds for communicating with a memcached +# server. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_socket_timeout +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_socket_timeout }}#{{ end }}memcache_pool_socket_timeout = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_socket_timeout | default "3" }} + +# (Optional) Number of seconds a connection to memcached is held unused in the +# pool before it is closed. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_unused_timeout +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_unused_timeout }}#{{ end }}memcache_pool_unused_timeout = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_unused_timeout | default "60" }} + +# (Optional) Number of seconds that an operation will wait to get a memcached +# client connection from the pool. (integer value) +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_conn_get_timeout +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_conn_get_timeout }}#{{ end }}memcache_pool_conn_get_timeout = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_pool_conn_get_timeout | default "10" }} + +# (Optional) Use the advanced (eventlet safe) memcached client pool. The +# advanced pool will only work under python 2.x. (boolean value) +# from .keystone_authtoken.keystonemiddleware.auth_token.memcache_use_advanced_pool +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.memcache_use_advanced_pool }}#{{ end }}memcache_use_advanced_pool = {{ .keystone_authtoken.keystonemiddleware.auth_token.memcache_use_advanced_pool | default "false" }} + +# (Optional) Indicate whether to set the X-Service-Catalog header. If False, +# middleware will not ask for service catalog on token validation and will not +# set the X-Service-Catalog header. (boolean value) +# from .keystone_authtoken.keystonemiddleware.auth_token.include_service_catalog +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.include_service_catalog }}#{{ end }}include_service_catalog = {{ .keystone_authtoken.keystonemiddleware.auth_token.include_service_catalog | default "true" }} + +# Used to control the use and type of token binding. Can be set to: "disabled" +# to not check token binding. "permissive" (default) to validate binding +# information if the bind type is of a form known to the server and ignore it +# if not. "strict" like "permissive" but if the bind type is unknown the token +# will be rejected. "required" any form of token binding is needed to be +# allowed. Finally the name of a binding method that must be present in tokens. +# (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.enforce_token_bind +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.enforce_token_bind }}#{{ end }}enforce_token_bind = {{ .keystone_authtoken.keystonemiddleware.auth_token.enforce_token_bind | default "permissive" }} + +# If true, the revocation list will be checked for cached tokens. This requires +# that PKI tokens are configured on the identity server. (boolean value) +# from .keystone_authtoken.keystonemiddleware.auth_token.check_revocations_for_cached +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.check_revocations_for_cached }}#{{ end }}check_revocations_for_cached = {{ .keystone_authtoken.keystonemiddleware.auth_token.check_revocations_for_cached | default "false" }} + +# Hash algorithms to use for hashing PKI tokens. This may be a single algorithm +# or multiple. The algorithms are those supported by Python standard +# hashlib.new(). The hashes will be tried in the order given, so put the +# preferred one first for performance. The result of the first hash will be +# stored in the cache. This will typically be set to multiple values only while +# migrating from a less secure algorithm to a more secure one. Once all the old +# tokens are expired this option should be set to a single value for better +# performance. (list value) +# from .keystone_authtoken.keystonemiddleware.auth_token.hash_algorithms +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.hash_algorithms }}#{{ end }}hash_algorithms = {{ .keystone_authtoken.keystonemiddleware.auth_token.hash_algorithms | default "md5" }} + +# Authentication type to load (string value) +# Deprecated group/name - [keystone_authtoken]/auth_plugin +# from .keystone_authtoken.keystonemiddleware.auth_token.auth_type +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.auth_type }}#{{ end }}auth_type = {{ .keystone_authtoken.keystonemiddleware.auth_token.auth_type | default "" }} + +# Config Section from which to load plugin specific options (string value) +# from .keystone_authtoken.keystonemiddleware.auth_token.auth_section +{{ if not .keystone_authtoken.keystonemiddleware.auth_token.auth_section }}#{{ end }}auth_section = {{ .keystone_authtoken.keystonemiddleware.auth_token.auth_section | default "" }} + + +[matchmaker_redis] + +# +# From oslo.messaging +# + +# DEPRECATED: Host to locate redis. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .matchmaker_redis.oslo.messaging.host +{{ if not .matchmaker_redis.oslo.messaging.host }}#{{ end }}host = {{ .matchmaker_redis.oslo.messaging.host | default "127.0.0.1" }} + +# DEPRECATED: Use this port to connect to redis host. (port value) +# Minimum value: 0 +# Maximum value: 65535 +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .matchmaker_redis.oslo.messaging.port +{{ if not .matchmaker_redis.oslo.messaging.port }}#{{ end }}port = {{ .matchmaker_redis.oslo.messaging.port | default "6379" }} + +# DEPRECATED: Password for Redis server (optional). (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .matchmaker_redis.oslo.messaging.password +{{ if not .matchmaker_redis.oslo.messaging.password }}#{{ end }}password = {{ .matchmaker_redis.oslo.messaging.password | default "" }} + +# DEPRECATED: List of Redis Sentinel hosts (fault tolerance mode) e.g. +# [host:port, host1:port ... ] (list value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .matchmaker_redis.oslo.messaging.sentinel_hosts +{{ if not .matchmaker_redis.oslo.messaging.sentinel_hosts }}#{{ end }}sentinel_hosts = {{ .matchmaker_redis.oslo.messaging.sentinel_hosts | default "" }} + +# Redis replica set name. (string value) +# from .matchmaker_redis.oslo.messaging.sentinel_group_name +{{ if not .matchmaker_redis.oslo.messaging.sentinel_group_name }}#{{ end }}sentinel_group_name = {{ .matchmaker_redis.oslo.messaging.sentinel_group_name | default "oslo-messaging-zeromq" }} + +# Time in ms to wait between connection attempts. (integer value) +# from .matchmaker_redis.oslo.messaging.wait_timeout +{{ if not .matchmaker_redis.oslo.messaging.wait_timeout }}#{{ end }}wait_timeout = {{ .matchmaker_redis.oslo.messaging.wait_timeout | default "2000" }} + +# Time in ms to wait before the transaction is killed. (integer value) +# from .matchmaker_redis.oslo.messaging.check_timeout +{{ if not .matchmaker_redis.oslo.messaging.check_timeout }}#{{ end }}check_timeout = {{ .matchmaker_redis.oslo.messaging.check_timeout | default "20000" }} + +# Timeout in ms on blocking socket operations (integer value) +# from .matchmaker_redis.oslo.messaging.socket_timeout +{{ if not .matchmaker_redis.oslo.messaging.socket_timeout }}#{{ end }}socket_timeout = {{ .matchmaker_redis.oslo.messaging.socket_timeout | default "10000" }} + + +[nova] + +# +# From neutron +# + +# Name of nova region to use. Useful if keystone manages more than one region. +# (string value) +# from .nova.neutron.region_name +{{ if not .nova.neutron.region_name }}#{{ end }}region_name = {{ .nova.neutron.region_name | default "" }} + +# Type of the nova endpoint to use. This endpoint will be looked up in the +# keystone catalog and should be one of public, internal or admin. (string +# value) +# Allowed values: public, admin, internal +# from .nova.neutron.endpoint_type +{{ if not .nova.neutron.endpoint_type }}#{{ end }}endpoint_type = {{ .nova.neutron.endpoint_type | default "public" }} + +# +# From nova.auth +# + +# Authentication URL (string value) +# from .nova.nova.auth.auth_url +{{ if not .nova.nova.auth.auth_url }}#{{ end }}auth_url = {{ .nova.nova.auth.auth_url | default "" }} + +# Authentication type to load (string value) +# Deprecated group/name - [nova]/auth_plugin +# from .nova.nova.auth.auth_type +{{ if not .nova.nova.auth.auth_type }}#{{ end }}auth_type = {{ .nova.nova.auth.auth_type | default "" }} + +# PEM encoded Certificate Authority to use when verifying HTTPs connections. +# (string value) +# from .nova.nova.auth.cafile +{{ if not .nova.nova.auth.cafile }}#{{ end }}cafile = {{ .nova.nova.auth.cafile | default "" }} + +# PEM encoded client certificate cert file (string value) +# from .nova.nova.auth.certfile +{{ if not .nova.nova.auth.certfile }}#{{ end }}certfile = {{ .nova.nova.auth.certfile | default "" }} + +# Optional domain ID to use with v3 and v2 parameters. It will be used for both +# the user and project domain in v3 and ignored in v2 authentication. (string +# value) +# from .nova.nova.auth.default_domain_id +{{ if not .nova.nova.auth.default_domain_id }}#{{ end }}default_domain_id = {{ .nova.nova.auth.default_domain_id | default "" }} + +# Optional domain name to use with v3 API and v2 parameters. It will be used +# for both the user and project domain in v3 and ignored in v2 authentication. +# (string value) +# from .nova.nova.auth.default_domain_name +{{ if not .nova.nova.auth.default_domain_name }}#{{ end }}default_domain_name = {{ .nova.nova.auth.default_domain_name | default "" }} + +# Domain ID to scope to (string value) +# from .nova.nova.auth.domain_id +{{ if not .nova.nova.auth.domain_id }}#{{ end }}domain_id = {{ .nova.nova.auth.domain_id | default "" }} + +# Domain name to scope to (string value) +# from .nova.nova.auth.domain_name +{{ if not .nova.nova.auth.domain_name }}#{{ end }}domain_name = {{ .nova.nova.auth.domain_name | default "" }} + +# Verify HTTPS connections. (boolean value) +# from .nova.nova.auth.insecure +{{ if not .nova.nova.auth.insecure }}#{{ end }}insecure = {{ .nova.nova.auth.insecure | default "false" }} + +# PEM encoded client certificate key file (string value) +# from .nova.nova.auth.keyfile +{{ if not .nova.nova.auth.keyfile }}#{{ end }}keyfile = {{ .nova.nova.auth.keyfile | default "" }} + +# User's password (string value) +# from .nova.nova.auth.password +{{ if not .nova.nova.auth.password }}#{{ end }}password = {{ .nova.nova.auth.password | default "" }} + +# Domain ID containing project (string value) +# from .nova.nova.auth.project_domain_id +{{ if not .nova.nova.auth.project_domain_id }}#{{ end }}project_domain_id = {{ .nova.nova.auth.project_domain_id | default "" }} + +# Domain name containing project (string value) +# from .nova.nova.auth.project_domain_name +{{ if not .nova.nova.auth.project_domain_name }}#{{ end }}project_domain_name = {{ .nova.nova.auth.project_domain_name | default "" }} + +# Project ID to scope to (string value) +# Deprecated group/name - [nova]/tenant-id +# from .nova.nova.auth.project_id +{{ if not .nova.nova.auth.project_id }}#{{ end }}project_id = {{ .nova.nova.auth.project_id | default "" }} + +# Project name to scope to (string value) +# Deprecated group/name - [nova]/tenant-name +# from .nova.nova.auth.project_name +{{ if not .nova.nova.auth.project_name }}#{{ end }}project_name = {{ .nova.nova.auth.project_name | default "" }} + +# Tenant ID (string value) +# from .nova.nova.auth.tenant_id +{{ if not .nova.nova.auth.tenant_id }}#{{ end }}tenant_id = {{ .nova.nova.auth.tenant_id | default "" }} + +# Tenant Name (string value) +# from .nova.nova.auth.tenant_name +{{ if not .nova.nova.auth.tenant_name }}#{{ end }}tenant_name = {{ .nova.nova.auth.tenant_name | default "" }} + +# Timeout value for http requests (integer value) +# from .nova.nova.auth.timeout +{{ if not .nova.nova.auth.timeout }}#{{ end }}timeout = {{ .nova.nova.auth.timeout | default "" }} + +# Trust ID (string value) +# from .nova.nova.auth.trust_id +{{ if not .nova.nova.auth.trust_id }}#{{ end }}trust_id = {{ .nova.nova.auth.trust_id | default "" }} + +# User's domain id (string value) +# from .nova.nova.auth.user_domain_id +{{ if not .nova.nova.auth.user_domain_id }}#{{ end }}user_domain_id = {{ .nova.nova.auth.user_domain_id | default "" }} + +# User's domain name (string value) +# from .nova.nova.auth.user_domain_name +{{ if not .nova.nova.auth.user_domain_name }}#{{ end }}user_domain_name = {{ .nova.nova.auth.user_domain_name | default "" }} + +# User id (string value) +# from .nova.nova.auth.user_id +{{ if not .nova.nova.auth.user_id }}#{{ end }}user_id = {{ .nova.nova.auth.user_id | default "" }} + +# Username (string value) +# Deprecated group/name - [nova]/user-name +# from .nova.nova.auth.username +{{ if not .nova.nova.auth.username }}#{{ end }}username = {{ .nova.nova.auth.username | default "" }} + + +[oslo_concurrency] + +# +# From oslo.concurrency +# + +# Enables or disables inter-process locks. (boolean value) +# Deprecated group/name - [DEFAULT]/disable_process_locking +# from .oslo_concurrency.oslo.concurrency.disable_process_locking +{{ if not .oslo_concurrency.oslo.concurrency.disable_process_locking }}#{{ end }}disable_process_locking = {{ .oslo_concurrency.oslo.concurrency.disable_process_locking | default "false" }} + +# Directory to use for lock files. For security, the specified directory +# should only be writable by the user running the processes that need locking. +# Defaults to environment variable OSLO_LOCK_PATH. If external locks are used, +# a lock path must be set. (string value) +# Deprecated group/name - [DEFAULT]/lock_path +# from .oslo_concurrency.oslo.concurrency.lock_path +{{ if not .oslo_concurrency.oslo.concurrency.lock_path }}#{{ end }}lock_path = {{ .oslo_concurrency.oslo.concurrency.lock_path | default "" }} + + +[oslo_messaging_amqp] + +# +# From oslo.messaging +# + +# Name for the AMQP container. must be globally unique. Defaults to a generated +# UUID (string value) +# Deprecated group/name - [amqp1]/container_name +# from .oslo_messaging_amqp.oslo.messaging.container_name +{{ if not .oslo_messaging_amqp.oslo.messaging.container_name }}#{{ end }}container_name = {{ .oslo_messaging_amqp.oslo.messaging.container_name | default "" }} + +# Timeout for inactive connections (in seconds) (integer value) +# Deprecated group/name - [amqp1]/idle_timeout +# from .oslo_messaging_amqp.oslo.messaging.idle_timeout +{{ if not .oslo_messaging_amqp.oslo.messaging.idle_timeout }}#{{ end }}idle_timeout = {{ .oslo_messaging_amqp.oslo.messaging.idle_timeout | default "0" }} + +# Debug: dump AMQP frames to stdout (boolean value) +# Deprecated group/name - [amqp1]/trace +# from .oslo_messaging_amqp.oslo.messaging.trace +{{ if not .oslo_messaging_amqp.oslo.messaging.trace }}#{{ end }}trace = {{ .oslo_messaging_amqp.oslo.messaging.trace | default "false" }} + +# CA certificate PEM file to verify server certificate (string value) +# Deprecated group/name - [amqp1]/ssl_ca_file +# from .oslo_messaging_amqp.oslo.messaging.ssl_ca_file +{{ if not .oslo_messaging_amqp.oslo.messaging.ssl_ca_file }}#{{ end }}ssl_ca_file = {{ .oslo_messaging_amqp.oslo.messaging.ssl_ca_file | default "" }} + +# Identifying certificate PEM file to present to clients (string value) +# Deprecated group/name - [amqp1]/ssl_cert_file +# from .oslo_messaging_amqp.oslo.messaging.ssl_cert_file +{{ if not .oslo_messaging_amqp.oslo.messaging.ssl_cert_file }}#{{ end }}ssl_cert_file = {{ .oslo_messaging_amqp.oslo.messaging.ssl_cert_file | default "" }} + +# Private key PEM file used to sign cert_file certificate (string value) +# Deprecated group/name - [amqp1]/ssl_key_file +# from .oslo_messaging_amqp.oslo.messaging.ssl_key_file +{{ if not .oslo_messaging_amqp.oslo.messaging.ssl_key_file }}#{{ end }}ssl_key_file = {{ .oslo_messaging_amqp.oslo.messaging.ssl_key_file | default "" }} + +# Password for decrypting ssl_key_file (if encrypted) (string value) +# Deprecated group/name - [amqp1]/ssl_key_password +# from .oslo_messaging_amqp.oslo.messaging.ssl_key_password +{{ if not .oslo_messaging_amqp.oslo.messaging.ssl_key_password }}#{{ end }}ssl_key_password = {{ .oslo_messaging_amqp.oslo.messaging.ssl_key_password | default "" }} + +# Accept clients using either SSL or plain TCP (boolean value) +# Deprecated group/name - [amqp1]/allow_insecure_clients +# from .oslo_messaging_amqp.oslo.messaging.allow_insecure_clients +{{ if not .oslo_messaging_amqp.oslo.messaging.allow_insecure_clients }}#{{ end }}allow_insecure_clients = {{ .oslo_messaging_amqp.oslo.messaging.allow_insecure_clients | default "false" }} + +# Space separated list of acceptable SASL mechanisms (string value) +# Deprecated group/name - [amqp1]/sasl_mechanisms +# from .oslo_messaging_amqp.oslo.messaging.sasl_mechanisms +{{ if not .oslo_messaging_amqp.oslo.messaging.sasl_mechanisms }}#{{ end }}sasl_mechanisms = {{ .oslo_messaging_amqp.oslo.messaging.sasl_mechanisms | default "" }} + +# Path to directory that contains the SASL configuration (string value) +# Deprecated group/name - [amqp1]/sasl_config_dir +# from .oslo_messaging_amqp.oslo.messaging.sasl_config_dir +{{ if not .oslo_messaging_amqp.oslo.messaging.sasl_config_dir }}#{{ end }}sasl_config_dir = {{ .oslo_messaging_amqp.oslo.messaging.sasl_config_dir | default "" }} + +# Name of configuration file (without .conf suffix) (string value) +# Deprecated group/name - [amqp1]/sasl_config_name +# from .oslo_messaging_amqp.oslo.messaging.sasl_config_name +{{ if not .oslo_messaging_amqp.oslo.messaging.sasl_config_name }}#{{ end }}sasl_config_name = {{ .oslo_messaging_amqp.oslo.messaging.sasl_config_name | default "" }} + +# User name for message broker authentication (string value) +# Deprecated group/name - [amqp1]/username +# from .oslo_messaging_amqp.oslo.messaging.username +{{ if not .oslo_messaging_amqp.oslo.messaging.username }}#{{ end }}username = {{ .oslo_messaging_amqp.oslo.messaging.username | default "" }} + +# Password for message broker authentication (string value) +# Deprecated group/name - [amqp1]/password +# from .oslo_messaging_amqp.oslo.messaging.password +{{ if not .oslo_messaging_amqp.oslo.messaging.password }}#{{ end }}password = {{ .oslo_messaging_amqp.oslo.messaging.password | default "" }} + +# Seconds to pause before attempting to re-connect. (integer value) +# Minimum value: 1 +# from .oslo_messaging_amqp.oslo.messaging.connection_retry_interval +{{ if not .oslo_messaging_amqp.oslo.messaging.connection_retry_interval }}#{{ end }}connection_retry_interval = {{ .oslo_messaging_amqp.oslo.messaging.connection_retry_interval | default "1" }} + +# Increase the connection_retry_interval by this many seconds after each +# unsuccessful failover attempt. (integer value) +# Minimum value: 0 +# from .oslo_messaging_amqp.oslo.messaging.connection_retry_backoff +{{ if not .oslo_messaging_amqp.oslo.messaging.connection_retry_backoff }}#{{ end }}connection_retry_backoff = {{ .oslo_messaging_amqp.oslo.messaging.connection_retry_backoff | default "2" }} + +# Maximum limit for connection_retry_interval + connection_retry_backoff +# (integer value) +# Minimum value: 1 +# from .oslo_messaging_amqp.oslo.messaging.connection_retry_interval_max +{{ if not .oslo_messaging_amqp.oslo.messaging.connection_retry_interval_max }}#{{ end }}connection_retry_interval_max = {{ .oslo_messaging_amqp.oslo.messaging.connection_retry_interval_max | default "30" }} + +# Time to pause between re-connecting an AMQP 1.0 link that failed due to a +# recoverable error. (integer value) +# Minimum value: 1 +# from .oslo_messaging_amqp.oslo.messaging.link_retry_delay +{{ if not .oslo_messaging_amqp.oslo.messaging.link_retry_delay }}#{{ end }}link_retry_delay = {{ .oslo_messaging_amqp.oslo.messaging.link_retry_delay | default "10" }} + +# The deadline for an rpc reply message delivery. Only used when caller does +# not provide a timeout expiry. (integer value) +# Minimum value: 5 +# from .oslo_messaging_amqp.oslo.messaging.default_reply_timeout +{{ if not .oslo_messaging_amqp.oslo.messaging.default_reply_timeout }}#{{ end }}default_reply_timeout = {{ .oslo_messaging_amqp.oslo.messaging.default_reply_timeout | default "30" }} + +# The deadline for an rpc cast or call message delivery. Only used when caller +# does not provide a timeout expiry. (integer value) +# Minimum value: 5 +# from .oslo_messaging_amqp.oslo.messaging.default_send_timeout +{{ if not .oslo_messaging_amqp.oslo.messaging.default_send_timeout }}#{{ end }}default_send_timeout = {{ .oslo_messaging_amqp.oslo.messaging.default_send_timeout | default "30" }} + +# The deadline for a sent notification message delivery. Only used when caller +# does not provide a timeout expiry. (integer value) +# Minimum value: 5 +# from .oslo_messaging_amqp.oslo.messaging.default_notify_timeout +{{ if not .oslo_messaging_amqp.oslo.messaging.default_notify_timeout }}#{{ end }}default_notify_timeout = {{ .oslo_messaging_amqp.oslo.messaging.default_notify_timeout | default "30" }} + +# Indicates the addressing mode used by the driver. +# Permitted values: +# 'legacy' - use legacy non-routable addressing +# 'routable' - use routable addresses +# 'dynamic' - use legacy addresses if the message bus does not support routing +# otherwise use routable addressing (string value) +# from .oslo_messaging_amqp.oslo.messaging.addressing_mode +{{ if not .oslo_messaging_amqp.oslo.messaging.addressing_mode }}#{{ end }}addressing_mode = {{ .oslo_messaging_amqp.oslo.messaging.addressing_mode | default "dynamic" }} + +# address prefix used when sending to a specific server (string value) +# Deprecated group/name - [amqp1]/server_request_prefix +# from .oslo_messaging_amqp.oslo.messaging.server_request_prefix +{{ if not .oslo_messaging_amqp.oslo.messaging.server_request_prefix }}#{{ end }}server_request_prefix = {{ .oslo_messaging_amqp.oslo.messaging.server_request_prefix | default "exclusive" }} + +# address prefix used when broadcasting to all servers (string value) +# Deprecated group/name - [amqp1]/broadcast_prefix +# from .oslo_messaging_amqp.oslo.messaging.broadcast_prefix +{{ if not .oslo_messaging_amqp.oslo.messaging.broadcast_prefix }}#{{ end }}broadcast_prefix = {{ .oslo_messaging_amqp.oslo.messaging.broadcast_prefix | default "broadcast" }} + +# address prefix when sending to any server in group (string value) +# Deprecated group/name - [amqp1]/group_request_prefix +# from .oslo_messaging_amqp.oslo.messaging.group_request_prefix +{{ if not .oslo_messaging_amqp.oslo.messaging.group_request_prefix }}#{{ end }}group_request_prefix = {{ .oslo_messaging_amqp.oslo.messaging.group_request_prefix | default "unicast" }} + +# Address prefix for all generated RPC addresses (string value) +# from .oslo_messaging_amqp.oslo.messaging.rpc_address_prefix +{{ if not .oslo_messaging_amqp.oslo.messaging.rpc_address_prefix }}#{{ end }}rpc_address_prefix = {{ .oslo_messaging_amqp.oslo.messaging.rpc_address_prefix | default "openstack.org/om/rpc" }} + +# Address prefix for all generated Notification addresses (string value) +# from .oslo_messaging_amqp.oslo.messaging.notify_address_prefix +{{ if not .oslo_messaging_amqp.oslo.messaging.notify_address_prefix }}#{{ end }}notify_address_prefix = {{ .oslo_messaging_amqp.oslo.messaging.notify_address_prefix | default "openstack.org/om/notify" }} + +# Appended to the address prefix when sending a fanout message. Used by the +# message bus to identify fanout messages. (string value) +# from .oslo_messaging_amqp.oslo.messaging.multicast_address +{{ if not .oslo_messaging_amqp.oslo.messaging.multicast_address }}#{{ end }}multicast_address = {{ .oslo_messaging_amqp.oslo.messaging.multicast_address | default "multicast" }} + +# Appended to the address prefix when sending to a particular RPC/Notification +# server. Used by the message bus to identify messages sent to a single +# destination. (string value) +# from .oslo_messaging_amqp.oslo.messaging.unicast_address +{{ if not .oslo_messaging_amqp.oslo.messaging.unicast_address }}#{{ end }}unicast_address = {{ .oslo_messaging_amqp.oslo.messaging.unicast_address | default "unicast" }} + +# Appended to the address prefix when sending to a group of consumers. Used by +# the message bus to identify messages that should be delivered in a round- +# robin fashion across consumers. (string value) +# from .oslo_messaging_amqp.oslo.messaging.anycast_address +{{ if not .oslo_messaging_amqp.oslo.messaging.anycast_address }}#{{ end }}anycast_address = {{ .oslo_messaging_amqp.oslo.messaging.anycast_address | default "anycast" }} + +# Exchange name used in notification addresses. +# Exchange name resolution precedence: +# Target.exchange if set +# else default_notification_exchange if set +# else control_exchange if set +# else 'notify' (string value) +# from .oslo_messaging_amqp.oslo.messaging.default_notification_exchange +{{ if not .oslo_messaging_amqp.oslo.messaging.default_notification_exchange }}#{{ end }}default_notification_exchange = {{ .oslo_messaging_amqp.oslo.messaging.default_notification_exchange | default "" }} + +# Exchange name used in RPC addresses. +# Exchange name resolution precedence: +# Target.exchange if set +# else default_rpc_exchange if set +# else control_exchange if set +# else 'rpc' (string value) +# from .oslo_messaging_amqp.oslo.messaging.default_rpc_exchange +{{ if not .oslo_messaging_amqp.oslo.messaging.default_rpc_exchange }}#{{ end }}default_rpc_exchange = {{ .oslo_messaging_amqp.oslo.messaging.default_rpc_exchange | default "" }} + +# Window size for incoming RPC Reply messages. (integer value) +# Minimum value: 1 +# from .oslo_messaging_amqp.oslo.messaging.reply_link_credit +{{ if not .oslo_messaging_amqp.oslo.messaging.reply_link_credit }}#{{ end }}reply_link_credit = {{ .oslo_messaging_amqp.oslo.messaging.reply_link_credit | default "200" }} + +# Window size for incoming RPC Request messages (integer value) +# Minimum value: 1 +# from .oslo_messaging_amqp.oslo.messaging.rpc_server_credit +{{ if not .oslo_messaging_amqp.oslo.messaging.rpc_server_credit }}#{{ end }}rpc_server_credit = {{ .oslo_messaging_amqp.oslo.messaging.rpc_server_credit | default "100" }} + +# Window size for incoming Notification messages (integer value) +# Minimum value: 1 +# from .oslo_messaging_amqp.oslo.messaging.notify_server_credit +{{ if not .oslo_messaging_amqp.oslo.messaging.notify_server_credit }}#{{ end }}notify_server_credit = {{ .oslo_messaging_amqp.oslo.messaging.notify_server_credit | default "100" }} + [oslo_messaging_notifications] -driver = noop + +# +# From oslo.messaging +# + +# The Drivers(s) to handle sending notifications. Possible values are +# messaging, messagingv2, routing, log, test, noop (multi valued) +# Deprecated group/name - [DEFAULT]/notification_driver +# from .oslo_messaging_notifications.oslo.messaging.driver (multiopt) +{{ if not .oslo_messaging_notifications.oslo.messaging.driver }}#driver = {{ .oslo_messaging_notifications.oslo.messaging.driver | default "" }}{{ else }}{{ range .oslo_messaging_notifications.oslo.messaging.driver }}driver = {{ . }}{{ end }}{{ end }} + +# A URL representing the messaging driver to use for notifications. If not set, +# we fall back to the same configuration used for RPC. (string value) +# Deprecated group/name - [DEFAULT]/notification_transport_url +# from .oslo_messaging_notifications.oslo.messaging.transport_url +{{ if not .oslo_messaging_notifications.oslo.messaging.transport_url }}#{{ end }}transport_url = {{ .oslo_messaging_notifications.oslo.messaging.transport_url | default "" }} + +# AMQP topic used for OpenStack notifications. (list value) +# Deprecated group/name - [rpc_notifier2]/topics +# Deprecated group/name - [DEFAULT]/notification_topics +# from .oslo_messaging_notifications.oslo.messaging.topics +{{ if not .oslo_messaging_notifications.oslo.messaging.topics }}#{{ end }}topics = {{ .oslo_messaging_notifications.oslo.messaging.topics | default "notifications" }} + + +[oslo_messaging_rabbit] + +# +# From oslo.messaging +# + +# Use durable queues in AMQP. (boolean value) +# Deprecated group/name - [DEFAULT]/amqp_durable_queues +# Deprecated group/name - [DEFAULT]/rabbit_durable_queues +# from .oslo_messaging_rabbit.oslo.messaging.amqp_durable_queues +{{ if not .oslo_messaging_rabbit.oslo.messaging.amqp_durable_queues }}#{{ end }}amqp_durable_queues = {{ .oslo_messaging_rabbit.oslo.messaging.amqp_durable_queues | default "false" }} + +# Auto-delete queues in AMQP. (boolean value) +# Deprecated group/name - [DEFAULT]/amqp_auto_delete +# from .oslo_messaging_rabbit.oslo.messaging.amqp_auto_delete +{{ if not .oslo_messaging_rabbit.oslo.messaging.amqp_auto_delete }}#{{ end }}amqp_auto_delete = {{ .oslo_messaging_rabbit.oslo.messaging.amqp_auto_delete | default "false" }} + +# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and +# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some +# distributions. (string value) +# Deprecated group/name - [DEFAULT]/kombu_ssl_version +# from .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_version +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_version }}#{{ end }}kombu_ssl_version = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_version | default "" }} + +# SSL key file (valid only if SSL enabled). (string value) +# Deprecated group/name - [DEFAULT]/kombu_ssl_keyfile +# from .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_keyfile +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_keyfile }}#{{ end }}kombu_ssl_keyfile = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_keyfile | default "" }} + +# SSL cert file (valid only if SSL enabled). (string value) +# Deprecated group/name - [DEFAULT]/kombu_ssl_certfile +# from .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_certfile +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_certfile }}#{{ end }}kombu_ssl_certfile = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_certfile | default "" }} + +# SSL certification authority file (valid only if SSL enabled). (string value) +# Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs +# from .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_ca_certs +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_ca_certs }}#{{ end }}kombu_ssl_ca_certs = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_ssl_ca_certs | default "" }} + +# How long to wait before reconnecting in response to an AMQP consumer cancel +# notification. (floating point value) +# Deprecated group/name - [DEFAULT]/kombu_reconnect_delay +# from .oslo_messaging_rabbit.oslo.messaging.kombu_reconnect_delay +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_reconnect_delay }}#{{ end }}kombu_reconnect_delay = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_reconnect_delay | default "1.0" }} + +# EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not +# be used. This option may not be available in future versions. (string value) +# from .oslo_messaging_rabbit.oslo.messaging.kombu_compression +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_compression }}#{{ end }}kombu_compression = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_compression | default "" }} + +# How long to wait a missing client before abandoning to send it its replies. +# This value should not be longer than rpc_response_timeout. (integer value) +# Deprecated group/name - [oslo_messaging_rabbit]/kombu_reconnect_timeout +# from .oslo_messaging_rabbit.oslo.messaging.kombu_missing_consumer_retry_timeout +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_missing_consumer_retry_timeout }}#{{ end }}kombu_missing_consumer_retry_timeout = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_missing_consumer_retry_timeout | default "60" }} + +# Determines how the next RabbitMQ node is chosen in case the one we are +# currently connected to becomes unavailable. Takes effect only if more than +# one RabbitMQ node is provided in config. (string value) +# Allowed values: round-robin, shuffle +# from .oslo_messaging_rabbit.oslo.messaging.kombu_failover_strategy +{{ if not .oslo_messaging_rabbit.oslo.messaging.kombu_failover_strategy }}#{{ end }}kombu_failover_strategy = {{ .oslo_messaging_rabbit.oslo.messaging.kombu_failover_strategy | default "round-robin" }} + +# DEPRECATED: The RabbitMQ broker address where a single node is used. (string +# value) +# Deprecated group/name - [DEFAULT]/rabbit_host +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_host +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_host }}#{{ end }}rabbit_host = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_host | default "localhost" }} + +# DEPRECATED: The RabbitMQ broker port where a single node is used. (port +# value) +# Minimum value: 0 +# Maximum value: 65535 +# Deprecated group/name - [DEFAULT]/rabbit_port +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_port +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_port }}#{{ end }}rabbit_port = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_port | default "5672" }} + +# DEPRECATED: RabbitMQ HA cluster host:port pairs. (list value) +# Deprecated group/name - [DEFAULT]/rabbit_hosts +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_hosts +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_hosts }}#{{ end }}rabbit_hosts = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_hosts | default "$rabbit_host:$rabbit_port" }} + +# Connect over SSL for RabbitMQ. (boolean value) +# Deprecated group/name - [DEFAULT]/rabbit_use_ssl +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_use_ssl +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_use_ssl }}#{{ end }}rabbit_use_ssl = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_use_ssl | default "false" }} + +# DEPRECATED: The RabbitMQ userid. (string value) +# Deprecated group/name - [DEFAULT]/rabbit_userid +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_userid +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_userid }}#{{ end }}rabbit_userid = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_userid | default "guest" }} + +# DEPRECATED: The RabbitMQ password. (string value) +# Deprecated group/name - [DEFAULT]/rabbit_password +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_password +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_password }}#{{ end }}rabbit_password = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_password | default "guest" }} + +# The RabbitMQ login method. (string value) +# Deprecated group/name - [DEFAULT]/rabbit_login_method +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_login_method +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_login_method }}#{{ end }}rabbit_login_method = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_login_method | default "AMQPLAIN" }} + +# DEPRECATED: The RabbitMQ virtual host. (string value) +# Deprecated group/name - [DEFAULT]/rabbit_virtual_host +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# Reason: Replaced by [DEFAULT]/transport_url +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_virtual_host +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_virtual_host }}#{{ end }}rabbit_virtual_host = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_virtual_host | default "/" }} + +# How frequently to retry connecting with RabbitMQ. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_retry_interval +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_retry_interval }}#{{ end }}rabbit_retry_interval = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_retry_interval | default "1" }} + +# How long to backoff for between retries when connecting to RabbitMQ. (integer +# value) +# Deprecated group/name - [DEFAULT]/rabbit_retry_backoff +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_retry_backoff +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_retry_backoff }}#{{ end }}rabbit_retry_backoff = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_retry_backoff | default "2" }} + +# Maximum interval of RabbitMQ connection retries. Default is 30 seconds. +# (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_interval_max +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_interval_max }}#{{ end }}rabbit_interval_max = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_interval_max | default "30" }} + +# DEPRECATED: Maximum number of RabbitMQ connection retries. Default is 0 +# (infinite retry count). (integer value) +# Deprecated group/name - [DEFAULT]/rabbit_max_retries +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_max_retries +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_max_retries }}#{{ end }}rabbit_max_retries = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_max_retries | default "0" }} + +# Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this +# option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring +# is no longer controlled by the x-ha-policy argument when declaring a queue. +# If you just want to make sure that all queues (except those with auto- +# generated names) are mirrored across all nodes, run: "rabbitmqctl set_policy +# HA '^(?!amq\.).*' '{"ha-mode": "all"}' " (boolean value) +# Deprecated group/name - [DEFAULT]/rabbit_ha_queues +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_ha_queues +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_ha_queues }}#{{ end }}rabbit_ha_queues = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_ha_queues | default "false" }} + +# Positive integer representing duration in seconds for queue TTL (x-expires). +# Queues which are unused for the duration of the TTL are automatically +# deleted. The parameter affects only reply and fanout queues. (integer value) +# Minimum value: 1 +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_transient_queues_ttl +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_transient_queues_ttl }}#{{ end }}rabbit_transient_queues_ttl = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_transient_queues_ttl | default "1800" }} + +# Specifies the number of messages to prefetch. Setting to zero allows +# unlimited messages. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.rabbit_qos_prefetch_count +{{ if not .oslo_messaging_rabbit.oslo.messaging.rabbit_qos_prefetch_count }}#{{ end }}rabbit_qos_prefetch_count = {{ .oslo_messaging_rabbit.oslo.messaging.rabbit_qos_prefetch_count | default "0" }} + +# Number of seconds after which the Rabbit broker is considered down if +# heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer +# value) +# from .oslo_messaging_rabbit.oslo.messaging.heartbeat_timeout_threshold +{{ if not .oslo_messaging_rabbit.oslo.messaging.heartbeat_timeout_threshold }}#{{ end }}heartbeat_timeout_threshold = {{ .oslo_messaging_rabbit.oslo.messaging.heartbeat_timeout_threshold | default "60" }} + +# How often times during the heartbeat_timeout_threshold we check the +# heartbeat. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.heartbeat_rate +{{ if not .oslo_messaging_rabbit.oslo.messaging.heartbeat_rate }}#{{ end }}heartbeat_rate = {{ .oslo_messaging_rabbit.oslo.messaging.heartbeat_rate | default "2" }} + +# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake (boolean value) +# Deprecated group/name - [DEFAULT]/fake_rabbit +# from .oslo_messaging_rabbit.oslo.messaging.fake_rabbit +{{ if not .oslo_messaging_rabbit.oslo.messaging.fake_rabbit }}#{{ end }}fake_rabbit = {{ .oslo_messaging_rabbit.oslo.messaging.fake_rabbit | default "false" }} + +# Maximum number of channels to allow (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.channel_max +{{ if not .oslo_messaging_rabbit.oslo.messaging.channel_max }}#{{ end }}channel_max = {{ .oslo_messaging_rabbit.oslo.messaging.channel_max | default "" }} + +# The maximum byte size for an AMQP frame (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.frame_max +{{ if not .oslo_messaging_rabbit.oslo.messaging.frame_max }}#{{ end }}frame_max = {{ .oslo_messaging_rabbit.oslo.messaging.frame_max | default "" }} + +# How often to send heartbeats for consumer's connections (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.heartbeat_interval +{{ if not .oslo_messaging_rabbit.oslo.messaging.heartbeat_interval }}#{{ end }}heartbeat_interval = {{ .oslo_messaging_rabbit.oslo.messaging.heartbeat_interval | default "3" }} + +# Enable SSL (boolean value) +# from .oslo_messaging_rabbit.oslo.messaging.ssl +{{ if not .oslo_messaging_rabbit.oslo.messaging.ssl }}#{{ end }}ssl = {{ .oslo_messaging_rabbit.oslo.messaging.ssl | default "" }} + +# Arguments passed to ssl.wrap_socket (dict value) +# from .oslo_messaging_rabbit.oslo.messaging.ssl_options +{{ if not .oslo_messaging_rabbit.oslo.messaging.ssl_options }}#{{ end }}ssl_options = {{ .oslo_messaging_rabbit.oslo.messaging.ssl_options | default "" }} + +# Set socket timeout in seconds for connection's socket (floating point value) +# from .oslo_messaging_rabbit.oslo.messaging.socket_timeout +{{ if not .oslo_messaging_rabbit.oslo.messaging.socket_timeout }}#{{ end }}socket_timeout = {{ .oslo_messaging_rabbit.oslo.messaging.socket_timeout | default "0.25" }} + +# Set TCP_USER_TIMEOUT in seconds for connection's socket (floating point +# value) +# from .oslo_messaging_rabbit.oslo.messaging.tcp_user_timeout +{{ if not .oslo_messaging_rabbit.oslo.messaging.tcp_user_timeout }}#{{ end }}tcp_user_timeout = {{ .oslo_messaging_rabbit.oslo.messaging.tcp_user_timeout | default "0.25" }} + +# Set delay for reconnection to some host which has connection error (floating +# point value) +# from .oslo_messaging_rabbit.oslo.messaging.host_connection_reconnect_delay +{{ if not .oslo_messaging_rabbit.oslo.messaging.host_connection_reconnect_delay }}#{{ end }}host_connection_reconnect_delay = {{ .oslo_messaging_rabbit.oslo.messaging.host_connection_reconnect_delay | default "0.25" }} + +# Connection factory implementation (string value) +# Allowed values: new, single, read_write +# from .oslo_messaging_rabbit.oslo.messaging.connection_factory +{{ if not .oslo_messaging_rabbit.oslo.messaging.connection_factory }}#{{ end }}connection_factory = {{ .oslo_messaging_rabbit.oslo.messaging.connection_factory | default "single" }} + +# Maximum number of connections to keep queued. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.pool_max_size +{{ if not .oslo_messaging_rabbit.oslo.messaging.pool_max_size }}#{{ end }}pool_max_size = {{ .oslo_messaging_rabbit.oslo.messaging.pool_max_size | default "30" }} + +# Maximum number of connections to create above `pool_max_size`. (integer +# value) +# from .oslo_messaging_rabbit.oslo.messaging.pool_max_overflow +{{ if not .oslo_messaging_rabbit.oslo.messaging.pool_max_overflow }}#{{ end }}pool_max_overflow = {{ .oslo_messaging_rabbit.oslo.messaging.pool_max_overflow | default "0" }} + +# Default number of seconds to wait for a connections to available (integer +# value) +# from .oslo_messaging_rabbit.oslo.messaging.pool_timeout +{{ if not .oslo_messaging_rabbit.oslo.messaging.pool_timeout }}#{{ end }}pool_timeout = {{ .oslo_messaging_rabbit.oslo.messaging.pool_timeout | default "30" }} + +# Lifetime of a connection (since creation) in seconds or None for no +# recycling. Expired connections are closed on acquire. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.pool_recycle +{{ if not .oslo_messaging_rabbit.oslo.messaging.pool_recycle }}#{{ end }}pool_recycle = {{ .oslo_messaging_rabbit.oslo.messaging.pool_recycle | default "600" }} + +# Threshold at which inactive (since release) connections are considered stale +# in seconds or None for no staleness. Stale connections are closed on acquire. +# (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.pool_stale +{{ if not .oslo_messaging_rabbit.oslo.messaging.pool_stale }}#{{ end }}pool_stale = {{ .oslo_messaging_rabbit.oslo.messaging.pool_stale | default "60" }} + +# Persist notification messages. (boolean value) +# from .oslo_messaging_rabbit.oslo.messaging.notification_persistence +{{ if not .oslo_messaging_rabbit.oslo.messaging.notification_persistence }}#{{ end }}notification_persistence = {{ .oslo_messaging_rabbit.oslo.messaging.notification_persistence | default "false" }} + +# Exchange name for sending notifications (string value) +# from .oslo_messaging_rabbit.oslo.messaging.default_notification_exchange +{{ if not .oslo_messaging_rabbit.oslo.messaging.default_notification_exchange }}#{{ end }}default_notification_exchange = {{ .oslo_messaging_rabbit.oslo.messaging.default_notification_exchange | default "${control_exchange}_notification" }} + +# Max number of not acknowledged message which RabbitMQ can send to +# notification listener. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.notification_listener_prefetch_count +{{ if not .oslo_messaging_rabbit.oslo.messaging.notification_listener_prefetch_count }}#{{ end }}notification_listener_prefetch_count = {{ .oslo_messaging_rabbit.oslo.messaging.notification_listener_prefetch_count | default "100" }} + +# Reconnecting retry count in case of connectivity problem during sending +# notification, -1 means infinite retry. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.default_notification_retry_attempts +{{ if not .oslo_messaging_rabbit.oslo.messaging.default_notification_retry_attempts }}#{{ end }}default_notification_retry_attempts = {{ .oslo_messaging_rabbit.oslo.messaging.default_notification_retry_attempts | default "-1" }} + +# Reconnecting retry delay in case of connectivity problem during sending +# notification message (floating point value) +# from .oslo_messaging_rabbit.oslo.messaging.notification_retry_delay +{{ if not .oslo_messaging_rabbit.oslo.messaging.notification_retry_delay }}#{{ end }}notification_retry_delay = {{ .oslo_messaging_rabbit.oslo.messaging.notification_retry_delay | default "0.25" }} + +# Time to live for rpc queues without consumers in seconds. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.rpc_queue_expiration +{{ if not .oslo_messaging_rabbit.oslo.messaging.rpc_queue_expiration }}#{{ end }}rpc_queue_expiration = {{ .oslo_messaging_rabbit.oslo.messaging.rpc_queue_expiration | default "60" }} + +# Exchange name for sending RPC messages (string value) +# from .oslo_messaging_rabbit.oslo.messaging.default_rpc_exchange +{{ if not .oslo_messaging_rabbit.oslo.messaging.default_rpc_exchange }}#{{ end }}default_rpc_exchange = {{ .oslo_messaging_rabbit.oslo.messaging.default_rpc_exchange | default "${control_exchange}_rpc" }} + +# Exchange name for receiving RPC replies (string value) +# from .oslo_messaging_rabbit.oslo.messaging.rpc_reply_exchange +{{ if not .oslo_messaging_rabbit.oslo.messaging.rpc_reply_exchange }}#{{ end }}rpc_reply_exchange = {{ .oslo_messaging_rabbit.oslo.messaging.rpc_reply_exchange | default "${control_exchange}_rpc_reply" }} + +# Max number of not acknowledged message which RabbitMQ can send to rpc +# listener. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.rpc_listener_prefetch_count +{{ if not .oslo_messaging_rabbit.oslo.messaging.rpc_listener_prefetch_count }}#{{ end }}rpc_listener_prefetch_count = {{ .oslo_messaging_rabbit.oslo.messaging.rpc_listener_prefetch_count | default "100" }} + +# Max number of not acknowledged message which RabbitMQ can send to rpc reply +# listener. (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.rpc_reply_listener_prefetch_count +{{ if not .oslo_messaging_rabbit.oslo.messaging.rpc_reply_listener_prefetch_count }}#{{ end }}rpc_reply_listener_prefetch_count = {{ .oslo_messaging_rabbit.oslo.messaging.rpc_reply_listener_prefetch_count | default "100" }} + +# Reconnecting retry count in case of connectivity problem during sending +# reply. -1 means infinite retry during rpc_timeout (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.rpc_reply_retry_attempts +{{ if not .oslo_messaging_rabbit.oslo.messaging.rpc_reply_retry_attempts }}#{{ end }}rpc_reply_retry_attempts = {{ .oslo_messaging_rabbit.oslo.messaging.rpc_reply_retry_attempts | default "-1" }} + +# Reconnecting retry delay in case of connectivity problem during sending +# reply. (floating point value) +# from .oslo_messaging_rabbit.oslo.messaging.rpc_reply_retry_delay +{{ if not .oslo_messaging_rabbit.oslo.messaging.rpc_reply_retry_delay }}#{{ end }}rpc_reply_retry_delay = {{ .oslo_messaging_rabbit.oslo.messaging.rpc_reply_retry_delay | default "0.25" }} + +# Reconnecting retry count in case of connectivity problem during sending RPC +# message, -1 means infinite retry. If actual retry attempts in not 0 the rpc +# request could be processed more then one time (integer value) +# from .oslo_messaging_rabbit.oslo.messaging.default_rpc_retry_attempts +{{ if not .oslo_messaging_rabbit.oslo.messaging.default_rpc_retry_attempts }}#{{ end }}default_rpc_retry_attempts = {{ .oslo_messaging_rabbit.oslo.messaging.default_rpc_retry_attempts | default "-1" }} + +# Reconnecting retry delay in case of connectivity problem during sending RPC +# message (floating point value) +# from .oslo_messaging_rabbit.oslo.messaging.rpc_retry_delay +{{ if not .oslo_messaging_rabbit.oslo.messaging.rpc_retry_delay }}#{{ end }}rpc_retry_delay = {{ .oslo_messaging_rabbit.oslo.messaging.rpc_retry_delay | default "0.25" }} + + +[oslo_messaging_zmq] + +# +# From oslo.messaging +# + +# ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. +# The "host" option should point or resolve to this address. (string value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_bind_address +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_bind_address }}#{{ end }}rpc_zmq_bind_address = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_bind_address | default "*" }} + +# MatchMaker driver. (string value) +# Allowed values: redis, dummy +# Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_matchmaker +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_matchmaker }}#{{ end }}rpc_zmq_matchmaker = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_matchmaker | default "redis" }} + +# Number of ZeroMQ contexts, defaults to 1. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_contexts +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_contexts +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_contexts }}#{{ end }}rpc_zmq_contexts = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_contexts | default "1" }} + +# Maximum number of ingress messages to locally buffer per topic. Default is +# unlimited. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_topic_backlog +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_topic_backlog }}#{{ end }}rpc_zmq_topic_backlog = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_topic_backlog | default "" }} + +# Directory for holding IPC sockets. (string value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_ipc_dir +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_ipc_dir }}#{{ end }}rpc_zmq_ipc_dir = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_ipc_dir | default "/var/run/openstack" }} + +# Name of this node. Must be a valid hostname, FQDN, or IP address. Must match +# "host" option, if running Nova. (string value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_host +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_host +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_host }}#{{ end }}rpc_zmq_host = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_host | default "localhost" }} + +# Seconds to wait before a cast expires (TTL). The default value of -1 +# specifies an infinite linger period. The value of 0 specifies no linger +# period. Pending messages shall be discarded immediately when the socket is +# closed. Only supported by impl_zmq. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_cast_timeout +# from .oslo_messaging_zmq.oslo.messaging.rpc_cast_timeout +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_cast_timeout }}#{{ end }}rpc_cast_timeout = {{ .oslo_messaging_zmq.oslo.messaging.rpc_cast_timeout | default "-1" }} + +# The default number of seconds that poll should wait. Poll raises timeout +# exception when timeout expired. (integer value) +# Deprecated group/name - [DEFAULT]/rpc_poll_timeout +# from .oslo_messaging_zmq.oslo.messaging.rpc_poll_timeout +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_poll_timeout }}#{{ end }}rpc_poll_timeout = {{ .oslo_messaging_zmq.oslo.messaging.rpc_poll_timeout | default "1" }} + +# Expiration timeout in seconds of a name service record about existing target +# ( < 0 means no timeout). (integer value) +# Deprecated group/name - [DEFAULT]/zmq_target_expire +# from .oslo_messaging_zmq.oslo.messaging.zmq_target_expire +{{ if not .oslo_messaging_zmq.oslo.messaging.zmq_target_expire }}#{{ end }}zmq_target_expire = {{ .oslo_messaging_zmq.oslo.messaging.zmq_target_expire | default "300" }} + +# Update period in seconds of a name service record about existing target. +# (integer value) +# Deprecated group/name - [DEFAULT]/zmq_target_update +# from .oslo_messaging_zmq.oslo.messaging.zmq_target_update +{{ if not .oslo_messaging_zmq.oslo.messaging.zmq_target_update }}#{{ end }}zmq_target_update = {{ .oslo_messaging_zmq.oslo.messaging.zmq_target_update | default "180" }} + +# Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean +# value) +# Deprecated group/name - [DEFAULT]/use_pub_sub +# from .oslo_messaging_zmq.oslo.messaging.use_pub_sub +{{ if not .oslo_messaging_zmq.oslo.messaging.use_pub_sub }}#{{ end }}use_pub_sub = {{ .oslo_messaging_zmq.oslo.messaging.use_pub_sub | default "true" }} + +# Use ROUTER remote proxy. (boolean value) +# Deprecated group/name - [DEFAULT]/use_router_proxy +# from .oslo_messaging_zmq.oslo.messaging.use_router_proxy +{{ if not .oslo_messaging_zmq.oslo.messaging.use_router_proxy }}#{{ end }}use_router_proxy = {{ .oslo_messaging_zmq.oslo.messaging.use_router_proxy | default "true" }} + +# Minimal port number for random ports range. (port value) +# Minimum value: 0 +# Maximum value: 65535 +# Deprecated group/name - [DEFAULT]/rpc_zmq_min_port +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_min_port +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_min_port }}#{{ end }}rpc_zmq_min_port = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_min_port | default "49153" }} + +# Maximal port number for random ports range. (integer value) +# Minimum value: 1 +# Maximum value: 65536 +# Deprecated group/name - [DEFAULT]/rpc_zmq_max_port +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_max_port +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_max_port }}#{{ end }}rpc_zmq_max_port = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_max_port | default "65536" }} + +# Number of retries to find free port number before fail with ZMQBindError. +# (integer value) +# Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_bind_port_retries +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_bind_port_retries }}#{{ end }}rpc_zmq_bind_port_retries = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_bind_port_retries | default "100" }} + +# Default serialization mechanism for serializing/deserializing +# outgoing/incoming messages (string value) +# Allowed values: json, msgpack +# Deprecated group/name - [DEFAULT]/rpc_zmq_serialization +# from .oslo_messaging_zmq.oslo.messaging.rpc_zmq_serialization +{{ if not .oslo_messaging_zmq.oslo.messaging.rpc_zmq_serialization }}#{{ end }}rpc_zmq_serialization = {{ .oslo_messaging_zmq.oslo.messaging.rpc_zmq_serialization | default "json" }} + +# This option configures round-robin mode in zmq socket. True means not keeping +# a queue when server side disconnects. False means to keep queue and messages +# even if server is disconnected, when the server appears we send all +# accumulated messages to it. (boolean value) +# from .oslo_messaging_zmq.oslo.messaging.zmq_immediate +{{ if not .oslo_messaging_zmq.oslo.messaging.zmq_immediate }}#{{ end }}zmq_immediate = {{ .oslo_messaging_zmq.oslo.messaging.zmq_immediate | default "false" }} + + +[oslo_middleware] + +# +# From oslo.middleware.http_proxy_to_wsgi +# + +# Whether the application is behind a proxy or not. This determines if the +# middleware should parse the headers or not. (boolean value) +# from .oslo_middleware.oslo.middleware.http_proxy_to_wsgi.enable_proxy_headers_parsing +{{ if not .oslo_middleware.oslo.middleware.http_proxy_to_wsgi.enable_proxy_headers_parsing }}#{{ end }}enable_proxy_headers_parsing = {{ .oslo_middleware.oslo.middleware.http_proxy_to_wsgi.enable_proxy_headers_parsing | default "false" }} + + +[oslo_policy] + +# +# From oslo.policy +# + +# The JSON file that defines policies. (string value) +# Deprecated group/name - [DEFAULT]/policy_file +# from .oslo_policy.oslo.policy.policy_file +{{ if not .oslo_policy.oslo.policy.policy_file }}#{{ end }}policy_file = {{ .oslo_policy.oslo.policy.policy_file | default "policy.json" }} + +# Default rule. Enforced when a requested rule is not found. (string value) +# Deprecated group/name - [DEFAULT]/policy_default_rule +# from .oslo_policy.oslo.policy.policy_default_rule +{{ if not .oslo_policy.oslo.policy.policy_default_rule }}#{{ end }}policy_default_rule = {{ .oslo_policy.oslo.policy.policy_default_rule | default "default" }} + +# Directories where policy configuration files are stored. They can be relative +# to any directory in the search path defined by the config_dir option, or +# absolute paths. The file defined by policy_file must exist for these +# directories to be searched. Missing or empty directories are ignored. (multi +# valued) +# Deprecated group/name - [DEFAULT]/policy_dirs +# from .oslo_policy.oslo.policy.policy_dirs (multiopt) +{{ if not .oslo_policy.oslo.policy.policy_dirs }}#policy_dirs = {{ .oslo_policy.oslo.policy.policy_dirs | default "policy.d" }}{{ else }}{{ range .oslo_policy.oslo.policy.policy_dirs }}policy_dirs = {{ . }}{{ end }}{{ end }} + + +[qos] + +# +# From neutron.qos +# + +# Drivers list to use to send the update notification (list value) +# from .qos.neutron.qos.notification_drivers +{{ if not .qos.neutron.qos.notification_drivers }}#{{ end }}notification_drivers = {{ .qos.neutron.qos.notification_drivers | default "message_queue" }} + + +[quotas] + +# +# From neutron +# + +# Default number of resource allowed per tenant. A negative value means +# unlimited. (integer value) +# from .quotas.neutron.default_quota +{{ if not .quotas.neutron.default_quota }}#{{ end }}default_quota = {{ .quotas.neutron.default_quota | default "-1" }} + +# Number of networks allowed per tenant. A negative value means unlimited. +# (integer value) +# from .quotas.neutron.quota_network +{{ if not .quotas.neutron.quota_network }}#{{ end }}quota_network = {{ .quotas.neutron.quota_network | default "10" }} + +# Number of subnets allowed per tenant, A negative value means unlimited. +# (integer value) +# from .quotas.neutron.quota_subnet +{{ if not .quotas.neutron.quota_subnet }}#{{ end }}quota_subnet = {{ .quotas.neutron.quota_subnet | default "10" }} + +# Number of ports allowed per tenant. A negative value means unlimited. +# (integer value) +# from .quotas.neutron.quota_port +{{ if not .quotas.neutron.quota_port }}#{{ end }}quota_port = {{ .quotas.neutron.quota_port | default "50" }} + +# Default driver to use for quota checks. (string value) +# from .quotas.neutron.quota_driver +{{ if not .quotas.neutron.quota_driver }}#{{ end }}quota_driver = {{ .quotas.neutron.quota_driver | default "neutron.db.quota.driver.DbQuotaDriver" }} + +# Keep in track in the database of current resource quota usage. Plugins which +# do not leverage the neutron database should set this flag to False. (boolean +# value) +# from .quotas.neutron.track_quota_usage +{{ if not .quotas.neutron.track_quota_usage }}#{{ end }}track_quota_usage = {{ .quotas.neutron.track_quota_usage | default "true" }} + +# +# From neutron.extensions +# + +# Number of routers allowed per tenant. A negative value means unlimited. +# (integer value) +# from .quotas.neutron.extensions.quota_router +{{ if not .quotas.neutron.extensions.quota_router }}#{{ end }}quota_router = {{ .quotas.neutron.extensions.quota_router | default "10" }} + +# Number of floating IPs allowed per tenant. A negative value means unlimited. +# (integer value) +# from .quotas.neutron.extensions.quota_floatingip +{{ if not .quotas.neutron.extensions.quota_floatingip }}#{{ end }}quota_floatingip = {{ .quotas.neutron.extensions.quota_floatingip | default "50" }} + +# Number of security groups allowed per tenant. A negative value means +# unlimited. (integer value) +# from .quotas.neutron.extensions.quota_security_group +{{ if not .quotas.neutron.extensions.quota_security_group }}#{{ end }}quota_security_group = {{ .quotas.neutron.extensions.quota_security_group | default "10" }} + +# Number of security rules allowed per tenant. A negative value means +# unlimited. (integer value) +# from .quotas.neutron.extensions.quota_security_group_rule +{{ if not .quotas.neutron.extensions.quota_security_group_rule }}#{{ end }}quota_security_group_rule = {{ .quotas.neutron.extensions.quota_security_group_rule | default "100" }} + + +[ssl] + +# +# From oslo.service.sslutils +# + +# CA certificate file to use to verify connecting clients. (string value) +# Deprecated group/name - [DEFAULT]/ssl_ca_file +# from .ssl.oslo.service.sslutils.ca_file +{{ if not .ssl.oslo.service.sslutils.ca_file }}#{{ end }}ca_file = {{ .ssl.oslo.service.sslutils.ca_file | default "" }} + +# Certificate file to use when starting the server securely. (string value) +# Deprecated group/name - [DEFAULT]/ssl_cert_file +# from .ssl.oslo.service.sslutils.cert_file +{{ if not .ssl.oslo.service.sslutils.cert_file }}#{{ end }}cert_file = {{ .ssl.oslo.service.sslutils.cert_file | default "" }} + +# Private key file to use when starting the server securely. (string value) +# Deprecated group/name - [DEFAULT]/ssl_key_file +# from .ssl.oslo.service.sslutils.key_file +{{ if not .ssl.oslo.service.sslutils.key_file }}#{{ end }}key_file = {{ .ssl.oslo.service.sslutils.key_file | default "" }} + +# SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and +# SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some +# distributions. (string value) +# from .ssl.oslo.service.sslutils.version +{{ if not .ssl.oslo.service.sslutils.version }}#{{ end }}version = {{ .ssl.oslo.service.sslutils.version | default "" }} + +# Sets the list of available ciphers. value should be a string in the OpenSSL +# cipher list format. (string value) +# from .ssl.oslo.service.sslutils.ciphers +{{ if not .ssl.oslo.service.sslutils.ciphers }}#{{ end }}ciphers = {{ .ssl.oslo.service.sslutils.ciphers | default "" }} + +{{- end -}} + diff --git a/neutron/templates/etc/_policy.json.tpl b/neutron/templates/etc/_policy.json.tpl new file mode 100644 index 0000000000..49e1ae95ef --- /dev/null +++ b/neutron/templates/etc/_policy.json.tpl @@ -0,0 +1,214 @@ +{ + "context_is_admin": "role:admin", + "owner": "tenant_id:%(tenant_id)s", + "admin_or_owner": "rule:context_is_admin or rule:owner", + "context_is_advsvc": "role:advsvc", + "admin_or_network_owner": "rule:context_is_admin or tenant_id:%(network:tenant_id)s", + "admin_owner_or_network_owner": "rule:owner or rule:admin_or_network_owner", + "admin_only": "rule:context_is_admin", + "regular_user": "", + "shared": "field:networks:shared=True", + "shared_subnetpools": "field:subnetpools:shared=True", + "shared_address_scopes": "field:address_scopes:shared=True", + "external": "field:networks:router:external=True", + "default": "rule:admin_or_owner", + + "create_subnet": "rule:admin_or_network_owner", + "create_subnet:segment_id": "rule:admin_only", + "create_subnet:service_types": "rule:admin_only", + "get_subnet": "rule:admin_or_owner or rule:shared", + "get_subnet:segment_id": "rule:admin_only", + "update_subnet": "rule:admin_or_network_owner", + "update_subnet:service_types": "rule:admin_only", + "delete_subnet": "rule:admin_or_network_owner", + + "create_subnetpool": "", + "create_subnetpool:shared": "rule:admin_only", + "create_subnetpool:is_default": "rule:admin_only", + "get_subnetpool": "rule:admin_or_owner or rule:shared_subnetpools", + "update_subnetpool": "rule:admin_or_owner", + "update_subnetpool:is_default": "rule:admin_only", + "delete_subnetpool": "rule:admin_or_owner", + + "create_address_scope": "", + "create_address_scope:shared": "rule:admin_only", + "get_address_scope": "rule:admin_or_owner or rule:shared_address_scopes", + "update_address_scope": "rule:admin_or_owner", + "update_address_scope:shared": "rule:admin_only", + "delete_address_scope": "rule:admin_or_owner", + + "create_network": "", + "get_network": "rule:admin_or_owner or rule:shared or rule:external or rule:context_is_advsvc", + "get_network:router:external": "rule:regular_user", + "get_network:segments": "rule:admin_only", + "get_network:provider:network_type": "rule:admin_only", + "get_network:provider:physical_network": "rule:admin_only", + "get_network:provider:segmentation_id": "rule:admin_only", + "get_network:queue_id": "rule:admin_only", + "get_network_ip_availabilities": "rule:admin_only", + "get_network_ip_availability": "rule:admin_only", + "create_network:shared": "rule:admin_only", + "create_network:router:external": "rule:admin_only", + "create_network:is_default": "rule:admin_only", + "create_network:segments": "rule:admin_only", + "create_network:provider:network_type": "rule:admin_only", + "create_network:provider:physical_network": "rule:admin_only", + "create_network:provider:segmentation_id": "rule:admin_only", + "update_network": "rule:admin_or_owner", + "update_network:segments": "rule:admin_only", + "update_network:shared": "rule:admin_only", + "update_network:provider:network_type": "rule:admin_only", + "update_network:provider:physical_network": "rule:admin_only", + "update_network:provider:segmentation_id": "rule:admin_only", + "update_network:router:external": "rule:admin_only", + "delete_network": "rule:admin_or_owner", + + "create_segment": "rule:admin_only", + "get_segment": "rule:admin_only", + "update_segment": "rule:admin_only", + "delete_segment": "rule:admin_only", + + "network_device": "field:port:device_owner=~^network:", + "create_port": "", + "create_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner", + "create_port:mac_address": "rule:context_is_advsvc or rule:admin_or_network_owner", + "create_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner", + "create_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner", + "create_port:binding:host_id": "rule:admin_only", + "create_port:binding:profile": "rule:admin_only", + "create_port:mac_learning_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner", + "create_port:allowed_address_pairs": "rule:admin_or_network_owner", + "get_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner", + "get_port:queue_id": "rule:admin_only", + "get_port:binding:vif_type": "rule:admin_only", + "get_port:binding:vif_details": "rule:admin_only", + "get_port:binding:host_id": "rule:admin_only", + "get_port:binding:profile": "rule:admin_only", + "update_port": "rule:admin_or_owner or rule:context_is_advsvc", + "update_port:device_owner": "not rule:network_device or rule:context_is_advsvc or rule:admin_or_network_owner", + "update_port:mac_address": "rule:admin_only or rule:context_is_advsvc", + "update_port:fixed_ips": "rule:context_is_advsvc or rule:admin_or_network_owner", + "update_port:port_security_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner", + "update_port:binding:host_id": "rule:admin_only", + "update_port:binding:profile": "rule:admin_only", + "update_port:mac_learning_enabled": "rule:context_is_advsvc or rule:admin_or_network_owner", + "update_port:allowed_address_pairs": "rule:admin_or_network_owner", + "delete_port": "rule:context_is_advsvc or rule:admin_owner_or_network_owner", + + "get_router:ha": "rule:admin_only", + "create_router": "rule:regular_user", + "create_router:external_gateway_info:enable_snat": "rule:admin_only", + "create_router:distributed": "rule:admin_only", + "create_router:ha": "rule:admin_only", + "get_router": "rule:admin_or_owner", + "get_router:distributed": "rule:admin_only", + "update_router:external_gateway_info:enable_snat": "rule:admin_only", + "update_router:distributed": "rule:admin_only", + "update_router:ha": "rule:admin_only", + "delete_router": "rule:admin_or_owner", + + "add_router_interface": "rule:admin_or_owner", + "remove_router_interface": "rule:admin_or_owner", + + "create_router:external_gateway_info:external_fixed_ips": "rule:admin_only", + "update_router:external_gateway_info:external_fixed_ips": "rule:admin_only", + + "insert_rule": "rule:admin_or_owner", + "remove_rule": "rule:admin_or_owner", + + "create_qos_queue": "rule:admin_only", + "get_qos_queue": "rule:admin_only", + + "update_agent": "rule:admin_only", + "delete_agent": "rule:admin_only", + "get_agent": "rule:admin_only", + + "create_dhcp-network": "rule:admin_only", + "delete_dhcp-network": "rule:admin_only", + "get_dhcp-networks": "rule:admin_only", + "create_l3-router": "rule:admin_only", + "delete_l3-router": "rule:admin_only", + "get_l3-routers": "rule:admin_only", + "get_dhcp-agents": "rule:admin_only", + "get_l3-agents": "rule:admin_only", + "get_loadbalancer-agent": "rule:admin_only", + "get_loadbalancer-pools": "rule:admin_only", + "get_agent-loadbalancers": "rule:admin_only", + "get_loadbalancer-hosting-agent": "rule:admin_only", + + "create_floatingip": "rule:regular_user", + "create_floatingip:floating_ip_address": "rule:admin_only", + "update_floatingip": "rule:admin_or_owner", + "delete_floatingip": "rule:admin_or_owner", + "get_floatingip": "rule:admin_or_owner", + + "create_network_profile": "rule:admin_only", + "update_network_profile": "rule:admin_only", + "delete_network_profile": "rule:admin_only", + "get_network_profiles": "", + "get_network_profile": "", + "update_policy_profiles": "rule:admin_only", + "get_policy_profiles": "", + "get_policy_profile": "", + + "create_metering_label": "rule:admin_only", + "delete_metering_label": "rule:admin_only", + "get_metering_label": "rule:admin_only", + + "create_metering_label_rule": "rule:admin_only", + "delete_metering_label_rule": "rule:admin_only", + "get_metering_label_rule": "rule:admin_only", + + "get_service_provider": "rule:regular_user", + "get_lsn": "rule:admin_only", + "create_lsn": "rule:admin_only", + + "create_flavor": "rule:admin_only", + "update_flavor": "rule:admin_only", + "delete_flavor": "rule:admin_only", + "get_flavors": "rule:regular_user", + "get_flavor": "rule:regular_user", + "create_service_profile": "rule:admin_only", + "update_service_profile": "rule:admin_only", + "delete_service_profile": "rule:admin_only", + "get_service_profiles": "rule:admin_only", + "get_service_profile": "rule:admin_only", + + "get_policy": "rule:regular_user", + "create_policy": "rule:admin_only", + "update_policy": "rule:admin_only", + "delete_policy": "rule:admin_only", + "get_policy_bandwidth_limit_rule": "rule:regular_user", + "create_policy_bandwidth_limit_rule": "rule:admin_only", + "delete_policy_bandwidth_limit_rule": "rule:admin_only", + "update_policy_bandwidth_limit_rule": "rule:admin_only", + "get_policy_dscp_marking_rule": "rule:regular_user", + "create_policy_dscp_marking_rule": "rule:admin_only", + "delete_policy_dscp_marking_rule": "rule:admin_only", + "update_policy_dscp_marking_rule": "rule:admin_only", + "get_rule_type": "rule:regular_user", + "get_policy_minimum_bandwidth_rule": "rule:regular_user", + "create_policy_minimum_bandwidth_rule": "rule:admin_only", + "delete_policy_minimum_bandwidth_rule": "rule:admin_only", + "update_policy_minimum_bandwidth_rule": "rule:admin_only", + + "restrict_wildcard": "(not field:rbac_policy:target_tenant=*) or rule:admin_only", + "create_rbac_policy": "", + "create_rbac_policy:target_tenant": "rule:restrict_wildcard", + "update_rbac_policy": "rule:admin_or_owner", + "update_rbac_policy:target_tenant": "rule:restrict_wildcard and rule:admin_or_owner", + "get_rbac_policy": "rule:admin_or_owner", + "delete_rbac_policy": "rule:admin_or_owner", + + "create_flavor_service_profile": "rule:admin_only", + "delete_flavor_service_profile": "rule:admin_only", + "get_flavor_service_profile": "rule:regular_user", + "get_auto_allocated_topology": "rule:admin_or_owner", + + "create_trunk": "rule:regular_user", + "get_trunk": "rule:admin_or_owner", + "delete_trunk": "rule:admin_or_owner", + "get_subports": "", + "add_subports": "rule:admin_or_owner", + "remove_subports": "rule:admin_or_owner" +} diff --git a/neutron/templates/etc/plugins/_linuxbridge_agent.ini.tpl b/neutron/templates/etc/plugins/_linuxbridge_agent.ini.tpl new file mode 100644 index 0000000000..ff5ea3638d --- /dev/null +++ b/neutron/templates/etc/plugins/_linuxbridge_agent.ini.tpl @@ -0,0 +1,207 @@ +[DEFAULT] + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +#debug = false + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +#verbose = true + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +#log_config_append = + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +#log_date_format = %Y-%m-%d %H:%M:%S + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +#log_file = + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +#log_dir = + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +#watch_log_file = false + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +#use_syslog = false + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +#syslog_log_facility = LOG_USER + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +#use_stderr = true + +# Format string to use for log messages with context. (string value) +#logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s + +# Format string to use for log messages when context is undefined. (string +# value) +#logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +#logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d + +# Prefix each line of exception output with this format. (string value) +#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +#logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO + +# Enables or disables publication of error events. (boolean value) +#publish_errors = false + +# The format for an instance that is passed with the log message. (string +# value) +#instance_format = "[instance: %(uuid)s] " + +# The format for an instance UUID that is passed with the log message. (string +# value) +#instance_uuid_format = "[instance: %(uuid)s] " + +# Enables or disables fatal status of deprecations. (boolean value) +#fatal_deprecations = false + + +[agent] + +# +# From neutron.ml2.linuxbridge.agent +# + +# The number of seconds the agent will wait between polling for local device +# changes. (integer value) +#polling_interval = 2 + +# Set new timeout in seconds for new rpc calls after agent receives SIGTERM. If +# value is set to 0, rpc timeout won't be changed (integer value) +#quitting_rpc_timeout = 10 + +# DEPRECATED: Enable suppression of ARP responses that don't match an IP +# address that belongs to the port from which they originate. Note: This +# prevents the VMs attached to this agent from spoofing, it doesn't protect +# them from other devices which have the capability to spoof (e.g. bare metal +# or VMs attached to agents without this flag set to True). Spoofing rules will +# not be added to any ports that have port security disabled. For LinuxBridge, +# this requires ebtables. For OVS, it requires a version that supports matching +# ARP headers. This option will be removed in Ocata so the only way to disable +# protection will be via the port security extension. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +#prevent_arp_spoofing = true + +# Extensions list to use (list value) +#extensions = + + +[linux_bridge] + +# +# From neutron.ml2.linuxbridge.agent +# + +# Comma-separated list of : tuples +# mapping physical network names to the agent's node-specific physical network +# interfaces to be used for flat and VLAN networks. All physical networks +# listed in network_vlan_ranges on the server should have mappings to +# appropriate interfaces on each agent. (list value) +#physical_interface_mappings = + +# List of : (list value) +#bridge_mappings = + + +[securitygroup] + +# +# From neutron.ml2.linuxbridge.agent +# + +# Driver for security groups firewall in the L2 agent (string value) +#firewall_driver = + +# Controls whether the neutron security group API is enabled in the server. It +# should be false when using no security groups or using the nova security +# group API. (boolean value) +#enable_security_group = true + +# Use ipset to speed-up the iptables based security groups. Enabling ipset +# support requires that ipset is installed on L2 agent node. (boolean value) +#enable_ipset = true + + +[vxlan] + +# +# From neutron.ml2.linuxbridge.agent +# + +# Enable VXLAN on the agent. Can be enabled when agent is managed by ml2 plugin +# using linuxbridge mechanism driver (boolean value) +#enable_vxlan = true + +# TTL for vxlan interface protocol packets. (integer value) +#ttl = + +# TOS for vxlan interface protocol packets. (integer value) +#tos = + +# Multicast group(s) for vxlan interface. A range of group addresses may be +# specified by using CIDR notation. Specifying a range allows different VNIs to +# use different group addresses, reducing or eliminating spurious broadcast +# traffic to the tunnel endpoints. To reserve a unique group for each possible +# (24-bit) VNI, use a /8 such as 239.0.0.0/8. This setting must be the same on +# all the agents. (string value) +#vxlan_group = 224.0.0.1 + +# IP address of local overlay (tunnel) network endpoint. Use either an IPv4 or +# IPv6 address that resides on one of the host network interfaces. The IP +# version of this value must match the value of the 'overlay_ip_version' option +# in the ML2 plug-in configuration file on the neutron server node(s). (IP +# address value) +#local_ip = + +# Extension to use alongside ml2 plugin's l2population mechanism driver. It +# enables the plugin to populate VXLAN forwarding table. (boolean value) +#l2_population = false + +# Enable local ARP responder which provides local responses instead of +# performing ARP broadcast into the overlay. Enabling local ARP responder is +# not fully compatible with the allowed-address-pairs extension. (boolean +# value) +#arp_responder = false diff --git a/neutron/templates/etc/plugins/_macvtap_agent.ini.tpl b/neutron/templates/etc/plugins/_macvtap_agent.ini.tpl new file mode 100644 index 0000000000..8d8720082d --- /dev/null +++ b/neutron/templates/etc/plugins/_macvtap_agent.ini.tpl @@ -0,0 +1,159 @@ +[DEFAULT] + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +#debug = false + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +#verbose = true + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +#log_config_append = + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +#log_date_format = %Y-%m-%d %H:%M:%S + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +#log_file = + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +#log_dir = + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +#watch_log_file = false + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +#use_syslog = false + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +#syslog_log_facility = LOG_USER + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +#use_stderr = true + +# Format string to use for log messages with context. (string value) +#logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s + +# Format string to use for log messages when context is undefined. (string +# value) +#logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +#logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d + +# Prefix each line of exception output with this format. (string value) +#logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +#logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +#default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO + +# Enables or disables publication of error events. (boolean value) +#publish_errors = false + +# The format for an instance that is passed with the log message. (string +# value) +#instance_format = "[instance: %(uuid)s] " + +# The format for an instance UUID that is passed with the log message. (string +# value) +#instance_uuid_format = "[instance: %(uuid)s] " + +# Enables or disables fatal status of deprecations. (boolean value) +#fatal_deprecations = false + + +[agent] + +# +# From neutron.ml2.macvtap.agent +# + +# The number of seconds the agent will wait between polling for local device +# changes. (integer value) +#polling_interval = 2 + +# Set new timeout in seconds for new rpc calls after agent receives SIGTERM. If +# value is set to 0, rpc timeout won't be changed (integer value) +#quitting_rpc_timeout = 10 + +# DEPRECATED: Enable suppression of ARP responses that don't match an IP +# address that belongs to the port from which they originate. Note: This +# prevents the VMs attached to this agent from spoofing, it doesn't protect +# them from other devices which have the capability to spoof (e.g. bare metal +# or VMs attached to agents without this flag set to True). Spoofing rules will +# not be added to any ports that have port security disabled. For LinuxBridge, +# this requires ebtables. For OVS, it requires a version that supports matching +# ARP headers. This option will be removed in Ocata so the only way to disable +# protection will be via the port security extension. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +#prevent_arp_spoofing = true + + +[macvtap] + +# +# From neutron.ml2.macvtap.agent +# + +# Comma-separated list of : tuples +# mapping physical network names to the agent's node-specific physical network +# interfaces to be used for flat and VLAN networks. All physical networks +# listed in network_vlan_ranges on the server should have mappings to +# appropriate interfaces on each agent. (list value) +#physical_interface_mappings = + + +[securitygroup] + +# +# From neutron.ml2.macvtap.agent +# + +# Driver for security groups firewall in the L2 agent (string value) +#firewall_driver = + +# Controls whether the neutron security group API is enabled in the server. It +# should be false when using no security groups or using the nova security +# group API. (boolean value) +#enable_security_group = true + +# Use ipset to speed-up the iptables based security groups. Enabling ipset +# support requires that ipset is installed on L2 agent node. (boolean value) +#enable_ipset = true diff --git a/neutron/templates/etc/plugins/_ml2_conf.ini.tpl b/neutron/templates/etc/plugins/_ml2_conf.ini.tpl new file mode 100644 index 0000000000..af4a813de9 --- /dev/null +++ b/neutron/templates/etc/plugins/_ml2_conf.ini.tpl @@ -0,0 +1,328 @@ + +# 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. + +{{ include "neutron.conf.ml2_conf_values_skeleton" .Values.conf.ml2_conf | trunc 0 }} +{{ include "neutron.conf.ml2_conf" .Values.conf.ml2_conf }} + + +{{- define "neutron.conf.ml2_conf_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .ml2 -}}{{- set . "ml2" dict -}}{{- end -}} +{{- if not .ml2.neutron -}}{{- set .ml2 "neutron" dict -}}{{- end -}} +{{- if not .ml2.neutron.ml2 -}}{{- set .ml2.neutron "ml2" dict -}}{{- end -}} +{{- if not .ml2_type_flat -}}{{- set . "ml2_type_flat" dict -}}{{- end -}} +{{- if not .ml2_type_flat.neutron -}}{{- set .ml2_type_flat "neutron" dict -}}{{- end -}} +{{- if not .ml2_type_flat.neutron.ml2 -}}{{- set .ml2_type_flat.neutron "ml2" dict -}}{{- end -}} +{{- if not .ml2_type_geneve -}}{{- set . "ml2_type_geneve" dict -}}{{- end -}} +{{- if not .ml2_type_geneve.neutron -}}{{- set .ml2_type_geneve "neutron" dict -}}{{- end -}} +{{- if not .ml2_type_geneve.neutron.ml2 -}}{{- set .ml2_type_geneve.neutron "ml2" dict -}}{{- end -}} +{{- if not .ml2_type_gre -}}{{- set . "ml2_type_gre" dict -}}{{- end -}} +{{- if not .ml2_type_gre.neutron -}}{{- set .ml2_type_gre "neutron" dict -}}{{- end -}} +{{- if not .ml2_type_gre.neutron.ml2 -}}{{- set .ml2_type_gre.neutron "ml2" dict -}}{{- end -}} +{{- if not .ml2_type_vlan -}}{{- set . "ml2_type_vlan" dict -}}{{- end -}} +{{- if not .ml2_type_vlan.neutron -}}{{- set .ml2_type_vlan "neutron" dict -}}{{- end -}} +{{- if not .ml2_type_vlan.neutron.ml2 -}}{{- set .ml2_type_vlan.neutron "ml2" dict -}}{{- end -}} +{{- if not .ml2_type_vxlan -}}{{- set . "ml2_type_vxlan" dict -}}{{- end -}} +{{- if not .ml2_type_vxlan.neutron -}}{{- set .ml2_type_vxlan "neutron" dict -}}{{- end -}} +{{- if not .ml2_type_vxlan.neutron.ml2 -}}{{- set .ml2_type_vxlan.neutron "ml2" dict -}}{{- end -}} +{{- if not .securitygroup -}}{{- set . "securitygroup" dict -}}{{- end -}} +{{- if not .securitygroup.neutron -}}{{- set .securitygroup "neutron" dict -}}{{- end -}} +{{- if not .securitygroup.neutron.ml2 -}}{{- set .securitygroup.neutron "ml2" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.ml2_conf" -}} + +[DEFAULT] + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + + +[ml2] + +# +# From neutron.ml2 +# + +# List of network type driver entrypoints to be loaded from the +# neutron.ml2.type_drivers namespace. (list value) +# from .ml2.neutron.ml2.type_drivers +{{ if not .ml2.neutron.ml2.type_drivers }}#{{ end }}type_drivers = {{ .ml2.neutron.ml2.type_drivers | default "local,flat,vlan,gre,vxlan,geneve" }} + +# Ordered list of network_types to allocate as tenant networks. The default +# value 'local' is useful for single-box testing but provides no connectivity +# between hosts. (list value) +# from .ml2.neutron.ml2.tenant_network_types +{{ if not .ml2.neutron.ml2.tenant_network_types }}#{{ end }}tenant_network_types = {{ .ml2.neutron.ml2.tenant_network_types | default "local" }} + +# An ordered list of networking mechanism driver entrypoints to be loaded from +# the neutron.ml2.mechanism_drivers namespace. (list value) +# from .ml2.neutron.ml2.mechanism_drivers +{{ if not .ml2.neutron.ml2.mechanism_drivers }}#{{ end }}mechanism_drivers = {{ .ml2.neutron.ml2.mechanism_drivers | default "" }} + +# An ordered list of extension driver entrypoints to be loaded from the +# neutron.ml2.extension_drivers namespace. For example: extension_drivers = +# port_security,qos (list value) +# from .ml2.neutron.ml2.extension_drivers +{{ if not .ml2.neutron.ml2.extension_drivers }}#{{ end }}extension_drivers = {{ .ml2.neutron.ml2.extension_drivers | default "" }} + +# Maximum size of an IP packet (MTU) that can traverse the underlying physical +# network infrastructure without fragmentation when using an overlay/tunnel +# protocol. This option allows specifying a physical network MTU value that +# differs from the default global_physnet_mtu value. (integer value) +# from .ml2.neutron.ml2.path_mtu +{{ if not .ml2.neutron.ml2.path_mtu }}#{{ end }}path_mtu = {{ .ml2.neutron.ml2.path_mtu | default "0" }} + +# A list of mappings of physical networks to MTU values. The format of the +# mapping is :. This mapping allows specifying a physical +# network MTU value that differs from the default global_physnet_mtu value. +# (list value) +# from .ml2.neutron.ml2.physical_network_mtus +{{ if not .ml2.neutron.ml2.physical_network_mtus }}#{{ end }}physical_network_mtus = {{ .ml2.neutron.ml2.physical_network_mtus | default "" }} + +# Default network type for external networks when no provider attributes are +# specified. By default it is None, which means that if provider attributes are +# not specified while creating external networks then they will have the same +# type as tenant networks. Allowed values for external_network_type config +# option depend on the network type values configured in type_drivers config +# option. (string value) +# from .ml2.neutron.ml2.external_network_type +{{ if not .ml2.neutron.ml2.external_network_type }}#{{ end }}external_network_type = {{ .ml2.neutron.ml2.external_network_type | default "" }} + +# IP version of all overlay (tunnel) network endpoints. Use a value of 4 for +# IPv4 or 6 for IPv6. (integer value) +# from .ml2.neutron.ml2.overlay_ip_version +{{ if not .ml2.neutron.ml2.overlay_ip_version }}#{{ end }}overlay_ip_version = {{ .ml2.neutron.ml2.overlay_ip_version | default "4" }} + + +[ml2_type_flat] + +# +# From neutron.ml2 +# + +# List of physical_network names with which flat networks can be created. Use +# default '*' to allow flat networks with arbitrary physical_network names. Use +# an empty list to disable flat networks. (list value) +# from .ml2_type_flat.neutron.ml2.flat_networks +{{ if not .ml2_type_flat.neutron.ml2.flat_networks }}#{{ end }}flat_networks = {{ .ml2_type_flat.neutron.ml2.flat_networks | default "*" }} + + +[ml2_type_geneve] + +# +# From neutron.ml2 +# + +# Comma-separated list of : tuples enumerating ranges of +# Geneve VNI IDs that are available for tenant network allocation (list value) +# from .ml2_type_geneve.neutron.ml2.vni_ranges +{{ if not .ml2_type_geneve.neutron.ml2.vni_ranges }}#{{ end }}vni_ranges = {{ .ml2_type_geneve.neutron.ml2.vni_ranges | default "" }} + +# Geneve encapsulation header size is dynamic, this value is used to calculate +# the maximum MTU for the driver. This is the sum of the sizes of the outer ETH +# + IP + UDP + GENEVE header sizes. The default size for this field is 50, +# which is the size of the Geneve header without any additional option headers. +# (integer value) +# from .ml2_type_geneve.neutron.ml2.max_header_size +{{ if not .ml2_type_geneve.neutron.ml2.max_header_size }}#{{ end }}max_header_size = {{ .ml2_type_geneve.neutron.ml2.max_header_size | default "30" }} + + +[ml2_type_gre] + +# +# From neutron.ml2 +# + +# Comma-separated list of : tuples enumerating ranges of GRE +# tunnel IDs that are available for tenant network allocation (list value) +# from .ml2_type_gre.neutron.ml2.tunnel_id_ranges +{{ if not .ml2_type_gre.neutron.ml2.tunnel_id_ranges }}#{{ end }}tunnel_id_ranges = {{ .ml2_type_gre.neutron.ml2.tunnel_id_ranges | default "" }} + + +[ml2_type_vlan] + +# +# From neutron.ml2 +# + +# List of :: or +# specifying physical_network names usable for VLAN provider and tenant +# networks, as well as ranges of VLAN tags on each available for allocation to +# tenant networks. (list value) +# from .ml2_type_vlan.neutron.ml2.network_vlan_ranges +{{ if not .ml2_type_vlan.neutron.ml2.network_vlan_ranges }}#{{ end }}network_vlan_ranges = {{ .ml2_type_vlan.neutron.ml2.network_vlan_ranges | default "" }} + + +[ml2_type_vxlan] + +# +# From neutron.ml2 +# + +# Comma-separated list of : tuples enumerating ranges of +# VXLAN VNI IDs that are available for tenant network allocation (list value) +# from .ml2_type_vxlan.neutron.ml2.vni_ranges +{{ if not .ml2_type_vxlan.neutron.ml2.vni_ranges }}#{{ end }}vni_ranges = {{ .ml2_type_vxlan.neutron.ml2.vni_ranges | default "" }} + +# Multicast group for VXLAN. When configured, will enable sending all broadcast +# traffic to this multicast group. When left unconfigured, will disable +# multicast VXLAN mode. (string value) +# from .ml2_type_vxlan.neutron.ml2.vxlan_group +{{ if not .ml2_type_vxlan.neutron.ml2.vxlan_group }}#{{ end }}vxlan_group = {{ .ml2_type_vxlan.neutron.ml2.vxlan_group | default "" }} + + +[securitygroup] + +# +# From neutron.ml2 +# + +# Driver for security groups firewall in the L2 agent (string value) +# from .securitygroup.neutron.ml2.firewall_driver +{{ if not .securitygroup.neutron.ml2.firewall_driver }}#{{ end }}firewall_driver = {{ .securitygroup.neutron.ml2.firewall_driver | default "" }} + +# Controls whether the neutron security group API is enabled in the server. It +# should be false when using no security groups or using the nova security +# group API. (boolean value) +# from .securitygroup.neutron.ml2.enable_security_group +{{ if not .securitygroup.neutron.ml2.enable_security_group }}#{{ end }}enable_security_group = {{ .securitygroup.neutron.ml2.enable_security_group | default "true" }} + +# Use ipset to speed-up the iptables based security groups. Enabling ipset +# support requires that ipset is installed on L2 agent node. (boolean value) +# from .securitygroup.neutron.ml2.enable_ipset +{{ if not .securitygroup.neutron.ml2.enable_ipset }}#{{ end }}enable_ipset = {{ .securitygroup.neutron.ml2.enable_ipset | default "true" }} + +{{- end -}} + diff --git a/neutron/templates/etc/plugins/_ml2_conf_sriov.ini.tpl b/neutron/templates/etc/plugins/_ml2_conf_sriov.ini.tpl new file mode 100644 index 0000000000..e6e657a57a --- /dev/null +++ b/neutron/templates/etc/plugins/_ml2_conf_sriov.ini.tpl @@ -0,0 +1,172 @@ + +# 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. + +{{ include "neutron.conf.ml2_conf_sriov_values_skeleton" .Values.conf.ml2_conf_sriov | trunc 0 }} +{{ include "neutron.conf.ml2_conf_sriov" .Values.conf.ml2_conf_sriov }} + + +{{- define "neutron.conf.ml2_conf_sriov_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .ml2_sriov -}}{{- set . "ml2_sriov" dict -}}{{- end -}} +{{- if not .ml2_sriov.neutron -}}{{- set .ml2_sriov "neutron" dict -}}{{- end -}} +{{- if not .ml2_sriov.neutron.ml2 -}}{{- set .ml2_sriov.neutron "ml2" dict -}}{{- end -}} +{{- if not .ml2_sriov.neutron.ml2.sriov -}}{{- set .ml2_sriov.neutron.ml2 "sriov" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.ml2_conf_sriov" -}} + +[DEFAULT] + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + + +[ml2_sriov] + +# +# From neutron.ml2.sriov +# + +# DEPRECATED: Comma-separated list of supported PCI vendor devices, as defined +# by vendor_id:product_id according to the PCI ID Repository. Default None +# accept all PCI vendor devicesDEPRECATED: This option is deprecated in the +# Newton release and will be removed in the Ocata release. Starting from Ocata +# the mechanism driver will accept all PCI vendor devices. (list value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .ml2_sriov.neutron.ml2.sriov.supported_pci_vendor_devs +{{ if not .ml2_sriov.neutron.ml2.sriov.supported_pci_vendor_devs }}#{{ end }}supported_pci_vendor_devs = {{ .ml2_sriov.neutron.ml2.sriov.supported_pci_vendor_devs | default "" }} + +{{- end -}} + diff --git a/neutron/templates/etc/plugins/_openvswitch_agent.ini.tpl b/neutron/templates/etc/plugins/_openvswitch_agent.ini.tpl new file mode 100644 index 0000000000..487a857ae9 --- /dev/null +++ b/neutron/templates/etc/plugins/_openvswitch_agent.ini.tpl @@ -0,0 +1,383 @@ + +# 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. + +{{ include "neutron.conf.openvswitch_agent_values_skeleton" .Values.conf.openvswitch_agent | trunc 0 }} +{{ include "neutron.conf.openvswitch_agent" .Values.conf.openvswitch_agent }} + + +{{- define "neutron.conf.openvswitch_agent_values_skeleton" -}} + +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .agent -}}{{- set . "agent" dict -}}{{- end -}} +{{- if not .agent.neutron -}}{{- set .agent "neutron" dict -}}{{- end -}} +{{- if not .agent.neutron.ml2 -}}{{- set .agent.neutron "ml2" dict -}}{{- end -}} +{{- if not .agent.neutron.ml2.ovs -}}{{- set .agent.neutron.ml2 "ovs" dict -}}{{- end -}} +{{- if not .agent.neutron.ml2.ovs.agent -}}{{- set .agent.neutron.ml2.ovs "agent" dict -}}{{- end -}} +{{- if not .ovs -}}{{- set . "ovs" dict -}}{{- end -}} +{{- if not .ovs.neutron -}}{{- set .ovs "neutron" dict -}}{{- end -}} +{{- if not .ovs.neutron.ml2 -}}{{- set .ovs.neutron "ml2" dict -}}{{- end -}} +{{- if not .ovs.neutron.ml2.ovs -}}{{- set .ovs.neutron.ml2 "ovs" dict -}}{{- end -}} +{{- if not .ovs.neutron.ml2.ovs.agent -}}{{- set .ovs.neutron.ml2.ovs "agent" dict -}}{{- end -}} +{{- if not .securitygroup -}}{{- set . "securitygroup" dict -}}{{- end -}} +{{- if not .securitygroup.neutron -}}{{- set .securitygroup "neutron" dict -}}{{- end -}} +{{- if not .securitygroup.neutron.ml2 -}}{{- set .securitygroup.neutron "ml2" dict -}}{{- end -}} +{{- if not .securitygroup.neutron.ml2.ovs -}}{{- set .securitygroup.neutron.ml2 "ovs" dict -}}{{- end -}} +{{- if not .securitygroup.neutron.ml2.ovs.agent -}}{{- set .securitygroup.neutron.ml2.ovs "agent" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.openvswitch_agent" -}} + +[DEFAULT] + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + + +[agent] + +# +# From neutron.ml2.ovs.agent +# + +# The number of seconds the agent will wait between polling for local device +# changes. (integer value) +# from .agent.neutron.ml2.ovs.agent.polling_interval +{{ if not .agent.neutron.ml2.ovs.agent.polling_interval }}#{{ end }}polling_interval = {{ .agent.neutron.ml2.ovs.agent.polling_interval | default "2" }} + +# Minimize polling by monitoring ovsdb for interface changes. (boolean value) +# from .agent.neutron.ml2.ovs.agent.minimize_polling +{{ if not .agent.neutron.ml2.ovs.agent.minimize_polling }}#{{ end }}minimize_polling = {{ .agent.neutron.ml2.ovs.agent.minimize_polling | default "true" }} + +# The number of seconds to wait before respawning the ovsdb monitor after +# losing communication with it. (integer value) +# from .agent.neutron.ml2.ovs.agent.ovsdb_monitor_respawn_interval +{{ if not .agent.neutron.ml2.ovs.agent.ovsdb_monitor_respawn_interval }}#{{ end }}ovsdb_monitor_respawn_interval = {{ .agent.neutron.ml2.ovs.agent.ovsdb_monitor_respawn_interval | default "30" }} + +# Network types supported by the agent (gre and/or vxlan). (list value) +# from .agent.neutron.ml2.ovs.agent.tunnel_types +{{ if not .agent.neutron.ml2.ovs.agent.tunnel_types }}#{{ end }}tunnel_types = {{ .agent.neutron.ml2.ovs.agent.tunnel_types | default "" }} + +# The UDP port to use for VXLAN tunnels. (port value) +# Minimum value: 0 +# Maximum value: 65535 +# from .agent.neutron.ml2.ovs.agent.vxlan_udp_port +{{ if not .agent.neutron.ml2.ovs.agent.vxlan_udp_port }}#{{ end }}vxlan_udp_port = {{ .agent.neutron.ml2.ovs.agent.vxlan_udp_port | default "4789" }} + +# MTU size of veth interfaces (integer value) +# from .agent.neutron.ml2.ovs.agent.veth_mtu +{{ if not .agent.neutron.ml2.ovs.agent.veth_mtu }}#{{ end }}veth_mtu = {{ .agent.neutron.ml2.ovs.agent.veth_mtu | default "9000" }} + +# Use ML2 l2population mechanism driver to learn remote MAC and IPs and improve +# tunnel scalability. (boolean value) +# from .agent.neutron.ml2.ovs.agent.l2_population +{{ if not .agent.neutron.ml2.ovs.agent.l2_population }}#{{ end }}l2_population = {{ .agent.neutron.ml2.ovs.agent.l2_population | default "false" }} + +# Enable local ARP responder if it is supported. Requires OVS 2.1 and ML2 +# l2population driver. Allows the switch (when supporting an overlay) to +# respond to an ARP request locally without performing a costly ARP broadcast +# into the overlay. (boolean value) +# from .agent.neutron.ml2.ovs.agent.arp_responder +{{ if not .agent.neutron.ml2.ovs.agent.arp_responder }}#{{ end }}arp_responder = {{ .agent.neutron.ml2.ovs.agent.arp_responder | default "false" }} + +# DEPRECATED: Enable suppression of ARP responses that don't match an IP +# address that belongs to the port from which they originate. Note: This +# prevents the VMs attached to this agent from spoofing, it doesn't protect +# them from other devices which have the capability to spoof (e.g. bare metal +# or VMs attached to agents without this flag set to True). Spoofing rules will +# not be added to any ports that have port security disabled. For LinuxBridge, +# this requires ebtables. For OVS, it requires a version that supports matching +# ARP headers. This option will be removed in Ocata so the only way to disable +# protection will be via the port security extension. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .agent.neutron.ml2.ovs.agent.prevent_arp_spoofing +{{ if not .agent.neutron.ml2.ovs.agent.prevent_arp_spoofing }}#{{ end }}prevent_arp_spoofing = {{ .agent.neutron.ml2.ovs.agent.prevent_arp_spoofing | default "true" }} + +# Set or un-set the don't fragment (DF) bit on outgoing IP packet carrying +# GRE/VXLAN tunnel. (boolean value) +# from .agent.neutron.ml2.ovs.agent.dont_fragment +{{ if not .agent.neutron.ml2.ovs.agent.dont_fragment }}#{{ end }}dont_fragment = {{ .agent.neutron.ml2.ovs.agent.dont_fragment | default "true" }} + +# Make the l2 agent run in DVR mode. (boolean value) +# from .agent.neutron.ml2.ovs.agent.enable_distributed_routing +{{ if not .agent.neutron.ml2.ovs.agent.enable_distributed_routing }}#{{ end }}enable_distributed_routing = {{ .agent.neutron.ml2.ovs.agent.enable_distributed_routing | default "false" }} + +# Set new timeout in seconds for new rpc calls after agent receives SIGTERM. If +# value is set to 0, rpc timeout won't be changed (integer value) +# from .agent.neutron.ml2.ovs.agent.quitting_rpc_timeout +{{ if not .agent.neutron.ml2.ovs.agent.quitting_rpc_timeout }}#{{ end }}quitting_rpc_timeout = {{ .agent.neutron.ml2.ovs.agent.quitting_rpc_timeout | default "10" }} + +# Reset flow table on start. Setting this to True will cause brief traffic +# interruption. (boolean value) +# from .agent.neutron.ml2.ovs.agent.drop_flows_on_start +{{ if not .agent.neutron.ml2.ovs.agent.drop_flows_on_start }}#{{ end }}drop_flows_on_start = {{ .agent.neutron.ml2.ovs.agent.drop_flows_on_start | default "false" }} + +# Set or un-set the tunnel header checksum on outgoing IP packet carrying +# GRE/VXLAN tunnel. (boolean value) +# from .agent.neutron.ml2.ovs.agent.tunnel_csum +{{ if not .agent.neutron.ml2.ovs.agent.tunnel_csum }}#{{ end }}tunnel_csum = {{ .agent.neutron.ml2.ovs.agent.tunnel_csum | default "false" }} + +# DEPRECATED: Selects the Agent Type reported (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .agent.neutron.ml2.ovs.agent.agent_type +{{ if not .agent.neutron.ml2.ovs.agent.agent_type }}#{{ end }}agent_type = {{ .agent.neutron.ml2.ovs.agent.agent_type | default "Open vSwitch agent" }} + +# Extensions list to use (list value) +# from .agent.neutron.ml2.ovs.agent.extensions +{{ if not .agent.neutron.ml2.ovs.agent.extensions }}#{{ end }}extensions = {{ .agent.neutron.ml2.ovs.agent.extensions | default "" }} + + +[ovs] + +# +# From neutron.ml2.ovs.agent +# + +# Integration bridge to use. Do not change this parameter unless you have a +# good reason to. This is the name of the OVS integration bridge. There is one +# per hypervisor. The integration bridge acts as a virtual 'patch bay'. All VM +# VIFs are attached to this bridge and then 'patched' according to their +# network connectivity. (string value) +# from .ovs.neutron.ml2.ovs.agent.integration_bridge +{{ if not .ovs.neutron.ml2.ovs.agent.integration_bridge }}#{{ end }}integration_bridge = {{ .ovs.neutron.ml2.ovs.agent.integration_bridge | default "br-int" }} + +# Tunnel bridge to use. (string value) +# from .ovs.neutron.ml2.ovs.agent.tunnel_bridge +{{ if not .ovs.neutron.ml2.ovs.agent.tunnel_bridge }}#{{ end }}tunnel_bridge = {{ .ovs.neutron.ml2.ovs.agent.tunnel_bridge | default "br-tun" }} + +# Peer patch port in integration bridge for tunnel bridge. (string value) +# from .ovs.neutron.ml2.ovs.agent.int_peer_patch_port +{{ if not .ovs.neutron.ml2.ovs.agent.int_peer_patch_port }}#{{ end }}int_peer_patch_port = {{ .ovs.neutron.ml2.ovs.agent.int_peer_patch_port | default "patch-tun" }} + +# Peer patch port in tunnel bridge for integration bridge. (string value) +# from .ovs.neutron.ml2.ovs.agent.tun_peer_patch_port +{{ if not .ovs.neutron.ml2.ovs.agent.tun_peer_patch_port }}#{{ end }}tun_peer_patch_port = {{ .ovs.neutron.ml2.ovs.agent.tun_peer_patch_port | default "patch-int" }} + +# IP address of local overlay (tunnel) network endpoint. Use either an IPv4 or +# IPv6 address that resides on one of the host network interfaces. The IP +# version of this value must match the value of the 'overlay_ip_version' option +# in the ML2 plug-in configuration file on the neutron server node(s). (IP +# address value) +# from .ovs.neutron.ml2.ovs.agent.local_ip +{{ if not .ovs.neutron.ml2.ovs.agent.local_ip }}#{{ end }}local_ip = {{ .ovs.neutron.ml2.ovs.agent.local_ip | default "" }} + +# Comma-separated list of : tuples mapping physical +# network names to the agent's node-specific Open vSwitch bridge names to be +# used for flat and VLAN networks. The length of bridge names should be no more +# than 11. Each bridge must exist, and should have a physical network interface +# configured as a port. All physical networks configured on the server should +# have mappings to appropriate bridges on each agent. Note: If you remove a +# bridge from this mapping, make sure to disconnect it from the integration +# bridge as it won't be managed by the agent anymore. (list value) +# from .ovs.neutron.ml2.ovs.agent.bridge_mappings +{{ if not .ovs.neutron.ml2.ovs.agent.bridge_mappings }}#{{ end }}bridge_mappings = {{ .ovs.neutron.ml2.ovs.agent.bridge_mappings | default "" }} + +# Use veths instead of patch ports to interconnect the integration bridge to +# physical networks. Support kernel without Open vSwitch patch port support so +# long as it is set to True. (boolean value) +# from .ovs.neutron.ml2.ovs.agent.use_veth_interconnection +{{ if not .ovs.neutron.ml2.ovs.agent.use_veth_interconnection }}#{{ end }}use_veth_interconnection = {{ .ovs.neutron.ml2.ovs.agent.use_veth_interconnection | default "false" }} + +# OpenFlow interface to use. (string value) +# Allowed values: ovs-ofctl, native +# from .ovs.neutron.ml2.ovs.agent.of_interface +{{ if not .ovs.neutron.ml2.ovs.agent.of_interface }}#{{ end }}of_interface = {{ .ovs.neutron.ml2.ovs.agent.of_interface | default "native" }} + +# OVS datapath to use. 'system' is the default value and corresponds to the +# kernel datapath. To enable the userspace datapath set this value to 'netdev'. +# (string value) +# Allowed values: system, netdev +# from .ovs.neutron.ml2.ovs.agent.datapath_type +{{ if not .ovs.neutron.ml2.ovs.agent.datapath_type }}#{{ end }}datapath_type = {{ .ovs.neutron.ml2.ovs.agent.datapath_type | default "system" }} + +# OVS vhost-user socket directory. (string value) +# from .ovs.neutron.ml2.ovs.agent.vhostuser_socket_dir +{{ if not .ovs.neutron.ml2.ovs.agent.vhostuser_socket_dir }}#{{ end }}vhostuser_socket_dir = {{ .ovs.neutron.ml2.ovs.agent.vhostuser_socket_dir | default "/var/run/openvswitch" }} + +# Address to listen on for OpenFlow connections. Used only for 'native' driver. +# (IP address value) +# from .ovs.neutron.ml2.ovs.agent.of_listen_address +{{ if not .ovs.neutron.ml2.ovs.agent.of_listen_address }}#{{ end }}of_listen_address = {{ .ovs.neutron.ml2.ovs.agent.of_listen_address | default "127.0.0.1" }} + +# Port to listen on for OpenFlow connections. Used only for 'native' driver. +# (port value) +# Minimum value: 0 +# Maximum value: 65535 +# from .ovs.neutron.ml2.ovs.agent.of_listen_port +{{ if not .ovs.neutron.ml2.ovs.agent.of_listen_port }}#{{ end }}of_listen_port = {{ .ovs.neutron.ml2.ovs.agent.of_listen_port | default "6633" }} + +# Timeout in seconds to wait for the local switch connecting the controller. +# Used only for 'native' driver. (integer value) +# from .ovs.neutron.ml2.ovs.agent.of_connect_timeout +{{ if not .ovs.neutron.ml2.ovs.agent.of_connect_timeout }}#{{ end }}of_connect_timeout = {{ .ovs.neutron.ml2.ovs.agent.of_connect_timeout | default "30" }} + +# Timeout in seconds to wait for a single OpenFlow request. Used only for +# 'native' driver. (integer value) +# from .ovs.neutron.ml2.ovs.agent.of_request_timeout +{{ if not .ovs.neutron.ml2.ovs.agent.of_request_timeout }}#{{ end }}of_request_timeout = {{ .ovs.neutron.ml2.ovs.agent.of_request_timeout | default "10" }} + +# The interface for interacting with the OVSDB (string value) +# Allowed values: native, vsctl +# from .ovs.neutron.ml2.ovs.agent.ovsdb_interface +{{ if not .ovs.neutron.ml2.ovs.agent.ovsdb_interface }}#{{ end }}ovsdb_interface = {{ .ovs.neutron.ml2.ovs.agent.ovsdb_interface | default "native" }} + +# The connection string for the native OVSDB backend. Requires the native +# ovsdb_interface to be enabled. (string value) +# from .ovs.neutron.ml2.ovs.agent.ovsdb_connection +{{ if not .ovs.neutron.ml2.ovs.agent.ovsdb_connection }}#{{ end }}ovsdb_connection = {{ .ovs.neutron.ml2.ovs.agent.ovsdb_connection | default "tcp:127.0.0.1:6640" }} + + +[securitygroup] + +# +# From neutron.ml2.ovs.agent +# + +# Driver for security groups firewall in the L2 agent (string value) +# from .securitygroup.neutron.ml2.ovs.agent.firewall_driver +{{ if not .securitygroup.neutron.ml2.ovs.agent.firewall_driver }}#{{ end }}firewall_driver = {{ .securitygroup.neutron.ml2.ovs.agent.firewall_driver | default "" }} + +# Controls whether the neutron security group API is enabled in the server. It +# should be false when using no security groups or using the nova security +# group API. (boolean value) +# from .securitygroup.neutron.ml2.ovs.agent.enable_security_group +{{ if not .securitygroup.neutron.ml2.ovs.agent.enable_security_group }}#{{ end }}enable_security_group = {{ .securitygroup.neutron.ml2.ovs.agent.enable_security_group | default "true" }} + +# Use ipset to speed-up the iptables based security groups. Enabling ipset +# support requires that ipset is installed on L2 agent node. (boolean value) +# from .securitygroup.neutron.ml2.ovs.agent.enable_ipset +{{ if not .securitygroup.neutron.ml2.ovs.agent.enable_ipset }}#{{ end }}enable_ipset = {{ .securitygroup.neutron.ml2.ovs.agent.enable_ipset | default "true" }} + +{{- end -}} + diff --git a/neutron/templates/etc/plugins/_sriov_agent.ini.tpl b/neutron/templates/etc/plugins/_sriov_agent.ini.tpl new file mode 100644 index 0000000000..c2a5db047c --- /dev/null +++ b/neutron/templates/etc/plugins/_sriov_agent.ini.tpl @@ -0,0 +1,196 @@ + +# 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. + +{{ include "neutron.conf.sriov_agent_values_skeleton" .Values.conf.sriov_agent | trunc 0 }} +{{ include "neutron.conf.sriov_agent" .Values.conf.sriov_agent }} + + +{{- define "neutron.conf.sriov_agent_values_skeleton" -}} +{{- if not .default -}}{{- set . "default" dict -}}{{- end -}} +{{- if not .default.oslo -}}{{- set .default "oslo" dict -}}{{- end -}} +{{- if not .default.oslo.log -}}{{- set .default.oslo "log" dict -}}{{- end -}} +{{- if not .agent -}}{{- set . "agent" dict -}}{{- end -}} +{{- if not .agent.neutron -}}{{- set .agent "neutron" dict -}}{{- end -}} +{{- if not .agent.neutron.ml2 -}}{{- set .agent.neutron "ml2" dict -}}{{- end -}} +{{- if not .agent.neutron.ml2.sriov -}}{{- set .agent.neutron.ml2 "sriov" dict -}}{{- end -}} +{{- if not .agent.neutron.ml2.sriov.agent -}}{{- set .agent.neutron.ml2.sriov "agent" dict -}}{{- end -}} +{{- if not .agent.neutron.ml2.agent -}}{{- set .agent.neutron.ml2 "agent" dict -}}{{- end -}} +{{- if not .sriov_nic -}}{{- set . "sriov_nic" dict -}}{{- end -}} +{{- if not .sriov_nic.neutron -}}{{- set .sriov_nic "neutron" dict -}}{{- end -}} +{{- if not .sriov_nic.neutron.ml2 -}}{{- set .sriov_nic.neutron "ml2" dict -}}{{- end -}} +{{- if not .sriov_nic.neutron.ml2.sriov -}}{{- set .sriov_nic.neutron.ml2 "sriov" dict -}}{{- end -}} +{{- if not .sriov_nic.neutron.ml2.sriov.agent -}}{{- set .sriov_nic.neutron.ml2.sriov "agent" dict -}}{{- end -}} + +{{- end -}} + + +{{- define "neutron.conf.sriov_agent" -}} + +[DEFAULT] + +# +# From oslo.log +# + +# If set to true, the logging level will be set to DEBUG instead of the default +# INFO level. (boolean value) +# Note: This option can be changed without restarting. +# from .default.oslo.log.debug +{{ if not .default.oslo.log.debug }}#{{ end }}debug = {{ .default.oslo.log.debug | default "false" }} + +# DEPRECATED: If set to false, the logging level will be set to WARNING instead +# of the default INFO level. (boolean value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +# from .default.oslo.log.verbose +{{ if not .default.oslo.log.verbose }}#{{ end }}verbose = {{ .default.oslo.log.verbose | default "true" }} + +# The name of a logging configuration file. This file is appended to any +# existing logging configuration files. For details about logging configuration +# files, see the Python logging module documentation. Note that when logging +# configuration files are used then all logging configuration is set in the +# configuration file and other logging configuration options are ignored (for +# example, logging_context_format_string). (string value) +# Note: This option can be changed without restarting. +# Deprecated group/name - [DEFAULT]/log_config +# from .default.oslo.log.log_config_append +{{ if not .default.oslo.log.log_config_append }}#{{ end }}log_config_append = {{ .default.oslo.log.log_config_append | default "" }} + +# Defines the format string for %%(asctime)s in log records. Default: +# %(default)s . This option is ignored if log_config_append is set. (string +# value) +# from .default.oslo.log.log_date_format +{{ if not .default.oslo.log.log_date_format }}#{{ end }}log_date_format = {{ .default.oslo.log.log_date_format | default "%Y-%m-%d %H:%M:%S" }} + +# (Optional) Name of log file to send logging output to. If no default is set, +# logging will go to stderr as defined by use_stderr. This option is ignored if +# log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logfile +# from .default.oslo.log.log_file +{{ if not .default.oslo.log.log_file }}#{{ end }}log_file = {{ .default.oslo.log.log_file | default "" }} + +# (Optional) The base directory used for relative log_file paths. This option +# is ignored if log_config_append is set. (string value) +# Deprecated group/name - [DEFAULT]/logdir +# from .default.oslo.log.log_dir +{{ if not .default.oslo.log.log_dir }}#{{ end }}log_dir = {{ .default.oslo.log.log_dir | default "" }} + +# Uses logging handler designed to watch file system. When log file is moved or +# removed this handler will open a new log file with specified path +# instantaneously. It makes sense only if log_file option is specified and +# Linux platform is used. This option is ignored if log_config_append is set. +# (boolean value) +# from .default.oslo.log.watch_log_file +{{ if not .default.oslo.log.watch_log_file }}#{{ end }}watch_log_file = {{ .default.oslo.log.watch_log_file | default "false" }} + +# Use syslog for logging. Existing syslog format is DEPRECATED and will be +# changed later to honor RFC5424. This option is ignored if log_config_append +# is set. (boolean value) +# from .default.oslo.log.use_syslog +{{ if not .default.oslo.log.use_syslog }}#{{ end }}use_syslog = {{ .default.oslo.log.use_syslog | default "false" }} + +# Syslog facility to receive log lines. This option is ignored if +# log_config_append is set. (string value) +# from .default.oslo.log.syslog_log_facility +{{ if not .default.oslo.log.syslog_log_facility }}#{{ end }}syslog_log_facility = {{ .default.oslo.log.syslog_log_facility | default "LOG_USER" }} + +# Log output to standard error. This option is ignored if log_config_append is +# set. (boolean value) +# from .default.oslo.log.use_stderr +{{ if not .default.oslo.log.use_stderr }}#{{ end }}use_stderr = {{ .default.oslo.log.use_stderr | default "true" }} + +# Format string to use for log messages with context. (string value) +# from .default.oslo.log.logging_context_format_string +{{ if not .default.oslo.log.logging_context_format_string }}#{{ end }}logging_context_format_string = {{ .default.oslo.log.logging_context_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s" }} + +# Format string to use for log messages when context is undefined. (string +# value) +# from .default.oslo.log.logging_default_format_string +{{ if not .default.oslo.log.logging_default_format_string }}#{{ end }}logging_default_format_string = {{ .default.oslo.log.logging_default_format_string | default "%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s" }} + +# Additional data to append to log message when logging level for the message +# is DEBUG. (string value) +# from .default.oslo.log.logging_debug_format_suffix +{{ if not .default.oslo.log.logging_debug_format_suffix }}#{{ end }}logging_debug_format_suffix = {{ .default.oslo.log.logging_debug_format_suffix | default "%(funcName)s %(pathname)s:%(lineno)d" }} + +# Prefix each line of exception output with this format. (string value) +# from .default.oslo.log.logging_exception_prefix +{{ if not .default.oslo.log.logging_exception_prefix }}#{{ end }}logging_exception_prefix = {{ .default.oslo.log.logging_exception_prefix | default "%(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s" }} + +# Defines the format string for %(user_identity)s that is used in +# logging_context_format_string. (string value) +# from .default.oslo.log.logging_user_identity_format +{{ if not .default.oslo.log.logging_user_identity_format }}#{{ end }}logging_user_identity_format = {{ .default.oslo.log.logging_user_identity_format | default "%(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s" }} + +# List of package logging levels in logger=LEVEL pairs. This option is ignored +# if log_config_append is set. (list value) +# from .default.oslo.log.default_log_levels +{{ if not .default.oslo.log.default_log_levels }}#{{ end }}default_log_levels = {{ .default.oslo.log.default_log_levels | default "amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO" }} + +# Enables or disables publication of error events. (boolean value) +# from .default.oslo.log.publish_errors +{{ if not .default.oslo.log.publish_errors }}#{{ end }}publish_errors = {{ .default.oslo.log.publish_errors | default "false" }} + +# The format for an instance that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_format +{{ if not .default.oslo.log.instance_format }}#{{ end }}instance_format = {{ .default.oslo.log.instance_format | default "\"[instance: %(uuid)s] \"" }} + +# The format for an instance UUID that is passed with the log message. (string +# value) +# from .default.oslo.log.instance_uuid_format +{{ if not .default.oslo.log.instance_uuid_format }}#{{ end }}instance_uuid_format = {{ .default.oslo.log.instance_uuid_format | default "\"[instance: %(uuid)s] \"" }} + +# Enables or disables fatal status of deprecations. (boolean value) +# from .default.oslo.log.fatal_deprecations +{{ if not .default.oslo.log.fatal_deprecations }}#{{ end }}fatal_deprecations = {{ .default.oslo.log.fatal_deprecations | default "false" }} + + +[agent] + +# +# From neutron.ml2.sriov.agent +# + +# Extensions list to use (list value) +# from .agent.neutron.ml2.sriov.agent.extensions +{{ if not .agent.neutron.ml2.sriov.agent.extensions }}#{{ end }}extensions = {{ .agent.neutron.ml2.sriov.agent.extensions | default "" }} + + +[sriov_nic] + +# +# From neutron.ml2.sriov.agent +# + +# Comma-separated list of : tuples mapping +# physical network names to the agent's node-specific physical network device +# interfaces of SR-IOV physical function to be used for VLAN networks. All +# physical networks listed in network_vlan_ranges on the server should have +# mappings to appropriate interfaces on each agent. (list value) +# from .sriov_nic.neutron.ml2.sriov.agent.physical_device_mappings +{{ if not .sriov_nic.neutron.ml2.sriov.agent.physical_device_mappings }}#{{ end }}physical_device_mappings = {{ .sriov_nic.neutron.ml2.sriov.agent.physical_device_mappings | default "" }} + +# Comma-separated list of : tuples, mapping +# network_device to the agent's node-specific list of virtual functions that +# should not be used for virtual networking. vfs_to_exclude is a semicolon- +# separated list of virtual functions to exclude from network_device. The +# network_device in the mapping should appear in the physical_device_mappings +# list. (list value) +# from .sriov_nic.neutron.ml2.sriov.agent.exclude_devices +{{ if not .sriov_nic.neutron.ml2.sriov.agent.exclude_devices }}#{{ end }}exclude_devices = {{ .sriov_nic.neutron.ml2.sriov.agent.exclude_devices | default "" }} + +{{- end -}} + diff --git a/neutron/templates/job-db-sync.yaml b/neutron/templates/job-db-sync.yaml index 99b702c3d9..b0c11e9158 100644 --- a/neutron/templates/job-db-sync.yaml +++ b/neutron/templates/job-db-sync.yaml @@ -38,7 +38,7 @@ spec: - --config-file - /etc/neutron/neutron.conf - --config-file - - /etc/neutron/plugins/ml2/ml2-conf.ini + - /etc/neutron/plugins/ml2/ml2_conf.ini - upgrade - head {{- if .Values.resources.enabled }} @@ -57,8 +57,8 @@ spec: mountPath: /etc/neutron/neutron.conf subPath: neutron.conf - name: ml2confini - mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini - subPath: ml2-conf.ini + mountPath: /etc/neutron/plugins/ml2/ml2_conf.ini + subPath: ml2_conf.ini volumes: - name: pod-etc-neutron emptyDir: {} diff --git a/neutron/values.yaml b/neutron/values.yaml index fddc039575..c56bf4f74c 100644 --- a/neutron/values.yaml +++ b/neutron/values.yaml @@ -82,16 +82,6 @@ network: server: 9696 metadata: 8775 -memcached: - host: memcached - port: 11211 - -rabbitmq: - address: rabbitmq - admin_user: rabbitmq - admin_password: password - port: 5672 - keystone: admin_user: "admin" admin_user_domain: "default" @@ -99,7 +89,7 @@ keystone: admin_project_name: "admin" admin_project_domain: "default" admin_region_name: "RegionOne" - + neutron_user: "neutron" neutron_user_domain: "default" neutron_user_role: "admin" @@ -108,57 +98,7 @@ keystone: neutron_project_domain: "default" neutron_region_name: "RegionOne" - nova_user: "nova" - nova_user_domain: "default" - nova_user_role: "admin" - nova_password: "password" - nova_project_name: "service" - nova_project_domain: "default" - nova_region_name: "RegionOne" - -database: - port: 3306 - root_user: root - root_password: password - neutron_database_name: neutron - neutron_password: password - neutron_user: neutron - -metadata_agent: - default: - debug: 'True' - -neutron: - workers: 4 - default: - l3_ha_network_type: gre - debug: 'True' -metadata: - workers: 4 - ml2: - tenant_network_types: "flat" - agent: - tunnel_types: "vxlan" - type_drivers: - - flat - - vlan - - vxlan - mechanism_drivers: - - openvswitch - - l2population - extension_drivers: - - port_security - ml2_type_vxlan: - vni_ranges: "1:1000" - vxlan_group: 239.1.1.1 - ml2_type_gre: - tunnel_id_ranges: "1:1000" - ml2_type_flat: - flat_networks: - - "*" - ml2_type_vlan: - network_vlan_ranges: "physnet1:1100:1110" ovs: auto_bridge_add: br-physnet1: enp11s0f0 @@ -299,10 +239,181 @@ resources: memory: "128Mi" cpu: "500m" +conf: + paste: + override: + append: + policy: + override: + append: + neutron: + override: + append: + default: + neutron: + api_workers: 4 + allow_overlapping_ips: True + core_plugin: ml2 + service_plugins: router + interface_driver: openvswitch + metadata_proxy_socket: /var/lib/neutron/openstack-helm/metadata_proxy + db: + allow_automatic_l3agent_failover: True + l3_ha: True + min_l3_agents_per_router: 1 + max_l3_agents_per_router: 2 + l3_ha_network_type: vxlan + dhcp_agents_per_network: 3 + network_auto_schedule: True + router_auto_schedule: True + agent: + interface_driver: openvswitch + oslo_concurrency: + oslo_concurrency: + lock_path: /var/lib/neutron/tmp + database: + oslo: + db: + max_retries: -1 + agent: + neutron: + agent: + root_helper: sudo /var/lib/kolla/venv/bin/neutron-rootwrap /etc/neutron/rootwrap.conf + l2_population: True + arp_responder: True + oslo_messaging_notifications: + oslo: + messaging: + driver: + - noop + nova: + nova: + auth: + region_name: RegionOne + project_domain_name: default + project_name: service + user_domain_name: default + username: nova + password: password + keystone_authtoken: + keystonemiddleware: + auth_token: + region_name: RegionOne + project_domain_name: default + project_name: admin + user_domain_name: admin + username: admin + password: password + ml2_conf: + override: + append: + ml2: + neutron: + ml2: + extension_drivers: port_security + mechanism_drivers: openvswitch,l2population + type_drivers: flat,vlan,vxlan + tenant_network_types: vxlan + ml2_type_vxlan: + neutron: + ml2: + vni_ranges: 1:1000 + vxlan_group: 239.1.1.1 + ml2_type_flat: + neutron: + ml2: + flat_networks: "*" + ml2_type_vlan: + neutron: + ml2: + network_vlan_ranges: "physnet1:1100:1110" + ml2_conf_sriov: + override: + append: + dhcp_agent: + override: + append: + default: + neutron: + dhcp: + agent: + dnsmasq_config_file: /etc/neutron/dnsmasq.conf + enable_isolated_metadata: True + force_metadata: True + l3_agent: + override: + append: + default: + neutron: + l3: + agent: + agent_mode: legacy + enable_metadata_proxy: True + enable_isolated_metadata: True + openvswitch_agent: + override: + append: + ovs: + neutron: + ml2: + ovs: + agent: + tunnel_types: vxlan + ovsdb_connection: unix:/var/run/openvswitch/db.sock + metering_agent: + override: + append: + metadata_agent: + override: + append: + sriov_agent: + override: + append: + macvtap_agent: + override: + append: + linuxbridge_agent: + override: + append: + + # typically overriden by environmental # values, but should include all endpoints # required by this chart endpoints: + oslo_db: + auth: + admin: + username: root + password: password + user: + username: neutron + password: password + hosts: + default: mariadb + path: /neutron + scheme: mysql+pymysql + port: + mysql: 3306 + oslo_messaging: + auth: + admin: + username: admin + password: password + user: + username: rabbitmq + password: password + hosts: + default: rabbitmq + path: / + scheme: rabbit + port: + amqp: 5672 + oslo_cache: + hosts: + default: memcache + port: + memcache: 11211 compute: name: nova hosts: diff --git a/nova/templates/job-bootstrap.yaml b/nova/templates/job-bootstrap.yaml index 64b1dae3cf..d1554e4d1c 100644 --- a/nova/templates/job-bootstrap.yaml +++ b/nova/templates/job-bootstrap.yaml @@ -24,7 +24,7 @@ spec: metadata: annotations: pod.beta.kubernetes.io/init-containers: '[ -{{ tuple $envAll $dependencies | include "helm-toolkit.kubernetes_entrypoint_init_container" | indent 10 }} +{{ tuple $envAll $dependencies "[]" | include "helm-toolkit.kubernetes_entrypoint_init_container" | indent 10 }} ]' spec: restartPolicy: OnFailure