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/web/infra/ansible/vars/global.yml
|
||||||
- /srv/private/ansible/vars.yml
|
- /srv/private/ansible/vars.yml
|
||||||
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.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:
|
tasks:
|
||||||
- name: DB user
|
- name: DB user
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
- /srv/web/infra/ansible/vars/global.yml
|
- /srv/web/infra/ansible/vars/global.yml
|
||||||
- /srv/private/ansible/vars.yml
|
- /srv/private/ansible/vars.yml
|
||||||
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.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:
|
roles:
|
||||||
- role: rabbit/user
|
- role: rabbit/user
|
||||||
|
@ -139,6 +139,12 @@
|
||||||
file: deploymentconfig.yml
|
file: deploymentconfig.yml
|
||||||
objectname: deploymentconfig.yml
|
objectname: deploymentconfig.yml
|
||||||
|
|
||||||
|
# Cron jobs
|
||||||
|
- role: openshift/object
|
||||||
|
app: badges
|
||||||
|
template: cron-award.yml
|
||||||
|
objectname: cron-award.yml
|
||||||
|
|
||||||
- role: openshift/start-build
|
- role: openshift/start-build
|
||||||
app: badges
|
app: badges
|
||||||
buildname: "{{ item }}"
|
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
|
# This is a sqlalchemy URI that points to the Badges DB. In
|
||||||
# production, this will be a postgres URI.
|
# 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 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"
|
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_url = "http://fedoraproject.org"
|
||||||
issuer_email = "badges@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]
|
[qos]
|
||||||
prefetch_size = 0
|
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