Merge pull request #138 from portdirect/0.1.1/neutron-init-containers

Neutron: Move to use init-containers for dependency checking
This commit is contained in:
Alan Meadows 2017-01-24 18:58:13 -06:00 committed by GitHub
commit 563722e890
11 changed files with 127 additions and 196 deletions

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.dhcp }}
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
@ -10,6 +12,9 @@ spec:
annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "hash" }}
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
nodeSelector:
{{ .Values.labels.agent.dhcp.node_selector_key }}: {{ .Values.labels.agent.dhcp.node_selector_value }}
@ -23,25 +28,12 @@ spec:
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 }}"
command:
- neutron-dhcp-agent
- --config-file
- /etc/neutron/neutron.conf
- --config-file
- /etc/neutron/dhcp-agent.ini
volumeMounts:
- name: neutronconf
mountPath: /etc/neutron/neutron.conf

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.l3 }}
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
@ -10,6 +12,9 @@ spec:
annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "hash" }}
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
nodeSelector:
{{ .Values.labels.agent.l3.node_selector_key }}: {{ .Values.labels.agent.l3.node_selector_value }}
@ -23,25 +28,14 @@ spec:
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 }}"
command:
- 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
volumeMounts:
- name: neutronconf
mountPath: /etc/neutron/neutron.conf

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.metadata }}
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
@ -10,6 +12,9 @@ spec:
annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "hash" }}
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
nodeSelector:
{{ .Values.labels.agent.metadata.node_selector_key }}: {{ .Values.labels.agent.metadata.node_selector_value }}
@ -23,25 +28,12 @@ spec:
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 }}"
command:
- neutron-metadata-agent
- --config-file
- /etc/neutron/neutron.conf
- --config-file
- /etc/neutron/metadata-agent.ini
ports:
- containerPort: {{ .Values.network.port.metadata }}
volumeMounts:

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.ovs_agent }}
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
@ -10,6 +12,9 @@ spec:
annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "hash" }}
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
nodeSelector:
{{ .Values.labels.ovs.node_selector_key }}: {{ .Values.labels.ovs.node_selector_value }}
@ -23,6 +28,9 @@ spec:
imagePullPolicy: {{ .Values.images.pull_policy }}
securityContext:
privileged: true
command:
- bash
- /tmp/neutron-openvswitch-agent.sh
# ensures this container can can see a br-int
# bridge before its marked as ready
readinessProbe:
@ -31,23 +39,6 @@ spec:
- 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.ovs_agent.jobs }}"
- name: DEPENDENCY_SERVICE
value: "{{ include "joinListWithColon" .Values.dependencies.ovs_agent.service }}"
volumeMounts:
- name: neutronopenvswitchagentsh
mountPath: /tmp/neutron-openvswitch-agent.sh

View File

@ -23,19 +23,9 @@ spec:
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"
command:
- bash
- /tmp/openvswitch-db-server.sh
volumeMounts:
- name: openvswitchdbserversh
mountPath: /tmp/openvswitch-db-server.sh
@ -62,4 +52,3 @@ spec:
- name: run
hostPath:
path: /run

View File

@ -30,19 +30,9 @@ spec:
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"
command:
- bash
- /tmp/openvswitch-vswitchd.sh
volumeMounts:
- name: openvswitchvswitchdsh
mountPath: /tmp/openvswitch-vswitchd.sh

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.server }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
@ -19,6 +21,9 @@ spec:
annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "hash" }}
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
nodeSelector:
{{ .Values.labels.server.node_selector_key }}: {{ .Values.labels.server.node_selector_value }}
@ -26,23 +31,12 @@ spec:
- 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 }}"
command:
- neutron-server
- --config-file
- /etc/neutron/neutron.conf
- --config-file
- /etc/neutron/plugins/ml2/ml2-conf.ini
ports:
- containerPort: {{ .Values.network.port.server }}
readinessProbe:

View File

@ -1,9 +1,16 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.db_sync }}
apiVersion: batch/v1
kind: Job
metadata:
name: neutron-db-sync
spec:
template:
metadata:
annotations:
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
restartPolicy: OnFailure
nodeSelector:
@ -12,24 +19,17 @@ spec:
- 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 }}"
command:
- neutron-db-manage
- --config-file
- /etc/neutron/neutron.conf
- --config-file
- /etc/neutron/plugins/ml2/ml2-conf.ini
- upgrade
- head
volumeMounts:
- name: pod-etc-neutron
mountPath: /etc/neutron
- name: neutronconf
mountPath: /etc/neutron/neutron.conf
subPath: neutron.conf
@ -37,6 +37,8 @@ spec:
mountPath: /etc/neutron/plugins/ml2/ml2-conf.ini
subPath: ml2-conf.ini
volumes:
- name: pod-etc-neutron
emptyDir: {}
- name: neutronconf
configMap:
name: neutron-etc

View File

@ -1,9 +1,16 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.db_init }}
apiVersion: batch/v1
kind: Job
metadata:
name: neutron-init
spec:
template:
metadata:
annotations:
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
restartPolicy: OnFailure
nodeSelector:
@ -12,23 +19,9 @@ spec:
- 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 }}"
command:
- bash
- /tmp/init.sh
volumeMounts:
- name: initsh
mountPath: /tmp/init.sh

View File

@ -1,9 +1,16 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.db_sync }}
apiVersion: batch/v1
kind: Job
metadata:
name: neutron-post
spec:
template:
metadata:
annotations:
pod.beta.kubernetes.io/init-containers: '[
{{ tuple $envAll $dependencies | include "dep_check_init_cont" | indent 10 }}
]'
spec:
restartPolicy: OnFailure
nodeSelector:
@ -12,23 +19,10 @@ spec:
- name: neutron-post
image: {{ .Values.images.post }}
imagePullPolicy: {{ .Values.images.pull_policy }}
command:
- bash
- /tmp/post.sh
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:

View File

@ -17,7 +17,7 @@ images:
openvswitch_db_server: quay.io/attcomdev/openvswitch-vswitchd:latest
openvswitch_vswitchd: quay.io/attcomdev/openvswitch-vswitchd:latest
post: quay.io/stackanetes/stackanetes-kolla-toolbox:newton
entrypoint: quay.io/stackanetes/kubernetes-entrypoint:v0.1.0
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.1.0
pull_policy: "IfNotPresent"
upgrades:
@ -185,10 +185,10 @@ dependencies:
- ovs-agent
db_sync:
jobs:
- neutron-init
- neutron-db-init
service:
- mariadb
init:
db_init:
jobs:
- mariadb-seed
service: