Skip to content

The core of OpenDevStack - infrastructure setup based on Atlassian tools, Jenkins, Nexus, SonarQube and shared images

License

Notifications You must be signed in to change notification settings

opendevstack/ods-core

Repository files navigation

ODS core & infrastructure

branch Last Completed E2E test status Last Successful E2E test status CI test status
master
4.x
3.x

Introduction

OpenDevStack (ODS) Core houses all the central infrastructure components.

All the contained components except Atlassian tools are built in the Openshift central ods namespace.

The extended, most up to date, user friendly documentation can be found @ opendevstack.org

Contents

  1. Jenkins master & base agent - the basis of the ODS build engine
    The base agent provides plugins for Sonarqube, optionally Snyk, AquaSec, CNES, skopeo and is HTTP proxy aware. Specific quickstarters / boilerplates require different technologies e.g. gradle, NPM/Yarn etc. to build, hence warrant their own builder agents. These agents are based on the ods jenkins base agent and are hosted in the ods-quickstarter repository - next to their respective boilerplates.
    During jenkins builds, instances/pods of those builder / agent images can be found within the project specific cd namespace.
    Deployment: one global Jenkins instance in the central ods namespace

  2. Jenkins Webhook proxy - the glue layer between Bitbucket / Jira and Jenkins - to start a build from a change in a repository.
    Deployment: There is one instance of the webhook proxy in each project's cd namespace. The base image of the webhook proxy is located in the central ods namespace

  3. Nexus - artifact & repository manager
    Nexus is used as artifact manager throughout OpenDevStack. Each jenkins agent is configured to bind to the installed NEXUS to centralize build / dependency artifact resolution. In case one wants to upload an artifact to Nexus, jenkins component stage odsComponentStageUploadToNexus can be used.
    Deployment: There is one central instance of Nexus in the ods project

  4. Sonarqube - Sofware quality management
    The OpenDevStack version of Sonarqube - preconfigured with language plugins used by the boilerplates. All generated Jenkinsfiles contain a stage odsComponentStageScanWithSonar for sourcecode review - which connects to this central instance.
    Deployment: There is one central instance of SQ in the ods project

  5. ODS Provisioning Application - The 'entrypoint' to work with OpenDevStack
    Provides the functionality to provision new projects and also components within those, based on boilerplates.
    The code for the provision application can be found here. In case you want to work on the provision application, and build it yourself - there is a quickstarter that allows this, namely ODS Provisioning Quickstarter.
    Deployment: There is one central instance of the provisioning app in the ods project

  6. ODS document generation service - a service used to create PDF documents from json input and html templates. Used by the release manager quickstarter. The templates are located in the templates repository.
    The code for the documentation generation service is located here. In case you want to work on the document generation service, and build it yourself - there is a quickstarter that allows this, namely ODS Document Generation Service.
    Deployment: There is one instance of the document generation service in each project's cd namespace. The base image of the doc gen service is located in the central ods namespace

  7. Atlassian infrastructure
    Contains all the ansible scripts to setup jira / confluence / bitbucket and atlassian crowd. Optional, if you have your own instances running, you can just configure OpenDevStack to use those in ods-configuration/ods-core.env.

  8. Tests & Installation verification
    The automated tests for ods core are in two locations:
    a) located side by side to the components, e.g for sonarqube they are located in sonarqube/test.sh.
    b) inside the tests directory.

    The tests can be started with make test, which will call two test-suites. Namely, the tests to create a new project in tests/create-projects and those in tests/ods-verify to verify if all components are installed successfully and run. If both pass - the setup of ods-core components is successful. Once those tests have passed, all quickstarters in ods-quickstarters can be run via make test-quickstarter.

  9. ODS Development Environment / ODS in a box
    ODS also ships as Amazon AMI - ready to go. The scripts to create the AMI can be found in ods-devenv. These scripts can be used also be used to install a developer version of ODS on a plain linux vm. Simply execute bootstrap.sh

Current AMI build logs

the log files contain color coding, they are best viewed using a tool supporting color coding, like tail. E.g.:

# after untaring view the log file 'current' like so:
tail -fn +1 current