Badges: extract the rules repo

Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
This commit is contained in:
Aurélien Bompard 2024-03-22 17:49:32 +01:00
parent a6e8b9190f
commit a942746cac
No known key found for this signature in database
GPG key ID: 31584CFEB9BF64AD
7 changed files with 104 additions and 1 deletions

View file

@ -21,7 +21,7 @@
password: "{{ (env == 'production')|ternary(tahrirDBPassword, tahrirstgDBPassword) }}"
- name: Database creation
postgresql_db:
name: "tahrir"
name: "{{ badges_db_name }}"
owner: "{{ tahrirDBUser }}"
encoding: UTF-8
@ -97,6 +97,11 @@
file: service.yml
objectname: service.yml
- role: openshift/object
app: badges
file: storage.yml
objectname: storage.yml
# Routes
- role: openshift/route
app: badges
@ -144,6 +149,10 @@
app: badges
template: cron-award.yml
objectname: cron-award.yml
- role: openshift/object
app: badges
template: cron-update-rules.yml
objectname: cron-update-rules.yml
- role: openshift/start-build
app: badges

View file

@ -36,6 +36,9 @@ spec:
- name: etc-badges
mountPath: "/etc/badges"
readOnly: true
- name: rules
mountPath: "/var/lib/badges"
readOnly: true
- name: ipa-config-volume
mountPath: /etc/ipa
readOnly: true
@ -86,6 +89,9 @@ spec:
- name: etc-badges
configMap:
name: badges
- name: rules
persistentVolumeClaim:
claimName: rules
- name: ipa-config-volume
configMap:
name: ipa-client-config
@ -149,6 +155,9 @@ spec:
- name: etc-badges
mountPath: "/etc/badges"
readOnly: true
- name: rules
mountPath: "/var/lib/badges"
readOnly: true
- name: ipa-config-volume
mountPath: /etc/ipa
readOnly: true
@ -173,6 +182,9 @@ spec:
- name: etc-badges
configMap:
name: badges
- name: rules
persistentVolumeClaim:
claimName: rules
- name: ipa-config-volume
configMap:
name: ipa-client-config

View file

@ -0,0 +1,13 @@
---
# The fedora-badges repo
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rules
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
storageClassName: ocs-storagecluster-cephfs

View file

@ -0,0 +1,12 @@
#!/bin/bash
set -e
set -x
DIR=/var/lib/badges
if [ ! -d "$DIR/.git" ]; then
git clone https://pagure.io/fedora-badges.git $DIR
fi
git pull -C $DIR

View file

@ -15,3 +15,5 @@ items:
{{ load_file('fm-tahrir.toml') | indent(6) }}
fm-fedbadges.toml: |-
{{ load_file('fm-fedbadges.toml') | indent(6) }}
checkout-rules-repo.sh: |-
{{ load_file('checkout-rules-repo.sh') | indent(6) }}

View file

@ -26,6 +26,9 @@ spec:
- name: etc-badges
mountPath: "/etc/badges"
readOnly: true
- name: rules
mountPath: "/var/lib/badges"
readOnly: true
- name: ipa-config-volume
mountPath: /etc/ipa
readOnly: true
@ -36,6 +39,9 @@ spec:
- name: etc-badges
configMap:
name: badges
- name: rules
persistentVolumeClaim:
claimName: rules
- name: ipa-config-volume
configMap:
name: ipa-client-config

View file

@ -0,0 +1,49 @@
#
### Update the rules repo
#
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: update-rules
spec:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
concurrencyPolicy: Forbid
schedule: "*/15 * * * *"
startingDeadlineSeconds: 500
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: badges
image: image-registry.openshift-image-registry.svc:5000/badges/fedbadges:latest
command: ["bash", "/etc/badges/checkout-rules-repo.sh"]
volumeMounts:
- name: etc-badges
mountPath: "/etc/badges"
readOnly: true
- name: rules
mountPath: "/var/lib/badges"
readOnly: true
- name: ipa-config-volume
mountPath: /etc/ipa
readOnly: true
- name: keytab-volume
mountPath: /etc/keytabs
readOnly: true
volumes:
- name: etc-badges
configMap:
name: badges
- name: rules
persistentVolumeClaim:
claimName: rules
- name: ipa-config-volume
configMap:
name: ipa-client-config
- name: keytab-volume
secret:
secretName: keytab