Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature proposal: Add way to authenticate calls to custom controllers (sync/finalize/customize hooks) #255

Open
grzesuav opened this issue Apr 28, 2021 · 9 comments
Labels
enhancement New feature or request

Comments

@grzesuav
Copy link
Contributor

Request description

Currently metacontroller uses http communication without any authorization to execute hookhs.

Proposal

Add ways to authenticate, like basic auth, ca certs, bearer token.

Hook API will change, so need to carefully introduce this change to not make any breaking changes.

@grzesuav grzesuav added the enhancement New feature or request label Apr 28, 2021
@MartinKanters
Copy link

Thanks for creating this. I agree that all of these means of authentication would be valuable, but these can be fixed in multiple PRs/iterations, right? Otherwise this has the risk of blowing up into a lot of work.

p.s. there's a typo in the title. All -> Add.

@grzesuav grzesuav changed the title Feature proposal: All way to authenticate calls to custom controllers (sync/finalize/customize hooks) Feature proposal: Add way to authenticate calls to custom controllers (sync/finalize/customize hooks) Apr 28, 2021
@grzesuav
Copy link
Contributor Author

Thanks for creating this. I agree that all of these means of authentication would be valuable, but these can be fixed in multiple PRs/iterations, right? Otherwise this has the risk of blowing up into a lot of work.

it depends, I want first check how it can be implemented, potentially there will be an easy way to do it in one go, and if not - at least API need to be defined/proposed in first PR, even if it won't be implemented to reduce number of changes in CRD's definition. Of course, implementation of methods can be separated if needed.

p.s. there's a typo in the title. All -> Add.

thanks :)

@MartinKanters
Copy link

it depends, I want first check how it can be implemented, potentially there will be an easy way to do it in one go, and if not - at least API need to be defined/proposed in first PR, even if it won't be implemented to reduce number of changes in CRD's definition. Of course, implementation of methods can be separated if needed.

Makes sense! Thanks, looking forward to it.

grzesuav referenced this issue in grzesuav/metacontroller Jul 15, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav referenced this issue in grzesuav/metacontroller Jul 22, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav referenced this issue in grzesuav/metacontroller Jul 22, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav referenced this issue in grzesuav/metacontroller Jul 25, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav referenced this issue in grzesuav/metacontroller Jul 25, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav referenced this issue in grzesuav/metacontroller Jul 25, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav referenced this issue in grzesuav/metacontroller Jul 26, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav added a commit that referenced this issue Jul 29, 2021
…c creation

Up to now, for each invocation new httpClient was created. It was both
unefficient and forbids from further changes (like adding authentication
etc). This PR introduces Hooks Executor which are partof the controller.

Signed-off-by: grzesuav <grzesuav@gmail.com>
grzesuav pushed a commit that referenced this issue Jul 29, 2021
## [2.0.1](v2.0.0...v2.0.1) (2021-07-29)

### Bug Fixes

* **deps:** Update controller-runtime to v0.9.5 and k8s.io/utils ([5bfcb90](5bfcb90))

### Performance Improvements

