Jenkins Windows Services: YAML Configuration Support

Goal: Enhance Jenkins master and agent service management on Windows by offering new configuration file formats and improving settings validation

Status: Active

Team

Details

On Windows machines, Jenkins master and agents can be installed as Windows Services in order to get better robustness and manageability within the system. This is a functionality bundled into the Jenkins core directly. When installed as a service, Jenkins uses the Windows Service Wrapper executable (.NET, written in C#) which is being configured by XML config files. Currently, there are only a few configuration checks there (no XML Schema, limited validation, etc.), and it’s often that the service wrapper is misconfigured by Jenkins users.

In this project we propose to update Windows Service Wrapper to support YAML files as configuration inputs and to introduce better configuration validation during the service installation and startup. Usage of YAML should simplify configuration management in Jenkins, especially when automated tools are used.

Deliverables

  • Service Descriptor : YAML Support

  • Validations for Configs

  • Schema validation for YAML (JSON)

  • Unit Test for Validations

  • Project Guideline Documentation

  • Informative logger

  • Sample YAML config files

    • Sample-alloption.yaml

    • Sample-minimal.yaml

Phase 1

  • YAML service Descriptor

  • Start implementing configurations verification on startup

  • Project Guideline documentation

  • Blog Post 1

Phase 2

  • Finish implementation of configurations verification on startup

  • Start implementing YAML schema validation

  • Minimal Viable Product will be released

  • Blog Post 2

Phase 3

  • Finish implementation of YAML schema validation

  • Sample YAML config files

  • Blog Post 3

During each phases respective unit test will be added to existing Unit Test library.

Future Improvements

  • Complete developer guide for YAML support service descriptor.

  • Complete user documentation for Config validations.

If time allows both will be delivered in Phase 3

Office hours

Office hours are scheduled every Tuesday at 13:30 UTC in the project’s Gitter chat. Meeting notes are available here to read.

See the GSoC Project application draft for more details.

Links