diff --git a/README.md b/README.md index 33deba0..c29851f 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,13 @@ Role Variables osbs_sources_command: fedpkg sources osbs_source_registry_uri: https://source.registry.fedoraproject.org # Empty default value + # Pruning + osbs_prune: false + osbs_prune_schedule: '0 0 */8 * *' + osbs_prune_secret: '' + osbs_prune_image: '' + osbs_prune_commands: ["/prune.sh"] + For a full list, see defaults/main.yml Dependencies diff --git a/defaults/main.yml b/defaults/main.yml index 1d9e4ec..7fd5cd4 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -39,3 +39,9 @@ osbs_build_json_dir: /usr/share/osbs osbs_sources_command: fedpkg sources osbs_vendor: Fedora Project osbs_nodeselector: '' + +osbs_prune: false +osbs_prune_schedule: '0 0 */8 * *' +osbs_prune_secret: '' +osbs_prune_image: '' +osbs_prune_commands: ["/prune.sh"] diff --git a/tasks/main.yml b/tasks/main.yml index e5670bd..6bfec5a 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -188,5 +188,25 @@ tags: - oc +- name: copy prune cronjob yaml + template: + src: openshift-prune-cronjob.yml.j2 + dest: "{{ osbs_openshift_home }}/{{ inventory_hostname }}-{{ osbs_namespace }}-prune-cronjob.yml" + register: yaml_cronjob + when: osbs_prune + tags: + - oc + +- name: import prune cronjob yaml + command: > + oc replace + --namespace={{ osbs_namespace }} + --force=true + --filename={{ osbs_openshift_home }}/{{ inventory_hostname }}-{{ osbs_namespace }}-prune-cronjob.yml + environment: "{{ osbs_environment }}" + when: osbs_prune and yaml_cronjob.changed + tags: + - oc + - include: orchestrator.yml when: osbs_orchestrator diff --git a/templates/openshift-prune-cronjob.yml.j2 b/templates/openshift-prune-cronjob.yml.j2 new file mode 100644 index 0000000..b4ae87c --- /dev/null +++ b/templates/openshift-prune-cronjob.yml.j2 @@ -0,0 +1,26 @@ +apiVersion: batch/v2alpha1 +kind: CronJob +metadata: + name: build-pruner +spec: + schedule: "{{ osbs_prune_schedule }}" + jobTemplate: + spec: + template: + spec: + volumes: + - name: token + secret: + defaultMode: 420 + secretName: {{ osbs_prune_secret }} + containers: + - name: build-pruner + image: {{ osbs_prune_image }} + {-% if osbs_prune_commands %} + command: {{ osbs_prune_commands }} + {% endif -%} + volumeMounts: + - mountPath: /token + name: token + readOnly: true + restartPolicy: Never