evergreen/distribution/client
Mandie Smith f8e207653a
Update to use fs-extra to get recursive rm, updated tests
2018-10-22 10:59:58 -04:00
..
config Move the ui code over into the client, and just let the client serve it 2018-08-29 10:55:56 -07:00
patches Apply latest changes to *actually* get exponential backoff 2018-09-17 14:58:40 +02:00
public Ensure that messages in the UI wrap properly 2018-09-24 13:16:50 -07:00
scripts Add scaffolding for simple built-in documentation 2018-08-29 10:55:56 -07:00
src Update to use fs-extra to get recursive rm, updated tests 2018-10-22 10:59:58 -04:00
test Update to use fs-extra to get recursive rm, updated tests 2018-10-22 10:59:58 -04:00
testlib Change checkFileExists and touchFile from async to sync 2018-10-17 17:07:41 +02:00
ui Move the ui code over into the client, and just let the client serve it 2018-08-29 10:55:56 -07:00
ui-test Move the ui code over into the client, and just let the client serve it 2018-08-29 10:55:56 -07:00
.eslintrc.json Enable prefer-template ESlint rule 2018-09-11 10:32:44 +02:00
.gitignore Re-organize the user-documentation up into the root directory to make it easier to find 2018-09-24 13:03:02 -07:00
Makefile Updated to include shell definition so that PATH would actually work, was getting error on not finding commands before that 2018-10-16 12:11:15 -04:00
README.adoc [JENKINS-53147] Essentials => Evergreen rebranding 2018-08-21 22:08:16 +02:00
package-lock.json Merge branch 'master' into HEAD 2018-10-18 11:24:12 +02:00
package.json Added jest html report to help with test troubleshooting 2018-10-16 12:11:38 -04:00
tsconfig.json Correctly mock the update client class for testing 2018-10-12 17:45:54 +02:00
webpack.config.js Move the ui code over into the client, and just let the client serve it 2018-08-29 10:55:56 -07:00

README.adoc

<html lang="en"> <head> </head>

evergreen-client

This directory contains the evergreen-client application which provides the client-side functionality necessary for the Evergreen distribution system.

The purpose of evergreen-client is to facilitate the following:

  • Maintain Status with the Evergreen hosted services layer.

  • Orchestrate Upgrading of the jenkins.war and plugin .jpi files when instructed by the Evergreen hosted services layer.

  • Collect and deliver telemetry as necessary to the Evergreen hosted services layer.

  • Additional capabilities as the needs by Jenkins Evergreen evolve.

Design

Generally speaking, evergreen-client is designed to act as a lightweight "sidecar" process, running alongside jenkins.war, and should conceptually implement various "commands" to be sent from the Evergreen hosted services layer. Commands such as ping, flags, logs, etc are intended to be delivered by a long-lived Server-sent Events channel initiated by evergreen-client to the "Status" service.

While evergreen-client can and may be required to run other executables in the system, most of the "core" functionality should be implemented in JavaScript and incorporated into evergreen-client.

evergreen-client will also be responsible for managing process lifecycle of Jenkins via communication with supervisord.

Status

Note
This is still a work in progress

Upgrading

Note
This is still a work in progress

Types of upgrades evergreen-client should be responsible for:

  • An evergreen manifest (i.e. Jenkins core and plugins), including adding and removing plugins as the needs of Jenkins Evergreen changes

  • Configuration as Code to manage the "automatic sane defaults" aspect of Jenkins Evergreen.

  • evergreen-client releases itself.

</html>