-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Agent server-side apply (SSA) deduplication cache (#227)
* add cache * draft resource watch * use gvr cache * add event handler * add field selector * add initial status reconciler draft * add agent labels * initial server cache update * finish initial server cache implementation * update status watcher * register controller * change flag * fix build * fixes * add sha logic * update resource watcher * fix resource key parsing * add apply check * update sha object * add main apply check * finish main apply check * update chache * refactor * move const outside func * extract health status * set health status * refactor health status * refactor resource cache * refactor after merge * check deleted resource * add health cache * fix lint * add resource key alias * use resource key alias * move getLuaHealthConvert * handle contexts better * fix recursive call * use resource key alias * post merge fix * format * add cache filter * add custom status watcher * close watcher * add filter * skip timeout * fix watcher cleanup on close error * revert skip timeout * fixes * refactor * use custom status watcher for cache * revert last commit * use a custom status watcher implementation for resource cache and applier * disable health cache * fix linter * remove health cache * don't throw the error when inventory config map deleted * clear cache * add logs * optimize status watcher to use unique watches when running Watch multiple times * bump go version * fix linter * bump go version * bump go CI * make tools before unit tests * bump go CI * add debug * -vet=off * disable controllers * bump go in dockerfile * fix dockerfile * use test suite * bump ginko version * disable client in test suite * disable client in test suite * disable controller tests * explicitly initialize cache in main and add more prometheus metrics * fix unit tests * fix linter * change filter order * improve RequiresApply * improve filter * fix watcher * remove CRD filter * do not remove whole SHA entry in cache * revert apply check * fix apply check * fix sha object * remove resource cache expiration check poller * fix cache cleanup * close dynamic client watch * add error log for health status * fix linter * refactor args handling and allow reconciling only specific services * support golang flag * fix exposing agent metrics * refactor our custom watcher implementation * create status cache * move lua * fix agent build * fix unit tests * fix lint * fix status watcher init in the applier * fix status cache * refactor statuses * use ComponentAttributes * add retry watcher wrapper and use it in status watcher * use version cache * fix linter * fix goroutine leak and add profiler arg * fix lint * check if there is only one CustomHealth object * cleanup, add docs and refactor code * cleanup * cleanup metrics when service is deleted * allow disabling resource cache and add metrics to measure detailed reconcile execution times * allow providing extra args to operator * disable resource cache in chart * allow disabling resource cache via operator secrets * cache manifests --------- Co-authored-by: Marcin Maciaszczyk <marcin9yk@icloud.com> Co-authored-by: Sebastian Florek <sebastian@plural.sh>
- Loading branch information
1 parent
3ff708f
commit 89fb29d
Showing
58 changed files
with
3,550 additions
and
450 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.