Merge "Add heat-purge-deleted cron job"

This commit is contained in:
Zuul 2018-12-04 19:35:39 +00:00 committed by Gerrit Code Review
commit c58b2b7100
3 changed files with 212 additions and 1 deletions

View File

@ -5,4 +5,4 @@ TAR="$TAR_NAME-$SHA.tar.gz"
COPY_LIST="${CGCS_BASE}/downloads/$TAR $PKG_BASE/files/* "
TIS_PATCH_VER=5
TIS_PATCH_VER=6

View File

@ -20,6 +20,7 @@ Patch01: 0001-ceilometer-chart-updates.patch
Patch02: 0002-Add-Aodh-Chart.patch
Patch03: 0003-Add-Panko-Chart.patch
Patch04: Remove-stale-Apache2-service-pids-when-a-POD-starts.patch
Patch05: 0005-Add-heat-purge-deleted-cron-job.patch
BuildRequires: helm
BuildRequires: openstack-helm-infra
@ -34,6 +35,7 @@ Openstack Helm charts
%patch02 -p1
%patch03 -p1
%patch04 -p1
%patch05 -p1
%build
# initialize helm and stage the toolkit

View File

@ -0,0 +1,209 @@
From bd5c50427b8a453cd993cce39c5dc49bb94acd82 Mon Sep 17 00:00:00 2001
From: David Sullivan <david.sullivan@windriver.com>
Date: Fri, 23 Nov 2018 14:00:56 -0500
Subject: [PATCH] Add heat-purge-deleted cron job
This adds a cron job to purge deleted items from the heat db every 24h.
This should be upstreamed.
---
.../bin/_heat-purge-deleted-active.sh.tpl | 10 +++
heat/templates/configmap-bin.yaml | 2 +
heat/templates/cron-job-purge-deleted.yaml | 76 ++++++++++++++++++++++
heat/values.yaml | 32 +++++++++
4 files changed, 120 insertions(+)
create mode 100644 heat/templates/bin/_heat-purge-deleted-active.sh.tpl
create mode 100644 heat/templates/cron-job-purge-deleted.yaml
diff --git a/heat/templates/bin/_heat-purge-deleted-active.sh.tpl b/heat/templates/bin/_heat-purge-deleted-active.sh.tpl
new file mode 100644
index 0000000..dc38caf
--- /dev/null
+++ b/heat/templates/bin/_heat-purge-deleted-active.sh.tpl
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# Copyright (c) 2017-2018 Wind River Systems, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+set -ex
+
+heat-manage purge_deleted -g hours 1
diff --git a/heat/templates/configmap-bin.yaml b/heat/templates/configmap-bin.yaml
index b432097..1463be5 100644
--- a/heat/templates/configmap-bin.yaml
+++ b/heat/templates/configmap-bin.yaml
@@ -59,6 +59,8 @@ data:
{{ tuple "bin/_heat-engine.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
heat-engine-cleaner.sh: |
{{ tuple "bin/_heat-engine-cleaner.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
+ heat-purge-deleted-active.sh: |
+{{ tuple "bin/_heat-purge-deleted-active.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }}
rabbit-init.sh: |
{{- include "helm-toolkit.scripts.rabbit_init" . | indent 4 }}
{{- end }}
diff --git a/heat/templates/cron-job-purge-deleted.yaml b/heat/templates/cron-job-purge-deleted.yaml
new file mode 100644
index 0000000..8b8fb24
--- /dev/null
+++ b/heat/templates/cron-job-purge-deleted.yaml
@@ -0,0 +1,76 @@
+# Copyright (c) 2017-2018 Wind River Systems, Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+{{- if .Values.manifests.cron_job_purge_deleted }}
+{{- $envAll := . }}
+
+{{- $mounts_heat_purge_deleted := .Values.pod.mounts.heat_purge_deleted.heat_purge_deleted }}
+{{- $mounts_heat_purge_deleted_init := .Values.pod.mounts.heat_purge_deleted.init_container }}
+
+{{- $serviceAccountName := "heat-purge-deleted" }}
+{{ tuple $envAll "purge_deleted" $serviceAccountName | include "helm-toolkit.snippets.kubernetes_pod_rbac_serviceaccount" }}
+---
+apiVersion: batch/v1beta1
+kind: CronJob
+metadata:
+ name: heat-purge-deleted
+ annotations:
+ {{ tuple $envAll | include "helm-toolkit.snippets.release_uuid" }}
+spec:
+ schedule: {{ .Values.jobs.purge_deleted.cron | quote }}
+ successfulJobsHistoryLimit: {{ .Values.jobs.purge_deleted.history.success }}
+ failedJobsHistoryLimit: {{ .Values.jobs.purge_deleted.history.failed }}
+ concurrencyPolicy: Forbid
+ jobTemplate:
+ metadata:
+ labels:
+{{ tuple $envAll "heat" "purge-deleted" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 8 }}
+ spec:
+ template:
+ metadata:
+ labels:
+{{ tuple $envAll "heat" "purge-deleted" | include "helm-toolkit.snippets.kubernetes_metadata_labels" | indent 12 }}
+ spec:
+ serviceAccountName: {{ $serviceAccountName }}
+ restartPolicy: OnFailure
+ nodeSelector:
+ {{ .Values.labels.job.node_selector_key }}: {{ .Values.labels.job.node_selector_value }}
+ initContainers:
+{{ tuple $envAll "purge_deleted" $mounts_heat_purge_deleted_init | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" | indent 12 }}
+ containers:
+ - name: heat-purge-deleted
+{{ tuple $envAll "heat_purge_deleted" | include "helm-toolkit.snippets.image" | indent 14 }}
+{{ tuple $envAll $envAll.Values.pod.resources.jobs.purge_deleted | include "helm-toolkit.snippets.kubernetes_resources" | indent 14 }}
+ command:
+ - /tmp/heat-purge-deleted-active.sh
+ volumeMounts:
+ - name: heat-bin
+ mountPath: /tmp/heat-purge-deleted-active.sh
+ subPath: heat-purge-deleted-active.sh
+ readOnly: true
+ - name: etcheat
+ mountPath: /etc/heat
+ - name: heat-etc
+ mountPath: /etc/heat/heat.conf
+ subPath: heat.conf
+ readOnly: true
+ - name: heat-etc
+ mountPath: {{ .Values.conf.heat.DEFAULT.log_config_append }}
+ subPath: {{ base .Values.conf.heat.DEFAULT.log_config_append }}
+ readOnly: true
+{{ if $mounts_heat_purge_deleted.volumeMounts }}{{ toYaml $mounts_heat_purge_deleted.volumeMounts | indent 14 }}{{ end }}
+ volumes:
+ - name: etcheat
+ emptyDir: {}
+ - name: heat-etc
+ secret:
+ secretName: heat-etc
+ defaultMode: 0444
+ - name: heat-bin
+ configMap:
+ name: heat-bin
+ defaultMode: 0555
+{{ if $mounts_heat_purge_deleted.volumes }}{{ toYaml $mounts_heat_purge_deleted.volumes | indent 10 }}{{ end }}
+{{- end }}
diff --git a/heat/values.yaml b/heat/values.yaml
index 5d37081..51a7b42 100644
--- a/heat/values.yaml
+++ b/heat/values.yaml
@@ -55,6 +55,7 @@ images:
heat_cloudwatch: docker.io/openstackhelm/heat:ocata
heat_engine: docker.io/openstackhelm/heat:ocata
heat_engine_cleaner: docker.io/openstackhelm/heat:ocata
+ heat_purge_deleted: docker.io/openstackhelm/heat:ocata
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
image_repo_sync: docker.io/docker:17.07.0
pull_policy: "IfNotPresent"
@@ -70,6 +71,12 @@ jobs:
history:
success: 3
failed: 1
+
+ purge_deleted:
+ cron: "20 */24 * * *"
+ history:
+ success: 3
+ failed: 1
conf:
rally_tests:
@@ -677,6 +684,20 @@ dependencies:
service: oslo_messaging
- endpoint: internal
service: identity
+ purge_deleted:
+ jobs:
+ - heat-db-sync
+ - heat-ks-user
+ - heat-trustee-ks-user
+ - heat-domain-ks-user
+ - heat-ks-endpoints
+ services:
+ - endpoint: internal
+ service: oslo_db
+ - endpoint: internal
+ service: oslo_messaging
+ - endpoint: internal
+ service: identity
ks_endpoints:
jobs:
- heat-ks-service
@@ -968,6 +989,9 @@ pod:
heat_engine_cleaner:
init_container: null
heat_engine_cleaner:
+ heat_purge_deleted:
+ init_container: null
+ heat_purge_deleted:
heat_tests:
init_container: null
heat_tests:
@@ -1108,6 +1132,13 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
+ purge_deleted:
+ requests:
+ memory: "124Mi"
+ cpu: "100m"
+ limits:
+ memory: "1024Mi"
+ cpu: "2000m"
image_repo_sync:
requests:
memory: "128Mi"
@@ -1143,6 +1174,7 @@ manifests:
configmap_bin: true
configmap_etc: true
cron_job_engine_cleaner: true
+ cron_job_purge_deleted: true
deployment_api: true
deployment_cfn: true
deployment_cloudwatch: false
--
1.8.3.1