diff --git a/glance/templates/bin/_clean.sh.tpl b/glance/templates/bin/_clean.sh.tpl new file mode 100644 index 0000000000..11f7186e2e --- /dev/null +++ b/glance/templates/bin/_clean.sh.tpl @@ -0,0 +1,28 @@ +#!/bin/bash + +# Copyright 2017 The Openstack-Helm Authors. +# +# 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. + +set -ex +{{ if .Values.bootstrap.enabled }} +{{ range .Values.bootstrap.images }} + {{ if .id -}} + echo "Delete Glance Bootstrap Image..." + openstack image delete {{ .id }} + {{ end -}} +{{ end }} + +{{ end }} +exit 0 + diff --git a/glance/templates/configmap-bin.yaml b/glance/templates/configmap-bin.yaml index 5eed50e1bf..273979a677 100644 --- a/glance/templates/configmap-bin.yaml +++ b/glance/templates/configmap-bin.yaml @@ -39,3 +39,5 @@ data: {{ tuple "bin/_bootstrap.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} ceph-keyring.sh: |+ {{ tuple "bin/_ceph-keyring.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} + clean.sh: |+ +{{ tuple "bin/_clean.sh.tpl" . | include "helm-toolkit.utils.template" | indent 4 }} diff --git a/glance/templates/job-clean.yaml b/glance/templates/job-clean.yaml new file mode 100644 index 0000000000..959d10eb5c --- /dev/null +++ b/glance/templates/job-clean.yaml @@ -0,0 +1,49 @@ +# Copyright 2017 The Openstack-Helm Authors. +# +# 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. + +{{- $envAll := . }} +{{- if .Values.bootstrap.enabled }} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: glance-clean-{{ randAlphaNum 5 | lower }} + annotations: + "helm.sh/hook": pre-delete +spec: + template: + spec: + restartPolicy: OnFailure + containers: + - name: glance-clean + image: {{ .Values.images.bootstrap }} + imagePullPolicy: {{ .Values.images.pull_policy }} +{{ tuple $envAll $envAll.Values.pod.resources.jobs.bootstrap | include "helm-toolkit.snippets.kubernetes_resources" | indent 10 }} + env: +{{- with $env := dict "ksUserSecret" .Values.secrets.identity.admin }} +{{- include "helm-toolkit.snippets.keystone_openrc_env_vars" $env | indent 12 }} +{{- end }} + command: + - /tmp/clean.sh + volumeMounts: + - name: glance-bin + mountPath: /tmp/clean.sh + subPath: clean.sh + readOnly: true + volumes: + - name: glance-bin + configMap: + name: glance-bin + defaultMode: 0555 +{{- end }}