Merge "Rearrange magnum templates"
This commit is contained in:
commit
a489dffd31
@ -38,16 +38,15 @@ def create_or_resume(name, spec, **_):
|
|||||||
# deploy rabbitmq
|
# deploy rabbitmq
|
||||||
utils.deploy_rabbitmq("magnum")
|
utils.deploy_rabbitmq("magnum")
|
||||||
|
|
||||||
# deploy magnum
|
|
||||||
config_hash = utils.generate_hash(spec)
|
config_hash = utils.generate_hash(spec)
|
||||||
for component in ("api", "conductor"):
|
# deploy magnum api
|
||||||
utils.create_or_update('magnum/daemonset.yml.j2',
|
utils.create_or_update('magnum/api/daemonset.yml.j2', spec=spec,
|
||||||
name=name, spec=spec,
|
config_hash=config_hash)
|
||||||
component=component,
|
utils.create_or_update('magnum/api/service.yml.j2')
|
||||||
config_hash=config_hash)
|
|
||||||
|
|
||||||
utils.create_or_update('magnum/service.yml.j2',
|
# deploy magnum conductor
|
||||||
name=name)
|
utils.create_or_update('magnum/conductor/daemonset.yml.j2',
|
||||||
|
spec=spec, config_hash=config_hash)
|
||||||
|
|
||||||
url = None
|
url = None
|
||||||
if "ingress" in spec:
|
if "ingress" in spec:
|
||||||
|
@ -16,10 +16,10 @@
|
|||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
metadata:
|
metadata:
|
||||||
name: magnum-{{ component }}
|
name: magnum-api
|
||||||
namespace: openstack
|
namespace: openstack
|
||||||
labels:
|
labels:
|
||||||
{{ labels("magnum", name, component) | indent(4) }}
|
{{ labels("magnum", component="api") | indent(4) }}
|
||||||
spec:
|
spec:
|
||||||
updateStrategy:
|
updateStrategy:
|
||||||
rollingUpdate:
|
rollingUpdate:
|
||||||
@ -27,30 +27,18 @@ spec:
|
|||||||
type: RollingUpdate
|
type: RollingUpdate
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
{{ labels("magnum", name, component) | indent(6) }}
|
{{ labels("magnum", component="api") | indent(6) }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
{{ labels("magnum", name, component) | indent(8) }}
|
{{ labels("magnum", component="api") | indent(8) }}
|
||||||
annotations:
|
annotations:
|
||||||
checksum/config: "{{ config_hash }}"
|
checksum/config: "{{ config_hash }}"
|
||||||
spec:
|
spec:
|
||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
{% if 'conductor' in component %}
|
|
||||||
initContainers:
|
|
||||||
- name: db-sync
|
|
||||||
image: vexxhost/magnum-{{ component }}:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
command:
|
|
||||||
- magnum-db-manage
|
|
||||||
- upgrade
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /etc/magnum
|
|
||||||
name: config
|
|
||||||
{% endif %}
|
|
||||||
containers:
|
containers:
|
||||||
- name: magnum-{{ component }}
|
- name: magnum-api
|
||||||
image: vexxhost/magnum-{{ component }}:latest
|
image: vexxhost/magnum-api:latest
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
{% if env is defined and env|length %}
|
{% if env is defined and env|length %}
|
||||||
env:
|
env:
|
||||||
@ -63,22 +51,20 @@ spec:
|
|||||||
value: "{{ v.value }}"
|
value: "{{ v.value }}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if 'api' in component %}
|
|
||||||
ports:
|
ports:
|
||||||
- name: magnum-{{ component }}
|
- name: magnum-api
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
containerPort: 9511
|
containerPort: 9511
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
port: magnum-{{ component }}
|
port: magnum-api
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
port: magnum-{{ component }}
|
port: magnum-api
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
exec:
|
exec:
|
||||||
command: ["/bin/sleep", "5"]
|
command: ["/bin/sleep", "5"]
|
||||||
{% endif %}
|
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsUser: 65534
|
runAsUser: 65534
|
||||||
runAsGroup: 65534
|
runAsGroup: 65534
|
@ -25,4 +25,4 @@ spec:
|
|||||||
port: 80
|
port: 80
|
||||||
targetPort: magnum-api
|
targetPort: magnum-api
|
||||||
selector:
|
selector:
|
||||||
{{ labels("magnum", name, "api") | indent(4) }}
|
{{ labels("magnum", component="api") | indent(4) }}
|
@ -0,0 +1,91 @@
|
|||||||
|
---
|
||||||
|
# Copyright 2020 VEXXHOST, Inc.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: magnum-conductor
|
||||||
|
namespace: openstack
|
||||||
|
labels:
|
||||||
|
{{ labels("magnum", component="conductor") | indent(4) }}
|
||||||
|
spec:
|
||||||
|
updateStrategy:
|
||||||
|
rollingUpdate:
|
||||||
|
maxUnavailable: 1
|
||||||
|
type: RollingUpdate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{ labels("magnum", component="conductor") | indent(6) }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{ labels("magnum", component="conductor") | indent(8) }}
|
||||||
|
annotations:
|
||||||
|
checksum/config: "{{ config_hash }}"
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
initContainers:
|
||||||
|
- name: db-sync
|
||||||
|
image: vexxhost/magnum-conductor:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
command:
|
||||||
|
- magnum-db-manage
|
||||||
|
- upgrade
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/magnum
|
||||||
|
name: config
|
||||||
|
containers:
|
||||||
|
- name: magnum-conductor
|
||||||
|
image: vexxhost/magnum-conductor:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
{% if env is defined and env|length %}
|
||||||
|
env:
|
||||||
|
{% if 'sentryDSN' in spec %}
|
||||||
|
- name: SENTRY_DSN
|
||||||
|
value: {{ spec.sentryDSN }}
|
||||||
|
{% endif %}
|
||||||
|
{% for v in env %}
|
||||||
|
- name: "{{ v.name }}"
|
||||||
|
value: "{{ v.value }}"
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 65534
|
||||||
|
runAsGroup: 65534
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/magnum
|
||||||
|
name: config
|
||||||
|
- name: uwsgi-config
|
||||||
|
mountPath: /etc/uwsgi
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
secret:
|
||||||
|
secretName: magnum-config
|
||||||
|
- name: uwsgi-config
|
||||||
|
configMap:
|
||||||
|
defaultMode: 420
|
||||||
|
name: uwsgi-default
|
||||||
|
{% if 'nodeSelector' in spec %}
|
||||||
|
nodeSelector:
|
||||||
|
{{ spec.nodeSelector | to_yaml | indent(8) }}
|
||||||
|
{% endif %}
|
||||||
|
{% if 'tolerations' in spec %}
|
||||||
|
tolerations:
|
||||||
|
{{ spec.tolerations | to_yaml | indent(8) }}
|
||||||
|
{% endif %}
|
||||||
|
{% if 'hostAliases' in spec %}
|
||||||
|
hostAliases:
|
||||||
|
{{ spec.hostAliases | to_yaml | indent(8) }}
|
||||||
|
{% endif %}
|
@ -24,14 +24,19 @@ class MagnumAPIDaemonsetTestCase(base.DaemonSetTestCase):
|
|||||||
"""Basic tests for the API Daemonset."""
|
"""Basic tests for the API Daemonset."""
|
||||||
|
|
||||||
RELEASE_TYPE = 'magnum'
|
RELEASE_TYPE = 'magnum'
|
||||||
TEMPLATE_FILE = 'magnum/daemonset.yml.j2'
|
TEMPLATE_FILE = 'magnum/api/daemonset.yml.j2'
|
||||||
TEMPLATE_PARAMS = {'component': 'api'}
|
|
||||||
|
|
||||||
|
|
||||||
class MagnumConductorDaemonsetTestCase(base.DaemonSetTestCase):
|
class MagnumConductorDaemonsetTestCase(base.DaemonSetTestCase):
|
||||||
"""Basic tests for the Conductor Daemonset."""
|
"""Basic tests for the Conductor Daemonset."""
|
||||||
|
|
||||||
RELEASE_TYPE = 'magnum'
|
RELEASE_TYPE = 'magnum'
|
||||||
TEMPLATE_FILE = 'magnum/daemonset.yml.j2'
|
TEMPLATE_FILE = 'magnum/conductor/daemonset.yml.j2'
|
||||||
TEMPLATE_PARAMS = {'component': 'conductor'}
|
|
||||||
PORT_EXPOSED = False
|
PORT_EXPOSED = False
|
||||||
|
|
||||||
|
|
||||||
|
class MagnumAPIServiceTestCase(base.ServiceTestCase):
|
||||||
|
"""Basic tests for the Service."""
|
||||||
|
|
||||||
|
RELEASE_TYPE = 'magnum'
|
||||||
|
TEMPLATE_FILE = 'magnum/api/service.yml.j2'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user