Investigate new openshift BuildConfiguration pipeline integration
Cf. https://docs.openshift.org/latest/install_config/configuring_pipeline_execution.html and https://blog.openshift.com/create-build-pipelines-openshift-3-3/
Will come with Openshift 1.3
-
see if this is actually useful/simpler than GitLab-CI. E.g. use it to test custom haproxythis is only useful to build an image for Openshift, not for testing -
Make sure our master configuration does not result in Jenkins being auto-provisioned. This doesn't fit well with our model with webservices integration because we typically provide only one route per project. But Ansible does not allow us to configure this yet (cf. CIPAAS-181). We should be good as we don't install the jenkins-ephemeral
template -
Document the workflow below as necessary (mostly pointing to upstream doc; we only need to describe how to use it in our environment)
We could take advantage of this the following way, that integrates well with webservices and our current Jenkins instance:
- users create a Jenkins instance normally, in its own project.
- that Jenkins instance will manipulate other projects that contain the actual app(s) and environments (typically a test env, a staging env...)
- permissions to manipulate objects in other projects granted by giving a role to serviceaccount
system:serviceaccount:<project_of_jenkins_instance>:jenkins
, as in this example - BuildConfigs of type
jenkinsPipelineStrategy
are created in the same project as Jenkins (or in others; we can configure the openshift-sync plugin in Jenkins to monitor BuildConfigs in other projects as well) and contain the Jenkinsfile describing the pipeline (typically under version control in the app source, like .gitlab-ci.yml). The openshift-sync plugin (enabled by default in our instances) takes care of picking them up.