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 apiVersion: extensions/v1beta1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
@ -10,6 +12,9 @@ spec:
annotations: annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }} configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.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: spec:
nodeSelector: nodeSelector:
{{ .Values.labels.agent.dhcp.node_selector_key }}: {{ .Values.labels.agent.dhcp.node_selector_value }} {{ .Values.labels.agent.dhcp.node_selector_key }}: {{ .Values.labels.agent.dhcp.node_selector_value }}
@ -23,25 +28,12 @@ spec:
imagePullPolicy: {{ .Values.images.pull_policy }} imagePullPolicy: {{ .Values.images.pull_policy }}
securityContext: securityContext:
privileged: true privileged: true
env: command:
- name: INTERFACE_NAME - neutron-dhcp-agent
value: {{ .Values.network.interface.dhcp | default .Values.network.interface.default }} - --config-file
- name: POD_NAME - /etc/neutron/neutron.conf
valueFrom: - --config-file
fieldRef: - /etc/neutron/dhcp-agent.ini
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: volumeMounts:
- name: neutronconf - name: neutronconf
mountPath: /etc/neutron/neutron.conf mountPath: /etc/neutron/neutron.conf

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.l3 }}
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
@ -10,6 +12,9 @@ spec:
annotations: annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }} configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.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: spec:
nodeSelector: nodeSelector:
{{ .Values.labels.agent.l3.node_selector_key }}: {{ .Values.labels.agent.l3.node_selector_value }} {{ .Values.labels.agent.l3.node_selector_key }}: {{ .Values.labels.agent.l3.node_selector_value }}
@ -23,25 +28,14 @@ spec:
imagePullPolicy: {{ .Values.images.pull_policy }} imagePullPolicy: {{ .Values.images.pull_policy }}
securityContext: securityContext:
privileged: true privileged: true
env: command:
- name: INTERFACE_NAME - neutron-l3-agent
value: {{ .Values.network.interface.l3 | default .Values.network.interface.default }} - --config-file
- name: POD_NAME - /etc/neutron/neutron.conf
valueFrom: - --config-file
fieldRef: - /etc/neutron/l3-agent.ini
fieldPath: metadata.name - --config-file
- name: NAMESPACE - /etc/neutron/plugins/ml2/ml2-conf.ini
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: volumeMounts:
- name: neutronconf - name: neutronconf
mountPath: /etc/neutron/neutron.conf mountPath: /etc/neutron/neutron.conf

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.metadata }}
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
@ -10,6 +12,9 @@ spec:
annotations: annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }} configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.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: spec:
nodeSelector: nodeSelector:
{{ .Values.labels.agent.metadata.node_selector_key }}: {{ .Values.labels.agent.metadata.node_selector_value }} {{ .Values.labels.agent.metadata.node_selector_key }}: {{ .Values.labels.agent.metadata.node_selector_value }}
@ -23,25 +28,12 @@ spec:
imagePullPolicy: {{ .Values.images.pull_policy }} imagePullPolicy: {{ .Values.images.pull_policy }}
securityContext: securityContext:
privileged: true privileged: true
env: command:
- name: INTERFACE_NAME - neutron-metadata-agent
value: {{ .Values.network.interface.metadata | default .Values.network.interface.default }} - --config-file
- name: POD_NAME - /etc/neutron/neutron.conf
valueFrom: - --config-file
fieldRef: - /etc/neutron/metadata-agent.ini
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: ports:
- containerPort: {{ .Values.network.port.metadata }} - containerPort: {{ .Values.network.port.metadata }}
volumeMounts: volumeMounts:

View File

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

View File

@ -23,19 +23,9 @@ spec:
imagePullPolicy: {{ .Values.images.pull_policy }} imagePullPolicy: {{ .Values.images.pull_policy }}
securityContext: securityContext:
privileged: true privileged: true
env: command:
- name: INTERFACE_NAME - bash
value: {{ .Values.network.interface.openvswitch | default .Values.network.interface.default }} - /tmp/openvswitch-db-server.sh
- 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: volumeMounts:
- name: openvswitchdbserversh - name: openvswitchdbserversh
mountPath: /tmp/openvswitch-db-server.sh mountPath: /tmp/openvswitch-db-server.sh
@ -62,4 +52,3 @@ spec:
- name: run - name: run
hostPath: hostPath:
path: /run path: /run

View File

@ -30,19 +30,9 @@ spec:
command: command:
- /usr/bin/ovs-vsctl - /usr/bin/ovs-vsctl
- show - show
env: command:
- name: INTERFACE_NAME - bash
value: {{ .Values.network.interface.openvswitch | default .Values.network.interface.default }} - /tmp/openvswitch-vswitchd.sh
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: COMMAND
value: "bash /tmp/openvswitch-vswitchd.sh"
volumeMounts: volumeMounts:
- name: openvswitchvswitchdsh - name: openvswitchvswitchdsh
mountPath: /tmp/openvswitch-vswitchd.sh mountPath: /tmp/openvswitch-vswitchd.sh

View File

@ -1,3 +1,5 @@
{{- $envAll := . }}
{{- $dependencies := .Values.dependencies.server }}
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
metadata: metadata:
@ -19,6 +21,9 @@ spec:
annotations: annotations:
configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }} configmap-bin-hash: {{ tuple "configmap-bin.yaml" . | include "hash" }}
configmap-etc-hash: {{ tuple "configmap-etc.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: spec:
nodeSelector: nodeSelector:
{{ .Values.labels.server.node_selector_key }}: {{ .Values.labels.server.node_selector_value }} {{ .Values.labels.server.node_selector_key }}: {{ .Values.labels.server.node_selector_value }}
@ -26,23 +31,12 @@ spec:
- name: neutron-server - name: neutron-server
image: {{ .Values.images.server }} image: {{ .Values.images.server }}
imagePullPolicy: {{ .Values.images.pull_policy }} imagePullPolicy: {{ .Values.images.pull_policy }}
env: command:
- name: INTERFACE_NAME - neutron-server
value: "eth0" - --config-file
- name: POD_NAME - /etc/neutron/neutron.conf
valueFrom: - --config-file
fieldRef: - /etc/neutron/plugins/ml2/ml2-conf.ini
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: ports:
- containerPort: {{ .Values.network.port.server }} - containerPort: {{ .Values.network.port.server }}
readinessProbe: readinessProbe:

View File

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

View File

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

View File

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

View File

@ -17,7 +17,7 @@ images:
openvswitch_db_server: quay.io/attcomdev/openvswitch-vswitchd:latest openvswitch_db_server: quay.io/attcomdev/openvswitch-vswitchd:latest
openvswitch_vswitchd: quay.io/attcomdev/openvswitch-vswitchd:latest openvswitch_vswitchd: quay.io/attcomdev/openvswitch-vswitchd:latest
post: quay.io/stackanetes/stackanetes-kolla-toolbox:newton 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" pull_policy: "IfNotPresent"
upgrades: upgrades:
@ -185,10 +185,10 @@ dependencies:
- ovs-agent - ovs-agent
db_sync: db_sync:
jobs: jobs:
- neutron-init - neutron-db-init
service: service:
- mariadb - mariadb
init: db_init:
jobs: jobs:
- mariadb-seed - mariadb-seed
service: service: