From e49c236d4f6ffa6b9bb158541120079cfc3e4a5e Mon Sep 17 00:00:00 2001 From: okozachenko Date: Thu, 9 Jul 2020 22:05:24 +0300 Subject: [PATCH] Add cronjob to purge heat db Change-Id: Ic95bcb545c6ff6783b5ca286939b1964e67e6168 --- openstack_operator/heat.py | 7 ++- .../heat/cronjob-purge-deleted.yml.j2 | 58 +++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 openstack_operator/templates/heat/cronjob-purge-deleted.yml.j2 diff --git a/openstack_operator/heat.py b/openstack_operator/heat.py index a5521000..e8fdb0a9 100644 --- a/openstack_operator/heat.py +++ b/openstack_operator/heat.py @@ -44,8 +44,6 @@ 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) utils.create_or_update('heat/memcached.yml.j2', spec=spec) # deploy rabbitmq if not utils.ensure_secret("openstack", "heat-rabbitmq"): @@ -53,6 +51,11 @@ def create_or_resume(name, spec, **_): password=utils.generate_password()) utils.create_or_update('heat/rabbitmq.yml.j2', spec=spec) + utils.create_or_update('heat/cronjob-service-clean.yml.j2', + name=name, spec=spec) + utils.create_or_update('heat/cronjob-purge-deleted.yml.j2', + name=name, spec=spec) + if "ingress" in spec: utils.create_or_update('heat/ingress.yml.j2', name=name, spec=spec) diff --git a/openstack_operator/templates/heat/cronjob-purge-deleted.yml.j2 b/openstack_operator/templates/heat/cronjob-purge-deleted.yml.j2 new file mode 100644 index 00000000..d9c69a84 --- /dev/null +++ b/openstack_operator/templates/heat/cronjob-purge-deleted.yml.j2 @@ -0,0 +1,58 @@ +--- +# 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 + namespace: openstack + labels: + {{ labels("heat", name) | indent(4) }} +spec: + schedule: "0 0 */1 * *" + jobTemplate: + spec: + template: + spec: + containers: + - name: purge + image: vexxhost/heat-engine:latest + imagePullPolicy: Always + command: + - heat-manage + - purge_deleted + - -g + - days + - "7" + 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(12) }} + {% endif %} + {% if 'tolerations' in spec %} + tolerations: + {{ spec.tolerations | to_yaml | indent(12) }} + {% endif %} + {% if 'hostAliases' in spec %} + hostAliases: + {{ spec.hostAliases | to_yaml | indent(12) }} + {% endif %}