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.
Creating a new project
Any user with admin privileges can create new ODS projects through the provisioning application.
A new ODS project typically consists of:
-
a Jira Project (name based on project
<project-key>
) -
a Confluence Space (name based on project
<project-key>
) -
a Bitbucket project (name based on project
<project-key>
) -
two Openshift projects named
<project-key>-dev
and<project-key>-test
, which are used to run your application. Further, a Jenkins deployment will be created in the<project-key>-cd
project to allow each ODS project full freedom of build management. This deployment is based on a common Jenkins image provided by the central ODS namespace.
Creating a new component within a project (using a quickstarter)
Open the web GUI of the provisioning app (ask your ODS administrator for the URL). Select your project, then choose a quickstarter. If no framework fits your needs, choose the docker-plain quickstarter, and adjust the repository afterwards as required.
After provisioning the quickstarter, you’ll have a new repository in your Bitbucket project with the boilerplate of the component. This repository has a webhook configured which will start a new Jenkins job each time a new commit is pushed. This means the new component will immediately be built and deployed into your <project-key>-dev
project.
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. -
What permissions are assigned when a new Bitbucket project or repository is created?
The assigned permissions are detailed here.