Badges: port cronjobs
Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
This commit is contained in:
parent
c6571e6ff6
commit
a6e8b9190f
4 changed files with 165 additions and 3 deletions
|
@ -12,7 +12,7 @@
|
|||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- /srv/private/ansible/vars.yml
|
||||
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
||||
# - /srv/web/infra/ansible/vars/apps/badges.yml
|
||||
- /srv/web/infra/ansible/vars/apps/badges.yml
|
||||
|
||||
tasks:
|
||||
- name: DB user
|
||||
|
@ -36,7 +36,7 @@
|
|||
- /srv/web/infra/ansible/vars/global.yml
|
||||
- /srv/private/ansible/vars.yml
|
||||
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
||||
# - /srv/web/infra/ansible/vars/apps/badges.yml
|
||||
- /srv/web/infra/ansible/vars/apps/badges.yml
|
||||
|
||||
roles:
|
||||
- role: rabbit/user
|
||||
|
@ -139,6 +139,12 @@
|
|||
file: deploymentconfig.yml
|
||||
objectname: deploymentconfig.yml
|
||||
|
||||
# Cron jobs
|
||||
- role: openshift/object
|
||||
app: badges
|
||||
template: cron-award.yml
|
||||
objectname: cron-award.yml
|
||||
|
||||
- role: openshift/start-build
|
||||
app: badges
|
||||
buildname: "{{ item }}"
|
||||
|
|
45
roles/openshift-apps/badges/templates/cron-award.yml
Normal file
45
roles/openshift-apps/badges/templates/cron-award.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
### Badges-awarding cron jobs
|
||||
#
|
||||
{% for cronjob in badges_award_cronjobs %}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: award-{{ cronjob.name }}
|
||||
spec:
|
||||
successfulJobsHistoryLimit: 3
|
||||
failedJobsHistoryLimit: 3
|
||||
concurrencyPolicy: Forbid
|
||||
schedule: "{{ cronjob.schedule }}"
|
||||
startingDeadlineSeconds: 500
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: badges
|
||||
image: image-registry.openshift-image-registry.svc:5000/badges/fedbadges:latest
|
||||
command: ["/opt/app-root/bin/award-{{ cronjob.name }}"]
|
||||
volumeMounts:
|
||||
- name: etc-badges
|
||||
mountPath: "/etc/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: ipa-config-volume
|
||||
configMap:
|
||||
name: ipa-client-config
|
||||
- name: keytab-volume
|
||||
secret:
|
||||
secretName: keytab
|
||||
{% endfor %}
|
|
@ -47,7 +47,7 @@ consume_delay = 1
|
|||
|
||||
# This is a sqlalchemy URI that points to the Badges DB. In
|
||||
# production, this will be a postgres URI.
|
||||
database_uri = "postgresql://{{ tahrirDBUser }}:{{ (env == 'production')|ternary(tahrirDBPassword, tahrirstgDBPassword) }}@db01{{ env_suffix }}/tahrir"
|
||||
database_uri = "postgresql://{{ tahrirDBUser }}:{{ (env == 'production')|ternary(tahrirDBPassword, tahrirstgDBPassword) }}@{{ badges_db_host }}/{{ badges_db_name }}"
|
||||
|
||||
# Datanommer database URI
|
||||
datanommer_db_uri = "postgresql://{{ datanommerDBUser }}:{{ (env == 'production')|ternary(datanommerDBPassword, datanommer_stg_db_password) }}@db-datanommer{{ (env == 'production')|ternary('02', '01') }}{{ env_suffix }}/datanommer2"
|
||||
|
@ -65,6 +65,103 @@ issuer_name = "Fedora Project"
|
|||
issuer_url = "http://fedoraproject.org"
|
||||
issuer_email = "badges@fedoraproject.org"
|
||||
|
||||
# Members and Sponsors of these groups get the corresponding badge
|
||||
[[consumer_config.group_badges]]
|
||||
group = "3d-printing-sig"
|
||||
badge = "3d-printing-sig-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "cla_done"
|
||||
badge = "involvement"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "advocates"
|
||||
badge = "fedora-advocate"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "ambassadors"
|
||||
badge = "ambassador"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "ambassadors"
|
||||
memberships = ["sponsor"]
|
||||
badge = "ambassadors-sponsor"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "commops"
|
||||
badge = "commops-superstar"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "council"
|
||||
badge = "council-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "designteam"
|
||||
badge = "pixel-ninja"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "dotnet-team"
|
||||
badge = "dotnet-sig-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "fedora-hams"
|
||||
badge = "amateur-radio-sig-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "fi-apprentice"
|
||||
badge = "no-longer-a-ronin"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "gitfedora-web"
|
||||
badge = "rock-the-web!"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "git-fedora-electronic-lab"
|
||||
badge = "fel-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "iot"
|
||||
badge = "iot-working-group-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "irc-support-operators"
|
||||
badge = "your-call-may-be-monitored-for-quality-assurance"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "kde-sig"
|
||||
badge = "kde-sig"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "lxqt-sig"
|
||||
badge = "lxqt-sig-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "marketing"
|
||||
badge = "called-to-action"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "mindshare"
|
||||
badge = "meeting-of-the-minds"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "modularity-wg"
|
||||
badge = "modularity-wg-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "neuro-sig"
|
||||
badge = "neurofedora-sig-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "packager"
|
||||
memberships = ["sponsor"]
|
||||
badge = "packager-sponsor"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "provenpackager"
|
||||
badge = "proven-packager"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "proventesters"
|
||||
badge = "proven-tester"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "robotics-sig"
|
||||
badge = "domo-arigato"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "ruby-sig"
|
||||
badge = "ruby-sig-member"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "security-team"
|
||||
badge = "security-team"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "summer-coding"
|
||||
badge = "summer-coder"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "sysadmin-main"
|
||||
badge = "trust-me,-i-know-what-i-am-doing"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "sysadmin-badges"
|
||||
badge = "inside-job"
|
||||
[[consumer_config.group_badges]]
|
||||
group = "videos"
|
||||
badge = "videographer"
|
||||
|
||||
|
||||
[qos]
|
||||
prefetch_size = 0
|
||||
|
|
14
vars/apps/badges.yml
Normal file
14
vars/apps/badges.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
badges_db_host: "db01{{ env_suffix }}"
|
||||
badges_db_name: "tahrir"
|
||||
badges_award_cronjobs:
|
||||
- name: group-membership
|
||||
schedule: "25 13 * * *"
|
||||
- name: libravatar
|
||||
schedule: "40 14 */2 * *"
|
||||
- name: mirror
|
||||
schedule: "20 */2 * * *"
|
||||
- name: lifecycle
|
||||
schedule: "40 2 * * 3"
|
||||
- name: badges-dev
|
||||
schedule: "40 2 * * 4"
|
Loading…
Add table
Add a link
Reference in a new issue