mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-02-06 14:53:18 +08:00
Reduce number of jobs from 20 to 12 by merging them and using templating to avoid code duplicity. Jenkinsfile are directly put into jobs as a script - not pulled from repository - avoiding issue with not clean workspace. Secrets are taken from openshift using service account intead of refering them in environment which caused that secret had to exist and could be empty. Job execution is straitforward - one jobs is repsonsible for each process, only triggered jobs are c3iaas request and pipeline-as-a-service job, everything else is managed by one job.
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
fedmsgandin_memorywill 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