Waiverdb: configure staging environment to use fedora-messaging

Signed-off-by: Clement Verna <cverna@tutanota.com>
This commit is contained in:
Clement Verna 2019-03-14 13:11:16 +01:00
parent 9183a5d5f9
commit 5dac68ac01
4 changed files with 147 additions and 83 deletions

View file

@ -9,80 +9,86 @@
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
roles: roles:
# The openshift/project role breaks if the project already exists: # The openshift/project role breaks if the project already exists:
# https://pagure.io/fedora-infrastructure/issue/6404 # https://pagure.io/fedora-infrastructure/issue/6404
- role: openshift/project - role: openshift/project
app: waiverdb app: waiverdb
description: waiverdb description: waiverdb
appowners: appowners:
- ralph - ralph
- mjia - mjia
- dcallagh - dcallagh
- gnaponie - gnaponie
- role: openshift/object - role: openshift/object
app: waiverdb app: waiverdb
template: secret.yml template: secret.yml
objectname: secret.yml objectname: secret.yml
- role: openshift/secret-file - role: openshift/secret-file
app: waiverdb app: waiverdb
secret_name: waiverdb-stg-secret secret_name: waiverdb-stg-secret
key: client_secrets.json key: client_secrets.json
template: client_secrets.json template: client_secrets.json
- role: openshift/secret-file - role: openshift/secret-file
app: waiverdb app: waiverdb
secret_name: waiverdb-fedmsg-key secret_name: waiverdb-fedora-messaging-key
key: fedmsg-waiverdb.key key: waiverdb.key
privatefile: fedmsg-certs/keys/waiverdb-waiverdb-web-waiverdb.app.os.stg.fedoraproject.org.key privatefile: "rabbitmq/{{env}}/pki/private/waiverdb{{env_suffix}}.key"
when: env == "staging" when: env == "staging"
- role: openshift/secret-file - role: openshift/secret-file
app: waiverdb app: waiverdb
secret_name: waiverdb-fedmsg-crt secret_name: waiverdb-fedora-messaging-crt
key: fedmsg-waiverdb.crt key: waiverdb.crt
privatefile: fedmsg-certs/keys/waiverdb-waiverdb-web-waiverdb.app.os.stg.fedoraproject.org.crt privatefile: "rabbitmq/{{env}}/pki/private/waiverdb{{env_suffix}}.crt"
when: env == "staging" when: env == "staging"
- role: openshift/secret-file - role: openshift/secret-file
app: waiverdb app: waiverdb
secret_name: waiverdb-fedmsg-key secret_name: waiverdb-fedora-messaging-ca
key: fedmsg-waiverdb.key key: waiverdb.ca
privatefile: fedmsg-certs/keys/waiverdb-waiverdb-web-waiverdb.app.os.fedoraproject.org.key privatefile: "rabbitmq/{{env}}/pki/private/ca.crt"
when: env != "staging" when: env == "staging"
- role: openshift/secret-file - role: openshift/secret-file
app: waiverdb app: waiverdb
secret_name: waiverdb-fedmsg-crt secret_name: waiverdb-fedmsg-key
key: fedmsg-waiverdb.crt key: fedmsg-waiverdb.key
privatefile: fedmsg-certs/keys/waiverdb-waiverdb-web-waiverdb.app.os.fedoraproject.org.crt privatefile: fedmsg-certs/keys/waiverdb-waiverdb-web-waiverdb.app.os.fedoraproject.org.key
when: env != "staging" when: env != "staging"
- role: openshift/object - role: openshift/secret-file
app: waiverdb app: waiverdb
template: imagestream.yml secret_name: waiverdb-fedmsg-crt
objectname: imagestream.yml key: fedmsg-waiverdb.crt
- role: openshift/object privatefile: fedmsg-certs/keys/waiverdb-waiverdb-web-waiverdb.app.os.fedoraproject.org.crt
app: waiverdb when: env != "staging"
template: buildconfig.yml - role: openshift/object
objectname: buildconfig.yml app: waiverdb
- role: openshift/object template: imagestream.yml
app: waiverdb objectname: imagestream.yml
template: configmap.yml - role: openshift/object
objectname: configmap.yml app: waiverdb
- role: openshift/object template: buildconfig.yml
app: waiverdb objectname: buildconfig.yml
file: service.yml - role: openshift/object
objectname: service.yml app: waiverdb
- role: openshift/route template: configmap.yml
app: waiverdb objectname: configmap.yml
routename: web-pretty - role: openshift/object
host: "waiverdb{{ env_suffix }}.fedoraproject.org" app: waiverdb
serviceport: web file: service.yml
servicename: waiverdb-web objectname: service.yml
# TODO -- someday retire this old route in favor of the pretty one above. - role: openshift/route
- role: openshift/object app: waiverdb
app: waiverdb routename: web-pretty
file: route.yml host: "waiverdb{{ env_suffix }}.fedoraproject.org"
objectname: route.yml serviceport: web
- role: openshift/object servicename: waiverdb-web
app: waiverdb # TODO -- someday retire this old route in favor of the pretty one above.
template: deploymentconfig.yml - role: openshift/object
objectname: deploymentconfig.yml app: waiverdb
- role: openshift/rollout file: route.yml
app: waiverdb objectname: route.yml
dcname: waiverdb-web - role: openshift/object
app: waiverdb
template: deploymentconfig.yml
objectname: deploymentconfig.yml
- role: openshift/rollout
app: waiverdb
dcname: waiverdb-web

