Provisioning Application
This application creates new OpenDevStack projects. It is the central entrypoint to get started with a new project / or provision new components based on quickstarters. It delegates the tasks to create / update resources to several services such as Jira, Confluence, Bitbucket and Jenkins.
Basic idea & usage
-
An admin creates new ODS project. This in turn creates:
-
a Jira Project (name based on project
key
) -
a Confluence Space (name based on project
key
) -
if OpenShift was selected - a Bitbucket Project (name based on project
key
). Within this project two default repositories are created:<project-key>-oc-config-artifacts
for all OpenShift YAML resources used during export/import as well as<project-key>-design<project>
for any design artifacts (e.g. sketches) -
if OpenShift was selected - the required Openshift projects named
<project-key>-dev
,<project-key>-test
and<project-key>-cd
. Internally those are created and configured using a Jenkins pipeline.
-
-
A normal user creates new components by provisioning quickstarters. This can be done by picking the project to modify in the UI and then selecting the desired quickstarter. This creates:
-
a Bitbucket repository within the chosen project named
<project-key>-<component-name>
. This repository has a webhook configured which will start a new Jenkins job each time a new commit is pushed. -
OpenShift resources based on the chosen quickstarter
-
FAQ
-
Why are three OpenShift projects created when I provision a new project?
The<project-key>-dev
and<project-key>-test
namespaces are runtime namespaces. Depending on which branch you merge / commit your code into, images will be built & deployed in one of the two (further information on how this is done - can be found in the Component Pipeline
In contrast to this, the<project-key>-cd
namespace hosts a project-specific instance of Jenkins Master and Webhook Proxy. When a build is triggered, builder pods (= deployments of Jenkins agents) are created in this project.
This was a cautious design choice to give a project team as much power as possible when it comes to configuration of Jenkins.