Files
fm-orchestrator/openshift
Mike Bonnet 30df0a82ca optimize checkouts
Only checkout exactly the code we need to run the tests. This should help work around
errors and timeouts (early EOF/index-pack failed) from Pagure. Jenkins seems to require
a minimum of depth=2 or it fails when walking the revision history.

Using a shallow clone is safe for PRs because we're always building from the head of
the PR branch (OpenShift doesn't have a way to specify a non-head commit on a PR branch).

When building from the master branch we use depth=10 to avoid a race condition in case
multiple commits have been pushed in quick succession. The integration test job is
launched using the exact revision of the code that was used to build the images, to
ensure the results are valid.
2019-07-03 18:16:30 -07:00
..
2019-05-16 11:51:38 +00:00
2019-04-30 15:27:28 -07:00
2019-07-03 18:16:30 -07:00
2019-04-30 15:27:28 -07:00

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