:: Copyright 2015 OpenStack Foundation This work is licensed under a Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/legalcode ====================================== Host a CI systems monitoring dashboard ====================================== https://storyboard.openstack.org/#!/story/2000303 We need a way to be able to quickly see if a CI system is failing, or passing incorrectly, any given patch pushed to gerrit for review. As a service to our developers and project communities, we need to provide a service that does this gathering and display of CI system status. Problem Description =================== There is no convenient place where you can: * If you are an operator, gage how well your system is doing; * which patches your CI commented on or missed, with the result; * which jobs are unstable; * upstream jenkins health. * If you are a developer, establish a level of trust so you can better focus your time on code; * get a quick indication of a third-party CI past history. * If you are a PTL: see who's got CI and who doesn't; Note: This list is not complete, and this spec is not aimed at properly defining the requirements. Proposed Change =============== Deploy an existing dashboard that offers enough functionality to cover basic third-party CI monitoring requirements. This dashboard is called CI Watch, and the source code can be found at https://git.openstack.org/cgit/openstack-infra/ciwatch We would create a puppet module to deploy the CI Watch dashboard and serve it from a dedicated virtual machine under care of the OpenStack Infrastructure Project. A proof-of-concept deployment is running at http://ci-watch.tintri.com/project?project=nova Implementation ============== Assignee(s) ----------- Primary assignee: mmedvede Gerrit Topic ------------ Use Gerrit topic "ci-dashboard" for all patches related to this spec. .. code-block:: bash git-review -t ci-dashboard Work Items ---------- 1. Initiate a change in ``openstack-infra/project-config`` to create an empty ``openstack-infra/puppet-ciwatch`` Git repository as described in the `Repository Creator's Guide `_. This should be accompanied by a related change to ``openstack/governance`` adding the new repo as part of the Infrastructure project. 2. Create a new ``ciwatch`` Puppet module in ``openstack-infra/puppet-ciwatch`` which enables an opinionated and working deployment of the service. Existing ``openstack-infra/puppet-.*`` should be examined for inspiration and consistency. 3. A change will be proposed to the ``openstack-infra/system-config`` Git repo lightly documenting deployment and management of the service and adding that document to the ``doc/source/index.rst`` file. Examples in the ``doc/source`` directory can be used for inspiration and consistency of style. This same change can also add a ``ci-dashboard.openstack.org`` node to the global ``manifests/site.pp`` file along with (if needed) a ``modules/openstack_project/manifests/ci-dashboard.pp`` class file and any accompanying custom config files or templates. 4. Deployment of the above changes will be performed by a root admin onto a new ``ci-dashboard.openstack.org`` server, and related A, AAAA and PTR resource records will be created in DNS for it. 5. Create a launchpad account ``ci-dashboard`` for listening to the gerrit system ssh stream as described in the `Developer's Guide `_. 6. If necessary, use of the service can be documented in the ``openstack-infra/infra-manual`` repo as well. 7. Once the service appears stable and working as intended, announce it to the `openstack-dev `_, `openstack-infra `_ and `openstack-operators `_ mailing lists. Repositories ------------ An ``openstack-infra/puppet-ciwatch`` Git repo will be created as part of this plan. Servers ------- A ``ci-dashboard.openstack.org`` server will be added. DNS Entries ----------- A, AAAA and PTR resource records will be created for the ``ci-dashboard.openstack.org`` server. Documentation ------------- The service's deployment and management will be documented in the ``openstack-infra/system-config`` repo, published to the http://docs.openstack.org/infra/system-config/ site. Optionally, use of the service can be documented in the `Infrastructure Manual `_. Security -------- This is not a trusted service, needs no authentication for normal use, and it runs on its own dedicated virtual machine. HTTPS should not be necessary for this service, so no X.509 certificate will be ordered. Testing ------- The configuration management for this service will be tested via existing apply/syntax CI jobs. Dependencies ============ - None identified.