Commit neutron chart
This is a functioning neutron chart that leverages a flat network but supports vxlan and gre networks in values.yaml. We were unable to test the vxlan functionality as it tickles the bnx2x cards in our HP blade lab. For now, this leverages daemonsets which make sense. It does require a new label, namely openvswitch=enabled as we need a label that can be applied both to the control plane and tenant compute hosts as both require neutron agents and openvswitch. The interfaces today match our labs, namely enp11s0f0 for the flat network on physnet1 and enp12s0f0 for the external network. These can be overriden in values.yaml via set or a global environmental file. It depends on the keystone endpoint work. This chart was tested against a working nova chart not commited as DTadrzak has one open in PR#45
This commit is contained in:
parent
b366dc252a
commit
b9a4a0b31d
14
Makefile
14
Makefile
@ -1,12 +1,12 @@
|
|||||||
.PHONY: ceph bootstrap mariadb keystone memcached rabbitmq common openstack all clean
|
.PHONY: ceph bootstrap mariadb keystone memcached rabbitmq common openstack neutron all clean
|
||||||
|
|
||||||
B64_DIRS := common/secrets
|
B64_DIRS := common/secrets
|
||||||
B64_EXCLUDE := $(wildcard common/secrets/*.b64)
|
B64_EXCLUDE := $(wildcard common/secrets/*.b64)
|
||||||
|
|
||||||
CHARTS := ceph mariadb rabbitmq GLANCE memcached keystone glance horizon openstack
|
CHARTS := ceph mariadb rabbitmq GLANCE memcached keystone glance horizon neutron openstack
|
||||||
COMMON_TPL := common/templates/_globals.tpl
|
COMMON_TPL := common/templates/_globals.tpl
|
||||||
|
|
||||||
all: common ceph bootstrap mariadb rabbitmq memcached keystone glance horizon openstack
|
all: common ceph bootstrap mariadb rabbitmq memcached keystone glance horizon neutron openstack
|
||||||
|
|
||||||
common: build-common
|
common: build-common
|
||||||
|
|
||||||
@ -25,6 +25,8 @@ rabbitmq: build-rabbitmq
|
|||||||
|
|
||||||
glance: build-glance
|
glance: build-glance
|
||||||
|
|
||||||
|
glance: build-neutron
|
||||||
|
|
||||||
memcached: build-memcached
|
memcached: build-memcached
|
||||||
|
|
||||||
openstack: build-openstack
|
openstack: build-openstack
|
||||||
@ -41,9 +43,3 @@ build-%:
|
|||||||
helm lint $*
|
helm lint $*
|
||||||
helm package $*
|
helm package $*
|
||||||
|
|
||||||
## this is required for some charts which cannot pass a lint, namely
|
|
||||||
## those which use .Release.Namespace in a default pipe capacity
|
|
||||||
#nolint-build-%:
|
|
||||||
# if [ -f $*/Makefile ]; then make -C $*; fi
|
|
||||||
# if [ -f $*/requirements.yaml ]; then helm dep up $*; fi
|
|
||||||
# helm package $*
|
|
||||||
|
3
neutron/Chart.yaml
Normal file
3
neutron/Chart.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
description: A Helm chart for neutron
|
||||||
|
name: neutron
|
||||||
|
version: 0.1.0
|
4
neutron/requirements.yaml
Normal file
4
neutron/requirements.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
repository: http://localhost:8879/charts
|
||||||
|
version: 0.1.0
|
18
neutron/templates/bin/_init.sh.tpl
Normal file
18
neutron/templates/bin/_init.sh.tpl
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -ex
|
||||||
|
export HOME=/tmp
|
||||||
|
|
||||||
|
ansible localhost -vvv -m mysql_db -a "login_host='{{ include "neutron_db_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_user -a "login_host='{{ include "neutron_db_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'"
|
16
neutron/templates/bin/_neutron-openvswitch-agent.sh.tpl
Normal file
16
neutron/templates/bin/_neutron-openvswitch-agent.sh.tpl
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -x
|
||||||
|
chown neutron: /run/openvswitch/db.sock
|
||||||
|
|
||||||
|
# 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 <<EOF>/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
|
10
neutron/templates/bin/_openvswitch-db-server.sh.tpl
Normal file
10
neutron/templates/bin/_openvswitch-db-server.sh.tpl
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
mkdir -p "/run/openvswitch"
|
||||||
|
if [[ ! -e "/run/openvswitch/conf.db" ]]; then
|
||||||
|
ovsdb-tool create "/run/openvswitch/conf.db"
|
||||||
|
fi
|
||||||
|
|
||||||
|
umask 000
|
||||||
|
exec /usr/sbin/ovsdb-server /run/openvswitch/conf.db -vconsole:emer -vconsole:err -vconsole:info --remote=punix:/run/openvswitch/db.sock
|
20
neutron/templates/bin/_openvswitch-ensure-configured.sh.tpl
Normal file
20
neutron/templates/bin/_openvswitch-ensure-configured.sh.tpl
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -x
|
||||||
|
|
||||||
|
bridge=$1
|
||||||
|
port=$2
|
||||||
|
|
||||||
|
# one time deal
|
||||||
|
ovs-vsctl --no-wait --if-exists del-port physnet1 enp11s0f0
|
||||||
|
ovs-vsctl --no-wait --if-exists del-br physnet1
|
||||||
|
|
||||||
|
# note that only "br-ex" is definable right now
|
||||||
|
|
||||||
|
ovs-vsctl --no-wait --may-exist add-br $bridge
|
||||||
|
ovs-vsctl --no-wait --may-exist add-port $bridge $port
|
||||||
|
|
||||||
|
# handle any bridge mappings
|
||||||
|
{{- range $bridge, $port := .Values.ml2.ovs.auto_bridge_add }}
|
||||||
|
ovs-vsctl --no-wait --may-exist add-br {{ $bridge }}
|
||||||
|
ovs-vsctl --no-wait --may-exist add-port {{ $bridge }} {{ $port }}
|
||||||
|
{{- end}}
|
14
neutron/templates/bin/_openvswitch-vswitchd.sh.tpl
Normal file
14
neutron/templates/bin/_openvswitch-vswitchd.sh.tpl
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
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 }}
|
||||||
|
exec /usr/sbin/ovs-vswitchd unix:/run/openvswitch/db.sock --mlockall -vconsole:emer -vconsole:err -vconsole:info
|
41
neutron/templates/bin/_post.sh.tpl
Normal file
41
neutron/templates/bin/_post.sh.tpl
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -ex
|
||||||
|
export HOME=/tmp
|
||||||
|
|
||||||
|
ansible localhost -vvv -m kolla_keystone_service -a "service_name=neutron \
|
||||||
|
service_type=network \
|
||||||
|
description='Openstack Networking' \
|
||||||
|
endpoint_region={{ .Values.keystone.neutron_region_name }} \
|
||||||
|
url='{{ include "endpoint_neutron_api_internal" . }}' \
|
||||||
|
interface=admin \
|
||||||
|
region_name={{ .Values.keystone.admin_region_name }} \
|
||||||
|
auth='{{ include "keystone_auth" .}}'" \
|
||||||
|
-e "{'openstack_neutron_auth':{{ include "keystone_auth" .}}}"
|
||||||
|
|
||||||
|
ansible localhost -vvv -m kolla_keystone_service -a "service_name=neutron \
|
||||||
|
service_type=network \
|
||||||
|
description='Openstack Networking' \
|
||||||
|
endpoint_region={{ .Values.keystone.neutron_region_name }} \
|
||||||
|
url='{{ include "endpoint_neutron_api_internal" . }}' \
|
||||||
|
interface=internal \
|
||||||
|
region_name={{ .Values.keystone.admin_region_name }} \
|
||||||
|
auth='{{ include "keystone_auth" .}}'" \
|
||||||
|
-e "{'openstack_neutron_auth':{{ include "keystone_auth" .}}}"
|
||||||
|
|
||||||
|
ansible localhost -vvv -m kolla_keystone_service -a "service_name=neutron \
|
||||||
|
service_type=network \
|
||||||
|
description='Openstack Networking' \
|
||||||
|
endpoint_region={{ .Values.keystone.neutron_region_name }} \
|
||||||
|
url='{{ include "endpoint_neutron_api_internal" . }}' \
|
||||||
|
interface=public \
|
||||||
|
region_name={{ .Values.keystone.admin_region_name }} \
|
||||||
|
auth='{{ include "keystone_auth" .}}'" \
|
||||||
|
-e "{'openstack_neutron_auth':{{ include "keystone_auth" .}}}"
|
||||||
|
|
||||||
|
ansible localhost -vvv -m kolla_keystone_user -a "project=service \
|
||||||
|
user={{ .Values.keystone.neutron_user }} \
|
||||||
|
password={{ .Values.keystone.neutron_password }} \
|
||||||
|
role=admin \
|
||||||
|
region_name={{ .Values.keystone.neutron_region_name }} \
|
||||||
|
auth='{{ include "keystone_auth" .}}'" \
|
||||||
|
-e "{'openstack_neutron_auth':{{ include "keystone_auth" .}}}"
|
17
neutron/templates/configmap-bin.yaml
Normal file
17
neutron/templates/configmap-bin.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: neutron-bin
|
||||||
|
data:
|
||||||
|
init.sh: |
|
||||||
|
{{ tuple "bin/_init.sh.tpl" . | include "template" | indent 4 }}
|
||||||
|
neutron-openvswitch-agent.sh: |
|
||||||
|
{{ tuple "bin/_neutron-openvswitch-agent.sh.tpl" . | include "template" | indent 4 }}
|
||||||
|
openvswitch-db-server.sh: |
|
||||||
|
{{ tuple "bin/_openvswitch-db-server.sh.tpl" . | include "template" | indent 4 }}
|
||||||
|
openvswitch-ensure-configured.sh: |
|
||||||
|
{{ tuple "bin/_openvswitch-ensure-configured.sh.tpl" . | include "template" | indent 4 }}
|
||||||
|
openvswitch-vswitchd.sh: |
|
||||||
|
{{ tuple "bin/_openvswitch-vswitchd.sh.tpl" . | include "template" | indent 4 }}
|
||||||
|
post.sh: |
|
||||||
|
{{ tuple "bin/_post.sh.tpl" . | include "template" | indent 4 }}
|
19
neutron/templates/configmap-etc.yaml
Normal file
19
neutron/templates/configmap-etc.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: neutron-etc
|
||||||
|
data:
|
||||||
|
dhcp-agent.ini: |
|
||||||
|
{{ tuple "etc/_dhcp-agent.ini.tpl" . | include "template" | indent 4 }}
|
||||||
|
l3-agent.ini: |
|
||||||
|
{{ tuple "etc/_l3-agent.ini.tpl" . | include "template" | indent 4 }}
|
||||||
|
metadata-agent.ini: |
|
||||||
|
{{ tuple "etc/_metadata-agent.ini.tpl" . | include "template" | indent 4 }}
|
||||||
|
ml2-conf.ini: |
|
||||||
|
{{ tuple "etc/_ml2-conf.ini.tpl" . | include "template" | indent 4 }}
|
||||||
|
neutron.conf: |
|
||||||
|
{{ tuple "etc/_neutron.conf.tpl" . | include "template" | indent 4 }}
|
||||||
|
resolv.conf: |
|
||||||
|
{{ tuple "etc/_resolv.conf.tpl" . | include "template" | indent 4 }}
|
||||||
|
dnsmasq.conf: ""
|
||||||
|
|
83
neutron/templates/daemonset-dhcp-agent.yaml
Normal file
83
neutron/templates/daemonset-dhcp-agent.yaml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: neutron-dhcp-agent
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: neutron-dhcp-agent
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.agent.dhcp.node_selector_key }}: {{ .Values.labels.agent.dhcp.node_selector_value }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
hostNetwork: true
|
||||||
|
containers:
|
||||||
|
- name: neutron-dhcp-agent
|
||||||
|
image: {{ .Values.images.dhcp }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: {{ .Values.network.interface.dhcp | default .Values.network.interface.default }}
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "neutron-dhcp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp-agent.ini"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.dhcp.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.dhcp.service }}"
|
||||||
|
- name: DEPENDENCY_DAEMONSET
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.dhcp.daemonset }}"
|
||||||
|
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
|
||||||
|
- name: dhcpagentini
|
||||||
|
mountPath: /etc/neutron/dhcp-agent.ini
|
||||||
|
subPath: dhcp-agent.ini
|
||||||
|
- name: dnsmasqconf
|
||||||
|
mountPath: /etc/neutron/dnsmasq.conf
|
||||||
|
subPath: dnsmasq.conf
|
||||||
|
- name: runopenvswitch
|
||||||
|
mountPath: /run/openvswitch
|
||||||
|
- name: socket
|
||||||
|
mountPath: /var/lib/neutron/openstack-helm
|
||||||
|
- name: resolvconf
|
||||||
|
mountPath: /etc/resolv.conf
|
||||||
|
subPath: resolv.conf
|
||||||
|
volumes:
|
||||||
|
- name: neutronconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: ml2confini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: dhcpagentini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: dnsmasqconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: runopenvswitch
|
||||||
|
hostPath:
|
||||||
|
path: /run/openvswitch
|
||||||
|
- name: resolvconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: socket
|
||||||
|
hostPath:
|
||||||
|
path: /var/lib/neutron/openstack-helm
|
77
neutron/templates/daemonset-l3-agent.yaml
Normal file
77
neutron/templates/daemonset-l3-agent.yaml
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: neutron-l3-agent
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: neutron-l3-agent
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.agent.l3.node_selector_key }}: {{ .Values.labels.agent.l3.node_selector_value }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
hostNetwork: true
|
||||||
|
containers:
|
||||||
|
- name: neutron-l3-agent
|
||||||
|
image: {{ .Values.images.l3 }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: {{ .Values.network.interface.l3 | default .Values.network.interface.default }}
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "neutron-l3-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/l3-agent.ini --config-file /etc/neutron/plugins/ml2/ml2-conf.ini"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.l3.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.l3.service }}"
|
||||||
|
- name: DEPENDENCY_DAEMONSET
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.l3.daemonset }}"
|
||||||
|
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
|
||||||
|
- name: l3agentini
|
||||||
|
mountPath: /etc/neutron/l3-agent.ini
|
||||||
|
subPath: l3-agent.ini
|
||||||
|
- name: resolvconf
|
||||||
|
mountPath: /etc/resolv.conf
|
||||||
|
subPath: resolv.conf
|
||||||
|
- name: runopenvswitch
|
||||||
|
mountPath: /run/openvswitch
|
||||||
|
- name: socket
|
||||||
|
mountPath: /var/lib/neutron/stackanetes
|
||||||
|
volumes:
|
||||||
|
- name: neutronconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: ml2confini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: resolvconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: l3agentini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: runopenvswitch
|
||||||
|
hostPath:
|
||||||
|
path: /run/openvswitch
|
||||||
|
- name: socket
|
||||||
|
hostPath:
|
||||||
|
path: /var/lib/neutron/stackanetes
|
79
neutron/templates/daemonset-metadata-agent.yaml
Normal file
79
neutron/templates/daemonset-metadata-agent.yaml
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: neutron-metadata-agent
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: neutron-metadata-agent
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.agent.metadata.node_selector_key }}: {{ .Values.labels.agent.metadata.node_selector_value }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
hostNetwork: true
|
||||||
|
containers:
|
||||||
|
- name: neutron-metadata-agent
|
||||||
|
image: {{ .Values.images.metadata }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: {{ .Values.network.interface.metadata | default .Values.network.interface.default }}
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "neutron-metadata-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/metadata-agent.ini"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.metadata.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.metadata.service }}"
|
||||||
|
- name: DEPENDENCY_DAEMONSET
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.metadata.daemonset }}"
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.network.port.metadata }}
|
||||||
|
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
|
||||||
|
- name: metadataagentini
|
||||||
|
mountPath: /etc/neutron/metadata-agent.ini
|
||||||
|
subPath: metadata-agent.ini
|
||||||
|
- name: resolvconf
|
||||||
|
mountPath: /etc/resolv.conf
|
||||||
|
subPath: resolv.conf
|
||||||
|
- name: runopenvswitch
|
||||||
|
mountPath: /run/openvswitch
|
||||||
|
- name: socket
|
||||||
|
mountPath: /var/lib/neutron/stackanetes
|
||||||
|
volumes:
|
||||||
|
- name: neutronconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: ml2confini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: metadataagentini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: resolvconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: runopenvswitch
|
||||||
|
hostPath:
|
||||||
|
path: /run/openvswitch
|
||||||
|
- name: socket
|
||||||
|
hostPath:
|
||||||
|
path: /var/lib/neutron/openstack-helm
|
166
neutron/templates/daemonset-openvswitch.yaml
Normal file
166
neutron/templates/daemonset-openvswitch.yaml
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: neutron-openvswitch
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: neutron-openvswitch
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.ovs.node_selector_key }}: {{ .Values.labels.ovs.node_selector_value }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
dnsPolicy: ClusterFirst
|
||||||
|
hostNetwork: true
|
||||||
|
containers:
|
||||||
|
- name: neutron-openvswitch-agent
|
||||||
|
image: {{ .Values.images.neutron_openvswitch_agent }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
# ensures this container can can see a br-int
|
||||||
|
# bridge before its marked as ready
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- 'ovs-vsctl list-br | grep -q br-int'
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: {{ .Values.network.interface.openvswitch | default .Values.network.interface.default }}
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "bash /tmp/neutron-openvswitch-agent.sh"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.openvswitchagent.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.openvswitchagent.service }}"
|
||||||
|
- name: DEPENDENCY_CONTAINER
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.openvswitchagent.container }}"
|
||||||
|
volumeMounts:
|
||||||
|
- name: neutronopenvswitchagentsh
|
||||||
|
mountPath: /tmp/neutron-openvswitch-agent.sh
|
||||||
|
subPath: neutron-openvswitch-agent.sh
|
||||||
|
- name: neutronconf
|
||||||
|
mountPath: /etc/neutron/neutron.conf
|
||||||
|
subPath: neutron.conf
|
||||||
|
- name: ml2confini
|
||||||
|
mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini
|
||||||
|
subPath: ml2-conf.ini
|
||||||
|
- name: libmodules
|
||||||
|
mountPath: /lib/modules
|
||||||
|
readOnly: true
|
||||||
|
- name: run
|
||||||
|
mountPath: /run
|
||||||
|
- mountPath: /etc/resolv.conf
|
||||||
|
name: resolvconf
|
||||||
|
subPath: resolv.conf
|
||||||
|
- name: openvswitch-db-server
|
||||||
|
image: {{ .Values.images.openvswitch_db_server }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: {{ .Values.network.interface.openvswitch | default .Values.network.interface.default }}
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "bash /tmp/openvswitch-db-server.sh"
|
||||||
|
volumeMounts:
|
||||||
|
- name: openvswitchdbserversh
|
||||||
|
mountPath: /tmp/openvswitch-db-server.sh
|
||||||
|
subPath: openvswitch-db-server.sh
|
||||||
|
- mountPath: /etc/resolv.conf
|
||||||
|
name: resolvconf
|
||||||
|
subPath: resolv.conf
|
||||||
|
- name: varlibopenvswitch
|
||||||
|
mountPath: /var/lib/openvswitch/
|
||||||
|
- name: run
|
||||||
|
mountPath: /run
|
||||||
|
|
||||||
|
- name: openvswitch-vswitchd
|
||||||
|
image: {{ .Values.images.openvswitch_vswitchd }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
securityContext:
|
||||||
|
privileged: true
|
||||||
|
# ensures this container can speak to the ovs database
|
||||||
|
# successfully before its marked as ready
|
||||||
|
readinessProbe:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /usr/bin/ovs-vsctl
|
||||||
|
- show
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: {{ .Values.network.interface.openvswitch | default .Values.network.interface.default }}
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "bash /tmp/openvswitch-vswitchd.sh"
|
||||||
|
- name: DEPENDENCY_CONTAINER
|
||||||
|
value: "openvswitch-db-server"
|
||||||
|
volumeMounts:
|
||||||
|
- name: openvswitchvswitchdsh
|
||||||
|
mountPath: /tmp/openvswitch-vswitchd.sh
|
||||||
|
subPath: openvswitch-vswitchd.sh
|
||||||
|
- name: openvswitchensureconfiguredsh
|
||||||
|
mountPath: /tmp/openvswitch-ensure-configured.sh
|
||||||
|
subPath: openvswitch-ensure-configured.sh
|
||||||
|
- name: libmodules
|
||||||
|
mountPath: /lib/modules
|
||||||
|
readOnly: true
|
||||||
|
- name: run
|
||||||
|
mountPath: /run
|
||||||
|
volumes:
|
||||||
|
- name: openvswitchdbserversh
|
||||||
|
configMap:
|
||||||
|
name: neutron-bin
|
||||||
|
- name: openvswitchvswitchdsh
|
||||||
|
configMap:
|
||||||
|
name: neutron-bin
|
||||||
|
- name: openvswitchensureconfiguredsh
|
||||||
|
configMap:
|
||||||
|
name: neutron-bin
|
||||||
|
- name: varlibopenvswitch
|
||||||
|
emptyDir: {}
|
||||||
|
- name: neutronopenvswitchagentsh
|
||||||
|
configMap:
|
||||||
|
name: neutron-bin
|
||||||
|
- name: neutronconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: ml2confini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: resolvconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: libmodules
|
||||||
|
hostPath:
|
||||||
|
path: /lib/modules
|
||||||
|
- name: run
|
||||||
|
hostPath:
|
||||||
|
path: /run
|
53
neutron/templates/deployment-server.yaml
Normal file
53
neutron/templates/deployment-server.yaml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: neutron-server
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.replicas.server }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: neutron-server
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
{{ .Values.labels.server.node_selector_key }}: {{ .Values.labels.server.node_selector_value }}
|
||||||
|
containers:
|
||||||
|
- name: neutron-server
|
||||||
|
image: {{ .Values.images.server }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: "eth0"
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2-conf.ini"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.server.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.server.service }}"
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.network.port.server }}
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: {{ .Values.network.port.server }}
|
||||||
|
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
|
||||||
|
volumes:
|
||||||
|
- name: neutronconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: ml2confini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
5
neutron/templates/etc/_dhcp-agent.ini.tpl
Normal file
5
neutron/templates/etc/_dhcp-agent.ini.tpl
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
dnsmasq_config_file = /etc/neutron/dnsmasq.conf
|
||||||
|
enable_isolated_metadata = true
|
||||||
|
force_metadata = true
|
||||||
|
interface_driver = openvswitch
|
4
neutron/templates/etc/_l3-agent.ini.tpl
Normal file
4
neutron/templates/etc/_l3-agent.ini.tpl
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
agent_mode = legacy
|
||||||
|
enable_metadata_proxy = True
|
||||||
|
enable_isolated_metadata = True
|
31
neutron/templates/etc/_metadata-agent.ini.tpl
Normal file
31
neutron/templates/etc/_metadata-agent.ini.tpl
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
debug = {{ .Values.metadata_agent.default.debug }}
|
||||||
|
|
||||||
|
# Neutron credentials for API access
|
||||||
|
auth_plugin = password
|
||||||
|
auth_url = {{ include "endpoint_keystone_admin" . }}
|
||||||
|
auth_uri = {{ include "endpoint_keystone_internal" . }}
|
||||||
|
auth_region = {{ .Values.keystone.neutron_region_name }}
|
||||||
|
admin_tenant_name = service
|
||||||
|
project_domain_id = default
|
||||||
|
user_domain_id = default
|
||||||
|
project_name = service
|
||||||
|
username = {{ .Values.keystone.admin_user }}
|
||||||
|
password = {{ .Values.keystone.admin_password }}
|
||||||
|
endpoint_type = adminURL
|
||||||
|
|
||||||
|
# Nova metadata service IP and port
|
||||||
|
nova_metadata_ip = {{ include "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
|
43
neutron/templates/etc/_ml2-conf.ini.tpl
Normal file
43
neutron/templates/etc/_ml2-conf.ini.tpl
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
[ml2]
|
||||||
|
# Changing type_drivers after bootstrap can lead to database inconsistencies
|
||||||
|
type_drivers = {{ include "joinListWithColon" .Values.ml2.type_drivers }}
|
||||||
|
tenant_network_types = {{ .Values.ml2.tenant_network_types }}
|
||||||
|
mechanism_drivers = {{ include "joinListWithColon" .Values.ml2.mechanism_drivers }}
|
||||||
|
|
||||||
|
[ml2_type_flat]
|
||||||
|
flat_networks = {{ include "joinListWithColon" .Values.ml2.ml2_type_flat.flat_networks }}
|
||||||
|
|
||||||
|
[ml2_type_gre]
|
||||||
|
# (ListOpt) Comma-separated list of <tun_min>:<tun_max> 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 <physical_network>[:<vlan_min>:<vlan_max>] 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 "joinListWithColon" .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 }}
|
71
neutron/templates/etc/_neutron.conf.tpl
Normal file
71
neutron/templates/etc/_neutron.conf.tpl
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
debug = {{ .Values.neutron.default.debug }}
|
||||||
|
use_syslog = False
|
||||||
|
use_stderr = True
|
||||||
|
|
||||||
|
bind_host = {{ .Values.network.ip_address }}
|
||||||
|
bind_port = {{ .Values.network.port.server }}
|
||||||
|
|
||||||
|
#lock_path = /var/lock/neutron
|
||||||
|
api_paste_config = /usr/share/neutron/api-paste.ini
|
||||||
|
|
||||||
|
api_workers = {{ .Values.neutron.workers }}
|
||||||
|
|
||||||
|
allow_overlapping_ips = True
|
||||||
|
core_plugin = ml2
|
||||||
|
service_plugins = router
|
||||||
|
|
||||||
|
interface_driver = openvswitch
|
||||||
|
|
||||||
|
metadata_proxy_socket = /var/lib/neutron/openstack-helm/metadata_proxy
|
||||||
|
|
||||||
|
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 }}
|
||||||
|
|
||||||
|
dhcp_agents_per_network = 3
|
||||||
|
|
||||||
|
network_auto_schedule = True
|
||||||
|
router_auto_schedule = True
|
||||||
|
|
||||||
|
transport_url = rabbit://{{ .Values.rabbitmq.admin_user }}:{{ .Values.rabbitmq.admin_password }}@{{ .Values.rabbitmq.address }}:{{ .Values.rabbitmq.port }}
|
||||||
|
|
||||||
|
[nova]
|
||||||
|
auth_url = {{ include "endpoint_keystone_internal" . }}
|
||||||
|
auth_plugin = password
|
||||||
|
project_domain_id = default
|
||||||
|
user_domain_id = default
|
||||||
|
endpoint_type = internal
|
||||||
|
region_name = {{ .Values.keystone.nova_region_name }}
|
||||||
|
project_name = service
|
||||||
|
username = {{ .Values.keystone.nova_user }}
|
||||||
|
password = {{ .Values.keystone.nova_password }}
|
||||||
|
|
||||||
|
[oslo_concurrency]
|
||||||
|
lock_path = /var/lib/neutron/tmp
|
||||||
|
|
||||||
|
[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
|
||||||
|
|
||||||
|
[database]
|
||||||
|
connection = mysql+pymysql://{{ .Values.database.neutron_user }}:{{ .Values.database.neutron_password }}@{{ include "neutron_db_host" . }}/{{ .Values.database.neutron_database_name }}
|
||||||
|
max_retries = -1
|
||||||
|
|
||||||
|
[keystone_authtoken]
|
||||||
|
auth_url = {{ include "endpoint_keystone_internal" . }}
|
||||||
|
auth_type = password
|
||||||
|
project_domain_id = default
|
||||||
|
user_domain_id = default
|
||||||
|
project_name = service
|
||||||
|
username = {{ .Values.keystone.neutron_user }}
|
||||||
|
password = {{ .Values.keystone.neutron_password }}
|
||||||
|
|
||||||
|
[oslo_messaging_notifications]
|
||||||
|
driver = noop
|
5
neutron/templates/etc/_resolv.conf.tpl
Normal file
5
neutron/templates/etc/_resolv.conf.tpl
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
search {{ .Release.Namespace }}.svc.{{ .Values.network.dns.kubernetes_domain }} svc.{{ .Values.network.dns.kubernetes_domain }} {{ .Values.network.dns.kubernetes_domain }}
|
||||||
|
{{- range .Values.network.dns.servers }}
|
||||||
|
nameserver {{ . | title }}
|
||||||
|
{{- end }}
|
||||||
|
options ndots:5
|
43
neutron/templates/job-db-sync.yaml
Normal file
43
neutron/templates/job-db-sync.yaml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: neutron-db-sync
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
containers:
|
||||||
|
- name: neutron-db-sync
|
||||||
|
image: {{ .Values.images.db_sync }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: "eth0"
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2-conf.ini upgrade head"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.db_sync.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.db_sync.service }}"
|
||||||
|
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
|
||||||
|
volumes:
|
||||||
|
- name: neutronconf
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
||||||
|
- name: ml2confini
|
||||||
|
configMap:
|
||||||
|
name: neutron-etc
|
37
neutron/templates/job-init.yaml
Normal file
37
neutron/templates/job-init.yaml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: neutron-init
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
containers:
|
||||||
|
- name: neutron-init
|
||||||
|
image: {{ .Values.images.init }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: "eth0"
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "bash /tmp/init.sh"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.init.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.init.service }}"
|
||||||
|
volumeMounts:
|
||||||
|
- name: initsh
|
||||||
|
mountPath: /tmp/init.sh
|
||||||
|
subPath: init.sh
|
||||||
|
volumes:
|
||||||
|
- name: initsh
|
||||||
|
configMap:
|
||||||
|
name: neutron-bin
|
39
neutron/templates/job-post.yaml
Normal file
39
neutron/templates/job-post.yaml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: neutron-post
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
containers:
|
||||||
|
- name: neutron-post
|
||||||
|
image: {{ .Values.images.post }}
|
||||||
|
imagePullPolicy: {{ .Values.images.pull_policy }}
|
||||||
|
env:
|
||||||
|
- name: INTERFACE_NAME
|
||||||
|
value: "eth0"
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: COMMAND
|
||||||
|
value: "bash /tmp/post.sh"
|
||||||
|
- name: DEPENDENCY_JOBS
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.post.jobs }}"
|
||||||
|
- name: DEPENDENCY_SERVICE
|
||||||
|
value: "{{ include "joinListWithColon" .Values.dependencies.post.service }}"
|
||||||
|
- name: ANSIBLE_LIBRARY
|
||||||
|
value: /usr/share/ansible/
|
||||||
|
volumeMounts:
|
||||||
|
- name: postsh
|
||||||
|
mountPath: /tmp/post.sh
|
||||||
|
subPath: post.sh
|
||||||
|
volumes:
|
||||||
|
- name: postsh
|
||||||
|
configMap:
|
||||||
|
name: neutron-bin
|
9
neutron/templates/service.yaml
Normal file
9
neutron/templates/service.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: neutron-server
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: {{ .Values.network.port.server }}
|
||||||
|
selector:
|
||||||
|
app: neutron-server
|
241
neutron/values.yaml
Normal file
241
neutron/values.yaml
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
# Default values for memcached.
|
||||||
|
# This is a YAML-formatted file.
|
||||||
|
# Declare name/value pairs to be passed into your templates.
|
||||||
|
# name: value
|
||||||
|
|
||||||
|
replicas:
|
||||||
|
server: 1
|
||||||
|
|
||||||
|
images:
|
||||||
|
init: quay.io/stackanetes/stackanetes-kolla-toolbox:barcelona
|
||||||
|
db_sync: quay.io/stackanetes/stackanetes-neutron-server:barcelona
|
||||||
|
server: quay.io/stackanetes/stackanetes-neutron-server:barcelona
|
||||||
|
dhcp: quay.io/stackanetes/stackanetes-neutron-dhcp-agent:barcelona
|
||||||
|
metadata: quay.io/stackanetes/stackanetes-neutron-metadata-agent:barcelona
|
||||||
|
l3: quay.io/stackanetes/stackanetes-neutron-l3-agent:barcelona
|
||||||
|
neutron_openvswitch_agent: quay.io/stackanetes/stackanetes-neutron-openvswitch-agent:barcelona
|
||||||
|
openvswitch_db_server: quay.io/attcomdev/openvswitch-vswitchd:latest
|
||||||
|
openvswitch_vswitchd: quay.io/attcomdev/openvswitch-vswitchd:latest
|
||||||
|
post: quay.io/stackanetes/stackanetes-kolla-toolbox:barcelona
|
||||||
|
entrypoint: quay.io/stackanetes/kubernetes-entrypoint:v0.1.0
|
||||||
|
pull_policy: "IfNotPresent"
|
||||||
|
|
||||||
|
labels:
|
||||||
|
# ovs is a special case, requiring a special
|
||||||
|
# label that can apply to both control hosts
|
||||||
|
# and compute hosts, until we get more sophisticated
|
||||||
|
# with our daemonset scheduling
|
||||||
|
ovs:
|
||||||
|
node_selector_key: openvswitch
|
||||||
|
node_selector_value: enabled
|
||||||
|
agent:
|
||||||
|
dhcp:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
l3:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
metadata:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
server:
|
||||||
|
node_selector_key: openstack-control-plane
|
||||||
|
node_selector_value: enabled
|
||||||
|
|
||||||
|
network:
|
||||||
|
dns:
|
||||||
|
kubernetes_domain: cluster.local
|
||||||
|
# this must list the skydns server first, and in calico
|
||||||
|
# this is consistently 10.96.0.10
|
||||||
|
servers:
|
||||||
|
- 10.96.0.10
|
||||||
|
- 8.8.8.8
|
||||||
|
external_bridge: br-ex
|
||||||
|
ip_address: 0.0.0.0
|
||||||
|
interface:
|
||||||
|
external: enp12s0f0
|
||||||
|
default: enp11s0f0
|
||||||
|
port:
|
||||||
|
server: 9696
|
||||||
|
metadata: 8775
|
||||||
|
|
||||||
|
memcached:
|
||||||
|
address: "memcached:11211"
|
||||||
|
|
||||||
|
rabbitmq:
|
||||||
|
address: rabbitmq
|
||||||
|
admin_user: rabbitmq
|
||||||
|
admin_password: password
|
||||||
|
port: 5672
|
||||||
|
|
||||||
|
keystone:
|
||||||
|
admin_user: "admin"
|
||||||
|
admin_password: "password"
|
||||||
|
admin_project_name: "admin"
|
||||||
|
admin_region_name: "RegionOne"
|
||||||
|
domain_name: "default"
|
||||||
|
tenant_name: "admin"
|
||||||
|
|
||||||
|
neutron_user: "neutron"
|
||||||
|
neutron_password: "password"
|
||||||
|
neutron_region_name: "RegionOne"
|
||||||
|
|
||||||
|
nova_user: "nova"
|
||||||
|
nova_password: "password"
|
||||||
|
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: null
|
||||||
|
type_drivers:
|
||||||
|
- flat
|
||||||
|
mechanism_drivers:
|
||||||
|
- openvswitch
|
||||||
|
- l2population
|
||||||
|
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
|
||||||
|
bridge_mappings:
|
||||||
|
- "physnet1:br-physnet1"
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
server:
|
||||||
|
jobs:
|
||||||
|
- neutron-db-sync
|
||||||
|
- mariadb-seed
|
||||||
|
service:
|
||||||
|
- rabbitmq
|
||||||
|
- mariadb
|
||||||
|
- keystone-api
|
||||||
|
- memcached
|
||||||
|
dhcp:
|
||||||
|
service:
|
||||||
|
- neutron-server
|
||||||
|
- rabbitmq
|
||||||
|
- nova-api
|
||||||
|
jobs:
|
||||||
|
- neutron-init
|
||||||
|
- nova-post
|
||||||
|
daemonset:
|
||||||
|
- neutron-openvswitch
|
||||||
|
metadata:
|
||||||
|
jobs:
|
||||||
|
- neutron-init
|
||||||
|
- nova-post
|
||||||
|
service:
|
||||||
|
- neutron-server
|
||||||
|
- rabbitmq
|
||||||
|
- nova-api
|
||||||
|
daemonset:
|
||||||
|
- neutron-openvswitch
|
||||||
|
openvswitchagent:
|
||||||
|
jobs:
|
||||||
|
- neutron-post
|
||||||
|
- nova-post
|
||||||
|
service:
|
||||||
|
- keystone-api
|
||||||
|
- rabbitmq
|
||||||
|
- neutron-server
|
||||||
|
container:
|
||||||
|
- openvswitch-db-server
|
||||||
|
- openvswitch-vswitchd
|
||||||
|
l3:
|
||||||
|
jobs:
|
||||||
|
- nova-init
|
||||||
|
- neutron-init
|
||||||
|
- nova-post
|
||||||
|
service:
|
||||||
|
- neutron-server
|
||||||
|
- rabbitmq
|
||||||
|
- nova-api
|
||||||
|
daemonset:
|
||||||
|
- neutron-openvswitch
|
||||||
|
db_sync:
|
||||||
|
jobs:
|
||||||
|
- neutron-init
|
||||||
|
- mariadb-seed
|
||||||
|
service:
|
||||||
|
- mariadb
|
||||||
|
init:
|
||||||
|
jobs:
|
||||||
|
- mariadb-seed
|
||||||
|
service:
|
||||||
|
- mariadb
|
||||||
|
post:
|
||||||
|
jobs:
|
||||||
|
- neutron-db-sync
|
||||||
|
service:
|
||||||
|
- keystone-api
|
||||||
|
- neutron-server
|
||||||
|
|
||||||
|
# typically overriden by environmental
|
||||||
|
# values, but should include all endpoints
|
||||||
|
# required by this chart
|
||||||
|
endpoints:
|
||||||
|
glance:
|
||||||
|
hosts:
|
||||||
|
default: glance-api
|
||||||
|
type: image
|
||||||
|
path: null
|
||||||
|
scheme: 'http'
|
||||||
|
port:
|
||||||
|
api: 9292
|
||||||
|
registry: 9191
|
||||||
|
nova:
|
||||||
|
hosts:
|
||||||
|
default: nova-api
|
||||||
|
path: "/v2/%(tenant_id)s"
|
||||||
|
type: compute
|
||||||
|
scheme: 'http'
|
||||||
|
port:
|
||||||
|
api: 8774
|
||||||
|
metadata: 8775
|
||||||
|
novncproxy: 6080
|
||||||
|
keystone:
|
||||||
|
hosts:
|
||||||
|
default: keystone-api
|
||||||
|
path: /v3
|
||||||
|
type: identity
|
||||||
|
scheme: 'http'
|
||||||
|
port:
|
||||||
|
admin: 35357
|
||||||
|
public: 5000
|
||||||
|
neutron:
|
||||||
|
hosts:
|
||||||
|
default: neutron-server
|
||||||
|
path: null
|
||||||
|
type: network
|
||||||
|
scheme: 'http'
|
||||||
|
port:
|
||||||
|
api: 9696
|
Loading…
Reference in New Issue
Block a user