Merge "Rearrange magnum templates"
This commit is contained in:
commit
a489dffd31
openstack_operator
@ -38,16 +38,15 @@ def create_or_resume(name, spec, **_):
|
||||
# deploy rabbitmq
|
||||
utils.deploy_rabbitmq("magnum")
|
||||
|
||||
# deploy magnum
|
||||
config_hash = utils.generate_hash(spec)
|
||||
for component in ("api", "conductor"):
|
||||
utils.create_or_update('magnum/daemonset.yml.j2',
|
||||
name=name, spec=spec,
|
||||
component=component,
|
||||
config_hash=config_hash)
|
||||
# deploy magnum api
|
||||
utils.create_or_update('magnum/api/daemonset.yml.j2', spec=spec,
|
||||
config_hash=config_hash)
|
||||
utils.create_or_update('magnum/api/service.yml.j2')
|
||||
|
||||
utils.create_or_update('magnum/service.yml.j2',
|
||||
name=name)
|
||||
# deploy magnum conductor
|
||||
utils.create_or_update('magnum/conductor/daemonset.yml.j2',
|
||||
spec=spec, config_hash=config_hash)
|
||||
|
||||
url = None
|
||||
if "ingress" in spec:
|
||||
|
@ -16,10 +16,10 @@
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: magnum-{{ component }}
|
||||
name: magnum-api
|
||||
namespace: openstack
|
||||
labels:
|
||||
{{ labels("magnum", name, component) | indent(4) }}
|
||||
{{ labels("magnum", component="api") | indent(4) }}
|
||||
spec:
|
||||
updateStrategy:
|
||||
rollingUpdate:
|
||||
@ -27,30 +27,18 @@ spec:
|
||||
type: RollingUpdate
|
||||
selector:
|
||||
matchLabels:
|
||||
{{ labels("magnum", name, component) | indent(6) }}
|
||||
{{ labels("magnum", component="api") | indent(6) }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{ labels("magnum", name, component) | indent(8) }}
|
||||
{{ labels("magnum", component="api") | indent(8) }}
|
||||
annotations:
|
||||
checksum/config: "{{ config_hash }}"
|
||||
spec:
|
||||
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:
|
||||
- name: magnum-{{ component }}
|
||||
image: vexxhost/magnum-{{ component }}:latest
|
||||
- name: magnum-api
|
||||
image: vexxhost/magnum-api:latest
|
||||
imagePullPolicy: Always
|
||||
{% if env is defined and env|length %}
|
||||
env:
|
||||
@ -63,22 +51,20 @@ spec:
|
||||
value: "{{ v.value }}"
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if 'api' in component %}
|
||||
ports:
|
||||
- name: magnum-{{ component }}
|
||||
- name: magnum-api
|
||||
protocol: TCP
|
||||
containerPort: 9511
|
||||
livenessProbe:
|
||||
tcpSocket:
|
||||
port: magnum-{{ component }}
|
||||
port: magnum-api
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: magnum-{{ component }}
|
||||
port: magnum-api
|
||||
lifecycle:
|
||||
preStop:
|
||||
exec:
|
||||
command: ["/bin/sleep", "5"]
|
||||
{% endif %}
|
||||
securityContext:
|
||||
runAsUser: 65534
|
||||
runAsGroup: 65534
|
@ -25,4 +25,4 @@ spec:
|
||||
port: 80
|
||||
targetPort: magnum-api
|
||||
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."""
|
||||
|
||||
RELEASE_TYPE = 'magnum'
|
||||
TEMPLATE_FILE = 'magnum/daemonset.yml.j2'
|
||||
TEMPLATE_PARAMS = {'component': 'api'}
|
||||
TEMPLATE_FILE = 'magnum/api/daemonset.yml.j2'
|
||||
|
||||
|
||||
class MagnumConductorDaemonsetTestCase(base.DaemonSetTestCase):
|
||||
"""Basic tests for the Conductor Daemonset."""
|
||||
|
||||
RELEASE_TYPE = 'magnum'
|
||||
TEMPLATE_FILE = 'magnum/daemonset.yml.j2'
|
||||
TEMPLATE_PARAMS = {'component': 'conductor'}
|
||||
TEMPLATE_FILE = 'magnum/conductor/daemonset.yml.j2'
|
||||
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