This release adds a new watch-only mode for ConfigMap monitoring, comprehensive test coverage improvements, and infrastructure updates.
Added a new watch-only configuration option that enables butler to monitor files for changes using hash comparison and trigger reloads without writing any files to disk. This is ideal for Kubernetes ConfigMap monitoring scenarios where files are mounted read-only.
[jenkins]
repos = ["jcasc-local"]
watch-only = "true"
skip-butler-header = "true"
primary-config-name = "jcasc-config.yaml"
[jenkins.jcasc-local]
method = "file"
repo-path = "/usr/share/jenkins/init.jcasc.d"
primary-config = ["config.yaml"]
[jenkins.reloader]
method = "https"
[jenkins.reloader.https]
host = "localhost"
port = "8080"
uri = "/reload-configuration-as-code/?casc-reload-token=mytoken"
method = "post"When enabled:
- Butler hashes source files from
repo-pathinstead of copying them - Compares hashes to previous run (stored in memory)
- Triggers reloader if hashes differ
- Never writes to
dest-path(which becomes optional) - First run always triggers reload (no previous hashes)
- Container restart triggers reload (in-memory hashes lost)
- Regenerated TLS certificates with proper Subject Alternative Names (SANs) for
localhostand127.0.0.1, fixing acceptance test failures with Go 1.15+ - Added comprehensive unit tests for previously untested code:
internal/config/status_test.go- Status file operationsinternal/config/objects_test.go- ValidateOpts and RepoFileEventinternal/config/chan_test.go- ConfigChanEvent operationsinternal/config/manager_test.go- Manager methodsinternal/reloaders/reloaders_test.go- Reloader error handlinginternal/reloaders/http_test.go- HTTP reloader functionalityinternal/alog/alog_test.go- Apache logging handlerinternal/methods/methods_test.go- Method factory
- Added tests for watch-only mode in
helpers_test.goandconfig_test.go
- Parallel test execution in GitHub Actions workflows - unit tests and acceptance tests now run concurrently
- Updated Dockerfile to include tests for
internal/environmentandinternal/alogpackages - Added certificate generation script (
files/certs/generate_certs.sh) for reproducible test certificate creation
- Updated
make testto run only unit tests by default (faster CI) - Added
make test-allto run both unit and acceptance tests - Removed legacy Dockerfile references to non-existent files
None - this release is fully backward compatible.
https://github.com/adobe/butler/compare/v1.4.0...v1.5.0
This release includes significant improvements to the build system, new configuration options, and various enhancements.
Added a new per-manager configuration option that allows skipping the #butlerstart and #butlerend header/footer validation. This is useful for managing files like Kubernetes ConfigMaps or JCasC configurations that cannot easily include butler markers.
[mymanager]
repos = ["myrepo"]
skip-butler-header = "true"
dest-path = "/path/to/configs"When enabled:
- Butler will not require
#butlerstartand#butlerendmarkers - YAML syntax validation still occurs for
.yaml/.ymlfiles - JSON syntax validation still occurs for
.jsonfiles
Added automated release workflows using GitHub Actions with label-based versioning:
release:major- Breaking changes (v1.0.0 → v2.0.0)release:minor- New features (v1.0.0 → v1.1.0)release:patch- Bug fixes (v1.0.0 → v1.0.1)release:skip- Skip automatic release
- Migrated from
depto Go modules (go.mod) - Consolidated multiple Dockerfiles into a single multi-stage
docker/Dockerfile - Added Docker Buildx Bake configuration (
docker-bake.hcl) - Updated to Go 1.21
- Removed vendor directory (dependencies fetched at build time)
- Added blob account CLI flags for Azure Blob storage
- S3 improvements
- Added
InsecureSkipVerifyoption to ignore etcd SSL warnings - Updated metrics handling
- Added default HTTP options
- Code linting and cleanup
- Added Travis CI configuration
2cd59dcAdd skip header option (#45) (Stegen Smith)7a10661Updating base container / improving container build / adding workflows (#44) (Stegen Smith)135d32emoved govender to dep (vs glide) (#38) (Stegen Smith)e04aa73added blob account cli flags (#37) (Stegen Smith)26ef1a6S3 improvements (#36) (Stegen Smith)fe50d2aTidying up how we're handling the different methods (#35) (Stegen Smith)fa4c10cupdating metrics (#34) (Stegen Smith)95711e8Add InsecureSkipVerify to ignore etcd ssl warnings (#33) (Friedrich Gonzalez)43812aaDoing some linting and other cleanup (#30) (Stegen Smith)85d928fAdding travis ci stuff (#29) (Stegen Smith)7d241f9Adding default http options (#26) (Stegen Smith)
- The old
make buildcommand now uses Docker Buildx Bake instead of direct Docker build - Vendor directory has been removed; builds now require network access to fetch dependencies
https://github.com/adobe/butler/compare/v1.3.0...v1.4.0