Blob Blame History Raw
# Fedora Messaging

## Requesting Access

What needs to be done:

* Request certificates from the fedora infrastructure team;
* Ansible changes to create a new user, queue and topic in fedora messaging.

You can request a new certificate and a private key by opening a fedora infrastructure ticket: https://pagure.io/fedora-infrastructure (Example: https://pagure.io/fedora-infrastructure/issue/9494).

The ticket should request a new username for fedora messaging (either prod or stg) - the result of that ticket will be a new certificate and private key for that user (the certificate CN field should contain the requested username as its value).

The next step is to add the new user, queue and topic binding into fedora's Rabbit MQ instance.

This can be done by sending a pull request to their ansible repository (https://pagure.io/fedora-infra/ansible): https://pagure.io/fedora-infra/ansible/pull-request/302#request_diff.

The topic format uses the following scheme: `org.<SOURCE>.<ENV>.<APP>.#` where:

* `<SOURCE>`: source as entity, should be `centos` in our case
* `<ENV>`: env is either `prod` or `stg` but you should use the ansible var `short_env`
* `<APP>`: the application the message belongs to, which matches your username.

A topic for centos koji would be: `org.centos.prod.koji.#` (`#` means Rabbit MQ will match the topic as long as it starts with `org.centos.prod.koji.`).

Those changes will also need to be run by someone from the fedora infrastructure team.

### Example

The following ansible code is an example of how to add an user and a queue with a routing key.

```yaml
# adding "centos-koji" user as an example

- name: Add centos-koji User
  run_once: true
  include_role:
    name: rabbit/user
  vars:
     username: centos-koji{{ env_suffix }}

- name: Add centos-koji queue
  run_once: true
  include_role:
    name: rabbit/queue
  vars:
    username: centos-koji{{ env_suffix }}
    queue_name: centos-koji{{ env_suffix }}
    # TTL: 10 days (in miliseconds)
    message_ttl: 864000000
    routing_keys:
      - "org.centos.{{ env_short }}.koji.#"
```