Goal: Enhance Jenkins controller and agent service management on Windows by offering new configuration file formats and improving settings validation
On Windows machines, Jenkins controller and agents can be installed as Windows Services 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. The usage of YAML should simplify configuration management in Jenkins, especially when automated tools are used.
Service Descriptor: YAML Support
Validations for Configs
Schema validation for YAML (JSON)
Unit Test for Validations
Project Guideline Documentation
Sample YAML config files
YAML service Descriptor
Start implementing configurations verification on startup
Project Guideline documentation
Blog Post 1
Finish implementation of configurations verification on startup
Start implementing YAML schema validation
Minimal Viable Product will be released
Blog Post 2
Configuration validation on Startup
Environment variable expansion and validation is left to do.
Integrate YAML schema validation
Currently, users can validate the YAML file with JSON schema externally. We have to integrate this feature into the Windows service wrapper.