From 329f1b7eb59c65a030d60d2bfe9c18ceb9f23822 Mon Sep 17 00:00:00 2001 From: Daniel Vega-Myhre Date: Tue, 26 Sep 2023 22:08:28 +0000 Subject: [PATCH] add generated files --- api/jobset/v1alpha2/jobset_webhook.go | 16 +- api/jobset/v1alpha2/openapi_generated.go | 54 +++---- api/jobset/v1alpha2/zz_generated.deepcopy.go | 17 +- client-go/applyconfiguration/utils.go | 1 - client-go/clientset/versioned/clientset.go | 1 - .../versioned/fake/clientset_generated.go | 1 - .../clientset/versioned/fake/register.go | 1 - .../clientset/versioned/scheme/register.go | 1 - .../typed/jobset/v1alpha2/fake/fake_jobset.go | 1 - .../v1alpha2/fake/fake_jobset_client.go | 1 - .../versioned/typed/jobset/v1alpha2/jobset.go | 1 - .../typed/jobset/v1alpha2/jobset_client.go | 1 - .../informers/externalversions/factory.go | 1 - .../informers/externalversions/generic.go | 1 - .../internalinterfaces/factory_interfaces.go | 1 - .../jobset/v1alpha2/jobset.go | 1 - client-go/listers/jobset/v1alpha2/jobset.go | 1 - hack/python-sdk/swagger.json | 16 ++ main.go | 2 +- sdk/python/README.md | 1 + sdk/python/docs/JobsetV1alpha2PodAnnotator.md | 12 ++ sdk/python/jobset/__init__.py | 1 + sdk/python/jobset/models/__init__.py | 1 + .../models/jobset_v1alpha2_pod_annotator.py | 148 ++++++++++++++++++ .../test_jobset_v1alpha2_pod_annotator.py | 57 +++++++ test/integration/webhook/suite_test.go | 6 +- 26 files changed, 279 insertions(+), 66 deletions(-) create mode 100644 sdk/python/docs/JobsetV1alpha2PodAnnotator.md create mode 100644 sdk/python/jobset/models/jobset_v1alpha2_pod_annotator.py create mode 100644 sdk/python/test/test_jobset_v1alpha2_pod_annotator.py diff --git a/api/jobset/v1alpha2/jobset_webhook.go b/api/jobset/v1alpha2/jobset_webhook.go index 744298a3e..28ee673bc 100644 --- a/api/jobset/v1alpha2/jobset_webhook.go +++ b/api/jobset/v1alpha2/jobset_webhook.go @@ -147,20 +147,24 @@ func (js *JobSet) ValidateDelete() (admission.Warnings, error) { // +kubebuilder:webhook:path=/mutate-v1-pod,mutating=true,failurePolicy=fail,groups="",resources=pods,verbs=create;update,versions=v1,name=mpod.kb.io,sideEffects=None,admissionReviewVersions=v1 -// PodAnnotator for mutating webhook. -type PodAnnotator struct { - Client client.Client +// podAnnotator for mutating webhook. +type podAnnotator struct { + client client.Client decoder *admission.Decoder } +func NewPodAnnotator(mgr ctrl.Manager) *podAnnotator { + return &podAnnotator{client: mgr.GetClient()} +} + // SetupMutatingWebhook configures the mutating webhook for pods. -func (a *PodAnnotator) SetupWebhookWithManager(mgr ctrl.Manager) error { +func (a *podAnnotator) SetupWebhookWithManager(mgr ctrl.Manager) error { return ctrl.NewWebhookManagedBy(mgr). For(&corev1.Pod{}). Complete() } -func (a *PodAnnotator) Handle(ctx context.Context, req admission.Request) admission.Response { +func (a *podAnnotator) Handle(ctx context.Context, req admission.Request) admission.Response { pod := &corev1.Pod{} err := a.decoder.Decode(req, pod) if err != nil { @@ -177,7 +181,7 @@ func (a *PodAnnotator) Handle(ctx context.Context, req admission.Request) admiss } // InjectDecoder, when defined, will result in the decoder automatically being set. -func (a *PodAnnotator) InjectDecoder(d *admission.Decoder) error { +func (a *podAnnotator) InjectDecoder(d *admission.Decoder) error { a.decoder = d return nil } diff --git a/api/jobset/v1alpha2/openapi_generated.go b/api/jobset/v1alpha2/openapi_generated.go index fe3b4e24b..9bb5f675c 100644 --- a/api/jobset/v1alpha2/openapi_generated.go +++ b/api/jobset/v1alpha2/openapi_generated.go @@ -32,10 +32,10 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "sigs.k8s.io/jobset/api/jobset/v1alpha2.JobSetSpec": schema_jobset_api_jobset_v1alpha2_JobSetSpec(ref), "sigs.k8s.io/jobset/api/jobset/v1alpha2.JobSetStatus": schema_jobset_api_jobset_v1alpha2_JobSetStatus(ref), "sigs.k8s.io/jobset/api/jobset/v1alpha2.Network": schema_jobset_api_jobset_v1alpha2_Network(ref), - "sigs.k8s.io/jobset/api/jobset/v1alpha2.PodAnnotator": schema_jobset_api_jobset_v1alpha2_PodAnnotator(ref), "sigs.k8s.io/jobset/api/jobset/v1alpha2.ReplicatedJob": schema_jobset_api_jobset_v1alpha2_ReplicatedJob(ref), "sigs.k8s.io/jobset/api/jobset/v1alpha2.ReplicatedJobStatus": schema_jobset_api_jobset_v1alpha2_ReplicatedJobStatus(ref), "sigs.k8s.io/jobset/api/jobset/v1alpha2.SuccessPolicy": schema_jobset_api_jobset_v1alpha2_SuccessPolicy(ref), + "sigs.k8s.io/jobset/api/jobset/v1alpha2.podAnnotator": schema_jobset_api_jobset_v1alpha2_podAnnotator(ref), } } @@ -307,32 +307,6 @@ func schema_jobset_api_jobset_v1alpha2_Network(ref common.ReferenceCallback) com } } -func schema_jobset_api_jobset_v1alpha2_PodAnnotator(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PodAnnotator for mutating webhook.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "Client": { - SchemaProps: spec.SchemaProps{ - Ref: ref("sigs.k8s.io/controller-runtime/pkg/client.Client"), - }, - }, - "decoder": { - SchemaProps: spec.SchemaProps{ - Ref: ref("sigs.k8s.io/controller-runtime/pkg/webhook/admission.Decoder"), - }, - }, - }, - Required: []string{"Client", "decoder"}, - }, - }, - Dependencies: []string{ - "sigs.k8s.io/controller-runtime/pkg/client.Client", "sigs.k8s.io/controller-runtime/pkg/webhook/admission.Decoder"}, - } -} - func schema_jobset_api_jobset_v1alpha2_ReplicatedJob(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -459,3 +433,29 @@ func schema_jobset_api_jobset_v1alpha2_SuccessPolicy(ref common.ReferenceCallbac }, } } + +func schema_jobset_api_jobset_v1alpha2_podAnnotator(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "podAnnotator for mutating webhook.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "client": { + SchemaProps: spec.SchemaProps{ + Ref: ref("sigs.k8s.io/controller-runtime/pkg/client.Client"), + }, + }, + "decoder": { + SchemaProps: spec.SchemaProps{ + Ref: ref("sigs.k8s.io/controller-runtime/pkg/webhook/admission.Decoder"), + }, + }, + }, + Required: []string{"client", "decoder"}, + }, + }, + Dependencies: []string{ + "sigs.k8s.io/controller-runtime/pkg/client.Client", "sigs.k8s.io/controller-runtime/pkg/webhook/admission.Decoder"}, + } +} diff --git a/api/jobset/v1alpha2/zz_generated.deepcopy.go b/api/jobset/v1alpha2/zz_generated.deepcopy.go index 9338b7ef7..ee4f51ea2 100644 --- a/api/jobset/v1alpha2/zz_generated.deepcopy.go +++ b/api/jobset/v1alpha2/zz_generated.deepcopy.go @@ -19,7 +19,7 @@ limitations under the License. package v1alpha2 import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" ) @@ -186,21 +186,6 @@ func (in *Network) DeepCopy() *Network { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PodAnnotator) DeepCopyInto(out *PodAnnotator) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAnnotator. -func (in *PodAnnotator) DeepCopy() *PodAnnotator { - if in == nil { - return nil - } - out := new(PodAnnotator) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ReplicatedJob) DeepCopyInto(out *ReplicatedJob) { *out = *in diff --git a/client-go/applyconfiguration/utils.go b/client-go/applyconfiguration/utils.go index 0694bbc00..3579ca0f1 100644 --- a/client-go/applyconfiguration/utils.go +++ b/client-go/applyconfiguration/utils.go @@ -16,7 +16,6 @@ package applyconfiguration import ( schema "k8s.io/apimachinery/pkg/runtime/schema" - v1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" jobsetv1alpha2 "sigs.k8s.io/jobset/client-go/applyconfiguration/jobset/v1alpha2" ) diff --git a/client-go/clientset/versioned/clientset.go b/client-go/clientset/versioned/clientset.go index 897ac96f8..276b5d806 100644 --- a/client-go/clientset/versioned/clientset.go +++ b/client-go/clientset/versioned/clientset.go @@ -21,7 +21,6 @@ import ( discovery "k8s.io/client-go/discovery" rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" - jobsetv1alpha2 "sigs.k8s.io/jobset/client-go/clientset/versioned/typed/jobset/v1alpha2" ) diff --git a/client-go/clientset/versioned/fake/clientset_generated.go b/client-go/clientset/versioned/fake/clientset_generated.go index 0748c18ff..5b31d2d5f 100644 --- a/client-go/clientset/versioned/fake/clientset_generated.go +++ b/client-go/clientset/versioned/fake/clientset_generated.go @@ -20,7 +20,6 @@ import ( "k8s.io/client-go/discovery" fakediscovery "k8s.io/client-go/discovery/fake" "k8s.io/client-go/testing" - clientset "sigs.k8s.io/jobset/client-go/clientset/versioned" jobsetv1alpha2 "sigs.k8s.io/jobset/client-go/clientset/versioned/typed/jobset/v1alpha2" fakejobsetv1alpha2 "sigs.k8s.io/jobset/client-go/clientset/versioned/typed/jobset/v1alpha2/fake" diff --git a/client-go/clientset/versioned/fake/register.go b/client-go/clientset/versioned/fake/register.go index a1aea1e99..c18d09e90 100644 --- a/client-go/clientset/versioned/fake/register.go +++ b/client-go/clientset/versioned/fake/register.go @@ -20,7 +20,6 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - jobsetv1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" ) diff --git a/client-go/clientset/versioned/scheme/register.go b/client-go/clientset/versioned/scheme/register.go index 0092754b8..00764d33d 100644 --- a/client-go/clientset/versioned/scheme/register.go +++ b/client-go/clientset/versioned/scheme/register.go @@ -20,7 +20,6 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - jobsetv1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" ) diff --git a/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset.go b/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset.go index d65068040..b7c3aab2e 100644 --- a/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset.go +++ b/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset.go @@ -24,7 +24,6 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" - v1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" jobsetv1alpha2 "sigs.k8s.io/jobset/client-go/applyconfiguration/jobset/v1alpha2" ) diff --git a/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset_client.go b/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset_client.go index 7cc93785e..104acafb7 100644 --- a/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset_client.go +++ b/client-go/clientset/versioned/typed/jobset/v1alpha2/fake/fake_jobset_client.go @@ -17,7 +17,6 @@ package fake import ( rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" - v1alpha2 "sigs.k8s.io/jobset/client-go/clientset/versioned/typed/jobset/v1alpha2" ) diff --git a/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset.go b/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset.go index 2f3059dae..87b5cc539 100644 --- a/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset.go +++ b/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset.go @@ -24,7 +24,6 @@ import ( types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" rest "k8s.io/client-go/rest" - v1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" jobsetv1alpha2 "sigs.k8s.io/jobset/client-go/applyconfiguration/jobset/v1alpha2" scheme "sigs.k8s.io/jobset/client-go/clientset/versioned/scheme" diff --git a/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset_client.go b/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset_client.go index 0f3cb59f8..4c91c163e 100644 --- a/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset_client.go +++ b/client-go/clientset/versioned/typed/jobset/v1alpha2/jobset_client.go @@ -18,7 +18,6 @@ import ( "net/http" rest "k8s.io/client-go/rest" - v1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" "sigs.k8s.io/jobset/client-go/clientset/versioned/scheme" ) diff --git a/client-go/informers/externalversions/factory.go b/client-go/informers/externalversions/factory.go index 22c548350..09e750012 100644 --- a/client-go/informers/externalversions/factory.go +++ b/client-go/informers/externalversions/factory.go @@ -23,7 +23,6 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" - versioned "sigs.k8s.io/jobset/client-go/clientset/versioned" internalinterfaces "sigs.k8s.io/jobset/client-go/informers/externalversions/internalinterfaces" jobset "sigs.k8s.io/jobset/client-go/informers/externalversions/jobset" diff --git a/client-go/informers/externalversions/generic.go b/client-go/informers/externalversions/generic.go index ff64e8b12..0cfbcc0ca 100644 --- a/client-go/informers/externalversions/generic.go +++ b/client-go/informers/externalversions/generic.go @@ -19,7 +19,6 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" - v1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" ) diff --git a/client-go/informers/externalversions/internalinterfaces/factory_interfaces.go b/client-go/informers/externalversions/internalinterfaces/factory_interfaces.go index 259eb6236..becf7c117 100644 --- a/client-go/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/client-go/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -20,7 +20,6 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" cache "k8s.io/client-go/tools/cache" - versioned "sigs.k8s.io/jobset/client-go/clientset/versioned" ) diff --git a/client-go/informers/externalversions/jobset/v1alpha2/jobset.go b/client-go/informers/externalversions/jobset/v1alpha2/jobset.go index 423df68f2..0010328b1 100644 --- a/client-go/informers/externalversions/jobset/v1alpha2/jobset.go +++ b/client-go/informers/externalversions/jobset/v1alpha2/jobset.go @@ -22,7 +22,6 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" cache "k8s.io/client-go/tools/cache" - jobsetv1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" versioned "sigs.k8s.io/jobset/client-go/clientset/versioned" internalinterfaces "sigs.k8s.io/jobset/client-go/informers/externalversions/internalinterfaces" diff --git a/client-go/listers/jobset/v1alpha2/jobset.go b/client-go/listers/jobset/v1alpha2/jobset.go index b438142b7..cda6673cc 100644 --- a/client-go/listers/jobset/v1alpha2/jobset.go +++ b/client-go/listers/jobset/v1alpha2/jobset.go @@ -18,7 +18,6 @@ import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/tools/cache" - v1alpha2 "sigs.k8s.io/jobset/api/jobset/v1alpha2" ) diff --git a/hack/python-sdk/swagger.json b/hack/python-sdk/swagger.json index 475fdc95c..22fc87d98 100644 --- a/hack/python-sdk/swagger.json +++ b/hack/python-sdk/swagger.json @@ -234,6 +234,22 @@ "x-kubernetes-list-type": "atomic" } } + }, + "jobset.v1alpha2.podAnnotator": { + "description": "podAnnotator for mutating webhook.", + "type": "object", + "required": [ + "client", + "decoder" + ], + "properties": { + "client": { + "$ref": "#/definitions/sigs.k8s.io.controller-runtime.pkg.client.Client" + }, + "decoder": { + "$ref": "#/definitions/sigs.k8s.io.controller-runtime.pkg.webhook.admission.Decoder" + } + } } } } diff --git a/main.go b/main.go index b8bead5ee..d0dd620bb 100644 --- a/main.go +++ b/main.go @@ -151,7 +151,7 @@ func setupControllers(mgr ctrl.Manager, certsReady chan struct{}) { } // Set up mutating webhook. - mutatingWebhook := &jobset.PodAnnotator{Client: mgr.GetClient()} + mutatingWebhook := jobset.NewPodAnnotator(mgr) if err := mutatingWebhook.SetupWebhookWithManager(mgr); err != nil { setupLog.Error(err, "unable to create webhook", "webhook", "JobSet") os.Exit(1) diff --git a/sdk/python/README.md b/sdk/python/README.md index c84ede912..11064207a 100644 --- a/sdk/python/README.md +++ b/sdk/python/README.md @@ -70,6 +70,7 @@ Class | Method | HTTP request | Description - [JobsetV1alpha2JobSetSpec](docs/JobsetV1alpha2JobSetSpec.md) - [JobsetV1alpha2JobSetStatus](docs/JobsetV1alpha2JobSetStatus.md) - [JobsetV1alpha2Network](docs/JobsetV1alpha2Network.md) + - [JobsetV1alpha2PodAnnotator](docs/JobsetV1alpha2PodAnnotator.md) - [JobsetV1alpha2ReplicatedJob](docs/JobsetV1alpha2ReplicatedJob.md) - [JobsetV1alpha2ReplicatedJobStatus](docs/JobsetV1alpha2ReplicatedJobStatus.md) - [JobsetV1alpha2SuccessPolicy](docs/JobsetV1alpha2SuccessPolicy.md) diff --git a/sdk/python/docs/JobsetV1alpha2PodAnnotator.md b/sdk/python/docs/JobsetV1alpha2PodAnnotator.md new file mode 100644 index 000000000..da856127f --- /dev/null +++ b/sdk/python/docs/JobsetV1alpha2PodAnnotator.md @@ -0,0 +1,12 @@ +# JobsetV1alpha2PodAnnotator + +podAnnotator for mutating webhook. +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**client** | [**SigsK8sIoControllerRuntimePkgClientClient**](SigsK8sIoControllerRuntimePkgClientClient.md) | | +**decoder** | [**SigsK8sIoControllerRuntimePkgWebhookAdmissionDecoder**](SigsK8sIoControllerRuntimePkgWebhookAdmissionDecoder.md) | | + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/sdk/python/jobset/__init__.py b/sdk/python/jobset/__init__.py index acd1781c1..e1a2cdc14 100644 --- a/sdk/python/jobset/__init__.py +++ b/sdk/python/jobset/__init__.py @@ -33,6 +33,7 @@ from jobset.models.jobset_v1alpha2_job_set_spec import JobsetV1alpha2JobSetSpec from jobset.models.jobset_v1alpha2_job_set_status import JobsetV1alpha2JobSetStatus from jobset.models.jobset_v1alpha2_network import JobsetV1alpha2Network +from jobset.models.jobset_v1alpha2_pod_annotator import JobsetV1alpha2PodAnnotator from jobset.models.jobset_v1alpha2_replicated_job import JobsetV1alpha2ReplicatedJob from jobset.models.jobset_v1alpha2_replicated_job_status import JobsetV1alpha2ReplicatedJobStatus from jobset.models.jobset_v1alpha2_success_policy import JobsetV1alpha2SuccessPolicy diff --git a/sdk/python/jobset/models/__init__.py b/sdk/python/jobset/models/__init__.py index cabd10a5f..4cca625a9 100644 --- a/sdk/python/jobset/models/__init__.py +++ b/sdk/python/jobset/models/__init__.py @@ -23,6 +23,7 @@ from jobset.models.jobset_v1alpha2_job_set_spec import JobsetV1alpha2JobSetSpec from jobset.models.jobset_v1alpha2_job_set_status import JobsetV1alpha2JobSetStatus from jobset.models.jobset_v1alpha2_network import JobsetV1alpha2Network +from jobset.models.jobset_v1alpha2_pod_annotator import JobsetV1alpha2PodAnnotator from jobset.models.jobset_v1alpha2_replicated_job import JobsetV1alpha2ReplicatedJob from jobset.models.jobset_v1alpha2_replicated_job_status import JobsetV1alpha2ReplicatedJobStatus from jobset.models.jobset_v1alpha2_success_policy import JobsetV1alpha2SuccessPolicy diff --git a/sdk/python/jobset/models/jobset_v1alpha2_pod_annotator.py b/sdk/python/jobset/models/jobset_v1alpha2_pod_annotator.py new file mode 100644 index 000000000..abebdf798 --- /dev/null +++ b/sdk/python/jobset/models/jobset_v1alpha2_pod_annotator.py @@ -0,0 +1,148 @@ +# coding: utf-8 + +""" + JobSet SDK + + Python SDK for the JobSet API # noqa: E501 + + The version of the OpenAPI document: v0.1.4 + Generated by: https://openapi-generator.tech +""" + + +import pprint +import re # noqa: F401 + +import six + +from jobset.configuration import Configuration + + +class JobsetV1alpha2PodAnnotator(object): + """NOTE: This class is auto generated by OpenAPI Generator. + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + """ + Attributes: + openapi_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + openapi_types = { + 'client': 'SigsK8sIoControllerRuntimePkgClientClient', + 'decoder': 'SigsK8sIoControllerRuntimePkgWebhookAdmissionDecoder' + } + + attribute_map = { + 'client': 'client', + 'decoder': 'decoder' + } + + def __init__(self, client=None, decoder=None, local_vars_configuration=None): # noqa: E501 + """JobsetV1alpha2PodAnnotator - a model defined in OpenAPI""" # noqa: E501 + if local_vars_configuration is None: + local_vars_configuration = Configuration() + self.local_vars_configuration = local_vars_configuration + + self._client = None + self._decoder = None + self.discriminator = None + + self.client = client + self.decoder = decoder + + @property + def client(self): + """Gets the client of this JobsetV1alpha2PodAnnotator. # noqa: E501 + + + :return: The client of this JobsetV1alpha2PodAnnotator. # noqa: E501 + :rtype: SigsK8sIoControllerRuntimePkgClientClient + """ + return self._client + + @client.setter + def client(self, client): + """Sets the client of this JobsetV1alpha2PodAnnotator. + + + :param client: The client of this JobsetV1alpha2PodAnnotator. # noqa: E501 + :type: SigsK8sIoControllerRuntimePkgClientClient + """ + if self.local_vars_configuration.client_side_validation and client is None: # noqa: E501 + raise ValueError("Invalid value for `client`, must not be `None`") # noqa: E501 + + self._client = client + + @property + def decoder(self): + """Gets the decoder of this JobsetV1alpha2PodAnnotator. # noqa: E501 + + + :return: The decoder of this JobsetV1alpha2PodAnnotator. # noqa: E501 + :rtype: SigsK8sIoControllerRuntimePkgWebhookAdmissionDecoder + """ + return self._decoder + + @decoder.setter + def decoder(self, decoder): + """Sets the decoder of this JobsetV1alpha2PodAnnotator. + + + :param decoder: The decoder of this JobsetV1alpha2PodAnnotator. # noqa: E501 + :type: SigsK8sIoControllerRuntimePkgWebhookAdmissionDecoder + """ + if self.local_vars_configuration.client_side_validation and decoder is None: # noqa: E501 + raise ValueError("Invalid value for `decoder`, must not be `None`") # noqa: E501 + + self._decoder = decoder + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.openapi_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, JobsetV1alpha2PodAnnotator): + return False + + return self.to_dict() == other.to_dict() + + def __ne__(self, other): + """Returns true if both objects are not equal""" + if not isinstance(other, JobsetV1alpha2PodAnnotator): + return True + + return self.to_dict() != other.to_dict() diff --git a/sdk/python/test/test_jobset_v1alpha2_pod_annotator.py b/sdk/python/test/test_jobset_v1alpha2_pod_annotator.py new file mode 100644 index 000000000..abb4d6f08 --- /dev/null +++ b/sdk/python/test/test_jobset_v1alpha2_pod_annotator.py @@ -0,0 +1,57 @@ +# coding: utf-8 + +""" + JobSet SDK + + Python SDK for the JobSet API # noqa: E501 + + The version of the OpenAPI document: v0.1.4 + Generated by: https://openapi-generator.tech +""" + + +from __future__ import absolute_import + +# Kubernetes imports +from kubernetes.client.models.v1_job_template_spec import V1JobTemplateSpec +import unittest +import datetime + +import jobset +from jobset.models.jobset_v1alpha2_pod_annotator import JobsetV1alpha2PodAnnotator # noqa: E501 +from jobset.rest import ApiException + +class TestJobsetV1alpha2PodAnnotator(unittest.TestCase): + """JobsetV1alpha2PodAnnotator unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional): + """Test JobsetV1alpha2PodAnnotator + include_option is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # model = jobset.models.jobset_v1alpha2_pod_annotator.JobsetV1alpha2PodAnnotator() # noqa: E501 + if include_optional : + return JobsetV1alpha2PodAnnotator( + client = None, + decoder = None + ) + else : + return JobsetV1alpha2PodAnnotator( + client = None, + decoder = None, + ) + + def testJobsetV1alpha2PodAnnotator(self): + """Test JobsetV1alpha2PodAnnotator""" + inst_req_only = self.make_instance(include_optional=False) + inst_req_and_optional = self.make_instance(include_optional=True) + + +if __name__ == '__main__': + unittest.main() diff --git a/test/integration/webhook/suite_test.go b/test/integration/webhook/suite_test.go index 52625c524..9da70e70d 100644 --- a/test/integration/webhook/suite_test.go +++ b/test/integration/webhook/suite_test.go @@ -109,9 +109,11 @@ var _ = BeforeSuite(func() { err = controllers.SetupIndexes(ctx, mgr.GetFieldIndexer()) Expect(err).NotTo(HaveOccurred()) - err = (&jobset.JobSet{}).SetupWebhookWithManager(mgr) - mgr.GetWebhookServer().Register("/mutate-v1-pod", &webhook.Admission{Handler: &jobset.PodAnnotator{Client: mgr.GetClient()}}) + + // Set up mutating webhook. + mutatingWebhook := jobset.NewPodAnnotator(mgr) + err = mutatingWebhook.SetupWebhookWithManager(mgr) Expect(err).NotTo(HaveOccurred())