ansible/playbooks/openshift-apps/waiverdb.yml
2025-03-28 17:55:33 +00:00

137 lines
4.1 KiB
YAML

---
- name: Setup the database
hosts: db01.iad2.fedoraproject.org:db01.stg.iad2.fedoraproject.org
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
tasks:
- name: Waiverdb DB user - prod
community.postgresql.postgresql_user:
name: "waiverdb"
password: "{{ prod_waiverdb_db_password }}"
when: env != 'staging'
- name: Waiverdb DB user - staging
community.postgresql.postgresql_user:
name: "waiverdb"
password: "{{ stg_waiverdb_db_password }}"
when: env == 'staging'
- name: Waiverdb database creation
community.postgresql.postgresql_db:
name: "waiverdb"
owner: "waiverdb"
encoding: UTF-8
- name: Make the app be real
hosts: os_control[0]:os_control_stg[0]
user: root
gather_facts: false
vars:
waiverdb_oidc_overwrite_redirect_uri: >-
https://waiverdb{{ env_suffix }}.fedoraproject.org/oidc_callback
vars_files:
- /srv/web/infra/ansible/vars/global.yml
- "/srv/private/ansible/vars.yml"
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
roles:
- role: rabbit/user
user_name: "waiverdb{{ env_suffix }}"
user_sent_topics: ^org\.fedoraproject\.{{ env_short }}\.waiverdb\..*
# The openshift/project role breaks if the project already exists:
# https://pagure.io/fedora-infrastructure/issue/6404
- role: openshift/project
project_app: waiverdb
project_description: waiverdb
project_appowners:
- lholecek
- vmaljulin
- kevin
tags:
- apply-appowners
- role: openshift/object
object_app: waiverdb
object_template: secret.yml.j2
object_objectname: secret.yml
- role: openshift/secret-file
secret_file_app: waiverdb
secret_file_secret_name: waiverdb-fedora-messaging-key
secret_file_key: waiverdb.key
secret_file_privatefile: "rabbitmq/{{env}}/pki/private/waiverdb{{env_suffix}}.key"
- role: openshift/secret-file
secret_file_app: waiverdb
secret_file_secret_name: waiverdb-fedora-messaging-crt
secret_file_key: waiverdb.crt
secret_file_privatefile: "rabbitmq/{{env}}/pki/issued/waiverdb{{env_suffix}}.crt"
- role: openshift/secret-file
secret_file_app: waiverdb
secret_file_secret_name: waiverdb-fedora-messaging-ca
secret_file_key: waiverdb.ca
secret_file_privatefile: "rabbitmq/{{env}}/pki/ca.crt"
- role: openshift/object
object_app: waiverdb
object_template: imagestream.yml.j2
object_objectname: imagestream.yml
- role: openshift/object
object_app: waiverdb
object_template: buildconfig.yml.j2
object_objectname: buildconfig.yml
- role: openshift/object
object_app: waiverdb
object_template: configmap.yml.j2
object_objectname: configmap.yml
- role: openshift/object
object_app: waiverdb
object_file: service.yml
object_objectname: service.yml
- role: openshift/route
route_app: waiverdb
route_name: web-pretty
route_host: "waiverdb{{ env_suffix }}.fedoraproject.org"
route_serviceport: web
route_servicename: waiverdb-web
# TODO -- someday retire this old route in favor of the pretty one above.
- role: openshift/object
object_app: waiverdb
object_file: route.yml
object_objectname: route.yml
- role: openshift/object
object_app: waiverdb
object_template: deploymentconfig.yml.j2
object_objectname: deploymentconfig.yml
# Remove no longer needed intermediate image build
- role: openshift/object-delete
object_delete_app: waiverdb
object_delete_objecttype: buildconfig
object_delete_objectname: waiverdb-docker-build
- role: openshift/object-delete
object_delete_app: waiverdb
object_delete_objecttype: imagestream
object_delete_objectname: waiverdb-upstream
- role: openshift/rollout
rollout_app: waiverdb
rollout_dcname: waiverdb-web
tags:
- never
- rollout