diff --git a/roles/fmc/tasks/main.yml b/roles/fmc/tasks/main.yml new file mode 100644 index 0000000000..2f27f2420b --- /dev/null +++ b/roles/fmc/tasks/main.yml @@ -0,0 +1,25 @@ +--- +- name: Copy fedora-minimal-compose.py to python site-packages + get_url: + url: https://pagure.io/releng/fmc/raw/master/f/fedora-minimal-compose.py + dest: /usr/lib/python3.7/site-packages/ + mode: '0755' + +- name: Install fedora-messaging rpm + dnf: + package: fedora-messaging + state: latest + +- name: Place fedora-minimal-compose.toml /etc/fedora-messaging/ + template: + src: fedora-minimal-compose.toml + dest: /etc/fedora-messaging/fedora-minimal-compose.toml + owner: root + group: root + mode: 644 + +- name: Start and enable the fmc services + service: + name: fm-consumer@fedora-minimal-compose + state: started + enabled: yes diff --git a/roles/fmc/templates/fedora-minimal-compose.toml b/roles/fmc/templates/fedora-minimal-compose.toml new file mode 100644 index 0000000000..8478226057 --- /dev/null +++ b/roles/fmc/templates/fedora-minimal-compose.toml @@ -0,0 +1,86 @@ +# A basic configuration for Fedora's message broker +# +# This file is in the TOML format. +amqp_url = "amqps://fedora:@rabbitmq.fedoraproject.org/%2Fpublic_pubsub" +callback = "fedora-minimal-compose:Consumer" + +[tls] +ca_cert = "/etc/fedora-messaging/cacert.pem" +keyfile = "/etc/fedora-messaging/fedora-key.pem" +certfile = "/etc/fedora-messaging/fedora-cert.pem" + +[client_properties] +app = "fmc" +app_url = "https://pagure.io/releng/fmc" + +[exchanges."amq.topic"] +type = "topic" +durable = true +auto_delete = false +arguments = {} + +# Queue names *must* be in the normal UUID format: run "uuidgen" and use the +# output as your queue name. If your queue is not exclusive, anyone can connect +# and consume from it, causing you to miss messages, so do not share your queue +# name. Any queues that are not auto-deleted on disconnect are garbage-collected +# after approximately one hour. +# +# If you require a stronger guarantee about delivery, please talk to Fedora's +# Infrastructure team. +[queues.00000000-0000-0000-0000-000000000000] +durable = false +auto_delete = true +exclusive = true +arguments = {} + +[[bindings]] +queue = "00000000-0000-0000-0000-000000000000" +exchange = "amq.topic" +routing_keys = ["org.fedoraproject.prod.buildsys.rpm.sign"] + +[consumer_config] +rawhide = {{FedoraRawhideNumber}} +odcs_url = 'https://odcs.fedoraproject.org' +odcs_file = '/etc/releng-odcs-oidc-token' +packages_list = ['anaconda', 'authconfig', 'python-blivet', 'pyparted', 'parted', 'pykickstart', 'blivet-gui', 'libblockdev', 'e2fsprogs', 'dosfstools', 'grub2', 'shim-signed', 'libselinux'] +# When we have the ability to run one compose for multiple builds, use the following list +# packages_list = ['anaconda', 'authconfig', 'python-blivet', 'pyparted', 'parted', 'pykickstart', 'blivet-gui', 'libblockdev', 'e2fsprogs', 'dosfstools', 'grub2', 'shim-signed', 'libselinux', 'chrony', 'fcoe-utils', 'hfsplus-tools', 'firewalld', 'realmd', 'yelp', 'libtimezonemap', 'kernel', 'systemd', 'dracut', 'plymouth', 'gtk3', 'python3'] +koji_url = 'https://koji.fedoraproject.org/kojihub' +principal = 'releng@FEDORAPROJECT.ORG' +keytab = '/etc/krb5.releng.keytab' + +[qos] +prefetch_size = 0 +prefetch_count = 25 + +[log_config] +level = "DEBUG" +version = 1 +disable_existing_loggers = true + +[log_config.formatters.simple] +format = "%(asctime)s %(levelname)s %(name)s - %(message)s" + +[log_config.handlers.console] +class = "logging.StreamHandler" +formatter = "simple" +stream = "ext://sys.stdout" + +[log_config.loggers.fedora_messaging] +level = "INFO" +propagate = false +handlers = ["console"] + +[log_config.loggers.twisted] +level = "INFO" +propagate = false +handlers = ["console"] + +[log_config.loggers.pika] +level = "WARNING" +propagate = false +handlers = ["console"] + +[log_config.root] +level = "ERROR" +handlers = ["console"] \ No newline at end of file