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
MVP has been released. This release contains the following features.
YAML configuration parsing
YAML configuration support for extensions
Unit test for YAML configuration support
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.
New CLI is almost done. Have to merge with V3.
XSD schema has been created and integrated. Have to update documentation and validations in the XSD schema.
Integrate the new Windows Service Wrapper into the Jenkins core
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.