OpenDevStack Setup
This document will guide you through installing / maintaining an OpenDevStack installation.
From now on we assume, you work from a Bash (Cygwin / Linux). |
Server prerequisites
In order to run the Atlassian suite and OpenShift, your host must have:
-
At least 16GB RAM and 32GB of available disk space
-
vm.max_map_count=262144
to run SonarQube (which can be set viasudo sysctl -w vm.max_map_count=262144
) -
A recent
git
version (>= 2.13.2) -
A recent
jq
version (>= 1.5, see https://stedolan.github.io/jq/)
Local Setup
Before you can install OpenDevStack (no matter whether locally or on another server) you need to have the sources available on your local machine.
Repositories
If you do not have the ODS repositories setup yet, you can run repos.sh
file. Before you run this script, keep in mind to have Git (>=2.13). Once you have that, you can then go to your Terminal and run:
mkdir -p opendevstack
cd opendevstack
curl -LO https://raw.githubusercontent.com/opendevstack/ods-core/master/ods-setup/repos.sh
chmod +x repos.sh
If you are installing OpenDevStack for the first time, run:
./repos.sh --init
If there is already an existing installation of OpenDevStack, run the following with a user that has write permission:
./repos.sh
The script will prompt you which Git ref you want to use. Select either master
for bleeding edge or a more stable "version" such as 2.x
. Afterwards running this script, all required repositories should be available locally.
Configuration
Go to ods-core
and run:
make prepare-config
If you want to install OpenDevStack for the first time, leave the BitBucket URL empty.
After the configuration is prepared (which means that a directory ods-configuration
will be created if it does not exist yet),
fill out all the parameters in ods-core.env
in directory ods-configuration
for your installation.
Add all files of directory ods-configuration
to git and commit the result. You don’t need to push yet, this will be done later.
"Preparing" also updates the sample files and checks if any params are present in the sample files but missing from the real file.
If you are using windows Cygwin or WSL remember to change ending line CRLF to LF before commit ods-core.env , you can find more information on configure Git ending line
|
Tailor
We use Tailor to handle OpenShift templates and keep OpenDevStack resources in sync. Please see its installation instructions for your platform. The following lists the version requirements:
OpenDevStack version | Tailor version |
---|---|
3.x |
>= 1.2.2 |
2.x |
>= 0.13.1 |
1.2.x |
= 0.9.3 |
1.1.x |
= 0.9.3 |
1.0.x |
= 0.9.1 |
0.1.x |
= 0.8 |
Infrastructure
Bitbucket Repositories
On Bitbucket, there must be an OPENDEVSTACK
project filled with the necessary repositories such as ods-core
. To set them up, use:
make prepare-bitbucket-repos
Then, update them with the latest state so that they can be used e.g. from BuildConfig
resources in OpenShift:
make sync-repos
You also need to update ods-configuration
, which can be done via:
git remote add origin <bitbucket-ods-configuration-git-repo-url>
git push -u origin master
OpenDevStack environment in OpenShift
Central ODS project
OpenDevStack needs one central project in OpenShift, which will hold all shared resources such as images or deployments. This project is typically called ods
, but you can customize this in the configuration via ODS_NAMESPACE
.
First, log into OpenShift with a user that has cluster-admin rights.
In ods-core
run:
make install-ods-project
Nexus
A central Nexus deployment is used to proxy packages and to store artifacts.
In ods-core
run:
make install-nexus
Afterwards, run the initial configuration:
make configure-nexus
In the course of this you will be prompted to set a new admin password.
The configure-nexus target is not idempotent yet, so it cannot be used for upgrading!
|
SonarQube
A central SonarQube deployment is used to analyze source code.
In ods-core
run:
make install-sonarqube
This will launch an instance of SonarQube.
The script will prompt for a new admin password. Once this has been set, an auth token for the Jenkins pipelines will be generated.
Both values are automatically written into ods-configuration/ods-core.env
, which you then need to commit and push.
Also, you have to add the cd-user as a user in the project permissions of your Bitbucket OpenDevStack project. Read permission is sufficient.
Jenkins
Central Jenkins images (master, agent, webhook proxy) are used by every ODS project.
In ods-core
run:
make install-jenkins
Then, there are further Jenkins agent images for each quickstarter technology.
To create those images, run the following from ods-quickstarters
:
make install-jenkins-agent