From 2a2bce54b49ea3398bef95a9102ee8645e11cf87 Mon Sep 17 00:00:00 2001 From: csviri Date: Wed, 16 Nov 2022 15:44:37 +0100 Subject: [PATCH 1/5] docs: simple docs for conversion hooks --- README.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4c3454c8..537c083f 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ # admission-controller-framework Framework and tooling to support -implementing [admission controllers](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) for -Kubernetes in Java. Supports both **quarkus** and **spring boot**. Both Sync and Async programing model. +implementing [admission controllers](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) +and [conversion hooks](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#webhook-conversion) +for Kubernetes in Java. Supports both **quarkus** and **spring boot**. Both Sync and Async programing model. ## Sample Usage +### Admission Controllers + Defining a mutation or validation controller is simple as: https://github.com/java-operator-sdk/admission-controller-framework/blob/0946595d941b789caef6a69b34c2e5be8c6b59cf/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionControllerConfig.java#L31-L68 @@ -15,3 +18,18 @@ What can be then simple used in an endpoint: https://github.com/java-operator-sdk/admission-controller-framework/blob/0946595d941b789caef6a69b34c2e5be8c6b59cf/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionEndpoint.java#L57-L89 See samples also for details. + +### Conversion Hooks + +Conversion hooks follows the same patter described +in [Kuberbuilder](https://book.kubebuilder.io/multiversion-tutorial/conversion-concepts.html), thus a custom resource +version is first converted from actual version to a hub, and as next step from the hub to the target resource version. + +To create the controller +register [mappers](https://github.com/java-operator-sdk/admission-controller-framework/blob/main/core/src/main/java/io/javaoperatorsdk/webhook/conversion/Mapper.java#L5-L5): + +https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/quarkus/src/main/java/io/javaoperatorsdk/webhook/admission/sample/quarkus/conversion/ConversionControllerConfig.java#L15-L29 + +and use the controllers in the endpoint: + +https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/spring-boot/src/main/java/io/javaoperatorsdk/webhook/sample/springboot/conversion/ConversionEndpoint.java#L29-L40 From 1d8d3467fd0a3b0b27103f7caffda0b19bf7f37d Mon Sep 17 00:00:00 2001 From: csviri Date: Wed, 16 Nov 2022 15:48:33 +0100 Subject: [PATCH 2/5] link --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 537c083f..fbbf783c 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ for Kubernetes in Java. Supports both **quarkus** and **spring boot**. Both Sync Defining a mutation or validation controller is simple as: -https://github.com/java-operator-sdk/admission-controller-framework/blob/0946595d941b789caef6a69b34c2e5be8c6b59cf/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionControllerConfig.java#L31-L68 +https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionControllerConfig.java#L31-L68 What can be then simple used in an endpoint: -https://github.com/java-operator-sdk/admission-controller-framework/blob/0946595d941b789caef6a69b34c2e5be8c6b59cf/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionEndpoint.java#L57-L89 +https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionEndpoint.java#L57-L89 See samples also for details. @@ -26,7 +26,8 @@ in [Kuberbuilder](https://book.kubebuilder.io/multiversion-tutorial/conversion-c version is first converted from actual version to a hub, and as next step from the hub to the target resource version. To create the controller -register [mappers](https://github.com/java-operator-sdk/admission-controller-framework/blob/main/core/src/main/java/io/javaoperatorsdk/webhook/conversion/Mapper.java#L5-L5): +register [mappers](https://github.com/java-operator-sdk/admission-controller-framework/blob/main/core/src/main/java/io/javaoperatorsdk/webhook/conversion/Mapper.java#L5-L5) +: https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/quarkus/src/main/java/io/javaoperatorsdk/webhook/admission/sample/quarkus/conversion/ConversionControllerConfig.java#L15-L29 From a8ce5eead5970b2143f2a6f2cc2ad3aece5659c2 Mon Sep 17 00:00:00 2001 From: csviri Date: Wed, 16 Nov 2022 15:49:03 +0100 Subject: [PATCH 3/5] links --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fbbf783c..676e1ad9 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,11 @@ for Kubernetes in Java. Supports both **quarkus** and **spring boot**. Both Sync Defining a mutation or validation controller is simple as: -https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionControllerConfig.java#L31-L68 +https://github.com/java-operator-sdk/admission-controller-framework/blob/0946595d941b789caef6a69b34c2e5be8c6b59cf/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionControllerConfig.java#L31-L68 What can be then simple used in an endpoint: -https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionEndpoint.java#L57-L89 +https://github.com/java-operator-sdk/admission-controller-framework/blob/0946595d941b789caef6a69b34c2e5be8c6b59cf/samples/quarkus/src/main/java/io/javaoperatorsdk/admissioncontroller/sample/quarkus/AdmissionEndpoint.java#L57-L89 See samples also for details. @@ -29,8 +29,8 @@ To create the controller register [mappers](https://github.com/java-operator-sdk/admission-controller-framework/blob/main/core/src/main/java/io/javaoperatorsdk/webhook/conversion/Mapper.java#L5-L5) : -https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/quarkus/src/main/java/io/javaoperatorsdk/webhook/admission/sample/quarkus/conversion/ConversionControllerConfig.java#L15-L29 +https://github.com/java-operator-sdk/admission-controller-framework/blob/2a2bce54b49ea3398bef95a9102ee8645e11cf87/samples/quarkus/src/main/java/io/javaoperatorsdk/webhook/admission/sample/quarkus/conversion/ConversionControllerConfig.java#L15-L29 and use the controllers in the endpoint: -https://github.com/java-operator-sdk/admission-controller-framework/blob/main/samples/spring-boot/src/main/java/io/javaoperatorsdk/webhook/sample/springboot/conversion/ConversionEndpoint.java#L29-L40 +https://github.com/java-operator-sdk/admission-controller-framework/blob/2a2bce54b49ea3398bef95a9102ee8645e11cf87/samples/spring-boot/src/main/java/io/javaoperatorsdk/webhook/sample/springboot/conversion/ConversionEndpoint.java#L29-L40 From 59c5c3e559a22ac0b64e9708efcb262e1427a7df Mon Sep 17 00:00:00 2001 From: csviri Date: Wed, 16 Nov 2022 15:49:45 +0100 Subject: [PATCH 4/5] wip --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 676e1ad9..3c05c213 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ in [Kuberbuilder](https://book.kubebuilder.io/multiversion-tutorial/conversion-c version is first converted from actual version to a hub, and as next step from the hub to the target resource version. To create the controller -register [mappers](https://github.com/java-operator-sdk/admission-controller-framework/blob/main/core/src/main/java/io/javaoperatorsdk/webhook/conversion/Mapper.java#L5-L5) +register [mappers](https://github.com/java-operator-sdk/admission-controller-framework/blob/main/core/src/main/java/io/javaoperatorsdk/webhook/conversion/Mapper.java) : https://github.com/java-operator-sdk/admission-controller-framework/blob/2a2bce54b49ea3398bef95a9102ee8645e11cf87/samples/quarkus/src/main/java/io/javaoperatorsdk/webhook/admission/sample/quarkus/conversion/ConversionControllerConfig.java#L15-L29 From e8303f032572590127388080947e634c3857d56a Mon Sep 17 00:00:00 2001 From: csviri Date: Wed, 16 Nov 2022 15:50:59 +0100 Subject: [PATCH 5/5] wording --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3c05c213..46300a57 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,8 @@ See samples also for details. ### Conversion Hooks Conversion hooks follows the same patter described -in [Kuberbuilder](https://book.kubebuilder.io/multiversion-tutorial/conversion-concepts.html), thus a custom resource -version is first converted from actual version to a hub, and as next step from the hub to the target resource version. +in [Kuberbuilder](https://book.kubebuilder.io/multiversion-tutorial/conversion-concepts.html), thus first converts the +custom resource from actual version to a hub, and as next step from the hub to the target resource version. To create the controller register [mappers](https://github.com/java-operator-sdk/admission-controller-framework/blob/main/core/src/main/java/io/javaoperatorsdk/webhook/conversion/Mapper.java)