v0.10.0
- (github-actions[bot]) released this 2024-07-17 11:54:57 +0000 UTC*
Description
The Fleet v0.10 release brings significant changes, including a redesign that splits components into containers and switches to the controller-runtime framework. The rewritten controllers switch to structured logging. To reduce image size and complexity, v0.10 integrates the gitjob repository, merges various controller codes, and introduces new features such as sharding with node selectors, prometheus metrics, configurable leader election, and worker count for the fleet-controller. The release deprecates the “fleet test” command in favor of “target” and “deploy” with a dry-run option and adds experimental OCI content storage. Bug fixes enhance drift detection, cluster status reporting, and various operational aspects, while automation improvements bolster testing, CI, and the release workflow.
Additions
- Populate bundle status from bundleDeployment status resources by @rubhanazeem in #2535
- Add strict TLS mode support by @weyfonk in #2507
- Adding NodeSelection for Controller Shards by @Tommy12789 in #2505
- Extend strict TLS mode to
fleet-agent
container by @weyfonk in #2556 - Gitcloner recurses submodules by @manno in #2557
- Bundle content storage in OCI by @0xavi0 in #2561
- Add metrics to gitops controller by @Tommy12789 in #2530
- Use bundleDeployment to store resources in gitRepo status by @rubhanazeem in #2523
- Adds extraEnv to gitjob and fleet-controller deployments by @0xavi0 in #2493
- Deprecate “fleet test” command, previously used to debug chart by @manno in #2113
- Support for Azure DevOps Webhook for gitRepos using SSH URL by @0xavi0 in #2440
- Keep CRDs when deleting a Bundle by @raulcabello in #2028
- Add correctDrift to targetCustomization by @raulcabello in #2014
- Add target/deploy/dry-run CLI commands by @manno in #2102
- Adds option to disable polling for Git repos by @0xavi0 in #2226
- Only create Content resource if Bundle matches any target by @manno in #2239
- Removes cluster node status reporting from agent by @0xavi0 in #2190
- Merge controller and gitjob images by @weyfonk in #2236
- Add static sharding support by @weyfonk in #2323
- Add Prometheus Metrics by @p-se in #2172
- Merge binaries by @manno in #2361
- Configurable leader election via chart values by @aruiz14 in #1981
- Replace ImageScan and Bundle Labels With fleet.yaml Labels by @Tommy12789 in #2360
- Reduce logging for bundles from cleanup controller by @manno in #2393
- Delete namespace when a gitRepo is deleted by @rubhanazeem in #2373
- Add readOnlyRootFilesystem to deployment_gitjob.yaml by @thardeck in #2379
- Creation of a New Webhook endpoint for Github test Webhook by @Tommy12789 in #2395
- Add a Parameter to Configure Worker count for fleet-controller by @Tommy12789 in #2430
Bugfixes
- Ignore status fields during drift detection by @aruiz14 in #2522
- Fixes error display and improves user experience in git poller by @0xavi0 in #2542
- Honor Helm’s MaxHistory when using drift correction by @aruiz14 in #2519
- Remove trailing comma from bootstrap template by @Danil-Grigorev in #2452
- Do not count deleted bundledeployments in cluster status by @manno in #2454
- Fixes infinite job generation after ForceSyncGeneration changed by @0xavi0 in #2477
- GitRepo Initial Checkout when DisablePolling is True by @Tommy12789 in #2469
- Filter namespaces by the kubernetes.io/metadata.name label by @raulcabello in #2009
- Catch OCI version errors and return them by @manno in #2311
- Make AlphabeticalPolicy string check case insensitive by @aditditto in #2216
- Ignore not-found errors when deleting bundle deployments by @weyfonk in #2329
- Bump helm fork to 3.14.4 by @manno in #2337
- Add missing serviceName in fleet-agent statefulset by @p-se in #2045
- Fix gitjob log messages for controller and webhook by @manno in #2367
- Fix helm deployer ignoring kubeconfig CLI arg by @manno in #2112
- Return commit for revision instead of HEAD by @0xavi0 in #2410
- Merges gitrepo and gitops controllers by @0xavi0 in #2537
- Partially replace cleanup with finalizers by @weyfonk in #2431
- Moves functionality from gitrepo to gitjob controller by @0xavi0 in #2475
Redesign
- Convert fleet-agent to controller-runtime by @manno in #1772
- Convert fleetcontroller to controller-runtime by @manno in #2018
- Move
rancher/gitjob
logic to this repository by @weyfonk in #2098 - Split fleet-agent by @manno in #1905
- Switch container images to busybox and suse/git by @manno in #1940
- Remove
GitJob
resource by @weyfonk in #2129 - Clustergroup controller migration by @manno in #2400
Performance
- Reduce the number of times that Bundle resources are serialized by @aruiz14 in #1952
- Replace json-based implementation of DeepCopy on GenericMap by @aruiz14 in #1915
What’s Changed
Details
- Keep schemebuilder type by @manno in #2524
- Rename sharding labels by @manno in #2463
- Fix
fleet apply
command description by @weyfonk in #2467 - Fix example values.yaml for enabling OCI storage by @bigkevmcd in #2494
- Refactor Gitops Controllers by @manno in #2490
- Add authorize and defaults to gitjob controller by @manno in #2491
- Security context needs to be on container by @manno in #2506
- Adds DeleteFunc to bundle’s predicate in gitrepo’s controller by @0xavi0 in #2508
- Add SecurityContext to job container by @raulcabello in #1860
- Revert “Add SecurityContext to job container” by @raulcabello in #1872
- Add SecurityContext to job container by @raulcabello in #1875
- Add security context to token cleanup job by @puffitos in #1862
- Drop wrangler-cli dependency by @aruiz14 in #1896
- Small refactor of debug flags handling by @aruiz14 in #1899
- Move cleanup to a different container by @raulcabello in #1885
- Fix typo in README.md by @guitarmanvt in #1907
- Replace wrangler for kubebuilder for generating CRDs by @raulcabello in #1904
- Remove leftovers from controller-gen migration by @aruiz14 in #1920
- Fix debug flag in agent commands by @manno in #1924
- Move agent management to a separate container by @raulcabello in #1910
- Improve pull request template by @thardeck in #1941
- Add docs link by @weyfonk in #1951
- Change variables to constants in bundle type by @manno in #1986
- Agent Bundle/Release Cleanup Ignores Non-Fleet Releases by @manno in #1976
- Move agentmanagement modules into its folder by @manno in #2032
- Improve container security by @weyfonk in #2042
- Remove bd requeue, rely on drift correction by @manno in #1985
- Remove k8s replace from go.mod by @manno in #2086
- Use apimachinery yaml package directly by @manno in #2099
- Extract apply to applied by @manno in #2097
- Refactor targeting/bundle controller by @manno in #2111
- Use git-core pkg instead of git by @weyfonk in #2105
- Update helm fork, rename ForceAdopt/Adopt to TakeOwnership by @manno in #2146
- Move
gitjob
binary tointernal/cmd
by @weyfonk in #2148 - Cleanup unused durations constants by @jhoblitt in #2286
- Propagate bundle and bundledeployment status updates to GitRepo by @weyfonk in #2223
- Remove Windows agent image and docs by @weyfonk in #2237
- Remove manifest templates by @weyfonk in #2233
- Switch fetchNamespace to Get instead of list by @manno in #2205
- Switch fleet repo branch to main by @manno in #2240
- Use portable API for bind mounts in integration tests by @weyfonk in #2229
- Controller image only install ssh clients by @manno in #2335
- Remove unused update status code from bundle reconciler by @manno in #2349
- Simplify shards configuration detection by @weyfonk in #2354
- Switch to tini by @manno in #2336
- Hide global CLI flags on sub commands by @manno in #2376
- CLI deploy prints to stdout by @manno in #2453
- metrics: optimize collection calls in reconciliation loops by @p-se in #2406
- Refactoring CreateJob and UpdateStatus methos in Gitjob Reconciler by @Tommy12789 in #2434
- Gitjob controller updates GitRepo with generation it is reconciling by @manno in #2451
CI / Automation
Details
- Improve release api description and default by @thardeck in #2548
- Fix flaky e2e tests by @weyfonk in #2539
- dev: Make setup-single-cluster capable of setting up multiple clusters by @p-se in #2461
- Remove linter from release pipeline by @thardeck in #2562
- Fix flaky GitRepo status tests by @weyfonk in #2534
- Include drift end-to-end tests in CI workflows by @weyfonk in #2531
- Ignore typos in embedded file by @aruiz14 in #2528
- Switch from omg.howdoi.website to sslip.io by @p-se in #2466
- Fix summary and details tags in bug report template by @sbulage in #2476
- Increase timeout and waiting for testcontainers by @manno in #2502
- Add status reconcile tests by @manno in #2416
- Fix flaky agent modified status test by @manno in #2504
- E2e test to checks status fields by @rubhanazeem in #2503
- Fixes flaky agent integration test by @0xavi0 in #2509
- Use the same linter version in GoReleaser as for prs by @thardeck in #2511
- Fix flaky integration test for git job with polling disabled by @weyfonk in #2514
- Add tmate debugging info to Nightly E2E workflow by @weyfonk in #1847
- Reduce replica count in rancher integration tests by @manno in #1840
- Remove cache action for Go build artifacts by @weyfonk in #1867
- Prevent debug images from creating GitHub releases by @aruiz14 in #1873
- Use configmap example for
keepResources
E2E tests by @weyfonk in #1870 - Clean up e2e test resources by @weyfonk in #1876
- Update exact Fleet version when releasing against Rancher by @weyfonk in #1880
- Use private configmap chart for OCI testing by @weyfonk in #1898
- Lower debug level in dev scripts by @manno in #1903
- Fix flaky smoke test for cluster registration by @weyfonk in #1913
- Add acceptance tests to AKS and GKE CI workflows by @weyfonk in #1914
- Make sure that all go.mods are tidy for new prs by @thardeck in #1942
- Provide release.yaml charts version as array by @thardeck in #1971
- Switch bundle diff test to use random target namespaces by @manno in #1975
- Switch upgrade test to fleet-test-data repo by @manno in #1936
- Remove s390x as runners are not available by @raulcabello in #1995
- Add config for user/passwords in test infra by @manno in #1987
- Fix flaky gitrepo test by @manno in #1999
- Add workflow for porting issues by @aruiz14 in #2012
- Use a different secret for GITHUB_TOKEN by @aruiz14 in #2016
- Adapt release script to build.yaml by @thardeck in #2015
- Add initial gitrepo controller integration test by @manno in #2034
- Update CI up to k8s 1.29 by @manno in #2073
- Disable cache in golangci-lint action by @manno in #2075
- Release scripts chart dir var by @manno in #2081
- Remove remaining s390x by @manno in #2078
- Remove nightly image build by @manno in #2122
- Infra e2e command uses a published fleet module by @manno in #2137
- Add dev docs for changing the infra command by @manno in #2147
- Add gitjob end-to-end tests with SSH key by @weyfonk in #2109
- Add CI workflow releasing Fleet charts against a test repo by @weyfonk in #2296
- Add initial Renovate configuration by @renovate-rancher in #2274
- CI script to update fleet reset values by @manno in #2261
- CI: Revert typos back to master by @0xavi0 in #2272
- Disable FOSSA check for RC releases by @manno in #2316
- Upgrade Fleet in Rancher only triggered manually by @manno in #2241
- Remove zube label handling by @manno in #2270
- Replace Drone pipeline with Github actions by @weyfonk in #2168
- Optimize renovate config by @thardeck in #2283
- Remove drone and dapper scripts by @manno in #2207
- Do not mess up go toolchain during release by @thardeck in #2209
- Duplicate integrationtests scripts for devs by @manno in #2259
- Fix “Upgrade Fleet in Rancher To HEAD” CI by @manno in #2260
- Fix Helm chart version computation in release workflow by @weyfonk in #2227
- Improve release scripts by @thardeck in #2312
- Fixes for image reference and CI by @manno in #2253
- Improve release scripts by @thardeck in #2321
- Bump Fleet version used within installation documentation to 0.9.3 by @rancherbot in #2338
- Make pre-release detection automatic by @weyfonk in #2333
- Update dev/README Dockerfile for act container image by @p-se in #2326
- Add developer docs for monitoring by @p-se in #2189
- Publish to docker.io/rancher (@manno)
- Clean up metrics tests by @manno in #2387
- Remove go.mod from infra test setup command by @manno in #2378
- Simplify sharding end-to-end tests by @weyfonk in #2396
- Remove go work section from dev README by @manno in #2380
- metrics: Add E2E test for cluster deletion by @p-se in #2371
- Ignore gosec errors in end-to-end tests infra setup by @weyfonk in #2392
- Add sharding to Fleet deployments in CI workflows running end-to-end tests by @weyfonk in #2405
- dev-scripts: Change apiServerURL for setup-fleet-downstream by @p-se in #2052
- Improve logging and document issue running
act
in a linked git worktree by @p-se in #2372 - metrics: make sure metrics work well with sharding by @p-se in #2420
- Re-enable fossa by @olblak in #2446
Full Changelog: v0.9.5…v0.10.0
Download
Information retrieved from here