Git Product home page Git Product logo

jiro-dashboard's Issues

Dashboard implementation - GSoC scoping

The goal is to implement a dashboard listing all Jenkins instances running in the Kubernetes cluster (similar to https://ci.eclipse.org) but with live data from the cluster (pod status, resource usage, Jenkins queue size etc...). The dashboard itself will run in the cluster. Server side implementation will preferably be in Java, while the dashboard client will preferably be implemented as a set of reusable React JS components. The dashboard will be composed of 2 apps with the following high level technical specs:

  • Java app that queries the Kubernetes API server to list all Jenkins instances running in the cluster + queries the Jenkins instances to gather jenkins specific information (running version, queue length, ..) and exposed the gathered information with REST API (i.e. it's a facade pattern). Let's call it the "Jiro dashboard API".
    • One need to get all Kubernetes statefulsets with label org.eclipse.cbi.jiro/kind="master" (in all namespaces). This app will eventually run in the cluster, so credentials to connect to the API server will be the one from the service account of the pod running this App.
    • Various queried endpoints will be polled on a regular basis (e.g. every 10min).
    • the gathered information will be exposed with a couple of REST endpoints, e.g.:
      • /jenkins => return list of Jenkins instances with high level information (display name, project_id, status)
      • /jenkins/<project_id> => full details about the instance
    • The REST API will preferably be implemented following Eclipse Microprofile (https://microprofile.io) specs, e.g. with https://thorntail.io
    • No authentication is required
  • reactJS app that queries the "Jiro dashboard API" and displays the various information in a clear and modern UI.
    • Each Jenkins instance will display the same kind of information, maybe with the ability to get more information on demand (e.g. with an expandable panel). React components should be defined and composed to properly encapsulate the various states
    • dependencies to 3rd-party libraries will be minimized (e.g. prefer Fetch API rather than jQuery AJAX dependencies).
    • the app will be served by a nginx server
  • Those two apps will be containerized and deployed to the cluster.

The contribution are expected to be in the form of various PR. We can define 3 milestones, roughly matching the GSoC 3 terms:

  1. dashboard API server with /jenkins endpoint only.
  2. frontend app displaying list retrieved from /jenkins endpoints
  3. /jenkins/<project_id> endpoint is implemented and the frontend app is expanded to display those information on demand.

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.