Files
fedora-infra_ansible/playbooks/openshift-apps/mirrormanager.yml
Aurélien Bompard 1a56c792b9 Fix MirrorManager buildconfig name
Signed-off-by: Aurélien Bompard <aurelien@bompard.org>
2025-12-03 12:31:24 +01:00

180 lines
5.7 KiB
YAML

#
# MirrorManager
#
---
- name: Setup the database
hosts: apps_dbserver:apps_dbserver_stg
gather_facts: no
become: yes
become_user: postgres
vars_files:
- /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/mirrormanager.yml
tasks:
- name: DB user
community.postgresql.postgresql_user:
name: "{{ (env == 'production') | ternary(mirrormanager_db_user, mirrormanager_stg_db_user) }}"
password: "{{ (env == 'production') | ternary(mirrormanager_db_pass, mirrormanager_stg_db_pass) }}"
- name: FMN database creation
community.postgresql.postgresql_db:
name: "{{ (env == 'production') | ternary(mirrormanager_db_name, mirrormanager_stg_db_name) }}"
owner: "{{ (env == 'production') | ternary(mirrormanager_db_user, mirrormanager_stg_db_user) }}"
encoding: UTF-8
- name: Make the app be real
hosts: os_control_stg:os_control
user: root
gather_facts: false
vars_files:
- /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/mirrormanager.yml
roles:
- role: rabbit/user
user_name: "mirrormanager{{ env_suffix }}"
user_sent_topics: ^org\.fedoraproject\.{{ env_short }}\.mirrormanager\..*
tags:
- config
- fedora-messaging
- rabbitmq_cluster
- role: openshift/project
project_app: mirrormanager
project_description: "MirrorManager"
project_appowners:
- abompard
- nphilipp
- adrian
project_allow_pod_creation: true
tags:
- apply-appowners
- role: openshift/object
object_app: mirrormanager
object_file: imagestream.yml
object_objectname: imagestream.yml
- role: openshift/object
object_app: mirrormanager
object_template: buildconfig.yml.j2
object_objectname: buildconfig.yml
- role: openshift/object
object_app: mirrormanager
object_file: storage.yml
object_objectname: storage.yml
- role: openshift/object
object_app: mirrormanager
object_template: secrets.yml.j2
object_objectname: secrets.yml
- role: openshift/object
object_app: mirrormanager
object_template: configmap.yml.j2
object_objectname: configmap.yml
- role: openshift/object
object_app: mirrormanager
object_file: service.yml
object_objectname: service.yml
# Routes
- role: openshift/route
route_app: mirrormanager
route_name: frontend
route_host: "{{ mirrormanager_hostname }}"
route_servicename: frontend
route_serviceport: web
route_annotations:
haproxy.router.openshift.io/timeout: 5m
- role: openshift/route
route_app: mirrormanager
route_name: frontend-openshift
route_host: "mirrormanager.apps.ocp{{ env_suffix }}.fedoraproject.org"
route_servicename: frontend
route_serviceport: web
route_annotations:
haproxy.router.openshift.io/timeout: 5m
when: mirrormanager_hostname != "mirrormanager.apps.ocp{}.fedoraproject.org".format(env_suffix)
# SSH key to get the access logs
- role: openshift/secret-file
secret_file_app: mirrormanager
secret_file_secret_name: ssh-mirrorlist-proxies-key
secret_file_key: ssh_mirrorlist_proxies.key
secret_file_privatefile: "mirrormanager/id_rsa"
# Fedora Messaging
- role: openshift/secret-file
secret_file_app: mirrormanager
secret_file_secret_name: fedora-messaging-ca
secret_file_key: cacert.pem
secret_file_privatefile: "rabbitmq/{{env}}/ca-combined.crt"
- role: openshift/secret-file
secret_file_app: mirrormanager
secret_file_secret_name: fedora-messaging-crt
secret_file_key: cert.pem
secret_file_privatefile: "rabbitmq/{{env}}/pki/issued/mirrormanager{{env_suffix}}.crt"
- role: openshift/secret-file
secret_file_app: mirrormanager
secret_file_secret_name: fedora-messaging-key
secret_file_key: key.pem
secret_file_privatefile: "rabbitmq/{{env}}/pki/private/mirrormanager{{env_suffix}}.key"
# Deployment config
- role: openshift/object
object_app: mirrormanager
object_template: deploymentconfig.yml.j2
object_objectname: deploymentconfig.yml
# Cron jobs
- role: openshift/object
object_app: mirrormanager
object_template: cron-crawler.yml.j2
object_objectname: cron-crawler.yml
when: env == "production"
- role: openshift/object
object_app: mirrormanager
object_template: cron-propagation.yml.j2
object_objectname: cron-propagation.yml
when: env == "production"
- role: openshift/object
object_app: mirrormanager
object_template: cron-accesses.yml.j2
object_objectname: cron-accesses.yml
- role: openshift/object
object_app: mirrormanager
object_template: cron-mirrorlist-cache.yml.j2
object_objectname: cron-mirrorlist-cache.yml
- role: openshift/object
object_app: mirrormanager
object_template: cron-geoip.yml.j2
object_objectname: cron-geoip.yml
- role: openshift/object
object_app: mirrormanager
object_template: cron-primary-mirror.yml.j2
object_objectname: cron-primary-mirror.yml
- role: openshift/start-build
start_build_app: mirrormanager
start_build_buildname: mirrormanager2
tags:
- never
- build
- role: openshift/rollout
rollout_app: mirrormanager
rollout_dcname: frontend
tags:
- never
- rollout