* **webhooks:** [#255](#255) - Create httpClient per controller instead ad-hoc creation ([a8f5c39](a8f5c39))
@grzesuav
Copy link
Contributor Author

I am thinking of having sth similar as in https://github.com/prometheus/common/blob/main/config/http_config.go#L159 - @MartinKanters do you think it cover most common use cases ?

@MartinKanters
Copy link

Took a quick look at it and it looks fine to me!

@grzesuav
Copy link
Contributor Author

grzesuav commented May 4, 2022

grzesuav referenced this issue in grzesuav/metacontroller Aug 4, 2022
# [1.0.0](v0.4.3...v1.0.0) (2022-08-04)

### Bug Fixes

* Add build information ([00f9858](00f9858))
* Add command line arguments parameterization to Helm chart ([2081bcf](2081bcf))
* **composite controller:** [#68](#68) - Skip registration until parent resource ([71fd2df](71fd2df))
* **composite controller:** Fixed GroupVersion management ([c5f4c09](c5f4c09))
* **ControllerRevision:** [#144](#144) - Fix ControllerRevision management ([d405959](d405959))
* **customize:** [#259](#259) - Add guard for customize cache against concurrent writes ([b765c17](b765c17))
* Delete metacontroller-crds-v1beta1.yaml ([ed15539](ed15539))
* **deps:** update alpine docker tag to v3.12.2 ([08a9d26](08a9d26))
* **deps:** update alpine docker tag to v3.13.0 ([2f62ec1](2f62ec1))
* **deps:** update alpine docker tag to v3.13.2 ([ecb8a13](ecb8a13))
* **deps:** update alpine docker tag to v3.13.3 ([953ae99](953ae99))
* **deps:** update alpine docker tag to v3.13.4 ([c3901c9](c3901c9))
* **deps:** update alpine docker tag to v3.13.5 ([bef407b](bef407b))
* **deps:** update alpine docker tag to v3.14.0 ([a252fbb](a252fbb))
* **deps:** update alpine docker tag to v3.14.1 ([0599592](0599592))
* **deps:** update alpine docker tag to v3.14.2 ([d9393bf](d9393bf))
* **deps:** Update alpine to 3.12.3 and go to 1.15.6 ([091f3b2](091f3b2))
* **deps:** update alpine:3.14.0 docker digest to adab384 ([cfc6956](cfc6956))
* **deps:** Update controller-runtime to 0.9.3 and k8s packages to v0.21.3 ([5d06b06](5d06b06))
* **deps:** Update controller-runtime to v0.9.5 and k8s.io/utils ([5bfcb90](5bfcb90))
* **deps:** Update controllrt-runtime to 0.9.2 & k8s.io to v0.21.2 ([4031180](4031180))
* **deps:** Update dependencies to k8s 0.17.0 ([f61b37f](f61b37f))
* **deps:** update github.com/nsf/jsondiff commit hash to 0e9c064 ([b9fe982](b9fe982))
* **deps:** update github.com/nsf/jsondiff commit hash to 1e845ec ([55983c3](55983c3))
* **deps:** Update go to 1.15.7 ([e9d7a22](e9d7a22))
* **deps:** Update go-cmp v0.5.6 prometheus/client_golang v1.10.0 ([1748a91](1748a91))
* **deps:** update golang docker tag to v1.15.8 ([32c8b8f](32c8b8f))
* **deps:** update golang docker tag to v1.16.0 ([1a684bf](1a684bf))
* **deps:** update golang docker tag to v1.16.2 ([53d66d4](53d66d4))
* **deps:** update golang docker tag to v1.16.3 ([a5ab1fc](a5ab1fc))
* **deps:** update golang docker tag to v1.16.5 ([d6fca11](d6fca11))
* **deps:** update golang docker tag to v1.16.6 ([2210565](2210565))
* **deps:** update golang docker tag to v1.16.7 ([26b916a](26b916a))
* **deps:** update golang docker tag to v1.17.0 ([e8a572b](e8a572b))
* **deps:** update golang docker tag to v1.17.1 ([8214d11](8214d11))
* **deps:** Update golang to 1.16.4 ([b7e8a33](b7e8a33))
* **deps:** Update golang.org/x/text dependency due to CVE-2020-14040 ([3e6ae6a](3e6ae6a))
* **deps:** Update k8s and controller-runtime dependencies ([256f20e](256f20e))
* **deps:** Update k8s.io packages to 0.17.17 ([6ff338e](6ff338e))
* **deps:** update k8s.io packages to v0.17.14 ([4be7525](4be7525))
* **deps:** update k8s.io packages to v0.17.15 ([34a0c98](34a0c98))
* **deps:** Update k8s.io packages to v0.17.16 ([2f11f21](2f11f21))
* **deps:** Update k8s.io to v0.22.1 ([5382cc9](5382cc9))
* **deps:** Update k8s.io/klog/v2 to v2.10.0 ([47b107d](47b107d))
* **deps:** update k8s.io/utils commit hash to 6fdb442 ([f713086](f713086))
* **deps:** Update klog/v2 to v2.9.0 ([47aa552](47aa552))
* **deps:** Update klog2 to 2.5.0 ([2988b74](2988b74))
* **deps:** Update klog2 to v2.8.0 ([9cf1ecc](9cf1ecc))
* **deps:** update module github.com/prometheus/client_golang to v1.11.0 ([06ea53d](06ea53d))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.9.0 and k8s.io packages to v0.21.1 ([c07dcb3](c07dcb3))
* **deps:** Update prometheus/client_golang to v1.9.0 ([d288bce](d288bce))
* **docker:** [metacontroller#351](https://github.com/grzesuav/metacontroller/issues/351) - Add arm32 image ([9685bd6](9685bd6))
* **docker:** Disable `latest` tag for distroless variants ([8ce7a8d](8ce7a8d))
* **events:** Emit events for controller sync errors ([9b7258d](9b7258d))
* **metrics:** [metacontroller#289](https://github.com/grzesuav/metacontroller/issues/289) - Wait on signal before exiting to fix http server with metrics ([f646a90](f646a90))
* **metrics:** Add http client metrics ([3d2391d](3d2391d))
* **metrics:** Utilize controller-runtime  metrics server ([45b80c3](45b80c3))
* **release:** [#197](#197) - Change release message to trigger CI pipeline ([3fb3847](3fb3847))
* **security:** Update golang.org/x/crypto because of CVE-2020-29652 ([38c0c2f](38c0c2f))
* **security:** Update vunerable openssl packages -  CVE-2020-1971 ([060a2d9](060a2d9))
* Test releaser ([bae2064](bae2064))
* Update alpine to 3.13.1 ([7d10f84](7d10f84))

### chore

* **api:** Update CRD api versions to v1 ([c38b399](c38b399))

### Features

* [#170](#170) - Emit kubernetes events ([260acca](260acca))
* **#31:** Add distroless images, migrate to build action v2 ([bbd9715](bbd9715)), closes [#31](#31)
* **#69:** Migration of customize hook implementation ([7c959db](7c959db)), closes [#69](#69)
* Implement customize hook ([2facbdb](2facbdb))
* **logging:** [#233](#233) - Allow logging in json format ([8f11b37](8f11b37))
* **perf:** Add a flag to configure the number of workers to run ([3f07022](3f07022))
* Remove deprecated --client-config-path - switched to --kubeconfig ([9cf558a](9cf558a))
* Rename --debug-addr to --metrics-address ([86cda55](86cda55))
* Ship CRD's manifests also in version v1beta1 for kubernetes 1.15 ([284b3e2](284b3e2))
* Test 2 ([43c4d64](43c4d64))

### Performance Improvements

* **k8sClient:** use a cache-based version of k8s client ([17f3dd2](17f3dd2))
* **webhooks:** [#255](#255) - Create httpClient per controller instead ad-hoc creation ([a8f5c39](a8f5c39))

### BREAKING CHANGES

* Flag --client-config-path is removed in favour of
--kubeconfig

Signed-off-by: grzesuav <grzesuav@gmail.com>
* Flag --debug-addr was renamed to --metrics-address

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **logging:** Removed klog flags - `-v`, `--logtostderr` etc. Added zap logger flags
instead:
- --zap-log-level
- --zap-devel
- --zap-encoder
- --zap-stacktrace-level
Please read documentation (User Guide/Configuration) and/or check
manifest changes to check which should be used.

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **api:** Migrated CRD api version to 'apiextensions.k8s.io/v1' introduced in kubernetes 1.16. This now makes 1.16 the minimal supported kubernetes version

Signed-off-by: Filip Petkovski <filip.petkovski@personio.de>
grzesuav referenced this issue in grzesuav/metacontroller Aug 4, 2022
# [1.0.0](v0.4.3...v1.0.0) (2022-08-04)

### Bug Fixes

* Add build information ([00f9858](00f9858))
* Add command line arguments parameterization to Helm chart ([2081bcf](2081bcf))
* **composite controller:** [#68](#68) - Skip registration until parent resource ([71fd2df](71fd2df))
* **composite controller:** Fixed GroupVersion management ([c5f4c09](c5f4c09))
* **ControllerRevision:** [#144](#144) - Fix ControllerRevision management ([d405959](d405959))
* **customize:** [#259](#259) - Add guard for customize cache against concurrent writes ([b765c17](b765c17))
* Delete metacontroller-crds-v1beta1.yaml ([ed15539](ed15539))
* **deps:** update alpine docker tag to v3.12.2 ([08a9d26](08a9d26))
* **deps:** update alpine docker tag to v3.13.0 ([2f62ec1](2f62ec1))
* **deps:** update alpine docker tag to v3.13.2 ([ecb8a13](ecb8a13))
* **deps:** update alpine docker tag to v3.13.3 ([953ae99](953ae99))
* **deps:** update alpine docker tag to v3.13.4 ([c3901c9](c3901c9))
* **deps:** update alpine docker tag to v3.13.5 ([bef407b](bef407b))
* **deps:** update alpine docker tag to v3.14.0 ([a252fbb](a252fbb))
* **deps:** update alpine docker tag to v3.14.1 ([0599592](0599592))
* **deps:** update alpine docker tag to v3.14.2 ([d9393bf](d9393bf))
* **deps:** Update alpine to 3.12.3 and go to 1.15.6 ([091f3b2](091f3b2))
* **deps:** update alpine:3.14.0 docker digest to adab384 ([cfc6956](cfc6956))
* **deps:** Update controller-runtime to 0.9.3 and k8s packages to v0.21.3 ([5d06b06](5d06b06))
* **deps:** Update controller-runtime to v0.9.5 and k8s.io/utils ([5bfcb90](5bfcb90))
* **deps:** Update controllrt-runtime to 0.9.2 & k8s.io to v0.21.2 ([4031180](4031180))
* **deps:** Update dependencies to k8s 0.17.0 ([f61b37f](f61b37f))
* **deps:** update github.com/nsf/jsondiff commit hash to 0e9c064 ([b9fe982](b9fe982))
* **deps:** update github.com/nsf/jsondiff commit hash to 1e845ec ([55983c3](55983c3))
* **deps:** Update go to 1.15.7 ([e9d7a22](e9d7a22))
* **deps:** Update go-cmp v0.5.6 prometheus/client_golang v1.10.0 ([1748a91](1748a91))
* **deps:** update golang docker tag to v1.15.8 ([32c8b8f](32c8b8f))
* **deps:** update golang docker tag to v1.16.0 ([1a684bf](1a684bf))
* **deps:** update golang docker tag to v1.16.2 ([53d66d4](53d66d4))
* **deps:** update golang docker tag to v1.16.3 ([a5ab1fc](a5ab1fc))
* **deps:** update golang docker tag to v1.16.5 ([d6fca11](d6fca11))
* **deps:** update golang docker tag to v1.16.6 ([2210565](2210565))
* **deps:** update golang docker tag to v1.16.7 ([26b916a](26b916a))
* **deps:** update golang docker tag to v1.17.0 ([e8a572b](e8a572b))
* **deps:** update golang docker tag to v1.17.1 ([8214d11](8214d11))
* **deps:** Update golang to 1.16.4 ([b7e8a33](b7e8a33))
* **deps:** Update golang.org/x/text dependency due to CVE-2020-14040 ([3e6ae6a](3e6ae6a))
* **deps:** Update k8s and controller-runtime dependencies ([256f20e](256f20e))
* **deps:** Update k8s.io packages to 0.17.17 ([6ff338e](6ff338e))
* **deps:** update k8s.io packages to v0.17.14 ([4be7525](4be7525))
* **deps:** update k8s.io packages to v0.17.15 ([34a0c98](34a0c98))
* **deps:** Update k8s.io packages to v0.17.16 ([2f11f21](2f11f21))
* **deps:** Update k8s.io to v0.22.1 ([5382cc9](5382cc9))
* **deps:** Update k8s.io/klog/v2 to v2.10.0 ([47b107d](47b107d))
* **deps:** update k8s.io/utils commit hash to 6fdb442 ([f713086](f713086))
* **deps:** Update klog/v2 to v2.9.0 ([47aa552](47aa552))
* **deps:** Update klog2 to 2.5.0 ([2988b74](2988b74))
* **deps:** Update klog2 to v2.8.0 ([9cf1ecc](9cf1ecc))
* **deps:** update module github.com/prometheus/client_golang to v1.11.0 ([06ea53d](06ea53d))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.9.0 and k8s.io packages to v0.21.1 ([c07dcb3](c07dcb3))
* **deps:** Update prometheus/client_golang to v1.9.0 ([d288bce](d288bce))
* **docker:** [metacontroller#351](https://github.com/grzesuav/metacontroller/issues/351) - Add arm32 image ([9685bd6](9685bd6))
* **docker:** Disable `latest` tag for distroless variants ([8ce7a8d](8ce7a8d))
* **events:** Emit events for controller sync errors ([9b7258d](9b7258d))
* **metrics:** [metacontroller#289](https://github.com/grzesuav/metacontroller/issues/289) - Wait on signal before exiting to fix http server with metrics ([f646a90](f646a90))
* **metrics:** Add http client metrics ([3d2391d](3d2391d))
* **metrics:** Utilize controller-runtime  metrics server ([45b80c3](45b80c3))
* **release:** [#197](#197) - Change release message to trigger CI pipeline ([3fb3847](3fb3847))
* **security:** Update golang.org/x/crypto because of CVE-2020-29652 ([38c0c2f](38c0c2f))
* **security:** Update vunerable openssl packages -  CVE-2020-1971 ([060a2d9](060a2d9))
* Test releaser ([bae2064](bae2064))
* Update alpine to 3.13.1 ([7d10f84](7d10f84))

### chore

* **api:** Update CRD api versions to v1 ([c38b399](c38b399))

### Features

* [#170](#170) - Emit kubernetes events ([260acca](260acca))
* **#31:** Add distroless images, migrate to build action v2 ([bbd9715](bbd9715)), closes [#31](#31)
* **#69:** Migration of customize hook implementation ([7c959db](7c959db)), closes [#69](#69)
* Implement customize hook ([2facbdb](2facbdb))
* **logging:** [#233](#233) - Allow logging in json format ([8f11b37](8f11b37))
* **perf:** Add a flag to configure the number of workers to run ([3f07022](3f07022))
* Remove deprecated --client-config-path - switched to --kubeconfig ([9cf558a](9cf558a))
* Rename --debug-addr to --metrics-address ([86cda55](86cda55))
* Ship CRD's manifests also in version v1beta1 for kubernetes 1.15 ([284b3e2](284b3e2))
* Test 2 ([43c4d64](43c4d64))

### Performance Improvements

* **k8sClient:** use a cache-based version of k8s client ([17f3dd2](17f3dd2))
* **webhooks:** [#255](#255) - Create httpClient per controller instead ad-hoc creation ([a8f5c39](a8f5c39))

### BREAKING CHANGES

* Flag --client-config-path is removed in favour of
--kubeconfig

Signed-off-by: grzesuav <grzesuav@gmail.com>
* Flag --debug-addr was renamed to --metrics-address

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **logging:** Removed klog flags - `-v`, `--logtostderr` etc. Added zap logger flags
instead:
- --zap-log-level
- --zap-devel
- --zap-encoder
- --zap-stacktrace-level
Please read documentation (User Guide/Configuration) and/or check
manifest changes to check which should be used.

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **api:** Migrated CRD api version to 'apiextensions.k8s.io/v1' introduced in kubernetes 1.16. This now makes 1.16 the minimal supported kubernetes version

Signed-off-by: Filip Petkovski <filip.petkovski@personio.de>
grzesuav referenced this issue in grzesuav/metacontroller Aug 15, 2022
# [1.0.0](v0.4.3...v1.0.0) (2022-08-15)

### Bug Fixes

* Add build information ([00f9858](00f9858))
* Add command line arguments parameterization to Helm chart ([2081bcf](2081bcf))
* Add dlv to debug dockerfile and expose command in helm chart ([1e2b611](1e2b611))
* **allow:** release ([b43dbc5](b43dbc5))
* change invalid log message when InPlace update strategy is used ([1ca006e](1ca006e))
* **composite controller:** [#68](#68) - Skip registration until parent resource ([71fd2df](71fd2df))
* **composite controller:** Fixed GroupVersion management ([c5f4c09](c5f4c09))
* **controller:** Ignore 404/409 error responses ([5c983a4](5c983a4))
* **ControllerRevision:** [#144](#144) - Fix ControllerRevision management ([d405959](d405959))
* **customize:** [#259](#259) - Add guard for customize cache against concurrent writes ([b765c17](b765c17))
* **customize:** [metacontroller#414](https://github.com/grzesuav/metacontroller/issues/414) - Use 'UID' as cache key to avoid collisions between objects in different namespaces ([38126d1](38126d1))
* Delete metacontroller-crds-v1beta1.yaml ([ed15539](ed15539))
* **deps:** update alpine docker tag to v3.12.2 ([08a9d26](08a9d26))
* **deps:** update alpine docker tag to v3.13.0 ([2f62ec1](2f62ec1))
* **deps:** update alpine docker tag to v3.13.2 ([ecb8a13](ecb8a13))
* **deps:** update alpine docker tag to v3.13.3 ([953ae99](953ae99))
* **deps:** update alpine docker tag to v3.13.4 ([c3901c9](c3901c9))
* **deps:** update alpine docker tag to v3.13.5 ([bef407b](bef407b))
* **deps:** update alpine docker tag to v3.14.0 ([a252fbb](a252fbb))
* **deps:** update alpine docker tag to v3.14.1 ([0599592](0599592))
* **deps:** update alpine docker tag to v3.14.2 ([d9393bf](d9393bf))
* **deps:** update alpine docker tag to v3.15.0 ([dd1e402](dd1e402))
* **deps:** Update alpine to 3.12.3 and go to 1.15.6 ([091f3b2](091f3b2))
* **deps:** Update alpine to 3.14.3 and golang to 1.17.3 ([44c6595](44c6595))
* **deps:** update alpine:3.14.0 docker digest to adab384 ([cfc6956](cfc6956))
* **deps:** Update controller-runtime to 0.9.3 and k8s packages to v0.21.3 ([5d06b06](5d06b06))
* **deps:** Update controller-runtime to v0.10.3 ([195fde1](195fde1))
* **deps:** Update controller-runtime to v0.11.0 and k8s to v0.23.3 ([937cbf2](937cbf2))
* **deps:** Update controller-runtime to v0.11.1 ([c4e9058](c4e9058))
* **deps:** Update controller-runtime to v0.11.2 ([b243732](b243732))
* **deps:** Update controller-runtime to v0.12.3 ([2f7e062](2f7e062))
* **deps:** Update controller-runtime to v0.9.5 and k8s.io/utils ([5bfcb90](5bfcb90))
* **deps:** Update controllrt-runtime to 0.9.2 & k8s.io to v0.21.2 ([4031180](4031180))
* **deps:** Update dependencies to k8s 0.17.0 ([f61b37f](f61b37f))
* **deps:** update dependency alpine to v3.15.1 ([3a005ec](3a005ec))
* **deps:** update dependency alpine to v3.15.2 ([ce68114](ce68114))
* **deps:** update dependency alpine to v3.15.4 ([28beef9](28beef9))
* **deps:** update dependency alpine to v3.16.0 ([568f988](568f988))
* **deps:** update dependency alpine to v3.16.1 ([d82df9a](d82df9a))
* **deps:** update dependency alpine to v3.16.2 ([80e11a3](80e11a3))
* **deps:** update dependency golang to v1.17.7 ([007aeeb](007aeeb))
* **deps:** update dependency golang to v1.17.8 ([1c9e884](1c9e884))
* **deps:** update dependency golang to v1.18.0 ([3c433eb](3c433eb))
* **deps:** update dependency golang to v1.18.1 ([62109ed](62109ed))
* **deps:** update dependency golang to v1.18.2 ([0ed47d2](0ed47d2))
* **deps:** update dependency golang to v1.18.3 ([676078e](676078e))
* **deps:** update dependency golang to v1.18.4 ([8d74fd4](8d74fd4))
* **deps:** Update github.com/go-logr/logr to v1.2.2 ([1cf5dc4](1cf5dc4))
* **deps:** Update github.com/google/go-cmp to v0.5.7 ([5fa1396](5fa1396))
* **deps:** Update github.com/google/go-cmp to v0.5.8 ([8f81c66](8f81c66))
* **deps:** update github.com/nsf/jsondiff commit hash to 0e9c064 ([b9fe982](b9fe982))
* **deps:** update github.com/nsf/jsondiff commit hash to 1e845ec ([55983c3](55983c3))
* **deps:** Update github.com/prometheus/client_golang to v1.12.1 ([0897f66](0897f66))
* **deps:** Update go to 1.15.7 ([e9d7a22](e9d7a22))
* **deps:** Update go-cmp v0.5.6 prometheus/client_golang v1.10.0 ([1748a91](1748a91))
* **deps:** Update go-logr/logr to 1.2.3 ([89dff29](89dff29))
* **deps:** Update go.uber.org/zap to v1.21.0 ([466bbc3](466bbc3))
* **deps:** Update go.uber.org/zap to v1.22.0 ([faa93f2](faa93f2))
* **deps:** update golang docker tag to v1.15.8 ([32c8b8f](32c8b8f))
* **deps:** update golang docker tag to v1.16.0 ([1a684bf](1a684bf))
* **deps:** update golang docker tag to v1.16.2 ([53d66d4](53d66d4))
* **deps:** update golang docker tag to v1.16.3 ([a5ab1fc](a5ab1fc))
* **deps:** update golang docker tag to v1.16.5 ([d6fca11](d6fca11))
* **deps:** update golang docker tag to v1.16.6 ([2210565](2210565))
* **deps:** update golang docker tag to v1.16.7 ([26b916a](26b916a))
* **deps:** update golang docker tag to v1.17.0 ([e8a572b](e8a572b))
* **deps:** update golang docker tag to v1.17.1 ([8214d11](8214d11))
* **deps:** update golang docker tag to v1.17.4 ([937f91d](937f91d))
* **deps:** update golang docker tag to v1.17.5 ([9f2abd8](9f2abd8))
* **deps:** update golang docker tag to v1.17.6 ([bf0e583](bf0e583))
* **deps:** Update golang to 1.16.4 ([b7e8a33](b7e8a33))
* **deps:** Update golang to 1.19 ([b53b5de](b53b5de))
* **deps:** Update golang.org/x/text dependency due to CVE-2020-14040 ([3e6ae6a](3e6ae6a))
* **deps:** Update json-patch to v5.6.0, k8s.io to v0.22.4 and k8s.io/utils ([889f355](889f355))
* **deps:** Update k8s and controller-runtime dependencies ([256f20e](256f20e))
* **deps:** Update k8s dependencies to v0.24.3 ([c911040](c911040))
* **deps:** Update k8s.api to v0.23.5 ([e88bce6](e88bce6))
* **deps:** Update k8s.io packages to 0.17.17 ([6ff338e](6ff338e))
* **deps:** update k8s.io packages to v0.17.14 ([4be7525](4be7525))
* **deps:** update k8s.io packages to v0.17.15 ([34a0c98](34a0c98))
* **deps:** Update k8s.io packages to v0.17.16 ([2f11f21](2f11f21))
* **deps:** Update k8s.io packages to v0.24.0 ([8ac00eb](8ac00eb))
* **deps:** Update k8s.io packages to v0.24.1 ([44b5406](44b5406))
* **deps:** Update k8s.io to v0.22.1 ([5382cc9](5382cc9))
* **deps:** Update k8s.io/klog/v2 to v2.10.0 ([47b107d](47b107d))
* **deps:** Update k8s.io/klog/v2 to v2.70.1 ([63f1388](63f1388))
* **deps:** update k8s.io/utils commit hash to 6fdb442 ([f713086](f713086))
* **deps:** Update k8s.io/utils to v0.0.0-20220210201930-3a6ce19ff2f9 ([6c12b98](6c12b98))
* **deps:** Update k8s.io/utils to v0.0.0-20220713171938-56c0de1e6f5e ([63f6d0b](63f6d0b))
* **deps:** Update k8s.io/utils to v0.0.0-20220810061631-2e139fc3ae1e ([61d1f9a](61d1f9a))
* **deps:** Update k8s.io/utils to v0.0.0-20220812165043-ad590609e2e5 ([a2e7af5](a2e7af5))
* **deps:** Update klog/v2 to v2.60.1 ([d40bc8b](d40bc8b))
* **deps:** Update klog/v2 to v2.9.0 ([47aa552](47aa552))
* **deps:** Update klog2 to 2.5.0 ([2988b74](2988b74))
* **deps:** Update klog2 to v2.8.0 ([9cf1ecc](9cf1ecc))
* **deps:** update module github.com/prometheus/client_golang to v1.11.0 ([06ea53d](06ea53d))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.9.0 and k8s.io packages to v0.21.1 ([c07dcb3](c07dcb3))
* **deps:** Update prometheus/client_golang to v1.12.2 ([85affb4](85affb4))
* **deps:** Update prometheus/client_golang to v1.9.0 ([d288bce](d288bce))
* **deps:** Update rest of k8s.io dependencies to v0.22.4 ([f5a4a1d](f5a4a1d))
* **deps:** Update zcache to v1.1.0 ([4e89577](4e89577))
* **deps:** Update zgo.at/zcache to v1.2.0 ([4bc4c94](4bc4c94))
* **discovery:** Do not fail if missing a subset of resources during API discover ([6dce893](6dce893))
* **docker:** [metacontroller#351](https://github.com/grzesuav/metacontroller/issues/351) - Add arm32 image ([9685bd6](9685bd6))
* **docker:** Disable `latest` tag for distroless variants ([8ce7a8d](8ce7a8d))
* **dynamic apply:** Add `path` key as candidate to list merging ([a1de874](a1de874)), closes [metacontroller#443](https://github.com/grzesuav/metacontroller/issues/443)
* **events:** Emit events for controller sync errors ([9b7258d](9b7258d))
* **helm:** Change helm field zapLogLevel to zap.logLevel ([870c8aa](870c8aa)), closes [metacontroller#482](https://github.com/grzesuav/metacontroller/issues/482)
* **helm:** Fix indenting for pdb spec ([1bcfb8f](1bcfb8f))
* **hooks:** [metacontroller#383](https://github.com/grzesuav/metacontroller/issues/383) - Correct handling of nil arrays in responses ([2d916fd](2d916fd))
* **metrics:** [metacontroller#289](https://github.com/grzesuav/metacontroller/issues/289) - Wait on signal before exiting to fix http server with metrics ([f646a90](f646a90))
* **metrics:** Add http client metrics ([3d2391d](3d2391d))
* **metrics:** Utilize controller-runtime  metrics server ([45b80c3](45b80c3))
* **release:** [#197](#197) - Change release message to trigger CI pipeline ([3fb3847](3fb3847))
* **release:** Fix dockehub repository url ([de7e293](de7e293))
* **release:** Fix latest tag, to point to alpine image ([ce02f32](ce02f32))
* **release:** Test ([3edebe2](3edebe2))
* **release:** Use version with `v` prefix in docker push ([a53b064](a53b064)), closes [metacontroller#611](https://github.com/grzesuav/metacontroller/issues/611)
* **security:** Add ReadHeaderTimeout to pprof server to mitigate G112 ([a11059f](a11059f))
* **security:** Fix CVE-2022-1996 by updating k8s.io/kube-openapi to v0.0.0-20220627174259-011e075b9cb8 ([42eabbc](42eabbc))
* **security:** Update golang.org/x/crypto because of CVE-2020-29652 ([38c0c2f](38c0c2f))
* **security:** Update vunerable openssl packages -  CVE-2020-1971 ([060a2d9](060a2d9))
* Update alpine to 3.13.1 ([7d10f84](7d10f84))
* **update:** Update controller-runtime to v0.12.1 ([dbd4fd9](dbd4fd9))

### chore

* **api:** Update CRD api versions to v1 ([c38b399](c38b399))
* **helm:** Use commandArgs for all command arguments ([b78476e](b78476e))

### Code Refactoring

* Use controller-runtime to read crd's ([f0b0c98](f0b0c98))

### Features

* [#170](#170) - Emit kubernetes events ([260acca](260acca))
* **#31:** Add distroless images, migrate to build action v2 ([bbd9715](bbd9715)), closes [#31](#31)
* **#69:** Migration of customize hook implementation ([7c959db](7c959db)), closes [#69](#69)
* Add K8s API communiction check on startup ([de00e67](de00e67))
* Add leader election ([29563b2](29563b2))
* Add pprof to enable profiling ([1dbf3f6](1dbf3f6))
* Add priorityClassName to helm chart ([a4c5c10](a4c5c10))
* **Dockerfile:** Run apline images as nonroot user ([6e633bd](6e633bd))
* **helm:** [metacontroller#471](https://github.com/grzesuav/metacontroller/issues/471) - Expose rules and aggregateRule in ClusterRole ([41a462e](41a462e))
* **helm:** Add service to chart and prometheus examples ([60916a9](60916a9))
* **helm:** implement pod disruption budget ([d467934](d467934))
* Implement customize hook ([2facbdb](2facbdb))
* **logging:** [#233](#233) - Allow logging in json format ([8f11b37](8f11b37))
* **perf:** Add a flag to configure the number of workers to run ([3f07022](3f07022))
* Remove deprecated --client-config-path - switched to --kubeconfig ([9cf558a](9cf558a))
* Rename --debug-addr to --metrics-address ([86cda55](86cda55))
* Ship CRD's manifests also in version v1beta1 for kubernetes 1.15 ([284b3e2](284b3e2))
* **webhooks:** add etag support ([4c06eb6](4c06eb6))

### Performance Improvements

* **k8sClient:** use a cache-based version of k8s client ([17f3dd2](17f3dd2))
* **webhooks:** [#255](#255) - Create httpClient per controller instead ad-hoc creation ([a8f5c39](a8f5c39))

### Reverts

* Revert "chore(release): [skip ci] 4.3.5" ([64aac8e](64aac8e))

### BREAKING CHANGES

* **helm:** The following helm values are removed.
The equivalent command arguments can now be passed directly to the
`commandArgs` value.

- discoveryInterval
- cacheFlushInterval
- zap.logLevel
- zap.devel
- zap.encoder
- zap.stacktraceLevel

Signed-off-by: Mike Smith <10135646+mjsmith1028@users.noreply.github.com>
* Dropping support for kubernetes older than 1.16
* Flag --client-config-path is removed in favour of
--kubeconfig

Signed-off-by: grzesuav <grzesuav@gmail.com>
* Flag --debug-addr was renamed to --metrics-address

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **logging:** Removed klog flags - `-v`, `--logtostderr` etc. Added zap logger flags
instead:
- --zap-log-level
- --zap-devel
- --zap-encoder
- --zap-stacktrace-level
Please read documentation (User Guide/Configuration) and/or check
manifest changes to check which should be used.

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **api:** Migrated CRD api version to 'apiextensions.k8s.io/v1' introduced in kubernetes 1.16. This now makes 1.16 the minimal supported kubernetes version

Signed-off-by: Filip Petkovski <filip.petkovski@personio.de>
grzesuav referenced this issue in grzesuav/metacontroller Aug 15, 2022
# [1.0.0](v0.4.3...v1.0.0) (2022-08-15)

### Bug Fixes

* Add build information ([00f9858](00f9858))
* Add command line arguments parameterization to Helm chart ([2081bcf](2081bcf))
* Add dlv to debug dockerfile and expose command in helm chart ([1e2b611](1e2b611))
* **allow:** release ([b43dbc5](b43dbc5))
* change invalid log message when InPlace update strategy is used ([1ca006e](1ca006e))
* **chore:** Trigger release ([bd7b393](bd7b393))
* **composite controller:** [#68](#68) - Skip registration until parent resource ([71fd2df](71fd2df))
* **composite controller:** Fixed GroupVersion management ([c5f4c09](c5f4c09))
* **controller:** Ignore 404/409 error responses ([5c983a4](5c983a4))
* **ControllerRevision:** [#144](#144) - Fix ControllerRevision management ([d405959](d405959))
* **customize:** [#259](#259) - Add guard for customize cache against concurrent writes ([b765c17](b765c17))
* **customize:** [metacontroller#414](https://github.com/grzesuav/metacontroller/issues/414) - Use 'UID' as cache key to avoid collisions between objects in different namespaces ([38126d1](38126d1))
* Delete metacontroller-crds-v1beta1.yaml ([ed15539](ed15539))
* **deps:** update alpine docker tag to v3.12.2 ([08a9d26](08a9d26))
* **deps:** update alpine docker tag to v3.13.0 ([2f62ec1](2f62ec1))
* **deps:** update alpine docker tag to v3.13.2 ([ecb8a13](ecb8a13))
* **deps:** update alpine docker tag to v3.13.3 ([953ae99](953ae99))
* **deps:** update alpine docker tag to v3.13.4 ([c3901c9](c3901c9))
* **deps:** update alpine docker tag to v3.13.5 ([bef407b](bef407b))
* **deps:** update alpine docker tag to v3.14.0 ([a252fbb](a252fbb))
* **deps:** update alpine docker tag to v3.14.1 ([0599592](0599592))
* **deps:** update alpine docker tag to v3.14.2 ([d9393bf](d9393bf))
* **deps:** update alpine docker tag to v3.15.0 ([dd1e402](dd1e402))
* **deps:** Update alpine to 3.12.3 and go to 1.15.6 ([091f3b2](091f3b2))
* **deps:** Update alpine to 3.14.3 and golang to 1.17.3 ([44c6595](44c6595))
* **deps:** update alpine:3.14.0 docker digest to adab384 ([cfc6956](cfc6956))
* **deps:** Update controller-runtime to 0.9.3 and k8s packages to v0.21.3 ([5d06b06](5d06b06))
* **deps:** Update controller-runtime to v0.10.3 ([195fde1](195fde1))
* **deps:** Update controller-runtime to v0.11.0 and k8s to v0.23.3 ([937cbf2](937cbf2))
* **deps:** Update controller-runtime to v0.11.1 ([c4e9058](c4e9058))
* **deps:** Update controller-runtime to v0.11.2 ([b243732](b243732))
* **deps:** Update controller-runtime to v0.12.3 ([2f7e062](2f7e062))
* **deps:** Update controller-runtime to v0.9.5 and k8s.io/utils ([5bfcb90](5bfcb90))
* **deps:** Update controllrt-runtime to 0.9.2 & k8s.io to v0.21.2 ([4031180](4031180))
* **deps:** Update dependencies to k8s 0.17.0 ([f61b37f](f61b37f))
* **deps:** update dependency alpine to v3.15.1 ([3a005ec](3a005ec))
* **deps:** update dependency alpine to v3.15.2 ([ce68114](ce68114))
* **deps:** update dependency alpine to v3.15.4 ([28beef9](28beef9))
* **deps:** update dependency alpine to v3.16.0 ([568f988](568f988))
* **deps:** update dependency alpine to v3.16.1 ([d82df9a](d82df9a))
* **deps:** update dependency alpine to v3.16.2 ([80e11a3](80e11a3))
* **deps:** update dependency golang to v1.17.7 ([007aeeb](007aeeb))
* **deps:** update dependency golang to v1.17.8 ([1c9e884](1c9e884))
* **deps:** update dependency golang to v1.18.0 ([3c433eb](3c433eb))
* **deps:** update dependency golang to v1.18.1 ([62109ed](62109ed))
* **deps:** update dependency golang to v1.18.2 ([0ed47d2](0ed47d2))
* **deps:** update dependency golang to v1.18.3 ([676078e](676078e))
* **deps:** update dependency golang to v1.18.4 ([8d74fd4](8d74fd4))
* **deps:** Update github.com/go-logr/logr to v1.2.2 ([1cf5dc4](1cf5dc4))
* **deps:** Update github.com/google/go-cmp to v0.5.7 ([5fa1396](5fa1396))
* **deps:** Update github.com/google/go-cmp to v0.5.8 ([8f81c66](8f81c66))
* **deps:** update github.com/nsf/jsondiff commit hash to 0e9c064 ([b9fe982](b9fe982))
* **deps:** update github.com/nsf/jsondiff commit hash to 1e845ec ([55983c3](55983c3))
* **deps:** Update github.com/prometheus/client_golang to v1.12.1 ([0897f66](0897f66))
* **deps:** Update go to 1.15.7 ([e9d7a22](e9d7a22))
* **deps:** Update go-cmp v0.5.6 prometheus/client_golang v1.10.0 ([1748a91](1748a91))
* **deps:** Update go-logr/logr to 1.2.3 ([89dff29](89dff29))
* **deps:** Update go.uber.org/zap to v1.21.0 ([466bbc3](466bbc3))
* **deps:** Update go.uber.org/zap to v1.22.0 ([faa93f2](faa93f2))
* **deps:** update golang docker tag to v1.15.8 ([32c8b8f](32c8b8f))
* **deps:** update golang docker tag to v1.16.0 ([1a684bf](1a684bf))
* **deps:** update golang docker tag to v1.16.2 ([53d66d4](53d66d4))
* **deps:** update golang docker tag to v1.16.3 ([a5ab1fc](a5ab1fc))
* **deps:** update golang docker tag to v1.16.5 ([d6fca11](d6fca11))
* **deps:** update golang docker tag to v1.16.6 ([2210565](2210565))
* **deps:** update golang docker tag to v1.16.7 ([26b916a](26b916a))
* **deps:** update golang docker tag to v1.17.0 ([e8a572b](e8a572b))
* **deps:** update golang docker tag to v1.17.1 ([8214d11](8214d11))
* **deps:** update golang docker tag to v1.17.4 ([937f91d](937f91d))
* **deps:** update golang docker tag to v1.17.5 ([9f2abd8](9f2abd8))
* **deps:** update golang docker tag to v1.17.6 ([bf0e583](bf0e583))
* **deps:** Update golang to 1.16.4 ([b7e8a33](b7e8a33))
* **deps:** Update golang to 1.19 ([b53b5de](b53b5de))
* **deps:** Update golang.org/x/text dependency due to CVE-2020-14040 ([3e6ae6a](3e6ae6a))
* **deps:** Update json-patch to v5.6.0, k8s.io to v0.22.4 and k8s.io/utils ([889f355](889f355))
* **deps:** Update k8s and controller-runtime dependencies ([256f20e](256f20e))
* **deps:** Update k8s dependencies to v0.24.3 ([c911040](c911040))
* **deps:** Update k8s.api to v0.23.5 ([e88bce6](e88bce6))
* **deps:** Update k8s.io packages to 0.17.17 ([6ff338e](6ff338e))
* **deps:** update k8s.io packages to v0.17.14 ([4be7525](4be7525))
* **deps:** update k8s.io packages to v0.17.15 ([34a0c98](34a0c98))
* **deps:** Update k8s.io packages to v0.17.16 ([2f11f21](2f11f21))
* **deps:** Update k8s.io packages to v0.24.0 ([8ac00eb](8ac00eb))
* **deps:** Update k8s.io packages to v0.24.1 ([44b5406](44b5406))
* **deps:** Update k8s.io to v0.22.1 ([5382cc9](5382cc9))
* **deps:** Update k8s.io/klog/v2 to v2.10.0 ([47b107d](47b107d))
* **deps:** Update k8s.io/klog/v2 to v2.70.1 ([63f1388](63f1388))
* **deps:** update k8s.io/utils commit hash to 6fdb442 ([f713086](f713086))
* **deps:** Update k8s.io/utils to v0.0.0-20220210201930-3a6ce19ff2f9 ([6c12b98](6c12b98))
* **deps:** Update k8s.io/utils to v0.0.0-20220713171938-56c0de1e6f5e ([63f6d0b](63f6d0b))
* **deps:** Update k8s.io/utils to v0.0.0-20220810061631-2e139fc3ae1e ([61d1f9a](61d1f9a))
* **deps:** Update k8s.io/utils to v0.0.0-20220812165043-ad590609e2e5 ([a2e7af5](a2e7af5))
* **deps:** Update klog/v2 to v2.60.1 ([d40bc8b](d40bc8b))
* **deps:** Update klog/v2 to v2.9.0 ([47aa552](47aa552))
* **deps:** Update klog2 to 2.5.0 ([2988b74](2988b74))
* **deps:** Update klog2 to v2.8.0 ([9cf1ecc](9cf1ecc))
* **deps:** update module github.com/prometheus/client_golang to v1.11.0 ([06ea53d](06ea53d))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.9.0 and k8s.io packages to v0.21.1 ([c07dcb3](c07dcb3))
* **deps:** Update prometheus/client_golang to v1.12.2 ([85affb4](85affb4))
* **deps:** Update prometheus/client_golang to v1.9.0 ([d288bce](d288bce))
* **deps:** Update rest of k8s.io dependencies to v0.22.4 ([f5a4a1d](f5a4a1d))
* **deps:** Update zcache to v1.1.0 ([4e89577](4e89577))
* **deps:** Update zgo.at/zcache to v1.2.0 ([4bc4c94](4bc4c94))
* **discovery:** Do not fail if missing a subset of resources during API discover ([6dce893](6dce893))
* **docker:** [metacontroller#351](https://github.com/grzesuav/metacontroller/issues/351) - Add arm32 image ([9685bd6](9685bd6))
* **docker:** Disable `latest` tag for distroless variants ([8ce7a8d](8ce7a8d))
* **dynamic apply:** Add `path` key as candidate to list merging ([a1de874](a1de874)), closes [metacontroller#443](https://github.com/grzesuav/metacontroller/issues/443)
* **events:** Emit events for controller sync errors ([9b7258d](9b7258d))
* **helm:** Change helm field zapLogLevel to zap.logLevel ([870c8aa](870c8aa)), closes [metacontroller#482](https://github.com/grzesuav/metacontroller/issues/482)
* **helm:** Fix indenting for pdb spec ([1bcfb8f](1bcfb8f))
* **hooks:** [metacontroller#383](https://github.com/grzesuav/metacontroller/issues/383) - Correct handling of nil arrays in responses ([2d916fd](2d916fd))
* **metrics:** [metacontroller#289](https://github.com/grzesuav/metacontroller/issues/289) - Wait on signal before exiting to fix http server with metrics ([f646a90](f646a90))
* **metrics:** Add http client metrics ([3d2391d](3d2391d))
* **metrics:** Utilize controller-runtime  metrics server ([45b80c3](45b80c3))
* **release:** [#197](#197) - Change release message to trigger CI pipeline ([3fb3847](3fb3847))
* **release:** Fix dockehub repository url ([de7e293](de7e293))
* **release:** Fix latest tag, to point to alpine image ([ce02f32](ce02f32))
* **release:** Test ([3edebe2](3edebe2))
* **release:** Use version with `v` prefix in docker push ([a53b064](a53b064)), closes [metacontroller#611](https://github.com/grzesuav/metacontroller/issues/611)
* **security:** Add ReadHeaderTimeout to pprof server to mitigate G112 ([a11059f](a11059f))
* **security:** Fix CVE-2022-1996 by updating k8s.io/kube-openapi to v0.0.0-20220627174259-011e075b9cb8 ([42eabbc](42eabbc))
* **security:** Update golang.org/x/crypto because of CVE-2020-29652 ([38c0c2f](38c0c2f))
* **security:** Update vunerable openssl packages -  CVE-2020-1971 ([060a2d9](060a2d9))
* **test:** Release ([8e4e8d5](8e4e8d5))
* Update alpine to 3.13.1 ([7d10f84](7d10f84))
* **update:** Update controller-runtime to v0.12.1 ([dbd4fd9](dbd4fd9))

### chore

* **api:** Update CRD api versions to v1 ([c38b399](c38b399))
* **helm:** Use commandArgs for all command arguments ([b78476e](b78476e))

### Code Refactoring

* Use controller-runtime to read crd's ([f0b0c98](f0b0c98))

### Features

* [#170](#170) - Emit kubernetes events ([260acca](260acca))
* **#31:** Add distroless images, migrate to build action v2 ([bbd9715](bbd9715)), closes [#31](#31)
* **#69:** Migration of customize hook implementation ([7c959db](7c959db)), closes [#69](#69)
* Add K8s API communiction check on startup ([de00e67](de00e67))
* Add leader election ([29563b2](29563b2))
* Add pprof to enable profiling ([1dbf3f6](1dbf3f6))
* Add priorityClassName to helm chart ([a4c5c10](a4c5c10))
* **Dockerfile:** Run apline images as nonroot user ([6e633bd](6e633bd))
* **helm:** [metacontroller#471](https://github.com/grzesuav/metacontroller/issues/471) - Expose rules and aggregateRule in ClusterRole ([41a462e](41a462e))
* **helm:** Add service to chart and prometheus examples ([60916a9](60916a9))
* **helm:** implement pod disruption budget ([d467934](d467934))
* Implement customize hook ([2facbdb](2facbdb))
* **logging:** [#233](#233) - Allow logging in json format ([8f11b37](8f11b37))
* **perf:** Add a flag to configure the number of workers to run ([3f07022](3f07022))
* Remove deprecated --client-config-path - switched to --kubeconfig ([9cf558a](9cf558a))
* Rename --debug-addr to --metrics-address ([86cda55](86cda55))
* Ship CRD's manifests also in version v1beta1 for kubernetes 1.15 ([284b3e2](284b3e2))
* **webhooks:** add etag support ([4c06eb6](4c06eb6))

### Performance Improvements

* **k8sClient:** use a cache-based version of k8s client ([17f3dd2](17f3dd2))
* **webhooks:** [#255](#255) - Create httpClient per controller instead ad-hoc creation ([a8f5c39](a8f5c39))

### Reverts

* Revert "chore(release): [skip ci] 4.3.6" ([0a88efa](0a88efa))
* Revert "chore(release): [skip ci] 4.3.5" ([64aac8e](64aac8e))

### BREAKING CHANGES

* **helm:** The following helm values are removed.
The equivalent command arguments can now be passed directly to the
`commandArgs` value.

- discoveryInterval
- cacheFlushInterval
- zap.logLevel
- zap.devel
- zap.encoder
- zap.stacktraceLevel

Signed-off-by: Mike Smith <10135646+mjsmith1028@users.noreply.github.com>
* Dropping support for kubernetes older than 1.16
* Flag --client-config-path is removed in favour of
--kubeconfig

Signed-off-by: grzesuav <grzesuav@gmail.com>
* Flag --debug-addr was renamed to --metrics-address

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **logging:** Removed klog flags - `-v`, `--logtostderr` etc. Added zap logger flags
instead:
- --zap-log-level
- --zap-devel
- --zap-encoder
- --zap-stacktrace-level
Please read documentation (User Guide/Configuration) and/or check
manifest changes to check which should be used.

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **api:** Migrated CRD api version to 'apiextensions.k8s.io/v1' introduced in kubernetes 1.16. This now makes 1.16 the minimal supported kubernetes version

Signed-off-by: Filip Petkovski <filip.petkovski@personio.de>
zefir01 pushed a commit to zefir01/metacontroller that referenced this issue Oct 2, 2022
# 1.0.0 (2022-10-02)

### Bug Fixes

* Add build information ([00f9858](00f9858))
* Add command line arguments parameterization to Helm chart ([2081bcf](2081bcf))
* Add dlv to debug dockerfile and expose command in helm chart ([1e2b611](1e2b611))
* change invalid log message when InPlace update strategy is used ([1ca006e](1ca006e))
* **composite controller:** [metacontroller#68](https://github.com/zefir01/metacontroller/issues/68) - Skip registration until parent resource ([71fd2df](71fd2df))
* **composite controller:** Fixed GroupVersion management ([c5f4c09](c5f4c09))
* **controller:** Ignore 404/409 error responses ([5c983a4](5c983a4))
* **ControllerRevision:** [metacontroller#144](https://github.com/zefir01/metacontroller/issues/144) - Fix ControllerRevision management ([d405959](d405959))
* **customize:** [metacontroller#259](https://github.com/zefir01/metacontroller/issues/259) - Add guard for customize cache against concurrent writes ([b765c17](b765c17))
* **customize:** [metacontroller#414](https://github.com/zefir01/metacontroller/issues/414) - Use 'UID' as cache key to avoid collisions between objects in different namespaces ([38126d1](38126d1))
* Delete metacontroller-crds-v1beta1.yaml ([ed15539](ed15539))
* **deps, security:** Update golang.org/x/net to fix CVE-2022-27664 ([a0ddbf3](a0ddbf3))
* **deps:** update alpine docker tag to v3.12.2 ([08a9d26](08a9d26))
* **deps:** update alpine docker tag to v3.13.0 ([2f62ec1](2f62ec1))
* **deps:** update alpine docker tag to v3.13.2 ([ecb8a13](ecb8a13))
* **deps:** update alpine docker tag to v3.13.3 ([953ae99](953ae99))
* **deps:** update alpine docker tag to v3.13.4 ([c3901c9](c3901c9))
* **deps:** update alpine docker tag to v3.13.5 ([bef407b](bef407b))
* **deps:** update alpine docker tag to v3.14.0 ([a252fbb](a252fbb))
* **deps:** update alpine docker tag to v3.14.1 ([0599592](0599592))
* **deps:** update alpine docker tag to v3.14.2 ([d9393bf](d9393bf))
* **deps:** update alpine docker tag to v3.15.0 ([dd1e402](dd1e402))
* **deps:** Update alpine to 3.12.1 ([7ea9667](7ea9667))
* **deps:** Update alpine to 3.12.3 and go to 1.15.6 ([091f3b2](091f3b2))
* **deps:** Update alpine to 3.14.3 and golang to 1.17.3 ([44c6595](44c6595))
* **deps:** update alpine:3.14.0 docker digest to adab384 ([cfc6956](cfc6956))
* **deps:** Update controller-runtime to 0.9.3 and k8s packages to v0.21.3 ([5d06b06](5d06b06))
* **deps:** Update controller-runtime to v0.10.3 ([195fde1](195fde1))
* **deps:** Update controller-runtime to v0.11.0 and k8s to v0.23.3 ([937cbf2](937cbf2))
* **deps:** Update controller-runtime to v0.11.1 ([c4e9058](c4e9058))
* **deps:** Update controller-runtime to v0.11.2 ([b243732](b243732))
* **deps:** Update controller-runtime to v0.12.3 ([2f7e062](2f7e062))
* **deps:** Update controller-runtime to v0.9.5 and k8s.io/utils ([5bfcb90](5bfcb90))
* **deps:** Update controllrt-runtime to 0.9.2 & k8s.io to v0.21.2 ([4031180](4031180))
* **deps:** Update dependencies to k8s 0.17.0 ([f61b37f](f61b37f))
* **deps:** update dependency alpine to v3.15.1 ([3a005ec](3a005ec))
* **deps:** update dependency alpine to v3.15.2 ([ce68114](ce68114))
* **deps:** update dependency alpine to v3.15.4 ([28beef9](28beef9))
* **deps:** update dependency alpine to v3.16.0 ([568f988](568f988))
* **deps:** update dependency alpine to v3.16.1 ([d82df9a](d82df9a))
* **deps:** update dependency alpine to v3.16.2 ([80e11a3](80e11a3))
* **deps:** update dependency golang to v1.17.7 ([007aeeb](007aeeb))
* **deps:** update dependency golang to v1.17.8 ([1c9e884](1c9e884))
* **deps:** update dependency golang to v1.18.0 ([3c433eb](3c433eb))
* **deps:** update dependency golang to v1.18.1 ([62109ed](62109ed))
* **deps:** update dependency golang to v1.18.2 ([0ed47d2](0ed47d2))
* **deps:** update dependency golang to v1.18.3 ([676078e](676078e))
* **deps:** update dependency golang to v1.18.4 ([8d74fd4](8d74fd4))
* **deps:** Update github.com/go-logr/logr to v1.2.2 ([1cf5dc4](1cf5dc4))
* **deps:** Update github.com/google/go-cmp to v0.5.7 ([5fa1396](5fa1396))
* **deps:** Update github.com/google/go-cmp to v0.5.8 ([8f81c66](8f81c66))
* **deps:** Update github.com/google/go-cmp to v0.5.9 ([f0d7c9d](f0d7c9d))
* **deps:** update github.com/nsf/jsondiff commit hash to 0e9c064 ([b9fe982](b9fe982))
* **deps:** update github.com/nsf/jsondiff commit hash to 1e845ec ([55983c3](55983c3))
* **deps:** Update github.com/prometheus/client_golang to v1.12.1 ([0897f66](0897f66))
* **deps:** Update go to 1.15.7 ([e9d7a22](e9d7a22))
* **deps:** Update go-cmp v0.5.6 prometheus/client_golang v1.10.0 ([1748a91](1748a91))
* **deps:** Update go-logr/logr to 1.2.3 ([89dff29](89dff29))
* **deps:** Update go.uber.org/zap to v1.21.0 ([466bbc3](466bbc3))
* **deps:** Update go.uber.org/zap to v1.22.0 ([faa93f2](faa93f2))
* **deps:** Update go.uber.org/zap to v1.23.0 ([039b78f](039b78f))
* **deps:** update golang docker tag to v1.15.8 ([32c8b8f](32c8b8f))
* **deps:** update golang docker tag to v1.16.0 ([1a684bf](1a684bf))
* **deps:** update golang docker tag to v1.16.2 ([53d66d4](53d66d4))
* **deps:** update golang docker tag to v1.16.3 ([a5ab1fc](a5ab1fc))
* **deps:** update golang docker tag to v1.16.5 ([d6fca11](d6fca11))
* **deps:** update golang docker tag to v1.16.6 ([2210565](2210565))
* **deps:** update golang docker tag to v1.16.7 ([26b916a](26b916a))
* **deps:** update golang docker tag to v1.17.0 ([e8a572b](e8a572b))
* **deps:** update golang docker tag to v1.17.1 ([8214d11](8214d11))
* **deps:** update golang docker tag to v1.17.4 ([937f91d](937f91d))
* **deps:** update golang docker tag to v1.17.5 ([9f2abd8](9f2abd8))
* **deps:** update golang docker tag to v1.17.6 ([bf0e583](bf0e583))
* **deps:** Update golang to 1.16.4 ([b7e8a33](b7e8a33))
* **deps:** Update golang to 1.19 ([b53b5de](b53b5de))
* **deps:** Update golang.org/x/text dependency due to CVE-2020-14040 ([3e6ae6a](3e6ae6a))
* **deps:** Update json-patch to v5.6.0, k8s.io to v0.22.4 and k8s.io/utils ([889f355](889f355))
* **deps:** Update k8s and controller-runtime dependencies ([256f20e](256f20e))
* **deps:** Update k8s dependencies to v0.24.3 ([c911040](c911040))
* **deps:** Update k8s.api to v0.23.5 ([e88bce6](e88bce6))
* **deps:** Update k8s.io packages to 0.17.17 ([6ff338e](6ff338e))
* **deps:** update k8s.io packages to v0.17.14 ([4be7525](4be7525))
* **deps:** update k8s.io packages to v0.17.15 ([34a0c98](34a0c98))
* **deps:** Update k8s.io packages to v0.17.16 ([2f11f21](2f11f21))
* **deps:** Update k8s.io packages to v0.24.0 ([8ac00eb](8ac00eb))
* **deps:** Update k8s.io packages to v0.24.1 ([44b5406](44b5406))
* **deps:** Update k8s.io packages to v0.25.0 ([6396cbb](6396cbb))
* **deps:** Update k8s.io to v0.22.1 ([5382cc9](5382cc9))
* **deps:** Update k8s.io/klog/v2 to v2.10.0 ([47b107d](47b107d))
* **deps:** Update k8s.io/klog/v2 to v2.70.1 ([63f1388](63f1388))
* **deps:** Update k8s.io/klog/v2 to v2.80.0 ([9b6ee29](9b6ee29))
* **deps:** Update k8s.io/klog/v2 to v2.80.1 ([6d17582](6d17582))
* **deps:** Update k8s.io/kube-openapi to v0.0.0-20220803164354-a70c9af30aea ([6d52edd](6d52edd))
* **deps:** update k8s.io/utils commit hash to 6fdb442 ([f713086](f713086))
* **deps:** Update k8s.io/utils to v0.0.0-20220210201930-3a6ce19ff2f9 ([6c12b98](6c12b98))
* **deps:** Update k8s.io/utils to v0.0.0-20220713171938-56c0de1e6f5e ([63f6d0b](63f6d0b))
* **deps:** Update k8s.io/utils to v0.0.0-20220810061631-2e139fc3ae1e ([61d1f9a](61d1f9a))
* **deps:** Update k8s.io/utils to v0.0.0-20220812165043-ad590609e2e5 ([a2e7af5](a2e7af5))
* **deps:** Update k8s.io/utils to v0.0.0-20220823124924-e9cbc92d1a73 ([c501bd9](c501bd9))
* **deps:** Update klog/v2 to v2.60.1 ([d40bc8b](d40bc8b))
* **deps:** Update klog/v2 to v2.9.0 ([47aa552](47aa552))
* **deps:** Update klog2 to 2.5.0 ([2988b74](2988b74))
* **deps:** Update klog2 to v2.8.0 ([9cf1ecc](9cf1ecc))
* **deps:** Update kubernetes packages to v0.24.4 ([76787c2](76787c2))
* **deps:** update module github.com/prometheus/client_golang to v1.11.0 ([06ea53d](06ea53d))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.9.0 and k8s.io packages to v0.21.1 ([c07dcb3](c07dcb3))
* **deps:** Update prometheus/client_golang to v1.12.2 ([85affb4](85affb4))
* **deps:** Update prometheus/client_golang to v1.9.0 ([d288bce](d288bce))
* **deps:** Update rest of k8s.io dependencies to v0.22.4 ([f5a4a1d](f5a4a1d))
* **deps:** Update sigs.k8s.io/controller-runtime to v0.13.0 ([52db9d0](52db9d0))
* **deps:** Update zcache to v1.1.0 ([4e89577](4e89577))
* **deps:** Update zgo.at/zcache to v1.2.0 ([4bc4c94](4bc4c94))
* **discovery:** Do not fail if missing a subset of resources during API discover ([6dce893](6dce893))
* **docker:** [metacontroller#351](https://github.com/zefir01/metacontroller/issues/351) - Add arm32 image ([9685bd6](9685bd6))
* **docker:** Disable `latest` tag for distroless variants ([8ce7a8d](8ce7a8d))
* **dynamic apply:** Add `path` key as candidate to list merging ([a1de874](a1de874)), closes [metacontroller#443](https://github.com/zefir01/metacontroller/issues/443)
* **events:** Emit events for controller sync errors ([9b7258d](9b7258d))
* **helm:** Change helm field zapLogLevel to zap.logLevel ([870c8aa](870c8aa)), closes [metacontroller#482](https://github.com/zefir01/metacontroller/issues/482)
* **helm:** Fix indenting for pdb spec ([1bcfb8f](1bcfb8f))
* **helm:** Publish helm chart on release ([7695d50](7695d50)), closes [metacontroller#621](https://github.com/zefir01/metacontroller/issues/621)
* **hooks:** [metacontroller#383](https://github.com/zefir01/metacontroller/issues/383) - Correct handling of nil arrays in responses ([2d916fd](2d916fd))
* **metrics:** [metacontroller#289](https://github.com/zefir01/metacontroller/issues/289) - Wait on signal before exiting to fix http server with metrics ([f646a90](f646a90))
* **metrics:** Add http client metrics ([3d2391d](3d2391d))
* **metrics:** Utilize controller-runtime  metrics server ([45b80c3](45b80c3))
* **readme:** update immediate action items ([dc59d2d](dc59d2d))
* **release:** [metacontroller#197](https://github.com/zefir01/metacontroller/issues/197) - Change release message to trigger CI pipeline ([3fb3847](3fb3847))
* **release:** Fix dockehub repository url ([de7e293](de7e293))
* **release:** Fix latest tag, to point to alpine image ([ce02f32](ce02f32))
* **release:** Set wrapping to single quotes in release command ([3250c2e](3250c2e))
* **release:** Use version with `v` prefix in docker push ([a53b064](a53b064)), closes [metacontroller#611](https://github.com/zefir01/metacontroller/issues/611)
* **security:** [metacontroller#28](https://github.com/zefir01/metacontroller/issues/28) - Switch to alpine due to vulnerabilities in debian ([53a26c5](53a26c5))
* **security:** Add ReadHeaderTimeout to pprof server to mitigate G112 ([a11059f](a11059f))
* **security:** Fix CVE-2022-1996 by updating k8s.io/kube-openapi to v0.0.0-20220627174259-011e075b9cb8 ([42eabbc](42eabbc))
* **security:** Update golang.org/x/crypto because of CVE-2020-29652 ([38c0c2f](38c0c2f))
* **security:** Update vunerable openssl packages -  CVE-2020-1971 ([060a2d9](060a2d9))
* Update alpine to 3.13.1 ([7d10f84](7d10f84))
* **update:** Update controller-runtime to v0.12.1 ([dbd4fd9](dbd4fd9))

### chore

* **api:** Update CRD api versions to v1 ([c38b399](c38b399))
* **helm:** Use commandArgs for all command arguments ([b78476e](b78476e))

### Code Refactoring

* Use controller-runtime to read crd's ([f0b0c98](f0b0c98))

### Features

* [metacontroller#170](https://github.com/zefir01/metacontroller/issues/170) - Emit kubernetes events ([260acca](260acca))
* **metacontroller#31:** Add distroless images, migrate to build action v2 ([bbd9715](bbd9715)), closes [metacontroller#31](https://github.com/zefir01/metacontroller/issues/31)
* **metacontroller#69:** Migration of customize hook implementation ([7c959db](7c959db)), closes [metacontroller#69](https://github.com/zefir01/metacontroller/issues/69)
* Add aggregated roles ([ed90388](ed90388))
* Add K8s API communiction check on startup ([de00e67](de00e67))
* Add leader election ([29563b2](29563b2))
* Add pprof to enable profiling ([1dbf3f6](1dbf3f6))
* Add priorityClassName to helm chart ([a4c5c10](a4c5c10))
* **Dockerfile:** Run apline images as nonroot user ([6e633bd](6e633bd))
* **helm:** [metacontroller#471](https://github.com/zefir01/metacontroller/issues/471) - Expose rules and aggregateRule in ClusterRole ([41a462e](41a462e))
* **helm:** Add service to chart and prometheus examples ([60916a9](60916a9))
* **helm:** implement pod disruption budget ([d467934](d467934))
* **hooks:** Add versioning to hook API [metacontroller#496](https://github.com/zefir01/metacontroller/issues/496) ([6bb9690](6bb9690))
* Implement customize hook ([2facbdb](2facbdb))
* **logging:** [metacontroller#233](https://github.com/zefir01/metacontroller/issues/233) - Allow logging in json format ([8f11b37](8f11b37))
* **perf:** Add a flag to configure the number of workers to run ([3f07022](3f07022))
* Remove deprecated --client-config-path - switched to --kubeconfig ([9cf558a](9cf558a))
* Rename --debug-addr to --metrics-address ([86cda55](86cda55))
* Ship CRD's manifests also in version v1beta1 for kubernetes 1.15 ([284b3e2](284b3e2))
* **webhooks:** add etag support ([4c06eb6](4c06eb6))
* **webhooks:** Select json deserialization mode of response: 'loose' (default) or 'strict' ([99bca2f](99bca2f)), closes [metacontroller#572](https://github.com/zefir01/metacontroller/issues/572)

### Performance Improvements

* Increase QPS and Burst ([af590c6](af590c6))
* **k8sClient:** use a cache-based version of k8s client ([17f3dd2](17f3dd2))
* Updating approach, after review comments. ([e8a1695](e8a1695))
* **webhooks:** [metacontroller#255](https://github.com/zefir01/metacontroller/issues/255) - Create httpClient per controller instead ad-hoc creation ([a8f5c39](a8f5c39))

### Reverts

* Revert "chore(release): [skip ci] 4.3.6" ([0a88efa](0a88efa))
* Revert "chore(release): [skip ci] 4.3.5" ([64aac8e](64aac8e))

### BREAKING CHANGES

* **helm:** The following helm values are removed.
The equivalent command arguments can now be passed directly to the
`commandArgs` value.

- discoveryInterval
- cacheFlushInterval
- zap.logLevel
- zap.devel
- zap.encoder
- zap.stacktraceLevel

Signed-off-by: Mike Smith <10135646+mjsmith1028@users.noreply.github.com>
* Dropping support for kubernetes older than 1.16
* Flag --client-config-path is removed in favour of
--kubeconfig

Signed-off-by: grzesuav <grzesuav@gmail.com>
* Flag --debug-addr was renamed to --metrics-address

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **logging:** Removed klog flags - `-v`, `--logtostderr` etc. Added zap logger flags
instead:
- --zap-log-level
- --zap-devel
- --zap-encoder
- --zap-stacktrace-level
Please read documentation (User Guide/Configuration) and/or check
manifest changes to check which should be used.

Signed-off-by: grzesuav <grzesuav@gmail.com>
* **api:** Migrated CRD api version to 'apiextensions.k8s.io/v1' introduced in kubernetes 1.16. This now makes 1.16 the minimal supported kubernetes version

Signed-off-by: Filip Petkovski <filip.petkovski@personio.de>
@dipsk2
Copy link

dipsk2 commented May 31, 2023

I am also waiting for this feature to be able to adopt metacontroller. Is it in the making?

@grzesuav
Copy link
Contributor Author

not yet, focusing on other changes currently. Also, currently touching the logic around the hooks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants