Files
fm-orchestrator/openshift/README.md
Mike Bonnet 9c3d9bb441 MBS-Koji integration tests
This change introduces a set of Jenkins pipelines for building MBS
images and running integration tests against Koji using those images.
These pipelines are directly based on the WaiverDB pipeline work:

https://pagure.io/waiverdb/blob/master/f/openshift

The results of those tests are used to provide feedback to Pagure PRs
and to promote images through a series of environments, which may be
used to implement a continuous deployment process.

The current test cases, written in Groovy, are:
 - module-build-init: initate a module build and check that tags
   and targets in Koji are created correctly
 - module-build-cgimport: build an empty module and ensure that
   results are imported correctly into Koji, using the CGImport
   interface
2019-04-30 15:27:28 -07:00

2.9 KiB

Deploy MBS to OpenShift

Build the container image for MBS backend

$ docker build openshift/backend \
    --tag mbs-backend:latest \
    --build-arg EXTRA_RPMS=<MBS_MESSAGING_UMB_RPM>

where:

  • MBS_MESSAGING_UMB_RPM is a path or URL to the UMB Messaging Plugin RPM. If not provided, only fedmsg and in_memory will be available for messaging in the image.

Build the container image for MBS frontend

The frontend container image is built on top of the backend image, which should be available as mbs-backend:latest.

$ docker build openshift/frontend \
    --tag mbs-frontend:latest

Deploy MBS

$ oc process -f openshift/mbs-test-template.yaml \
    -p TEST_ID=123 \
    -p MBS_BACKEND_IMAGE=<MBS_BACKEND_IMAGE> \
    -p MBS_FRONTEND_IMAGE=<MBS_FRONTEND_IMAGE> \
    -p MESSAGING_CERT=$(base64 -w0 <messaging.crt>) \
    -p MESSAGING_KEY=$(base64 -w0 <messaging.key>) \
    -p KOJI_CERT=$(base64 -w0 <koji.crt>) \
    -p KOJI_SERVERCA=$(base64 -w0 <koji_ca_cert.crt>) \
    -p KOJI_URL=<KOJI_URL> \
    -p STOMP_URI=<STOMP_URI> | oc apply -f -

Use oc process parameters to learn more about template parameters:

$ oc process --local -f openshift/mbs-test-template.yaml --parameters
NAME                 DESCRIPTION                                                                             GENERATOR           VALUE
TEST_ID              Short unique identifier for this test run (e.g. Jenkins job number)                                         
MBS_BACKEND_IMAGE    Image to be used for MBS backend deployment                                                                 172.30.1.1:5000/myproject/mbs-backend:latest
MBS_FRONTEND_IMAGE   Image to be used for MBS frontend deployment                                                                172.30.1.1:5000/myproject/mbs-frontend:latest
MESSAGING_CERT       base64 encoded SSL certificate for message bus authentication                                               
MESSAGING_KEY        base64 encoded SSL key for message bus authentication                                                       
KOJI_CERT            base 64 encoded client certificate used to authenticate with Koji                                           
KOJI_SERVERCA        base64 encoded certificate of the CA that issued the HTTP server certificate for Koji                       
DATABASE_PASSWORD                                                                                            expression          [\w]{32}
STOMP_URI            Messagebus URI                                                                                              
KOJI_URL             Top level URL of the Koji instance to use. Without a '/' at the end.                                        

Delete MBS

$ oc delete dc,deploy,pod,configmap,secret,svc,route -l app=mbs