From 1f130ed6a0c6e23ff32ca12989b152ca14224781 Mon Sep 17 00:00:00 2001 From: Dibyo Mukherjee Date: Wed, 25 Jan 2023 16:34:51 -0500 Subject: [PATCH] Add support for v1 pipeline types and customruns Allow triggers to create v1 pipeline types Also allow triggers to create v1beta1 customruns Finally, move the allowlisted types to a single file (fixes #494) Signed-off-by: Dibyo Mukherjee --- pkg/apis/config/allowed_types.go | 15 +++++++++++++++ pkg/client/dynamic/clientset/tekton/tekton.go | 16 +++------------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/pkg/apis/config/allowed_types.go b/pkg/apis/config/allowed_types.go index 0e1abeb910..5a48f84434 100644 --- a/pkg/apis/config/allowed_types.go +++ b/pkg/apis/config/allowed_types.go @@ -1,6 +1,7 @@ package config import ( + pipelinev1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1" customrunsv1alpha1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1" pipelinev1beta1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1" pipelineresourcev1alpha1 "github.com/tektoncd/pipeline/pkg/apis/resource/v1alpha1" @@ -17,10 +18,12 @@ func init() { utilruntime.Must(customrunsv1alpha1.AddToScheme(scheme)) utilruntime.Must(pipelineresourcev1alpha1.AddToScheme(scheme)) utilruntime.Must(pipelinev1beta1.AddToScheme(scheme)) + utilruntime.Must(pipelinev1.AddToScheme(scheme)) codec := serializer.NewCodecFactory(scheme) Decoder = codec.UniversalDecoder( pipelineresourcev1alpha1.SchemeGroupVersion, // customrunsv1alpha1 share the same SchemeGroupVersion pipelinev1beta1.SchemeGroupVersion, + pipelinev1.SchemeGroupVersion, ) } @@ -30,3 +33,15 @@ func EnsureAllowedType(rt runtime.RawExtension) error { _, err := runtime.Decode(Decoder, rt.Raw) return err } + +var ( + AllowedPipelineTypes = map[string][]string{ + "v1alpha1": {"pipelineresources", "pipelineruns", "taskruns", "pipelines", "clustertasks", "tasks", "conditions", "runs"}, + "v1beta1": {"pipelineruns", "taskruns", "pipelines", "clustertasks", "tasks", "customruns"}, + "v1": {"pipelineruns", "taskruns", "pipelines", "tasks"}, + } + AllowedTriggersTypes = map[string][]string{ + "v1alpha1": {"clusterinterceptors", "interceptors"}, + "v1beta1": {"clustertriggerbindings", "eventlisteners", "triggerbindings", "triggers", "triggertemplates"}, + } +) diff --git a/pkg/client/dynamic/clientset/tekton/tekton.go b/pkg/client/dynamic/clientset/tekton/tekton.go index 8d88d6fe82..eb835c951c 100644 --- a/pkg/client/dynamic/clientset/tekton/tekton.go +++ b/pkg/client/dynamic/clientset/tekton/tekton.go @@ -18,27 +18,17 @@ package tekton import ( "github.com/tektoncd/pipeline/pkg/apis/pipeline" + "github.com/tektoncd/triggers/pkg/apis/config" "github.com/tektoncd/triggers/pkg/apis/triggers" "github.com/tektoncd/triggers/pkg/client/dynamic/clientset" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/dynamic" ) -var ( - allowedPipelineTypes = map[string][]string{ - "v1alpha1": {"pipelineresources", "pipelineruns", "taskruns", "pipelines", "clustertasks", "tasks", "conditions", "runs"}, - "v1beta1": {"pipelineruns", "taskruns", "pipelines", "clustertasks", "tasks"}, - } - allowedTriggersTypes = map[string][]string{ - "v1alpha1": {"clusterinterceptors", "interceptors"}, - "v1beta1": {"clustertriggerbindings", "eventlisteners", "triggerbindings", "triggers", "triggertemplates"}, - } -) - // WithClient adds Tekton related clients to the Dynamic client. func WithClient(client dynamic.Interface) clientset.Option { return func(cs *clientset.Clientset) { - for version, resources := range allowedPipelineTypes { + for version, resources := range config.AllowedPipelineTypes { for _, resource := range resources { r := schema.GroupVersionResource{ Group: pipeline.GroupName, @@ -48,7 +38,7 @@ func WithClient(client dynamic.Interface) clientset.Option { cs.Add(r, client) } } - for version, resources := range allowedTriggersTypes { + for version, resources := range config.AllowedTriggersTypes { for _, resource := range resources { r := schema.GroupVersionResource{ Group: triggers.GroupName,