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
|
- patch
|
||||||
- update
|
- update
|
||||||
- watch
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- batch
|
||||||
|
resources:
|
||||||
|
- cronjobs
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- watch
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- dns.openstack.org
|
- dns.openstack.org
|
||||||
resources:
|
resources:
|
||||||
|
@ -44,6 +44,9 @@ def create_or_resume(name, spec, **_):
|
|||||||
name=name, spec=spec, component='engine',
|
name=name, spec=spec, component='engine',
|
||||||
config_hash=config_hash)
|
config_hash=config_hash)
|
||||||
|
|
||||||
|
utils.create_or_update('heat/cronjob-service-clean.yml.j2',
|
||||||
|
name=name, spec=spec)
|
||||||
|
|
||||||
if "ingress" in spec:
|
if "ingress" in spec:
|
||||||
utils.create_or_update('heat/ingress.yml.j2',
|
utils.create_or_update('heat/ingress.yml.j2',
|
||||||
name=name, spec=spec)
|
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 ConfigMap
|
||||||
|
from pykube.objects import CronJob
|
||||||
from pykube.objects import DaemonSet
|
from pykube.objects import DaemonSet
|
||||||
from pykube.objects import Deployment
|
from pykube.objects import Deployment
|
||||||
from pykube.objects import HorizontalPodAutoscaler
|
from pykube.objects import HorizontalPodAutoscaler
|
||||||
@ -83,6 +84,9 @@ MAPPING = {
|
|||||||
"autoscaling/v1": {
|
"autoscaling/v1": {
|
||||||
"HorizontalPodAutoscaler": HorizontalPodAutoscaler,
|
"HorizontalPodAutoscaler": HorizontalPodAutoscaler,
|
||||||
},
|
},
|
||||||
|
"batch/v1beta1": {
|
||||||
|
"CronJob": CronJob,
|
||||||
|
},
|
||||||
"extensions/v1beta1": {
|
"extensions/v1beta1": {
|
||||||
"Ingress": Ingress
|
"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:
|
volumeMounts:
|
||||||
- mountPath: /etc/heat
|
- mountPath: /etc/heat
|
||||||
name: config
|
name: config
|
||||||
|
- name: service-clean
|
||||||
|
image: vexxhost/heat-{{ component }}:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
command:
|
||||||
|
- heat-manage
|
||||||
|
- service
|
||||||
|
- clean
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /etc/heat
|
||||||
|
name: config
|
||||||
{% endif %}
|
{% endif %}
|
||||||
containers:
|
containers:
|
||||||
- name: heat-{{ component }}
|
- name: heat-{{ component }}
|
||||||
|
Loading…
Reference in New Issue
Block a user