feat: BGP-Dragent for Neutron
Change-Id: Ibf4ce793f0e8d4d03b9e2bd5cd1163b52fcad4f1
This commit is contained in:
parent
56842b39d4
commit
fb88dd9b05
@ -14,7 +14,7 @@ apiVersion: v1
|
|||||||
appVersion: v1.0.0
|
appVersion: v1.0.0
|
||||||
description: OpenStack-Helm Neutron
|
description: OpenStack-Helm Neutron
|
||||||
name: neutron
|
name: neutron
|
||||||
version: 0.3.21
|
version: 0.3.22
|
||||||
home: https://docs.openstack.org/neutron/latest/
|
home: https://docs.openstack.org/neutron/latest/
|
||||||
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Neutron/OpenStack_Project_Neutron_vertical.png
|
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Neutron/OpenStack_Project_Neutron_vertical.png
|
||||||
sources:
|
sources:
|
||||||
|
21
neutron/templates/bin/_neutron-bgp-dragent.sh.tpl
Normal file
21
neutron/templates/bin/_neutron-bgp-dragent.sh.tpl
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
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.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
set -x
|
||||||
|
exec neutron-bgp-dragent \
|
||||||
|
--config-file /etc/neutron/neutron.conf \
|
||||||
|
--config-file /etc/neutron/bgp_dragent.ini \
|
||||||
|
--debug
|
@ -83,6 +83,8 @@ data:
|
|||||||
{{ tuple "bin/_neutron-bagpipe-bgp.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-bagpipe-bgp.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
neutron-bagpipe-bgp-init.sh: |
|
neutron-bagpipe-bgp-init.sh: |
|
||||||
{{ tuple "bin/_neutron-bagpipe-bgp-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_neutron-bagpipe-bgp-init.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
neutron-bgp-dragent.sh: |
|
||||||
|
{{ tuple "bin/_neutron-bgp-dragent.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
{{- if .Values.manifests.certificates }}
|
{{- if .Values.manifests.certificates }}
|
||||||
nginx.sh: |
|
nginx.sh: |
|
||||||
{{ tuple "bin/_nginx.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
{{ tuple "bin/_nginx.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
|
||||||
|
@ -308,6 +308,7 @@ data:
|
|||||||
sriov_agent.ini: {{ include "helm-toolkit.utils.to_oslo_conf" $envAll.Values.conf.plugins.sriov_agent | b64enc }}
|
sriov_agent.ini: {{ include "helm-toolkit.utils.to_oslo_conf" $envAll.Values.conf.plugins.sriov_agent | b64enc }}
|
||||||
l2gw_agent.ini: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" .Values.conf.l2gateway_agent | b64enc) }}
|
l2gw_agent.ini: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" .Values.conf.l2gateway_agent | b64enc) }}
|
||||||
bagpipe_bgp.conf: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" .Values.conf.bagpipe_bgp | b64enc) }}
|
bagpipe_bgp.conf: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" .Values.conf.bagpipe_bgp | b64enc) }}
|
||||||
|
bgp_dragent.ini: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" .Values.conf.bgp_dragent | b64enc) }}
|
||||||
tf_plugin.ini: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" $envAll.Values.conf.plugins.tungstenfabric | b64enc) }}
|
tf_plugin.ini: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" $envAll.Values.conf.plugins.tungstenfabric | b64enc) }}
|
||||||
vnc_api_lib.ini: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" $envAll.Values.conf.plugins.tf_vnc_api_lib | b64enc) }}
|
vnc_api_lib.ini: {{ default "\"\"" (include "helm-toolkit.utils.to_oslo_conf" $envAll.Values.conf.plugins.tf_vnc_api_lib | b64enc) }}
|
||||||
dnsmasq.conf: "{{ $envAll.Values.conf.dnsmasq | b64enc }}"
|
dnsmasq.conf: "{{ $envAll.Values.conf.dnsmasq | b64enc }}"
|
||||||
|
167
neutron/templates/daemonset-bgp-dragent.yaml
Normal file
167
neutron/templates/daemonset-bgp-dragent.yaml
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
{{/*
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- define "bgp_dragentLivenessProbeTemplate" }}
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- pidof -x /var/lib/openstack/bin/neutron-bgp-dragent
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
|
||||||
|
{{- define "neutron.bgp_dragent.daemonset" }}
|
||||||
|
{{- $daemonset := index . 0 }}
|
||||||
|
{{- $configMapName := index . 1 }}
|
||||||
|
{{- $serviceAccountName := index . 2 }}
|
||||||
|
{{- $envAll := index . 3 }}
|
||||||
|
{{- with $envAll }}
|
||||||
|
|
||||||
|
{{- $mounts_neutron_bgp_dragent := .Values.pod.mounts.bgp_dragent.bgp_dragent }}
|
||||||
|
{{- $mounts_neutron_bgp_dragent_init := .Values.pod.mounts.bgp_dragent.init_container }}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: bgp-dragent
|
||||||
|
annotations:
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "neutron" "bgp-dragent" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 4 }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{ tuple $envAll "neutron" "bgp-dragent" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 6 }}
|
||||||
|
{{ tuple $envAll "bgp_dragent" | include "helm-toolkit.snippets.kubernetes_upgrades_daemonset" | indent 2 }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{ tuple $envAll "neutron" "bgp-dragent" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
|
||||||
|
annotations:
|
||||||
|
{{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" | indent 8 }}
|
||||||
|
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
|
||||||
|
spec:
|
||||||
|
{{ dict "envAll" $envAll "application" "neutron_bgp_dragent" | include "helm-toolkit.snippets.kubernetes_pod_security_context" | indent 6 }}
|
||||||
|
serviceAccountName: {{ $serviceAccountName }}
|
||||||
|
{{ if $envAll.Values.pod.tolerations.neutron.enabled }}
|
||||||
|
{{ tuple $envAll "neutron" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
|
||||||
|
{{ end }}
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.bgp_dragent.node_selector_key }}: {{ .Values.labels.bgp_dragent.node_selector_value }}
|
||||||
|
dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
hostNetwork: true
|
||||||
|
{{- if or ( gt .Capabilities.KubeVersion.Major "1" ) ( ge .Capabilities.KubeVersion.Minor "10" ) }}
|
||||||
|
shareProcessNamespace: true
|
||||||
|
{{- else }}
|
||||||
|
hostPID: true
|
||||||
|
{{- end }}
|
||||||
|
containers:
|
||||||
|
- name: neutron-bgp-dragent
|
||||||
|
{{ tuple $envAll "neutron_bgp_dragent" | include "helm-toolkit.snippets.image" | indent 10 }}
|
||||||
|
{{ tuple $envAll $envAll.Values.pod.resources.agent.bgp_dragent | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }}
|
||||||
|
{{ dict "envAll" $envAll "application" "neutron_bgp_dragent" "container" "neutron_bgp_dragent" | include "helm-toolkit.snippets.kubernetes_container_security_context" | indent 10 }}
|
||||||
|
{{ dict "envAll" $envAll "component" "bgp_dragent" "container" "bgp_dragent" "type" "liveness" "probeTemplate" (include "bgp_dragentLivenessProbeTemplate" $envAll | fromYaml) | include "helm-toolkit.snippets.kubernetes_probe" | indent 10 }}
|
||||||
|
command:
|
||||||
|
- /tmp/neutron-bgp-dragent.sh
|
||||||
|
volumeMounts:
|
||||||
|
- name: pod-tmp
|
||||||
|
mountPath: /tmp
|
||||||
|
- name: pod-var-neutron
|
||||||
|
mountPath: {{ .Values.conf.neutron.DEFAULT.state_path }}
|
||||||
|
- name: neutron-bin
|
||||||
|
mountPath: /tmp/neutron-bgp-dragent.sh
|
||||||
|
subPath: neutron-bgp-dragent.sh
|
||||||
|
readOnly: true
|
||||||
|
- name: neutron-bin
|
||||||
|
mountPath: /tmp/health-probe.py
|
||||||
|
subPath: health-probe.py
|
||||||
|
readOnly: true
|
||||||
|
- name: neutron-etc
|
||||||
|
mountPath: /etc/neutron/neutron.conf
|
||||||
|
subPath: neutron.conf
|
||||||
|
readOnly: true
|
||||||
|
{{- if .Values.conf.neutron.DEFAULT.log_config_append }}
|
||||||
|
- name: neutron-etc
|
||||||
|
mountPath: {{ .Values.conf.neutron.DEFAULT.log_config_append }}
|
||||||
|
subPath: {{ base .Values.conf.neutron.DEFAULT.log_config_append }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- name: neutron-etc
|
||||||
|
mountPath: /etc/neutron/bgp_dragent.ini
|
||||||
|
subPath: bgp_dragent.ini
|
||||||
|
readOnly: true
|
||||||
|
- name: neutron-etc
|
||||||
|
# NOTE (Portdirect): We mount here to override Kollas
|
||||||
|
# custom sudoers file when using Kolla images, this
|
||||||
|
# location will also work fine for other images.
|
||||||
|
mountPath: /etc/sudoers.d/kolla_neutron_sudoers
|
||||||
|
subPath: neutron_sudoers
|
||||||
|
readOnly: true
|
||||||
|
- name: neutron-etc
|
||||||
|
mountPath: /etc/neutron/rootwrap.conf
|
||||||
|
subPath: rootwrap.conf
|
||||||
|
readOnly: true
|
||||||
|
{{- range $key, $value := $envAll.Values.conf.rootwrap_filters }}
|
||||||
|
{{- if ( has "bgp_dragent" $value.pods ) }}
|
||||||
|
{{- $filePrefix := replace "_" "-" $key }}
|
||||||
|
{{- $rootwrapFile := printf "/etc/neutron/rootwrap.d/%s.filters" $filePrefix }}
|
||||||
|
- name: neutron-etc
|
||||||
|
mountPath: {{ $rootwrapFile }}
|
||||||
|
subPath: {{ base $rootwrapFile }}
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: libmodules
|
||||||
|
mountPath: /lib/modules
|
||||||
|
readOnly: true
|
||||||
|
- name: run
|
||||||
|
mountPath: /run
|
||||||
|
{{ if $mounts_neutron_bgp_dragent.volumeMounts }}{{ toYaml $mounts_neutron_bgp_dragent.volumeMounts | indent 12 }}{{ end }}
|
||||||
|
volumes:
|
||||||
|
- name: pod-tmp
|
||||||
|
emptyDir: {}
|
||||||
|
- name: pod-var-neutron
|
||||||
|
emptyDir: {}
|
||||||
|
- name: neutron-bin
|
||||||
|
configMap:
|
||||||
|
name: neutron-bin
|
||||||
|
defaultMode: 0555
|
||||||
|
- name: neutron-etc
|
||||||
|
secret:
|
||||||
|
secretName: {{ $configMapName }}
|
||||||
|
defaultMode: 0444
|
||||||
|
- name: libmodules
|
||||||
|
hostPath:
|
||||||
|
path: /lib/modules
|
||||||
|
- name: run
|
||||||
|
hostPath:
|
||||||
|
path: /run
|
||||||
|
{{ if $mounts_neutron_bgp_dragent.volumes }}{{ toYaml $mounts_neutron_bgp_dragent.volumes | indent 8 }}{{ end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.manifests.daemonset_bgp_dragent }}
|
||||||
|
{{- $envAll := . }}
|
||||||
|
{{- $daemonset := "bgp-dragent" }}
|
||||||
|
{{- $configMapName := "neutron-etc" }}
|
||||||
|
{{- $serviceAccountName := "neutron-bgp-dragent" }}
|
||||||
|
{{- $dependencyOpts := dict "envAll" $envAll "dependencyMixinParam" $envAll.Values.network.backend "dependencyKey" "bgp_dragent" -}}
|
||||||
|
{{- $_ := include "helm-toolkit.utils.dependency_resolver" $dependencyOpts | toString | fromYaml }}
|
||||||
|
{{ tuple $envAll "pod_dependency" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
|
||||||
|
{{- $daemonset_yaml := list $daemonset $configMapName $serviceAccountName . | include "neutron.bgp_dragent.daemonset" | toString | fromYaml }}
|
||||||
|
{{- $configmap_yaml := "neutron.configmap.etc" }}
|
||||||
|
{{- list $daemonset $daemonset_yaml $configmap_yaml $configMapName . | include "helm-toolkit.utils.daemonset_overrides" }}
|
||||||
|
{{- end }}
|
@ -42,6 +42,7 @@ images:
|
|||||||
neutron_sriov_agent: docker.io/openstackhelm/neutron:stein-18.04-sriov
|
neutron_sriov_agent: docker.io/openstackhelm/neutron:stein-18.04-sriov
|
||||||
neutron_sriov_agent_init: docker.io/openstackhelm/neutron:stein-18.04-sriov
|
neutron_sriov_agent_init: docker.io/openstackhelm/neutron:stein-18.04-sriov
|
||||||
neutron_bagpipe_bgp: docker.io/openstackhelm/neutron:stein-ubuntu_bionic
|
neutron_bagpipe_bgp: docker.io/openstackhelm/neutron:stein-ubuntu_bionic
|
||||||
|
neutron_bgp_dragent: docker.io/openstackhelm/neutron:stein-ubuntu_bionic
|
||||||
neutron_ironic_agent: docker.io/openstackhelm/neutron:stein-ubuntu_bionic
|
neutron_ironic_agent: docker.io/openstackhelm/neutron:stein-ubuntu_bionic
|
||||||
neutron_netns_cleanup_cron: docker.io/openstackhelm/neutron:stein-ubuntu_bionic
|
neutron_netns_cleanup_cron: docker.io/openstackhelm/neutron:stein-ubuntu_bionic
|
||||||
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
|
dep_check: quay.io/airshipit/kubernetes-entrypoint:v1.0.0
|
||||||
@ -86,6 +87,9 @@ labels:
|
|||||||
bagpipe_bgp:
|
bagpipe_bgp:
|
||||||
node_selector_key: openstack-compute-node
|
node_selector_key: openstack-compute-node
|
||||||
node_selector_value: enabled
|
node_selector_value: enabled
|
||||||
|
bgp_dragent:
|
||||||
|
node_selector_key: openstack-compute-node
|
||||||
|
node_selector_value: enabled
|
||||||
server:
|
server:
|
||||||
node_selector_key: openstack-control-plane
|
node_selector_key: openstack-control-plane
|
||||||
node_selector_value: enabled
|
node_selector_value: enabled
|
||||||
@ -159,6 +163,7 @@ dependencies:
|
|||||||
l2gateway: {}
|
l2gateway: {}
|
||||||
bagpipe_bgp: {}
|
bagpipe_bgp: {}
|
||||||
ovn: {}
|
ovn: {}
|
||||||
|
bgp_dragent: {}
|
||||||
openvswitch:
|
openvswitch:
|
||||||
dhcp:
|
dhcp:
|
||||||
pod:
|
pod:
|
||||||
@ -440,6 +445,15 @@ pod:
|
|||||||
enabled: true
|
enabled: true
|
||||||
params:
|
params:
|
||||||
initialDelaySeconds: 60
|
initialDelaySeconds: 60
|
||||||
|
bgp_dragent:
|
||||||
|
bgp_dragent:
|
||||||
|
readiness:
|
||||||
|
enabled: false
|
||||||
|
params:
|
||||||
|
liveness:
|
||||||
|
enabled: true
|
||||||
|
params:
|
||||||
|
initialDelaySeconds: 60
|
||||||
l2gw_agent:
|
l2gw_agent:
|
||||||
l2gw_agent:
|
l2gw_agent:
|
||||||
readiness:
|
readiness:
|
||||||
@ -489,6 +503,13 @@ pod:
|
|||||||
neutron_bagpipe_bgp:
|
neutron_bagpipe_bgp:
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
privileged: true
|
privileged: true
|
||||||
|
neutron_bgp_dragent:
|
||||||
|
pod:
|
||||||
|
runAsUser: 42424
|
||||||
|
container:
|
||||||
|
neutron_bgp_dragent:
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
privileged: true
|
||||||
neutron_l3_agent:
|
neutron_l3_agent:
|
||||||
pod:
|
pod:
|
||||||
runAsUser: 42424
|
runAsUser: 42424
|
||||||
@ -654,6 +675,11 @@ pod:
|
|||||||
bagpipe_bgp:
|
bagpipe_bgp:
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
volumes:
|
volumes:
|
||||||
|
bgp_dragent:
|
||||||
|
init_container: null
|
||||||
|
bgp_dragent:
|
||||||
|
volumeMounts:
|
||||||
|
volumes:
|
||||||
neutron_ironic_agent:
|
neutron_ironic_agent:
|
||||||
init_container: null
|
init_container: null
|
||||||
neutron_ironic_agent:
|
neutron_ironic_agent:
|
||||||
@ -801,6 +827,13 @@ pod:
|
|||||||
limits:
|
limits:
|
||||||
memory: "1024Mi"
|
memory: "1024Mi"
|
||||||
cpu: "2000m"
|
cpu: "2000m"
|
||||||
|
bgp_dragent:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "100m"
|
||||||
|
limits:
|
||||||
|
memory: "1024Mi"
|
||||||
|
cpu: "2000m"
|
||||||
server:
|
server:
|
||||||
requests:
|
requests:
|
||||||
memory: "128Mi"
|
memory: "128Mi"
|
||||||
@ -2000,6 +2033,7 @@ conf:
|
|||||||
backend: dogpile.cache.memcached
|
backend: dogpile.cache.memcached
|
||||||
ovs:
|
ovs:
|
||||||
ovsdb_connection: unix:/run/openvswitch/db.sock
|
ovsdb_connection: unix:/run/openvswitch/db.sock
|
||||||
|
bgp_dragent: {}
|
||||||
|
|
||||||
rabbitmq:
|
rabbitmq:
|
||||||
# NOTE(rk760n): adding rmq policy to mirror messages from notification queues and set expiration time for the ones
|
# NOTE(rk760n): adding rmq policy to mirror messages from notification queues and set expiration time for the ones
|
||||||
@ -2481,6 +2515,7 @@ manifests:
|
|||||||
daemonset_sriov_agent: true
|
daemonset_sriov_agent: true
|
||||||
daemonset_l2gw_agent: false
|
daemonset_l2gw_agent: false
|
||||||
daemonset_bagpipe_bgp: false
|
daemonset_bagpipe_bgp: false
|
||||||
|
daemonset_bgp_dragent: false
|
||||||
daemonset_netns_cleanup_cron: true
|
daemonset_netns_cleanup_cron: true
|
||||||
deployment_ironic_agent: false
|
deployment_ironic_agent: false
|
||||||
deployment_server: true
|
deployment_server: true
|
||||||
|
@ -63,4 +63,5 @@ neutron:
|
|||||||
- 0.3.19 Fix getting IP for interface when there are multiple IPs assigned
|
- 0.3.19 Fix getting IP for interface when there are multiple IPs assigned
|
||||||
- 0.3.20 Add Ubuntu Jammy overrides
|
- 0.3.20 Add Ubuntu Jammy overrides
|
||||||
- 0.3.21 Run native netns cleanup
|
- 0.3.21 Run native netns cleanup
|
||||||
|
- 0.3.22 Add BGP Dragent support for running dragent agents as daemonsets
|
||||||
...
|
...
|
||||||
|
Loading…
Reference in New Issue
Block a user