openshift-apps/coreos-ostree-importer: add support for fedora messaging

This adds in configs and secrets for fedora messaging so we can consume
and publish messages as part of our normal coreos-ostree-importer life
cycle.
This commit is contained in:
Dusty Mabe 2020-02-14 15:38:31 -05:00 committed by Pierre-Yves Chibon
parent cc7b7fe630
commit c06955ee41
4 changed files with 175 additions and 0 deletions

View file

@ -0,0 +1,12 @@
{% macro load_file(filename) %}{% include filename %}{%- endmacro -%}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: fedora-messaging-configmap
labels:
app: coreos-ostree-importer
data:
config.toml: |-
{{ load_file('fedora-messaging.toml') | indent }}

View file

@ -25,6 +25,21 @@ spec:
volumeMounts:
- name: fedora-ostree-content-volume
mountPath: /mnt/koji
- name: fedora-messaging-config
mountPath: /etc/fedora-messaging
readOnly: true
- name: fedora-messaging-ca
mountPath: "/etc/pki/fedora-messaging/{{ fedora_messaging_ca_file }}"
subPath: "{{ fedora_messaging_ca_file }}"
readOnly: true
- name: fedora-messaging-crt
mountPath: "/etc/pki/fedora-messaging/{{ fedora_messaging_cert_file }}"
subPath: "{{ fedora_messaging_cert_file }}"
readOnly: true
- name: fedora-messaging-key
mountPath: "/etc/pki/fedora-messaging/{{ fedora_messaging_key_file }}"
subPath: "{{ fedora_messaging_key_file }}"
readOnly: true
image: ""
imagePullPolicy: IfNotPresent
resources: {}
@ -32,6 +47,18 @@ spec:
- name: fedora-ostree-content-volume
persistentVolumeClaim:
claimName: fedora-ostree-content-volume
- name: fedora-messaging-config-volume
configMap:
name: fedora-messaging-configmap
- name: fedora-messaging-ca-volume
secret:
secretName: fedora-messaging-ca
- name: fedora-messaging-crt-volume
secret:
secretName: fedora-messaging-crt
- name: fedora-messaging-key-volume
secret:
secretName: fedora-messaging-key
restartPolicy: Always
test: false
triggers:

View file

@ -0,0 +1,93 @@
# Broker address
amqp_url = "amqps://{{ fedora_messaging_username }}:@rabbitmq{{ env_suffix }}.fedoraproject.org/%2Fpubsub"
# The topic_prefix configuration value will add a prefix to the topics of every sent message.
# This is used for migrating from fedmsg, and should not be used afterwards.
{% if env == "staging" %}
topic_prefix = "org.fedoraproject.stg"
{% else %}
topic_prefix = "org.fedoraproject.prod"
{% endif %}
[tls]
ca_cert = "/etc/pki/fedora-messaging/{{ fedora_messaging_ca_file }}"
keyfile = "/etc/pki/fedora-messaging/{{ fedora_messaging_key_file }}"
certfile = "/etc/pki/fedora-messaging/{{ fedora_messaging_cert_file }}"
# Set the Application name/url/email
[client_properties]
app = "CoreOS OSTree Importer"
app_url = "https://github.com/coreos/fedora-coreos-releng-automation/tree/master/coreos-ostree-importer"
app_contacts_email = ["coreos@lists.fedoraproject.org"]
[exchanges."amq.topic"]
type = "topic"
durable = true
auto_delete = false
arguments = {}
# We'll use the coreos queue name
[queues."{{ fedora_messaging_queue_name }}"]
durable = true
auto_delete = false
exclusive = true
arguments = {}
# We care about the ostree-import message topic
[[bindings]]
queue = "{{ fedora_messaging_queue_name }}"
exchange = "amq.topic"
routing_keys = [
{% for key in fedora_messaging_routing_keys %}
"{{ key }}",
{% endfor %}
]
[consumer_config]
example_key = "for my consumer"
[qos]
prefetch_size = 0
prefetch_count = 25
[log_config]
version = 1
disable_existing_loggers = true
# Adjust the log formatting based on preference
[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"
# Set level to WARNING, otherwise too chatty
[log_config.loggers.fedora_messaging]
level = "WARNING"
propagate = false
handlers = ["console"]
# Set level to WARNING, otherwise too chatty
[log_config.loggers.twisted]
level = "WARNING"
propagate = false
handlers = ["console"]
[log_config.loggers.pika]
level = "WARNING"
propagate = false
handlers = ["console"]
# If your consumer sets up a logger, you must add a configuration for it
# here in order for the messages to show up. e.g. if it set up a logger
# called 'example_printer', you could do:
#[log_config.loggers.example_printer]
#level = "INFO"
#propagate = false
#handlers = ["console"]
[log_config.root]
level = "ERROR"
handlers = ["console"]