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 versioning of HookRequest/Response api to Composite/Decorator controllers #496
Comments
…ling hooks Signed-off-by: grzesuav <grzesuav@gmail.com>
…ing hooks Signed-off-by: grzesuav <grzesuav@gmail.com>
…ing hooks Signed-off-by: grzesuav <grzesuav@gmail.com>
…ing hooks Signed-off-by: grzesuav <grzesuav@gmail.com>
#496 - refactor |
Signed-off-by: grzesuav <grzesuav@gmail.com>
Signed-off-by: grzesuav <grzesuav@gmail.com>
Signed-off-by: grzesuav <grzesuav@gmail.com>
Signed-off-by: grzesuav <grzesuav@gmail.com>
Signed-off-by: grzesuav <grzesuav@gmail.com>
Signed-off-by: grzesuav <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
# [4.4.0](v4.3.9...v4.4.0) (2022-09-08) ### Features * **hooks:** Add versioning to hook API [#496](#496) ([6bb9690](6bb9690))
# 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>
…ilders Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
…ilders Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
…ilders Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Updated description with proposed changes to API in v2 |
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Is there any kind of timeline yet for deprecating and removing the v1 payload format? |
@mwgamble not for now, I plan to keep both for a while. v2 is still in progress though, can think about timeline for deprecating v1 when we will have established v2 and running for a while |
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
Signed-off-by: Grzegorz Głąb <grzesuav@gmail.com>
@grzesuav Is there anything I can do to help move this along? 🙏 |
hi @mwgamble I as out, I will share some draft PR as cannot find a good place to make handling of different versions of serializing/de-serializing the requestes |
#938 WIP, I will probably refactor to:
|
Proposal
Add new field to
Decorator
/Composite
CRD's inHook
field - to determine which request/response format should be used to communicate.Currently it looks like
after change :
The field will be defaulted to
v1
(which is currently used request/response format).The goal is to allow smooth introduction of changes which requires changing format of request/response (example - #345). Proposed FR was discussed in #370.
What will change
v1
- current versionv2
proposalchildren
/related
format fromRelativeObjectMap
toUniformObjectMap
- in short - always have namespace scoped resources with namespace as a key - to make it unambiguous,Decorator
controller sync/finalize request changes - linkobject
toparent
attachements
tochildren
This FR is about introducing way to handle different version. Implementation of version
v2
of rquest/response is outside of the scope of this FR.Challenges
The text was updated successfully, but these errors were encountered: