Giter Club home page Giter Club logo

codename-vincent's Introduction

codename-vincent

Task automation for IT systems

License & Contributing

This project is available under the Apache License 2.0. We welcome any contributions submitted as pull requests, wiki edits or issues under the terms of the project's license.

Current state

Too early to say. Check back in a few months.

Trying it out

git clone https://github.com/ggeorgovassilis/codename-vincent
cd codename-vincent
mkdir volumes
docker-compose up

Add these entries to your /etc/hosts

127.0.0.1     gitlab.cnvc
127.0.0.1     jenkins.cnvc

Visit http://gitlab.cnvc and http://jenkins.cnvc with a browser

codename-vincent's People

Contributors

ggeorgovassilis avatar rushi216 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

promact

codename-vincent's Issues

Survey ticketing systems

This issue surveys existing ticketing systems which we'll for the task management UI.

Functional requirements

F1. Typical ticket management functions (create, read, list, edit, multiple states, assign)
F2. Custom ticket fields
F3. Customizable ticket workflows
F4. Allows ticket linking (dependencies/hierarchy)
F5. Supports multiple projects and organisations

Non-functional requirements

T1. free, open source
T2. has web GUI
T3. dockerizable
T4. Has either own user management or allows tapping into an external identity management solution
T5. Has API (either CLI or web-accessible)

Output
Document results here: WIKI Ticketing system survey

Set up LDAP management application

In case the LDAP directory service installed with #16 doesn't have its own management UI, this ticket:

  • LDAP management must be a web UI which allows editing LDAP registries (DNs, RDNs, roles, groups etc)
  • sets up an LDAP management application in its own docker container
  • starts that container as a service in docker-compose.yml
  • connect LDAP management to the LDAP registry from #16 so that it can manage roles, groups etc
  • modify nginx so that LDAP management is accessible under ldap.cnvc
  • any persistent volumes should be mapped and/or a database (reuse postgres/redis or setup new db container) should be used

Integrate Gitlab with Jenkins

Explore and document how Jenkins can execute builds based on issues entered in Gitlab. Expected behaviour: when I submit a Gitlab issue then Jenkins executes a build. Jenkins should be able to receive/get information from the issue such as the title, the repository entered, the assigned user and the issue text content. The outcome of this ticket is a detailed description of manual steps of how to set up this integration, any software installation and scripts.

Jenkins to authenticate users from LDAP

Jenkins should be setup to authenticate and authorize users only from the LDAP directory server created in #16. This should be pre-configured when the Jenkins container starts; no manual setup by the administrator should be required.

This ticket also sets up a Jenkins administrator user in LDAP which can be used to log into Jenkins as an administrator.

Gitlab to authenticate users from LDAP

Gitlab should be set up to authenticate and authorize users from the LDAP directory server from #16.
This should be pre-configured in Gitlab and should require no manual setup by the Gitlab administrator.
This ticket also creates a Gitlab administrator entry in LDAP so that an administrator can log into Gitlab by using these credentials

Setup initial stack

Set up docker compose stack with initial system (at least ticketing + DB)

Set up an LDAP directory server

Set up a docker container with an LDAP directory server:

  • modify docker-compose.yml to start the directory server as a service
  • mount any persistent volumes. If an external database is needed, either reuse one we have (postgres, redis) or launch another docker container in docker-compose.yml
  • wire networking together: jenkins and gitlab need access to the LDAP DS
  • the DS should not be accessible from outside the container network

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.