View file

@ -0,0 +1,15 @@
# Configuration for fedora-messaging. This file is in the TOML format.
# For complete details on all configuration options, see the documentation.
amqp_url = "amqps://waiverdb{{ env_suffix }}:@rabbitmq01{{ env_suffix }}.phx2.fedoraproject.org/%2Fpubsub"
{% if env == "staging" %}
topic_prefix = "org.fedoraproject.stg"
{% else %}
topic_prefix = "org.fedoraproject.prod"
{% endif %}
[tls]
ca_cert = "/etc/pki/rabbitmq/ca/waiverdb.ca"
keyfile = "/etc/pki/rabbitmq/key/waiverdb.key"
certfile = "/etc/pki/rabbitmq/crt/waiverdb.crt"

View file

@ -48,3 +48,16 @@ data:
relay_inbound=["tcp://busgateway01.phx2.fedoraproject.org:9941"], relay_inbound=["tcp://busgateway01.phx2.fedoraproject.org:9941"],
{% endif %} {% endif %}
) )
{% if env == 'staging' %}
---
- apiVersion: v1
kind: ConfigMap
metadata:
name: fedora-messaging-configmap
labels:
app: waiverdb
{% macro load_file(filename) %}{% include filename %}{%- endmacro -%}
data:
config.toml: |-
{{ load_file('config.toml') | indent }}
{% endif %}

View file

@ -37,18 +37,33 @@ spec:
- name: config-volume - name: config-volume
mountPath: /etc/waiverdb mountPath: /etc/waiverdb
readOnly: true readOnly: true
- name: fedmsg-config-volume
mountPath: /etc/fedmsg-waiverdb.d
readOnly: true
- name: secret-volume - name: secret-volume
mountPath: /etc/secret mountPath: /etc/secret
readOnly: true readOnly: true
{% if env == 'staging' %}
- name: fedora-messaging-ca-volume
mountPath: /etc/pki/rabbitmq/ca
readOnly: true
- name: fedora-messaging-key-volume
mountPath: /etc/pki/rabbitmq/key
readOnly: true
- name: fedora-messaging-crt-volume
mountPath: /etc/pki/rabbitmq/crt
readOnly: true
- name: fedora-messaging-config-volume
mountPath: /etc/fedora-messaging
readOnly: true
{% else %}
- name: fedmsg-key-volume - name: fedmsg-key-volume
mountPath: /etc/pki/fedmsg/key mountPath: /etc/pki/fedmsg/key
readOnly: true readOnly: true
- name: fedmsg-crt-volume - name: fedmsg-crt-volume
mountPath: /etc/pki/fedmsg/crt mountPath: /etc/pki/fedmsg/crt
readOnly: true readOnly: true
- name: fedmsg-config-volume
mountPath: /etc/fedmsg-waiverdb.d
readOnly: true
{% endif %}
env: env:
- name: DATABASE_PASSWORD - name: DATABASE_PASSWORD
valueFrom: valueFrom:
@ -79,18 +94,33 @@ spec:
- name: config-volume - name: config-volume
configMap: configMap:
name: waiverdb-configmap name: waiverdb-configmap
- name: fedmsg-config-volume
configMap:
name: waiverdb-fedmsg-configmap
- name: secret-volume - name: secret-volume
secret: secret:
secretName: waiverdb-secret secretName: waiverdb-secret
{% if env == 'staging' %}
- name: fedora-messaging-certs-volume
configMap:
name: fedora-messaging-configmap
- name: fedora-messaging-ca-volume
secret:
secretName: waiverdb-fedora-messaging-ca
- name: fedora-messaging-cert-volume
secret:
secretName: waiverdb-fedora-messaging-crt
- name: fedora-messaging-key-volume
secret:
secretName: waiverdb-fedora-messaging-key
{% else %}
- name: fedmsg-config-volume
configMap:
name: waiverdb-fedmsg-configmap
- name: fedmsg-key-volume - name: fedmsg-key-volume
secret: secret:
secretName: waiverdb-fedmsg-key secretName: waiverdb-fedmsg-key
- name: fedmsg-crt-volume - name: fedmsg-crt-volume
secret: secret:
secretName: waiverdb-fedmsg-crt secretName: waiverdb-fedmsg-crt
{% endif %}
triggers: triggers:
- type: ImageChange - type: ImageChange
imageChangeParams: imageChangeParams: