Add cronjob in heat deployment to clean service every 1 hr
Change-Id: I9d6d25ac55b5dd9ab6f5a1934f86699273fb4c6d
This commit is contained in:
parent
5989914917
commit
a3aa1ad07f
@ -72,6 +72,18 @@ rules:
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- batch
|
||||
resources:
|
||||
- cronjobs
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- patch
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- dns.openstack.org
|
||||
resources:
|
||||
|
@ -44,6 +44,9 @@ def create_or_resume(name, spec, **_):
|
||||
name=name, spec=spec, component='engine',
|
||||
config_hash=config_hash)
|
||||
|
||||
utils.create_or_update('heat/cronjob-service-clean.yml.j2',
|
||||
name=name, spec=spec)
|
||||
|
||||
if "ingress" in spec:
|
||||
utils.create_or_update('heat/ingress.yml.j2',
|
||||
name=name, spec=spec)
|
||||
|
@ -23,6 +23,7 @@ from combinations of apiVersion and kind to the exact model.
|
||||
"""
|
||||
|
||||
from pykube.objects import ConfigMap
|
||||
from pykube.objects import CronJob
|
||||
from pykube.objects import DaemonSet
|
||||
from pykube.objects import Deployment
|
||||
from pykube.objects import HorizontalPodAutoscaler
|
||||
@ -83,6 +84,9 @@ MAPPING = {
|
||||
"autoscaling/v1": {
|
||||
"HorizontalPodAutoscaler": HorizontalPodAutoscaler,
|
||||
},
|
||||
"batch/v1beta1": {
|
||||
"CronJob": CronJob,
|
||||
},
|
||||
"extensions/v1beta1": {
|
||||
"Ingress": Ingress
|
||||
},
|
||||
|
@ -0,0 +1,56 @@
|
||||
---
|
||||
# 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: batch/v1beta1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: heat-service-clean
|
||||
namespace: openstack
|
||||
labels:
|
||||
{{ labels("heat", name) | indent(4) }}
|
||||
spec:
|
||||
schedule: "* */1 * * *"
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: service-clean
|
||||
image: vexxhost/heat-engine:latest
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- heat-manage
|
||||
- service
|
||||
- clean
|
||||
volumeMounts:
|
||||
- mountPath: /etc/heat
|
||||
name: config
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: config
|
||||
secret:
|
||||
secretName: heat-config
|
||||
{% 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 %}
|
@ -53,6 +53,16 @@ spec:
|
||||
volumeMounts:
|
||||
- mountPath: /etc/heat
|
||||
name: config
|
||||
- name: service-clean
|
||||
image: vexxhost/heat-{{ component }}:latest
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- heat-manage
|
||||
- service
|
||||
- clean
|
||||
volumeMounts:
|
||||
- mountPath: /etc/heat
|
||||
name: config
|
||||
{% endif %}
|
||||
containers:
|
||||
- name: heat-{{ component }}
|
||||
|
Loading…
Reference in New Issue
Block a user