Giter Site home page Giter Site logo

ssevillano86 / ods-core Goto Github PK

View Code? Open in Web Editor NEW

This project forked from opendevstack/ods-core

0.0 0.0 0.0 58.08 MB

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

License: Apache License 2.0

Shell 51.99% Python 0.08% Groovy 2.07% Go 31.37% Makefile 2.39% Dockerfile 0.91% Jinja 11.19%

ods-core's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.