From 94e115237c0c5f97314e1a6621c8415337c43337 Mon Sep 17 00:00:00 2001 From: Fabian-K Date: Thu, 24 Jun 2021 17:49:12 +0200 Subject: [PATCH] [tekton] add support for ClusterInterceptor --- CHANGELOG.md | 2 + .../tekton/client/V1alpha1APIGroupClient.java | 18 +- .../client/dsl/V1alpha1APIGroupDSL.java | 7 + .../cmd/generate/generate.go | 1 + ...TektonTriggersResourceMappingProvider.java | 1 + .../schema/tekton-schema-triggers.json | 180 ++++++++++++++++++ 6 files changed, 197 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e34c3798b4f..63ca5b8c961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,8 @@ * Add DSL support for OpenShift Whereabouts CNI Model `whereabouts.cni.cncf.io` to OpenShiftClient DSL * Add DSL support for OpenShift Kube Storage Version Migrator resources in OpenShiftClient DSL * Fix #3228: Add support for Dynamic informers for custom resources in KubernetesClient +* Add DSL support for ClusterInterceptors to TektonClient + #### _**Note**_: Breaking changes in the API ##### DSL Changes: diff --git a/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/V1alpha1APIGroupClient.java b/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/V1alpha1APIGroupClient.java index ec491bb9eb6..8de1fe93090 100644 --- a/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/V1alpha1APIGroupClient.java +++ b/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/V1alpha1APIGroupClient.java @@ -22,18 +22,7 @@ import io.fabric8.kubernetes.client.dsl.Resource; import io.fabric8.tekton.client.dsl.V1alpha1APIGroupDSL; import io.fabric8.tekton.client.internal.v1alpha1.*; -import io.fabric8.tekton.pipeline.v1alpha1.ClusterTask; -import io.fabric8.tekton.pipeline.v1alpha1.ClusterTaskList; -import io.fabric8.tekton.pipeline.v1alpha1.Condition; -import io.fabric8.tekton.pipeline.v1alpha1.ConditionList; -import io.fabric8.tekton.pipeline.v1alpha1.Pipeline; -import io.fabric8.tekton.pipeline.v1alpha1.PipelineList; -import io.fabric8.tekton.pipeline.v1alpha1.PipelineRun; -import io.fabric8.tekton.pipeline.v1alpha1.PipelineRunList; -import io.fabric8.tekton.pipeline.v1alpha1.Task; -import io.fabric8.tekton.pipeline.v1alpha1.TaskList; -import io.fabric8.tekton.pipeline.v1alpha1.TaskRun; -import io.fabric8.tekton.pipeline.v1alpha1.TaskRunList; +import io.fabric8.tekton.pipeline.v1alpha1.*; import io.fabric8.tekton.resource.v1alpha1.PipelineResource; import io.fabric8.tekton.resource.v1alpha1.PipelineResourceList; import io.fabric8.tekton.triggers.v1alpha1.*; @@ -107,4 +96,9 @@ public NonNamespaceOperation public NonNamespaceOperation> clusterTriggerBindings() { return new ClusterTriggerBindingOperationsImpl(this.getHttpClient(),this.getConfiguration()); } + + @Override + public NonNamespaceOperation> clusterInterceptors() { + return new ClusterInterceptorOperationsImpl(this.getHttpClient(), this.getConfiguration()); + } } diff --git a/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/dsl/V1alpha1APIGroupDSL.java b/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/dsl/V1alpha1APIGroupDSL.java index b1ab4f80597..0d8504af569 100644 --- a/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/dsl/V1alpha1APIGroupDSL.java +++ b/extensions/tekton/client/src/main/java/io/fabric8/tekton/client/dsl/V1alpha1APIGroupDSL.java @@ -119,4 +119,11 @@ public interface V1alpha1APIGroupDSL extends Client { * @return MixedOperation for ClusterTriggerBinding class */ NonNamespaceOperation> clusterTriggerBindings(); + + /** + * API entrypoint for ClusterInterceptor(triggers.tekton.dev/v1alpha1) + * + * @return MixedOperation for ClusterInterceptor class + */ + NonNamespaceOperation> clusterInterceptors(); } diff --git a/extensions/tekton/generator-triggers/cmd/generate/generate.go b/extensions/tekton/generator-triggers/cmd/generate/generate.go index 7703509a018..acf15117dfb 100644 --- a/extensions/tekton/generator-triggers/cmd/generate/generate.go +++ b/extensions/tekton/generator-triggers/cmd/generate/generate.go @@ -35,6 +35,7 @@ func main() { reflect.TypeOf(triggers.TriggerBindingList{}): schemagen.Namespaced, reflect.TypeOf(triggers.EventListenerList{}): schemagen.Namespaced, reflect.TypeOf(triggers.ClusterTriggerBindingList{}): schemagen.Cluster, + reflect.TypeOf(triggers.ClusterInterceptorList{}): schemagen.Cluster, } // constraints and patterns for fields diff --git a/extensions/tekton/model-triggers/src/main/java/io/fabric8/tekton/TektonTriggersResourceMappingProvider.java b/extensions/tekton/model-triggers/src/main/java/io/fabric8/tekton/TektonTriggersResourceMappingProvider.java index 9e1ddf10212..a9cafda2d73 100644 --- a/extensions/tekton/model-triggers/src/main/java/io/fabric8/tekton/TektonTriggersResourceMappingProvider.java +++ b/extensions/tekton/model-triggers/src/main/java/io/fabric8/tekton/TektonTriggersResourceMappingProvider.java @@ -31,6 +31,7 @@ public TektonTriggersResourceMappingProvider() { mappings.put("triggers.tekton.dev/v1alpha1#EventListener", io.fabric8.tekton.triggers.v1alpha1.EventListener.class); mappings.put("triggers.tekton.dev/v1alpha1#ClusterTriggerBinding", io.fabric8.tekton.triggers.v1alpha1.ClusterTriggerBinding.class); mappings.put("triggers.tekton.dev/v1alpha1#Trigger", io.fabric8.tekton.triggers.v1alpha1.Trigger.class); + mappings.put("triggers.tekton.dev/v1alpha1#ClusterInterceptor", io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptor.class); } public Map> getMappings() { diff --git a/extensions/tekton/model-triggers/src/main/resources/schema/tekton-schema-triggers.json b/extensions/tekton/model-triggers/src/main/resources/schema/tekton-schema-triggers.json index 3b08dc6bd19..fdca495bf05 100644 --- a/extensions/tekton/model-triggers/src/main/resources/schema/tekton-schema-triggers.json +++ b/extensions/tekton/model-triggers/src/main/resources/schema/tekton-schema-triggers.json @@ -57,6 +57,124 @@ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClientConfig": { + "type": "object", + "properties": { + "service": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ServiceReference", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ServiceReference" + }, + "url": { + "existingJavaType": "java.lang.String" + } + }, + "javaType": "io.fabric8.tekton.triggers.v1alpha1.ClientConfig", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptor": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "default": "triggers.tekton.dev/v1alpha1", + "required": true + }, + "kind": { + "type": "string", + "default": "ClusterInterceptor", + "required": true + }, + "metadata": { + "existingJavaType": "io.fabric8.kubernetes.api.model.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorSpec", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorSpec" + }, + "status": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorStatus", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorStatus" + } + }, + "javaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptor", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.HasMetadata" + ] + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorList": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "default": "triggers.tekton.dev/v1alpha1", + "required": true + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptor", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptor" + } + }, + "kind": { + "type": "string", + "default": "ClusterInterceptorList", + "required": true + }, + "metadata": { + "existingJavaType": "io.fabric8.kubernetes.api.model.ListMeta" + } + }, + "javaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorList", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource", + "io.fabric8.kubernetes.api.model.KubernetesResourceList\u003cio.fabric8.tekton.triggers.v1alpha1.ClusterInterceptor\u003e" + ] + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorSpec": { + "type": "object", + "properties": { + "clientConfig": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClientConfig", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClientConfig" + } + }, + "javaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorSpec", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorStatus": { + "type": "object", + "properties": { + "address": { + "$ref": "#/definitions/knative_dev_pkg_apis_duck_v1_Addressable", + "existingJavaType": "io.fabric8.tekton.triggers.internal.knative.pkg.apis.duck.v1.Addressable" + }, + "annotations": { + "type": "object", + "existingJavaType": "java.util.Map\u003cString,String\u003e" + }, + "conditions": { + "type": "array", + "javaOmitEmpty": true, + "items": { + "$ref": "#/definitions/knative_dev_pkg_apis_Condition", + "existingJavaType": "io.fabric8.tekton.triggers.internal.knative.pkg.apis.Condition" + } + }, + "observedGeneration": { + "type": "integer", + "existingJavaType": "Long" + } + }, + "javaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorStatus", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterTriggerBinding": { "type": "object", "properties": { @@ -496,6 +614,28 @@ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ServiceReference": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string" + }, + "path": { + "type": "string" + }, + "port": { + "type": "integer", + "existingJavaType": "Integer" + } + }, + "javaType": "io.fabric8.tekton.triggers.v1alpha1.ServiceReference", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_Trigger": { "type": "object", "properties": { @@ -908,6 +1048,18 @@ "io.fabric8.kubernetes.api.model.KubernetesResource" ] }, + "knative_dev_pkg_apis_duck_v1_Addressable": { + "type": "object", + "properties": { + "url": { + "existingJavaType": "java.lang.String" + } + }, + "javaType": "io.fabric8.tekton.triggers.internal.knative.pkg.apis.duck.v1.Addressable", + "javaInterfaces": [ + "io.fabric8.kubernetes.api.model.KubernetesResource" + ] + }, "knative_dev_pkg_apis_duck_v1_PodSpecable": { "type": "object", "properties": { @@ -966,6 +1118,26 @@ "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_CELOverlay", "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.CELOverlay" }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClientConfig": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClientConfig", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClientConfig" + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptor": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptor", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptor" + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorList": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorList", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorList" + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorSpec": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorSpec", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorSpec" + }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorStatus": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterInterceptorStatus", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterInterceptorStatus" + }, "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterTriggerBinding": { "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ClusterTriggerBinding", "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ClusterTriggerBinding" @@ -1042,6 +1214,10 @@ "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_SecretRef", "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.SecretRef" }, + "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ServiceReference": { + "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_ServiceReference", + "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.ServiceReference" + }, "github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_Trigger": { "$ref": "#/definitions/github_com_tektoncd_triggers_pkg_apis_triggers_v1alpha1_Trigger", "existingJavaType": "io.fabric8.tekton.triggers.v1alpha1.Trigger" @@ -1106,6 +1282,10 @@ "$ref": "#/definitions/knative_dev_pkg_apis_Condition", "existingJavaType": "io.fabric8.tekton.triggers.internal.knative.pkg.apis.Condition" }, + "knative_dev_pkg_apis_duck_v1_Addressable": { + "$ref": "#/definitions/knative_dev_pkg_apis_duck_v1_Addressable", + "existingJavaType": "io.fabric8.tekton.triggers.internal.knative.pkg.apis.duck.v1.Addressable" + }, "knative_dev_pkg_apis_duck_v1_PodSpecable": { "$ref": "#/definitions/knative_dev_pkg_apis_duck_v1_PodSpecable", "existingJavaType": "io.fabric8.tekton.triggers.internal.knative.pkg.apis.duck.v1.PodSpecable"