Files
fedora-infra_ansible/playbooks/openshift-apps/koschei.yml
2025-06-27 14:58:12 +02:00

89 lines
2.7 KiB
YAML

---
- name: Provision koschei
hosts: os_control[0]:os_control_stg[0]
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/roles/openshift-apps/koschei/vars/main.yml
- /srv/web/infra/ansible/roles/openshift-apps/koschei/vars/{{ env }}.yml
roles:
- role: rabbit/queue
queue_username: "{{ app }}{{ env_suffix }}"
queue_name: "{{ app }}{{ env_suffix }}"
queue_routing_keys: []
queue_message_ttl: 60000
user_sent_topics: ^org\.fedoraproject\.{{ env_short }}\.(koschei|ci)\..*
- role: openshift/project
project_app: "{{ app }}"
project_description: "{{ description }}"
- role: openshift/keytab
keytab_app: "{{ app }}"
keytab_secret_name: keytab
keytab_key: krb5.keytab
keytab_service: koschei
keytab_host: "koschei-backend01{{ env_suffix }}.{{datacenter}}.fedoraproject.org"
- role: openshift/route
route_app: "{{ app }}"
route_name: frontend
route_host: "koschei{{ env_suffix }}.fedoraproject.org"
route_serviceport: web
route_servicename: frontend
route_annotations:
haproxy.router.openshift.io/set-forwarded-headers: append
haproxy.router.openshift.io/timeout: 180s
tasks:
- name: Apply objects
ansible.builtin.include_role:
name: openshift/object
vars:
object_app: "{{ app }}"
object_template: "{{ item }}.yml"
object_objectname: "{{ item }}.yml"
with_items:
- imagestream
- frontend-config
- backend-config
- admin-config
- admin-deployment
- frontend-deployment
- frontend-service
- name: Apply Deployment
ansible.builtin.include_role:
name: openshift/object
vars:
object_app: "{{ app }}"
object_template: backend-deployment.yml
object_objectname: "{{ item.name }}-deployment.yml"
object_service: "{{ item.name }}"
object_min_cpu: "{{ item.cpu[0] }}"
object_max_cpu: "{{ item.cpu[1] }}"
object_min_mem: "{{ item.memory[0] }}"
object_max_mem: "{{ item.memory[1] }}"
with_items: "{{ koschei_backend_services }}"
loop_control:
label: "{{ item.name }}"
- name: Apply CronJob
ansible.builtin.include_role:
name: openshift/object
vars:
object_app: "{{ app }}"
object_template: cronjob.yml
object_objectname: "{{ item.name }}-cronjob.yml"
object_name: "{{ item.name }}"
object_schedule: "{{ item.schedule }}"
object_command: "{{ item.command }}"
with_items: "{{ koschei_cron_jobs }}"
loop_control:
label: "{{ item.name }}"