Repository: kubeflow/kfp-tekton (language: python)

Issue:
migrate to tekton v1 api
/kind feature

**Description:**
[A clear and concise description of what your proposal. What problem does it solve?]


**Additional information:**
[Miscellaneous information that will assist in solving the issue.]



Discussion / hints:

Fix patch:
diff --git a/tekton-catalog/pipeline-loops/cmd/cli/main.go b/tekton-catalog/pipeline-loops/cmd/cli/main.go
index bf25fc9af5..1ff2ad3d83 100644
--- a/tekton-catalog/pipeline-loops/cmd/cli/main.go
+++ b/tekton-catalog/pipeline-loops/cmd/cli/main.go
@@ -30,6 +30,7 @@ import (
 	"github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun"
 	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"
 	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
+	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 	"k8s.io/apimachinery/pkg/util/yaml"
@@ -123,14 +124,14 @@ func main() {
 }
 
 func validatePipeline(bytes []byte) error {
-	p := v1beta1.Pipeline{}
+	p := v1.Pipeline{}
 	if err := json.Unmarshal(bytes, &p); err != nil {
 		return err
 	}
 	return validatePipelineSpec(&p.Spec, p.Name)
 }
 
-func validatePipelineSpec(p *v1beta1.PipelineSpec, name string) error {
+func validatePipelineSpec(p *v1.PipelineSpec, name string) error {
 	errs := []string{}
 	// Here we validate those embedded spec, whose kind is pipelineLoop.
 	if p.Tasks != nil {
@@ -194,7 +195,7 @@ func validateCustomRun(bytes []byte) error {
 }
 
 func validatePipelineRun(bytes []byte) error {
-	pr := v1beta1.PipelineRun{}
+	pr := v1.PipelineRun{}
 	if err := json.Unmarshal(bytes, &pr); err != nil {
 		return fmt.Errorf("Error while unmarshal PipelineRun spec:%s\n", err.Error())
 	}
diff --git a/tekton-catalog/pipeline-loops/go.mod b/tekton-catalog/pipeline-loops/go.mod
index 6dd1f17505..da0a6e7683 100644
--- a/tekton-catalog/pipeline-loops/go.mod
+++ b/tekton-catalog/pipeline-loops/go.mod
@@ -8,17 +8,21 @@ require (
 	github.com/hashicorp/go-multierror v1.1.1
 	github.com/kubeflow/kfp-tekton/tekton-catalog/cache v0.0.0
 	github.com/kubeflow/kfp-tekton/tekton-catalog/objectstore v0.0.0
-	github.com/tektoncd/pipeline v0.47.1
+	github.com/tektoncd/pipeline v0.50.0
 	go.uber.org/zap v1.24.0
 	gomodules.xyz/jsonpatch/v2 v2.2.0
-	k8s.io/api v0.25.9
-	k8s.io/apimachinery v0.26.4
-	k8s.io/client-go v0.25.9
-	k8s.io/utils v0.0.0-20230209194617-a36077c30491
-	knative.dev/pkg v0.0.0-20230221145627-8efb3485adcf
+	k8s.io/api v0.27.1
+	k8s.io/apimachinery v0.27.1
+	k8s.io/client-go v0.27.1
+	k8s.io/utils v0.0.0-20230505201702-9f6742963106
+	knative.dev/pkg v0.0.0-20230418073056-dfad48eaa5d0
 )
 
 replace (
 	github.com/kubeflow/kfp-tekton/tekton-catalog/cache => ../cache/
 	github.com/kubeflow/kfp-tekton/tekton-catalog/objectstore => ../objectstore/
+	k8s.io/api => k8s.io/api v0.25.9
+	k8s.io/apimachinery => k8s.io/apimachinery v0.26.5
+	k8s.io/client-go => k8s.io/client-go v0.25.9
+	k8s.io/code-generator => k8s.io/code-generator v0.25.9
 )
diff --git a/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_types.go b/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_types.go
index 11c5f08681..4dd691ed3c 100644
--- a/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_types.go
+++ b/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_types.go
@@ -18,8 +18,7 @@ package v1alpha1
 
 import (
 	"github.com/tektoncd/pipeline/pkg/apis/pipeline/pod"
-	tektonv1beta1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
-	v1beta1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
+	tektonv1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
@@ -43,12 +42,12 @@ type PipelineLoop struct {
 type PipelineLoopSpec struct {
 	// TaskRef is a reference to a task definition.
 	// +optional
-	// TaskRef     *v1beta1.TaskRef     `json:"taskRef,omitempty"`
-	PipelineRef *tektonv1beta1.PipelineRef `json:"pipelineRef,omitempty"`
+	// TaskRef     *tektonv1.TaskRef     `json:"taskRef,omitempty"`
+	PipelineRef *tektonv1.PipelineRef `json:"pipelineRef,omitempty"`
 
 	// TaskSpec is a specification of a task
 	// +optional
-	PipelineSpec *tektonv1beta1.PipelineSpec `json:"pipelineSpec,omitempty"`
+	PipelineSpec *tektonv1.PipelineSpec `json:"pipelineSpec,omitempty"`
 
 	// IterateParam is the name of the task parameter that is iterated upon.
 	IterateParam string `json:"iterateParam"`
@@ -83,11 +82,11 @@ type PipelineLoopSpec struct {
 
 	// Workspace to a volume mapping to be consumed by a PipelineRun.
 	// +optional
-	Workspaces []v1beta1.WorkspaceBinding `json:"workspaces,omitempty"`
+	Workspaces []tektonv1.WorkspaceBinding `json:"workspaces,omitempty"`
 
 	// TaskRunSpecs holds a set of runtime specs
 	// +optional
-	TaskRunSpecs []v1beta1.PipelineTaskRunSpec `json:"taskRunSpecs,omitempty"`
+	TaskRunSpecs []tektonv1.PipelineTaskRunSpec `json:"taskRunSpecs,omitempty"`
 }
 
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
@@ -164,5 +163,5 @@ type PipelineLoopPipelineRunStatus struct {
 	IterationItem interface{} `json:"iterationItem,omitempty"`
 	// Status is the TaskRunStatus for the corresponding TaskRun
 	// +optional
-	Status *v1beta1.PipelineRunStatus `json:"status,omitempty"`
+	Status *tektonv1.PipelineRunStatus `json:"status,omitempty"`
 }
diff --git a/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/zz_generated.deepcopy.go b/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/zz_generated.deepcopy.go
index ab715c6c7e..80e07a11ca 100644
--- a/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/zz_generated.deepcopy.go
+++ b/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/zz_generated.deepcopy.go
@@ -22,7 +22,7 @@ limitations under the License.
 package v1alpha1
 
 import (
-	v1beta1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
+	tektonv1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	runtime "k8s.io/apimachinery/pkg/runtime"
 )
@@ -92,7 +92,7 @@ func (in *PipelineLoopPipelineRunStatus) DeepCopyInto(out *PipelineLoopPipelineR
 	*out = *in
 	if in.Status != nil {
 		in, out := &in.Status, &out.Status
-		*out = new(v1beta1.PipelineRunStatus)
+		*out = new(tektonv1.PipelineRunStatus)
 		(*in).DeepCopyInto(*out)
 	}
 	return
@@ -149,12 +149,12 @@ func (in *PipelineLoopSpec) DeepCopyInto(out *PipelineLoopSpec) {
 	*out = *in
 	if in.PipelineRef != nil {
 		in, out := &in.PipelineRef, &out.PipelineRef
-		*out = new(v1beta1.PipelineRef)
+		*out = new(tektonv1.PipelineRef)
 		**out = **in
 	}
 	if in.PipelineSpec != nil {
 		in, out := &in.PipelineSpec, &out.PipelineSpec
-		*out = new(v1beta1.PipelineSpec)
+		*out = new(tektonv1.PipelineSpec)
 		(*in).DeepCopyInto(*out)
 	}
 	if in.Timeout != nil {
diff --git a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/controller.go b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/controller.go
index 367562fc05..fdf5c09192 100644
--- a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/controller.go
+++ b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/controller.go
@@ -34,8 +34,8 @@ import (
 	pipelineLoopClient "github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/pkg/client/injection/client"
 	pipelineLoopInformer "github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/pkg/client/injection/informers/pipelineloop/v1alpha1/pipelineloop"
 	pipelineClient "github.com/tektoncd/pipeline/pkg/client/injection/client"
+	pipelineRunInformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1/pipelinerun"
 	customRunInformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/customrun"
-	pipelineRunInformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/pipelinerun"
 	customRunReconciler "github.com/tektoncd/pipeline/pkg/client/injection/reconciler/pipeline/v1beta1/customrun"
 	pipelineController "github.com/tektoncd/pipeline/pkg/controller"
 	"go.uber.org/zap"
diff --git a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun.go b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun.go
index b8e8500636..a91599fbb3 100644
--- a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun.go
+++ b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun.go
@@ -43,10 +43,13 @@ import (
 	"github.com/tektoncd/pipeline/pkg/apis/config"
 	"github.com/tektoncd/pipeline/pkg/apis/pipeline"
 	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
+
+	tektonv1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	tektonv1beta1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
 	clientset "github.com/tektoncd/pipeline/pkg/client/clientset/versioned"
 	customRunReconciler "github.com/tektoncd/pipeline/pkg/client/injection/reconciler/pipeline/v1beta1/customrun"
-	listers "github.com/tektoncd/pipeline/pkg/client/listers/pipeline/v1beta1"
+	listers "github.com/tektoncd/pipeline/pkg/client/listers/pipeline/v1"
+	listersV1beta1 "github.com/tektoncd/pipeline/pkg/client/listers/pipeline/v1beta1"
 	"github.com/tektoncd/pipeline/pkg/names"
 	"github.com/tektoncd/pipeline/pkg/reconciler/events"
 	tkstatus "github.com/tektoncd/pipeline/pkg/status"
@@ -98,14 +101,14 @@ type Reconciler struct {
 	KubeClientSet         kubernetes.Interface
 	pipelineClientSet     clientset.Interface
 	pipelineloopClientSet pipelineloopclientset.Interface
-	customRunLister       listers.CustomRunLister
+	customRunLister       listersV1beta1.CustomRunLister
 	pipelineLoopLister    listerspipelineloop.PipelineLoopLister
 	pipelineRunLister     listers.PipelineRunLister
 	cacheStore            *cache.TaskCacheStore
 	clock                 clock.RealClock
 }
 type CacheKey struct {
-	Params           []tektonv1beta1.Param                  `json:"params"`
+	Params           []tektonv1.Param                       `json:"params"`
 	PipelineLoopSpec *pipelineloopv1alpha1.PipelineLoopSpec `json:"pipelineSpec"`
 }
 
@@ -121,7 +124,7 @@ func init() {
 	patches := []jsonpatch.JsonPatchOperation{{
 		Operation: "add",
 		Path:      "/spec/status",
-		Value:     tektonv1beta1.PipelineRunSpecStatusCancelled,
+		Value:     tektonv1.PipelineRunSpecStatusCancelled,
 	}}
 	cancelPatchBytes, err = json.Marshal(patches)
 	if err != nil {
@@ -140,6 +143,30 @@ func isCachingEnabled(run *tektonv1beta1.CustomRun) bool {
 	return run.ObjectMeta.Labels["pipelines.kubeflow.org/cache_enabled"] == "true"
 }
 
+func paramConvertTo(ctx context.Context, p *tektonv1beta1.Param, sink *tektonv1.Param) {
+	sink.Name = p.Name
+	newValue := tektonv1.ParamValue{}
+	if p.Value.Type != "" {
+		newValue.Type = tektonv1.ParamType(p.Value.Type)
+	} else {
+		newValue.Type = tektonv1.ParamType(v1beta1.ParamTypeString)
+	}
+	newValue.StringVal = p.Value.StringVal
+	newValue.ArrayVal = p.Value.ArrayVal
+	newValue.ObjectVal = p.Value.ObjectVal
+	sink.Value = newValue
+}
+
+func v1ParamsConversion(ctx context.Context, v1beta1Params tektonv1beta1.Params) []tektonv1.Param {
+	v1Params := []tektonv1.Param{}
+	for _, param := range v1beta1Params {
+		v1Param := tektonv1.Param{}
+		paramConvertTo(ctx, &param, &v1Param)
+		v1Params = append(v1Params, v1Param)
+	}
+	return v1Params
+}
+
 // ReconcileKind compares the actual state with the desired, and attempts to converge the two.
 // It then updates the Status block of the CustomRun resource with the current status of the resource.
 func (c *Reconciler) ReconcileKind(ctx context.Context, customRun *tektonv1beta1.CustomRun) pkgreconciler.Event {
@@ -212,7 +239,7 @@ func (c *Reconciler) ReconcileKind(ctx context.Context, customRun *tektonv1beta1
 		if customRun.IsSuccessful() && !c.cacheStore.Disabled && isCachingEnabled(customRun) {
 			marshal, err := json.Marshal(CacheKey{
 				PipelineLoopSpec: status.PipelineLoopSpec,
-				Params:           customRun.Spec.Params,
+				Params:           v1ParamsConversion(ctx, customRun.Spec.Params),
 			})
 			if err == nil {
 				hashSum := fmt.Sprintf("%x", md5.Sum(marshal))
@@ -375,7 +402,7 @@ func (c *Reconciler) reconcile(ctx context.Context, customRun *tektonv1beta1.Cus
 	if !c.cacheStore.Disabled && isCachingEnabled(customRun) {
 		marshal, err := json.Marshal(CacheKey{
 			PipelineLoopSpec: pipelineLoopSpec,
-			Params:           customRun.Spec.Params,
+			Params:           v1ParamsConversion(ctx, customRun.Spec.Params),
 		})
 		if marshal != nil && err == nil {
 			hashSum = fmt.Sprintf("%x", md5.Sum(marshal))
@@ -465,7 +492,7 @@ func (c *Reconciler) reconcile(ctx context.Context, customRun *tektonv1beta1.Cus
 			if err != nil {
 				return err
 			}
-			_, _ = c.pipelineClientSet.TektonV1beta1().PipelineRuns(failedPr.Namespace).
+			_, _ = c.pipelineClientSet.TektonV1().PipelineRuns(failedPr.Namespace).
 				Patch(ctx, failedPr.Name, types.MergePatchType, patch, metav1.PatchOptions{})
 			pr, err := c.createPipelineRun(ctx, logger, pipelineLoopSpec, customRun, highestIteration, iterationElements)
 			if err != nil {
@@ -636,7 +663,7 @@ func updateRunStatus(customRun *tektonv1beta1.CustomRun, resultName string, resu
 	return true
 }
 
-func (c *Reconciler) createPipelineRun(ctx context.Context, logger *zap.SugaredLogger, tls *pipelineloopv1alpha1.PipelineLoopSpec, customRun *tektonv1beta1.CustomRun, iteration int, iterationElements []interface{}) (*v1beta1.PipelineRun, error) {
+func (c *Reconciler) createPipelineRun(ctx context.Context, logger *zap.SugaredLogger, tls *pipelineloopv1alpha1.PipelineLoopSpec, customRun *tektonv1beta1.CustomRun, iteration int, iterationElements []interface{}) (*tektonv1.PipelineRun, error) {
 
 	// Create name for PipelineRun from CustomRun name plus iteration number.
 	prName := names.SimpleNameGenerator.RestrictLengthWithRandomSuffix(fmt.Sprintf("%s-%s", customRun.Name, fmt.Sprintf("%05d", iteration)))
@@ -647,8 +674,7 @@ func (c *Reconciler) createPipelineRun(ctx context.Context, logger *zap.SugaredL
 	}
 	currentIterationItemBytes, _ := json.Marshal(iterationElements[currentIndex])
 	pipelineRunAnnotations[pipelineloop.GroupName+pipelineLoopCurrentIterationItemAnnotationKey] = string(currentIterationItemBytes)
-
-	pr := &tektonv1beta1.PipelineRun{
+	pr := &tektonv1.PipelineRun{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      prName,
 			Namespace: customRun.Namespace,
@@ -657,17 +683,21 @@ func (c *Reconciler) createPipelineRun(ctx context.Context, logger *zap.SugaredL
 			Labels:      getPipelineRunLabels(customRun, strconv.Itoa(iteration)),
 			Annotations: pipelineRunAnnotations,
 		},
-		Spec: tektonv1beta1.PipelineRunSpec{
-			Params:             getParameters(customRun, tls, iteration, string(currentIterationItemBytes)),
-			Timeout:            tls.Timeout,
-			ServiceAccountName: tls.ServiceAccountName,
-			PodTemplate:        tls.PodTemplate,
-			Workspaces:         tls.Workspaces,
-			TaskRunSpecs:       tls.TaskRunSpecs,
+		Spec: tektonv1.PipelineRunSpec{
+			Params:   getParameters(customRun, tls, iteration, string(currentIterationItemBytes)),
+			Timeouts: nil,
+			TaskRunTemplate: tektonv1.PipelineTaskRunTemplate{
+				ServiceAccountName: tls.ServiceAccountName,
+				PodTemplate:        tls.PodTemplate,
+			},
+			Workspaces:   tls.Workspaces,
+			TaskRunSpecs: tls.TaskRunSpecs,
 		}}
-
+	if tls.Timeout != nil {
+		pr.Spec.Timeouts = &tektonv1.TimeoutFields{Pipeline: tls.Timeout}
+	}
 	if tls.PipelineRef != nil {
-		pr.Spec.PipelineRef = &tektonv1beta1.PipelineRef{
+		pr.Spec.PipelineRef = &tektonv1.PipelineRef{
 			Name: tls.PipelineRef.Name,
 			// Kind: tls.PipelineRef.Kind,
 		}
@@ -676,7 +706,7 @@ func (c *Reconciler) createPipelineRun(ctx context.Context, logger *zap.SugaredL
 	}
 
 	logger.Infof("Creating a new PipelineRun object %s", prName)
-	return c.pipelineClientSet.TektonV1beta1().PipelineRuns(customRun.Namespace).Create(ctx, pr, metav1.CreateOptions{})
+	return c.pipelineClientSet.TektonV1().PipelineRuns(customRun.Namespace).Create(ctx, pr, metav1.CreateOptions{})
 
 }
 
@@ -712,7 +742,7 @@ func (c *Reconciler) cancelAllPipelineRuns(ctx context.Context, customRun *tekto
 	for _, currentRunningPr := range currentRunningPrs {
 		if !currentRunningPr.IsDone() && !currentRunningPr.IsCancelled() {
 			logger.Infof("Cancelling PipelineRun %s.", currentRunningPr.Name)
-			if _, err := c.pipelineClientSet.TektonV1beta1().PipelineRuns(customRun.Namespace).Patch(ctx, currentRunningPr.Name, types.JSONPatchType, cancelPatchBytes, metav1.PatchOptions{}); err != nil {
+			if _, err := c.pipelineClientSet.TektonV1().PipelineRuns(customRun.Namespace).Patch(ctx, currentRunningPr.Name, types.JSONPatchType, cancelPatchBytes, metav1.PatchOptions{}); err != nil {
 				customRun.Status.MarkCustomRunFailed(pipelineloopv1alpha1.PipelineLoopRunReasonCouldntCancel.String(),
 					"Failed to patch PipelineRun `%s` with cancellation: %v", currentRunningPr.Name, err)
 				return nil
@@ -722,11 +752,11 @@ func (c *Reconciler) cancelAllPipelineRuns(ctx context.Context, customRun *tekto
 	return nil
 }
 
-func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationElements []interface{}, customRun *tektonv1beta1.CustomRun, status *pipelineloopv1alpha1.PipelineLoopRunStatus) (int, []*v1beta1.PipelineRun, []*v1beta1.PipelineRun, error) {
+func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationElements []interface{}, customRun *tektonv1beta1.CustomRun, status *pipelineloopv1alpha1.PipelineLoopRunStatus) (int, []*tektonv1.PipelineRun, []*tektonv1.PipelineRun, error) {
 	logger := logging.FromContext(ctx)
 	highestIteration := 0
-	var currentRunningPrs []*tektonv1beta1.PipelineRun
-	var failedPrs []*tektonv1beta1.PipelineRun
+	var currentRunningPrs []*tektonv1.PipelineRun
+	var failedPrs []*tektonv1.PipelineRun
 	if status.PipelineRuns == nil {
 		status.PipelineRuns = make(map[string]*pipelineloopv1alpha1.PipelineLoopPipelineRunStatus)
 	}
@@ -790,6 +820,8 @@ func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationEleme
 		if iteration > highestIteration {
 			highestIteration = iteration
 		}
+		taskrunstatuses := make(map[string]*tektonv1.PipelineRunTaskRunStatus)
+		runstatuses := make(map[string]*tektonv1.PipelineRunRunStatus)
 		if pr.Status.ChildReferences != nil {
 			//fetch taskruns/runs status specifically for pipelineloop-break-operation first
 			for _, child := range pr.Status.ChildReferences {
@@ -802,10 +834,7 @@ func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationEleme
 							return 0, nil, nil, fmt.Errorf("could not get TaskRun %s."+
 								" %#v", child.Name, err)
 						}
-						if pr.Status.TaskRuns == nil {
-							pr.Status.TaskRuns = make(map[string]*tektonv1beta1.PipelineRunTaskRunStatus)
-						}
-						pr.Status.TaskRuns[child.Name] = &tektonv1beta1.PipelineRunTaskRunStatus{
+						taskrunstatuses[child.Name] = &tektonv1.PipelineRunTaskRunStatus{
 							PipelineTaskName: child.PipelineTaskName,
 							WhenExpressions:  child.WhenExpressions,
 							Status:           tr.DeepCopy(),
@@ -817,11 +846,7 @@ func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationEleme
 							return 0, nil, nil, fmt.Errorf("could not get Run %s."+
 								" %#v", child.Name, err)
 						}
-						if pr.Status.Runs == nil {
-							pr.Status.Runs = make(map[string]*tektonv1beta1.PipelineRunRunStatus)
-						}
-
-						pr.Status.Runs[child.Name] = &tektonv1beta1.PipelineRunRunStatus{
+						runstatuses[child.Name] = &tektonv1.PipelineRunRunStatus{
 							PipelineTaskName: child.PipelineTaskName,
 							WhenExpressions:  child.WhenExpressions,
 							Status:           run.DeepCopy(),
@@ -833,11 +858,7 @@ func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationEleme
 							return 0, nil, nil, fmt.Errorf("could not get CustomRun %s."+
 								" %#v", child.Name, err)
 						}
-						if pr.Status.Runs == nil {
-							pr.Status.Runs = make(map[string]*tektonv1beta1.PipelineRunRunStatus)
-						}
-
-						pr.Status.Runs[child.Name] = &tektonv1beta1.PipelineRunRunStatus{
+						runstatuses[child.Name] = &tektonv1.PipelineRunRunStatus{
 							PipelineTaskName: child.PipelineTaskName,
 							WhenExpressions:  child.WhenExpressions,
 							Status:           run.DeepCopy(),
@@ -848,7 +869,7 @@ func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationEleme
 				}
 			}
 		}
-		for _, runStatus := range pr.Status.Runs {
+		for _, runStatus := range runstatuses {
 			if strings.HasPrefix(runStatus.PipelineTaskName, "pipelineloop-break-operation") {
 				if runStatus.Status != nil && !runStatus.Status.GetCondition(apis.ConditionSucceeded).IsUnknown() {
 					err = c.cancelAllPipelineRuns(ctx, customRun)
@@ -864,7 +885,7 @@ func (c *Reconciler) updatePipelineRunStatus(ctx context.Context, iterationEleme
 				}
 			}
 		}
-		for _, taskRunStatus := range pr.Status.TaskRuns {
+		for _, taskRunStatus := range taskrunstatuses {
 			if strings.HasPrefix(taskRunStatus.PipelineTaskName, "pipelineloop-break-operation") {
 				if !taskRunStatus.Status.GetCondition(apis.ConditionSucceeded).IsUnknown() {
 					err = c.cancelAllPipelineRuns(ctx, customRun)
@@ -1029,8 +1050,8 @@ func computeIterations(run *tektonv1beta1.CustomRun, tls *pipelineloopv1alpha1.P
 	return numberOfIterations, iterationElements, err
 }
 
-func getParameters(customRun *tektonv1beta1.CustomRun, tls *pipelineloopv1alpha1.PipelineLoopSpec, iteration int, currentIterationItem string) []v1beta1.Param {
-	var out []v1beta1.Param
+func getParameters(customRun *tektonv1beta1.CustomRun, tls *pipelineloopv1alpha1.PipelineLoopSpec, iteration int, currentIterationItem string) []tektonv1.Param {
+	var out []tektonv1.Param
 	if tls.IterateParam != "" {
 		// IterateParam defined
 		var iterationParam, iterationParamStrSeparator *v1beta1.Param
@@ -1038,9 +1059,9 @@ func getParameters(customRun *tektonv1beta1.CustomRun, tls *pipelineloopv1alpha1
 		for i, p := range customRun.Spec.Params {
 			if p.Name == tls.IterateParam {
 				if p.Value.Type == v1beta1.ParamTypeArray {
-					out = append(out, v1beta1.Param{
+					out = append(out, tektonv1.Param{
 						Name:  p.Name,
-						Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: p.Value.ArrayVal[iteration-1]},
+						Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: p.Value.ArrayVal[iteration-1]},
 					})
 				}
 				if p.Value.Type == v1beta1.ParamTypeString {
@@ -1051,16 +1072,19 @@ func getParameters(customRun *tektonv1beta1.CustomRun, tls *pipelineloopv1alpha1
 				separator = p
 				iterationParamStrSeparator = &separator
 			} else {
-				out = append(out, customRun.Spec.Params[i])
+				v1Param := tektonv1.Param{}
+				ctx := context.Background()
+				paramConvertTo(ctx, &customRun.Spec.Params[i], &v1Param)
+				out = append(out, v1Param)
 			}
 		}
 		if iterationParam != nil {
 			if iterationParamStrSeparator != nil && iterationParamStrSeparator.Value.StringVal != "" {
 				iterationParamStr := iterationParam.Value.StringVal
 				stringArr := strings.Split(iterationParamStr, iterationParamStrSeparator.Value.StringVal)
-				out = append(out, v1beta1.Param{
+				out = append(out, tektonv1.Param{
 					Name:  iterationParam.Name,
-					Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: stringArr[iteration-1]},
+					Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: stringArr[iteration-1]},
 				})
 
 			} else {
@@ -1074,36 +1098,36 @@ func getParameters(customRun *tektonv1beta1.CustomRun, tls *pipelineloopv1alpha1
 				errDictString := json.Unmarshal([]byte(iterationParamStr), &dictsString)
 				errDictInt := json.Unmarshal([]byte(iterationParamStr), &dictsInt)
 				if errString == nil {
-					out = append(out, v1beta1.Param{
+					out = append(out, tektonv1.Param{
 						Name:  iterationParam.Name,
-						Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: stringArr[iteration-1]},
+						Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: stringArr[iteration-1]},
 					})
 				} else if errInt == nil {
-					out = append(out, v1beta1.Param{
+					out = append(out, tektonv1.Param{
 						Name:  iterationParam.Name,
-						Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: strconv.Itoa(ints[iteration-1])},
+						Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: strconv.Itoa(ints[iteration-1])},
 					})
 				} else if errDictString == nil {
 					for dictParam := range dictsString[iteration-1] {
-						out = append(out, v1beta1.Param{
+						out = append(out, tektonv1.Param{
 							Name:  iterationParam.Name + "-subvar-" + dictParam,
-							Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: dictsString[iteration-1][dictParam]},
+							Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: dictsString[iteration-1][dictParam]},
 						})
 					}
 				} else if errDictInt == nil {
 					for dictParam := range dictsInt[iteration-1] {
-						out = append(out, v1beta1.Param{
+						out = append(out, tektonv1.Param{
 							Name:  iterationParam.Name + "-subvar-" + dictParam,
-							Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: strconv.Itoa(dictsInt[iteration-1][dictParam])},
+							Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: strconv.Itoa(dictsInt[iteration-1][dictParam])},
 						})
 					}
 				} else {
 					//try the default separator ","
 					if strings.Contains(iterationParamStr, defaultIterationParamStrSeparator) {
 						stringArr := strings.Split(iterationParamStr, defaultIterationParamStrSeparator)
-						out = append(out, v1beta1.Param{
+						out = append(out, tektonv1.Param{
 							Name:  iterationParam.Name,
-							Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: stringArr[iteration-1]},
+							Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: stringArr[iteration-1]},
 						})
 					}
 				}
@@ -1114,20 +1138,23 @@ func getParameters(customRun *tektonv1beta1.CustomRun, tls *pipelineloopv1alpha1
 		IterateStrings := []string{"from", "step", "to"}
 		for i, p := range customRun.Spec.Params {
 			if _, found := Find(IterateStrings, p.Name); !found {
-				out = append(out, customRun.Spec.Params[i])
+				v1Param := tektonv1.Param{}
+				ctx := context.Background()
+				paramConvertTo(ctx, &customRun.Spec.Params[i], &v1Param)
+				out = append(out, v1Param)
 			}
 		}
 	}
 	if tls.IterationNumberParam != "" {
-		out = append(out, v1beta1.Param{
+		out = append(out, tektonv1.Param{
 			Name:  tls.IterationNumberParam,
-			Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: strconv.Itoa(iteration)},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: strconv.Itoa(iteration)},
 		})
 	}
 	if tls.IterateNumeric != "" {
-		out = append(out, v1beta1.Param{
+		out = append(out, tektonv1.Param{
 			Name:  tls.IterateNumeric,
-			Value: v1beta1.ArrayOrString{Type: v1beta1.ParamTypeString, StringVal: currentIterationItem},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: currentIterationItem},
 		})
 	}
 	return out
@@ -1214,13 +1241,8 @@ func storePipelineLoopSpec(status *pipelineloopv1alpha1.PipelineLoopRunStatus, t
 // Additionally, performance of status update in customRun reconciler is impacted.
 // PipelineSpec and TaskSpec seems to be redundant in this place.
 // See issue: https://github.com/kubeflow/kfp-tekton/issues/962
-func getPipelineRunStatusWithoutPipelineSpec(status *v1beta1.PipelineRunStatus) *v1beta1.PipelineRunStatus {
+func getPipelineRunStatusWithoutPipelineSpec(status *tektonv1.PipelineRunStatus) *tektonv1.PipelineRunStatus {
 	s := status.DeepCopy()
 	s.PipelineSpec = nil
-	if s.TaskRuns != nil {
-		for _, taskRun := range s.TaskRuns {
-			taskRun.Status.TaskSpec = nil
-		}
-	}
 	return s
 }


Test patch:
diff --git a/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_validation_test.go b/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_validation_test.go
index 54abc5e4ad..39023382bb 100644
--- a/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_validation_test.go
+++ b/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1/pipelineloop_validation_test.go
@@ -23,7 +23,7 @@ import (
 	"github.com/google/go-cmp/cmp"
 	"github.com/google/go-cmp/cmp/cmpopts"
 	pipelineloopv1alpha1 "github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1"
-	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
+	tektonv1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	"github.com/tektoncd/pipeline/test/diff"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"knative.dev/pkg/apis"
@@ -38,7 +38,7 @@ func TestPipelineLoop_Validate_Success(t *testing.T) {
 		tl: &pipelineloopv1alpha1.PipelineLoop{
 			ObjectMeta: metav1.ObjectMeta{Name: "pipelineloop"},
 			Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-				PipelineRef: &v1beta1.PipelineRef{Name: "mypipeline"},
+				PipelineRef: &tektonv1.PipelineRef{Name: "mypipeline"},
 			},
 		},
 	}, {
@@ -47,12 +47,12 @@ func TestPipelineLoop_Validate_Success(t *testing.T) {
 			ObjectMeta: metav1.ObjectMeta{Name: "pipelineloop"},
 			Spec: pipelineloopv1alpha1.PipelineLoopSpec{
 				IterateParam: "messages",
-				PipelineSpec: &v1beta1.PipelineSpec{
-					Tasks: []v1beta1.PipelineTask{{
+				PipelineSpec: &tektonv1.PipelineSpec{
+					Tasks: []tektonv1.PipelineTask{{
 						Name: "mytask",
-						TaskSpec: &v1beta1.EmbeddedTask{
-							TaskSpec: v1beta1.TaskSpec{
-								Steps: []v1beta1.Step{{
+						TaskSpec: &tektonv1.EmbeddedTask{
+							TaskSpec: tektonv1.TaskSpec{
+								Steps: []tektonv1.Step{{
 									Name: "foo", Image: "bar",
 								}},
 							},
@@ -67,33 +67,33 @@ func TestPipelineLoop_Validate_Success(t *testing.T) {
 			ObjectMeta: metav1.ObjectMeta{Name: "pipelineloop"},
 			Spec: pipelineloopv1alpha1.PipelineLoopSpec{
 				IterateParam: "messages",
-				PipelineSpec: &v1beta1.PipelineSpec{
-					Params: []v1beta1.ParamSpec{{
+				PipelineSpec: &tektonv1.PipelineSpec{
+					Params: []tektonv1.ParamSpec{{
 						Name: "messages",
-						Type: v1beta1.ParamTypeString,
+						Type: tektonv1.ParamTypeString,
 					}, {
 						Name: "additional-parameter",
-						Type: v1beta1.ParamTypeString,
+						Type: tektonv1.ParamTypeString,
 					}},
-					Tasks: []v1beta1.PipelineTask{{
+					Tasks: []tektonv1.PipelineTask{{
 						Name: "mytask",
-						Params: []v1beta1.Param{{
+						Params: []tektonv1.Param{{
 							Name:  "messages",
-							Value: v1beta1.ArrayOrString{},
+							Value: tektonv1.ParamValue{},
 						}, {
 							Name:  "additional-parameter",
-							Value: v1beta1.ArrayOrString{},
+							Value: tektonv1.ParamValue{},
 						}},
-						TaskSpec: &v1beta1.EmbeddedTask{
-							TaskSpec: v1beta1.TaskSpec{
-								Params: []v1beta1.ParamSpec{{
+						TaskSpec: &tektonv1.EmbeddedTask{
+							TaskSpec: tektonv1.TaskSpec{
+								Params: []tektonv1.ParamSpec{{
 									Name: "messages",
-									Type: v1beta1.ParamTypeString,
+									Type: tektonv1.ParamTypeString,
 								}, {
 									Name: "additional-parameter",
-									Type: v1beta1.ParamTypeString,
+									Type: tektonv1.ParamTypeString,
 								}},
-								Steps: []v1beta1.Step{{
+								Steps: []tektonv1.Step{{
 									Name: "foo", Image: "bar",
 								}},
 							},
@@ -135,13 +135,13 @@ func TestPipelineLoop_Validate_Error(t *testing.T) {
 		tl: &pipelineloopv1alpha1.PipelineLoop{
 			ObjectMeta: metav1.ObjectMeta{Name: "pipelineloop"},
 			Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-				PipelineRef: &v1beta1.PipelineRef{Name: "mypipeline"},
-				PipelineSpec: &v1beta1.PipelineSpec{
-					Tasks: []v1beta1.PipelineTask{{
+				PipelineRef: &tektonv1.PipelineRef{Name: "mypipeline"},
+				PipelineSpec: &tektonv1.PipelineSpec{
+					Tasks: []tektonv1.PipelineTask{{
 						Name: "mytask",
-						TaskSpec: &v1beta1.EmbeddedTask{
-							TaskSpec: v1beta1.TaskSpec{
-								Steps: []v1beta1.Step{{
+						TaskSpec: &tektonv1.EmbeddedTask{
+							TaskSpec: tektonv1.TaskSpec{
+								Steps: []tektonv1.Step{{
 									Name: "foo", Image: "bar",
 								}},
 							},
@@ -159,7 +159,7 @@ func TestPipelineLoop_Validate_Error(t *testing.T) {
 		tl: &pipelineloopv1alpha1.PipelineLoop{
 			ObjectMeta: metav1.ObjectMeta{Name: "pipelineloop"},
 			Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-				PipelineRef: &v1beta1.PipelineRef{Name: "_bad"},
+				PipelineRef: &tektonv1.PipelineRef{Name: "_bad"},
 			},
 		},
 		expectedError: apis.FieldError{
@@ -173,12 +173,12 @@ func TestPipelineLoop_Validate_Error(t *testing.T) {
 		tl: &pipelineloopv1alpha1.PipelineLoop{
 			ObjectMeta: metav1.ObjectMeta{Name: "pipelineloop"},
 			Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-				PipelineSpec: &v1beta1.PipelineSpec{
-					Tasks: []v1beta1.PipelineTask{{
+				PipelineSpec: &tektonv1.PipelineSpec{
+					Tasks: []tektonv1.PipelineTask{{
 						Name: "mytask",
-						TaskSpec: &v1beta1.EmbeddedTask{
-							TaskSpec: v1beta1.TaskSpec{
-								Steps: []v1beta1.Step{{
+						TaskSpec: &tektonv1.EmbeddedTask{
+							TaskSpec: tektonv1.TaskSpec{
+								Steps: []tektonv1.Step{{
 									Name: "bad@name!", Image: "bar",
 								}},
 							},
diff --git a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelineloop_range_test.go b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelineloop_range_test.go
index 0d6a7a53e7..c0aebedde6 100644
--- a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelineloop_range_test.go
+++ b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelineloop_range_test.go
@@ -24,6 +24,7 @@ import (
 	"github.com/google/go-cmp/cmp"
 	pipelineloopv1alpha1 "github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/pkg/apis/pipelineloop/v1alpha1"
 	"github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/test"
+	tektonv1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	tektonv1beta1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
 	"github.com/tektoncd/pipeline/test/diff"
 	"github.com/tektoncd/pipeline/test/names"
@@ -32,7 +33,7 @@ import (
 	_ "knative.dev/pkg/system/testing"
 )
 
-var expectedPipelineRunWithRange1 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunWithRange1 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -56,19 +57,19 @@ var expectedPipelineRunWithRange1 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": "-1",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "n-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "n-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "iteration",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "-1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "-1"},
 		}},
 	},
 }
 
-var expectedPipelineRunWithRange2 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunWithRange2 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -92,18 +93,18 @@ var expectedPipelineRunWithRange2 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": "1",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "n-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "n-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "iteration",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "1"},
 		}},
 	},
 }
-var expectedPipelineRunWithRange3 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunWithRange3 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -127,14 +128,14 @@ var expectedPipelineRunWithRange3 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": "0",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "n-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "n-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "iteration",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "0"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "0"},
 		}},
 	},
 }
@@ -148,7 +149,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		step                 string
 		expectedStatus       corev1.ConditionStatus
 		expectedReason       pipelineloopv1alpha1.PipelineLoopRunReason
-		expectedPipelineruns []*tektonv1beta1.PipelineRun
+		expectedPipelineruns []*tektonv1.PipelineRun
 		expectedEvents       []string
 	}{{
 		name:                 "Case from = to",
@@ -157,7 +158,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		step:                 "1",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange2},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange2},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from 0 to 0 and non zero step increment",
@@ -166,7 +167,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "0",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange3},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange3},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from < to and +ve step increment",
@@ -175,7 +176,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "0",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange1},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from < to and step == 0",
@@ -184,7 +185,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "0",
 		expectedStatus:       corev1.ConditionFalse,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonFailedValidation,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{},
+		expectedPipelineruns: []*tektonv1.PipelineRun{},
 		expectedEvents:       []string{"Normal Started ", "Warning Failed Cannot determine number of iterations: invalid values step: 0 found in runs"},
 	}, {
 		name:                 "Case to - from < step and step > 0",
@@ -193,7 +194,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange2},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange2},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case to - from < step and step > 0",
@@ -202,7 +203,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange3},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange3},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from = to",
@@ -211,7 +212,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange1},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from > to and non -ve step increment",
@@ -220,7 +221,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1",
 		expectedStatus:       corev1.ConditionFalse,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonFailedValidation,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{},
+		expectedPipelineruns: []*tektonv1.PipelineRun{},
 		expectedEvents:       []string{"Normal Started ", "Warning Failed Cannot determine number of iterations: invalid values step: 0 found in runs"},
 	}, {
 		name:                 "Case step == 0",
@@ -229,7 +230,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1",
 		expectedStatus:       corev1.ConditionFalse,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonFailedValidation,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{},
+		expectedPipelineruns: []*tektonv1.PipelineRun{},
 		expectedEvents:       []string{"Normal Started ", "Warning Failed Cannot determine number of iterations: invalid values step: 0 found in runs"},
 	}, {
 		name:                 "Case from > to and -ve step increment",
@@ -238,7 +239,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange2},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange2},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from > to and -ve step increment",
@@ -247,7 +248,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange3},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange3},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from == 0\n",
@@ -256,7 +257,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "-1\n",
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithRange3},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithRange3},
 		expectedEvents:       []string{"Normal Started ", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Case from == abc\n",
@@ -265,7 +266,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 		to:                   "edf",
 		expectedStatus:       corev1.ConditionFalse,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonFailedValidation,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{},
+		expectedPipelineruns: []*tektonv1.PipelineRun{},
 		expectedEvents:       []string{"Normal Started ", "Warning Failed Cannot determine number of iterations: input \"to\" is not a number"},
 	}}
 
@@ -276,8 +277,8 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 			run := specifyLoopRange(tc.from, tc.to, tc.step, runPipelineLoopWithIterateNumeric)
 			d := test.Data{
 				CustomRuns:   []*tektonv1beta1.CustomRun{run},
-				Pipelines:    []*tektonv1beta1.Pipeline{nPipeline},
-				PipelineRuns: []*tektonv1beta1.PipelineRun{},
+				Pipelines:    []*tektonv1.Pipeline{nPipeline},
+				PipelineRuns: []*tektonv1.PipelineRun{},
 			}
 
 			testAssets, _ := getPipelineLoopController(t, d, []*pipelineloopv1alpha1.PipelineLoop{nPipelineLoop})
@@ -334,7 +335,7 @@ func TestReconcilePipelineLoopRunRange(t *testing.T) {
 				if len(createdPipelineruns) == 0 {
 					t.Errorf("A PipelineRun should have been created but was not")
 				} else {
-					pipelineRunsExpectedToBeCreated := make([]*tektonv1beta1.PipelineRun, len(createdPipelineruns))
+					pipelineRunsExpectedToBeCreated := make([]*tektonv1.PipelineRun, len(createdPipelineruns))
 					i := 0
 					for _, pr := range tc.expectedPipelineruns {
 						if pr.Labels["deleted"] != "True" {
diff --git a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun_test.go b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun_test.go
index 6387caac89..f968b7dc69 100644
--- a/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun_test.go
+++ b/tekton-catalog/pipeline-loops/pkg/reconciler/pipelinelooprun/pipelinelooprun_test.go
@@ -34,6 +34,7 @@ import (
 	fakepipelineloopinformer "github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/pkg/client/injection/informers/pipelineloop/v1alpha1/pipelineloop/fake"
 	"github.com/kubeflow/kfp-tekton/tekton-catalog/pipeline-loops/test"
 	"github.com/tektoncd/pipeline/pkg/apis/pipeline/pod"
+	tektonv1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	tektonv1beta1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
 	ttesting "github.com/tektoncd/pipeline/pkg/reconciler/testing"
 	"github.com/tektoncd/pipeline/test/diff"
@@ -87,37 +88,37 @@ func loopSucceeded(customRun *tektonv1beta1.CustomRun) *tektonv1beta1.CustomRun
 	return customRunWithStatus
 }
 
-func successful(pr *tektonv1beta1.PipelineRun) *tektonv1beta1.PipelineRun {
+func successful(pr *tektonv1.PipelineRun) *tektonv1.PipelineRun {
 	prWithStatus := pr.DeepCopy()
 	prWithStatus.Status.SetCondition(&apis.Condition{
 		Type:    apis.ConditionSucceeded,
 		Status:  corev1.ConditionTrue,
-		Reason:  tektonv1beta1.PipelineRunReasonSuccessful.String(),
+		Reason:  tektonv1.PipelineRunReasonSuccessful.String(),
 		Message: "All Steps have completed executing",
 	})
 	return prWithStatus
 }
 
-func successfulWithSkipedTasks(pr *tektonv1beta1.PipelineRun) *tektonv1beta1.PipelineRun {
+func successfulWithSkipedTasks(pr *tektonv1.PipelineRun) *tektonv1.PipelineRun {
 	prWithStatus := pr.DeepCopy()
 	prWithStatus.Status.SetCondition(&apis.Condition{
 		Type:    apis.ConditionSucceeded,
 		Status:  corev1.ConditionTrue,
-		Reason:  tektonv1beta1.PipelineRunReasonSuccessful.String(),
+		Reason:  tektonv1.PipelineRunReasonSuccessful.String(),
 		Message: "Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 1",
 	})
-	prWithStatus.Status.SkippedTasks = []tektonv1beta1.SkippedTask{{
+	prWithStatus.Status.SkippedTasks = []tektonv1.SkippedTask{{
 		Name: "task-fail",
 	}}
 	return prWithStatus
 }
 
-func failed(pr *tektonv1beta1.PipelineRun) *tektonv1beta1.PipelineRun {
+func failed(pr *tektonv1.PipelineRun) *tektonv1.PipelineRun {
 	prWithStatus := pr.DeepCopy()
 	prWithStatus.Status.SetCondition(&apis.Condition{
 		Type:    apis.ConditionSucceeded,
 		Status:  corev1.ConditionFalse,
-		Reason:  tektonv1beta1.PipelineRunReasonFailed.String(),
+		Reason:  tektonv1.PipelineRunReasonFailed.String(),
 		Message: "Something went wrong",
 	})
 	return prWithStatus
@@ -128,7 +129,7 @@ func setRetries(customRun *tektonv1beta1.CustomRun, retries int) *tektonv1beta1.
 	return customRun
 }
 
-func setDeleted(pr *tektonv1beta1.PipelineRun) *tektonv1beta1.PipelineRun {
+func setDeleted(pr *tektonv1.PipelineRun) *tektonv1.PipelineRun {
 	pr.Labels["deleted"] = "True"
 	return pr
 }
@@ -168,13 +169,13 @@ func getPipelineLoopController(t *testing.T, d test.Data, pipelineloops []*pipel
 	}, cancel
 }
 
-func getCreatedPipelinerun(t *testing.T, clients test.Clients) []*tektonv1beta1.PipelineRun {
+func getCreatedPipelinerun(t *testing.T, clients test.Clients) []*tektonv1.PipelineRun {
 	t.Log("actions", clients.Pipeline.Actions())
-	var createdPr []*tektonv1beta1.PipelineRun
+	var createdPr []*tektonv1.PipelineRun
 	for _, a := range clients.Pipeline.Actions() {
 		if a.GetVerb() == "create" {
 			obj := a.(ktesting.CreateAction).GetObject()
-			if pr, ok := obj.(*tektonv1beta1.PipelineRun); ok {
+			if pr, ok := obj.(*tektonv1.PipelineRun); ok {
 				createdPr = append(createdPr, pr)
 			}
 		}
@@ -268,21 +269,21 @@ func checkRunStatus(t *testing.T, customRun *tektonv1beta1.CustomRun, expectedSt
 	}
 }
 
-var aPipeline = &tektonv1beta1.Pipeline{
+var aPipeline = &tektonv1.Pipeline{
 	ObjectMeta: metav1.ObjectMeta{Name: "a-pipeline", Namespace: "foo"},
-	Spec: tektonv1beta1.PipelineSpec{
-		Params: []tektonv1beta1.ParamSpec{{
+	Spec: tektonv1.PipelineSpec{
+		Params: []tektonv1.ParamSpec{{
 			Name: "current-item",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}, {
 			Name: "additional-parameter",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}},
-		Tasks: []tektonv1beta1.PipelineTask{{
+		Tasks: []tektonv1.PipelineTask{{
 			Name: "mytask",
-			TaskSpec: &tektonv1beta1.EmbeddedTask{
-				TaskSpec: tektonv1beta1.TaskSpec{
-					Steps: []tektonv1beta1.Step{{
+			TaskSpec: &tektonv1.EmbeddedTask{
+				TaskSpec: tektonv1.TaskSpec{
+					Steps: []tektonv1.Step{{
 						Name: "foo", Image: "bar",
 					}},
 				},
@@ -294,7 +295,7 @@ var aPipeline = &tektonv1beta1.Pipeline{
 var aPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 	ObjectMeta: metav1.ObjectMeta{Name: "a-pipelineloop", Namespace: "foo"},
 	Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-		PipelineRef:           &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
+		PipelineRef:           &tektonv1.PipelineRef{Name: "a-pipeline"},
 		IterateParam:          "current-item",
 		IterateParamSeparator: "separator",
 	},
@@ -303,7 +304,7 @@ var aPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 var aPipelineLoop2 = &pipelineloopv1alpha1.PipelineLoop{
 	ObjectMeta: metav1.ObjectMeta{Name: "a-pipelineloop2", Namespace: "foo"},
 	Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-		PipelineRef:           &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
+		PipelineRef:           &tektonv1.PipelineRef{Name: "a-pipeline"},
 		IterateParam:          "current-item",
 		IterateParamSeparator: "separator",
 		IterationNumberParam:  "additional-parameter",
@@ -313,9 +314,9 @@ var aPipelineLoop2 = &pipelineloopv1alpha1.PipelineLoop{
 var wsPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 	ObjectMeta: metav1.ObjectMeta{Name: "ws-pipelineloop", Namespace: "foo"},
 	Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-		PipelineRef:  &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
+		PipelineRef:  &tektonv1.PipelineRef{Name: "a-pipeline"},
 		IterateParam: "current-item",
-		Workspaces: []tektonv1beta1.WorkspaceBinding{{
+		Workspaces: []tektonv1.WorkspaceBinding{{
 			Name: "test",
 			ConfigMap: &corev1.ConfigMapVolumeSource{
 				LocalObjectReference: corev1.LocalObjectReference{Name: "test"},
@@ -328,7 +329,7 @@ var wsPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 var newPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 	ObjectMeta: metav1.ObjectMeta{Name: "new-pipelineloop", Namespace: "foo"},
 	Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-		PipelineRef:        &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
+		PipelineRef:        &tektonv1.PipelineRef{Name: "a-pipeline"},
 		IterateParam:       "current-item",
 		ServiceAccountName: "default",
 		PodTemplate: &pod.PodTemplate{
@@ -338,10 +339,10 @@ var newPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 			}},
 			HostNetwork: true,
 		},
-		TaskRunSpecs: []tektonv1beta1.PipelineTaskRunSpec{{
-			PipelineTaskName:       "test-task",
-			TaskServiceAccountName: "test",
-			TaskPodTemplate: &pod.PodTemplate{
+		TaskRunSpecs: []tektonv1.PipelineTaskRunSpec{{
+			PipelineTaskName:   "test-task",
+			ServiceAccountName: "test",
+			PodTemplate: &pod.PodTemplate{
 				HostAliases: []corev1.HostAlias{{
 					IP:        "0.0.0.0",
 					Hostnames: []string{"localhost"},
@@ -352,21 +353,21 @@ var newPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 	},
 }
 
-var nPipeline = &tektonv1beta1.Pipeline{
+var nPipeline = &tektonv1.Pipeline{
 	ObjectMeta: metav1.ObjectMeta{Name: "n-pipeline", Namespace: "foo"},
-	Spec: tektonv1beta1.PipelineSpec{
-		Params: []tektonv1beta1.ParamSpec{{
+	Spec: tektonv1.PipelineSpec{
+		Params: []tektonv1.ParamSpec{{
 			Name: "iteration",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}, {
 			Name: "additional-parameter",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}},
-		Tasks: []tektonv1beta1.PipelineTask{{
+		Tasks: []tektonv1.PipelineTask{{
 			Name: "mytask",
-			TaskSpec: &tektonv1beta1.EmbeddedTask{
-				TaskSpec: tektonv1beta1.TaskSpec{
-					Steps: []tektonv1beta1.Step{{
+			TaskSpec: &tektonv1.EmbeddedTask{
+				TaskSpec: tektonv1.TaskSpec{
+					Steps: []tektonv1.Step{{
 						Name: "foo", Image: "bar",
 					}},
 				},
@@ -375,21 +376,21 @@ var nPipeline = &tektonv1beta1.Pipeline{
 	},
 }
 
-var paraPipeline = &tektonv1beta1.Pipeline{
+var paraPipeline = &tektonv1.Pipeline{
 	ObjectMeta: metav1.ObjectMeta{Name: "para-pipeline", Namespace: "foo"},
-	Spec: tektonv1beta1.PipelineSpec{
-		Params: []tektonv1beta1.ParamSpec{{
+	Spec: tektonv1.PipelineSpec{
+		Params: []tektonv1.ParamSpec{{
 			Name: "current-item",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}, {
 			Name: "additional-parameter",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}},
-		Tasks: []tektonv1beta1.PipelineTask{{
+		Tasks: []tektonv1.PipelineTask{{
 			Name: "mytask",
-			TaskSpec: &tektonv1beta1.EmbeddedTask{
-				TaskSpec: tektonv1beta1.TaskSpec{
-					Steps: []tektonv1beta1.Step{{
+			TaskSpec: &tektonv1.EmbeddedTask{
+				TaskSpec: tektonv1.TaskSpec{
+					Steps: []tektonv1.Step{{
 						Name: "foo", Image: "bar",
 					}},
 				},
@@ -415,19 +416,19 @@ var ePipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 	},
 }
 
-var nestedPipeline = &tektonv1beta1.Pipeline{
+var nestedPipeline = &tektonv1.Pipeline{
 	ObjectMeta: metav1.ObjectMeta{Name: "nestedPipeline", Namespace: "foo"},
-	Spec: tektonv1beta1.PipelineSpec{
-		Params: []tektonv1beta1.ParamSpec{{
+	Spec: tektonv1.PipelineSpec{
+		Params: []tektonv1.ParamSpec{{
 			Name: "additional-parameter",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}, {
 			Name: "iteration",
-			Type: tektonv1beta1.ParamTypeString,
+			Type: tektonv1.ParamTypeString,
 		}},
-		Tasks: []tektonv1beta1.PipelineTask{{
+		Tasks: []tektonv1.PipelineTask{{
 			Name: "mytask",
-			TaskSpec: &tektonv1beta1.EmbeddedTask{
+			TaskSpec: &tektonv1.EmbeddedTask{
 				TypeMeta: runtime.TypeMeta{
 					APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
 					Kind:       pipelineloop.PipelineLoopControllerName,
@@ -440,7 +441,7 @@ var nestedPipeline = &tektonv1beta1.Pipeline{
 	},
 }
 
-func setPipelineNestedStackDepth(pipeline *tektonv1beta1.Pipeline, depth int) *tektonv1beta1.Pipeline {
+func setPipelineNestedStackDepth(pipeline *tektonv1.Pipeline, depth int) *tektonv1.Pipeline {
 	pl := pipeline.DeepCopy()
 	pl.Spec.Tasks[0].TaskSpec.Metadata.Annotations = map[string]string{MaxNestedStackDepthKey: fmt.Sprint(depth)}
 	return pl
@@ -449,7 +450,7 @@ func setPipelineNestedStackDepth(pipeline *tektonv1beta1.Pipeline, depth int) *t
 var paraPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 	ObjectMeta: metav1.ObjectMeta{Name: "para-pipelineloop", Namespace: "foo"},
 	Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-		PipelineRef:  &tektonv1beta1.PipelineRef{Name: "para-pipeline"},
+		PipelineRef:  &tektonv1.PipelineRef{Name: "para-pipeline"},
 		IterateParam: "current-item",
 		Parallelism:  2,
 	},
@@ -458,7 +459,7 @@ var paraPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 var nPipelineLoop = &pipelineloopv1alpha1.PipelineLoop{
 	ObjectMeta: metav1.ObjectMeta{Name: "n-pipelineloop", Namespace: "foo"},
 	Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-		PipelineRef:    &tektonv1beta1.PipelineRef{Name: "n-pipeline"},
+		PipelineRef:    &tektonv1.PipelineRef{Name: "n-pipeline"},
 		IterateNumeric: "iteration",
 	},
 }
@@ -480,19 +481,19 @@ func setPipelineLoopNestedStackDepth(pl *pipelineloopv1alpha1.PipelineLoop, dept
 var aPipelineLoopWithInlineTask = &pipelineloopv1alpha1.PipelineLoop{
 	ObjectMeta: metav1.ObjectMeta{Name: "a-pipelineloop-with-inline-task", Namespace: "foo"},
 	Spec: pipelineloopv1alpha1.PipelineLoopSpec{
-		PipelineSpec: &tektonv1beta1.PipelineSpec{
-			Tasks: []tektonv1beta1.PipelineTask{{
+		PipelineSpec: &tektonv1.PipelineSpec{
+			Tasks: []tektonv1.PipelineTask{{
 				Name: "mytask",
-				TaskSpec: &tektonv1beta1.EmbeddedTask{
-					TaskSpec: tektonv1beta1.TaskSpec{
-						Params: []tektonv1beta1.ParamSpec{{
+				TaskSpec: &tektonv1.EmbeddedTask{
+					TaskSpec: tektonv1.TaskSpec{
+						Params: []tektonv1.ParamSpec{{
 							Name: "current-item",
-							Type: tektonv1beta1.ParamTypeString,
+							Type: tektonv1.ParamTypeString,
 						}, {
 							Name: "additional-parameter",
-							Type: tektonv1beta1.ParamTypeString,
+							Type: tektonv1.ParamTypeString,
 						}},
-						Steps: []tektonv1beta1.Step{{
+						Steps: []tektonv1.Step{{
 							Name: "foo", Image: "bar",
 						}},
 					},
@@ -522,10 +523,10 @@ var runWsPipelineLoop = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -553,7 +554,7 @@ var runNewPipelineLoop = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -581,10 +582,10 @@ var runPipelineLoop = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -612,7 +613,7 @@ var runPipelineLoop2 = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -636,10 +637,10 @@ var runNestedPipelineLoop = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1"}},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomSpec: &tektonv1beta1.EmbeddedCustomRunSpec{
 			TypeMeta: runtime.TypeMeta{
@@ -673,10 +674,10 @@ var paraRunPipelineLoop = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -706,10 +707,10 @@ var runPipelineLoopWithInDictParams = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `[{"a":1,"b":2}, {"a":2,"b":1}]`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `[{"a":1,"b":2}, {"a":2,"b":1}]`},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -737,10 +738,10 @@ var runPipelineLoopWithInStringParams = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `["item1", "item2"]`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `["item1", "item2"]`},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -768,13 +769,13 @@ var runPipelineLoopWithInStringSeparatorParams = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1|item2"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "item1|item2"},
 		}, {
 			Name:  "separator",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "|"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "|"},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -802,13 +803,13 @@ var runPipelineLoopWithSpaceSeparatorParams = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1 item2"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "item1 item2"},
 		}, {
 			Name:  "separator",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: " "},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: " "},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -836,13 +837,13 @@ var runPipelineLoopWithSpaceParam = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: " "},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: " "},
 		}, {
 			Name:  "separator",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: ","},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: ","},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -870,10 +871,10 @@ var runPipelineLoopWithDefaultSeparatorParams = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1,item2"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "item1,item2"},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -887,13 +888,13 @@ func specifyLoopRange(from, to, step string, r *tektonv1beta1.CustomRun) *tekton
 	t := r.DeepCopy()
 	for n, i := range r.Spec.Params {
 		if i.Name == "from" {
-			t.Spec.Params[n].Value = tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: from}
+			t.Spec.Params[n].Value = tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: from}
 		}
 		if i.Name == "to" {
-			t.Spec.Params[n].Value = tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: to}
+			t.Spec.Params[n].Value = tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: to}
 		}
 		if i.Name == "step" {
-			t.Spec.Params[n].Value = tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: step}
+			t.Spec.Params[n].Value = tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: step}
 		}
 	}
 	return t
@@ -917,16 +918,16 @@ var runPipelineLoopWithIterateNumeric = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "from",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `1`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `1`},
 		}, {
 			Name:  "step",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `1`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `1`},
 		}, {
 			Name:  "to",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `3`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `3`},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -950,10 +951,10 @@ var runPipelineLoopWithInlineTask = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -1000,16 +1001,16 @@ var runWithInvalidRange = &tektonv1beta1.CustomRun{
 		// current-item, which is the iterate parameter, is missing from parameters
 		Params: []tektonv1beta1.Param{{
 			Name:  "from",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `-11`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `-11`},
 		}, {
 			Name:  "step",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `1`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `1`},
 		}, {
 			Name:  "to",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: `-13`},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: `-13`},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -1028,10 +1029,10 @@ var runWithIterateParamNotAnArray = &tektonv1beta1.CustomRun{
 		Params: []tektonv1beta1.Param{{
 			// Value of iteration parameter must be an array so this is an error.
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -1041,7 +1042,7 @@ var runWithIterateParamNotAnArray = &tektonv1beta1.CustomRun{
 	},
 }
 
-var expectedPipelineRunIterationDict = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIterationDict = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1065,22 +1066,22 @@ var expectedPipelineRunIterationDict = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": "{\"a\":1,\"b\":2}",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item-subvar-a",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "1"},
 		}, {
 			Name:  "current-item-subvar-b",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "2"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "2"},
 		}},
 	},
 }
 
-var expectedParaPipelineRun = &tektonv1beta1.PipelineRun{
+var expectedParaPipelineRun = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1104,19 +1105,19 @@ var expectedParaPipelineRun = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "para-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "para-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
 	},
 }
 
-var expectedParaPipelineRun1 = &tektonv1beta1.PipelineRun{
+var expectedParaPipelineRun1 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00002-mz4c7",
 		Namespace: "foo",
@@ -1140,19 +1141,19 @@ var expectedParaPipelineRun1 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item2"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "para-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "para-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item2"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item2"},
 		}},
 	},
 }
 
-var expectedPipelineRunIteration1 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIteration1 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1176,19 +1177,19 @@ var expectedPipelineRunIteration1 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
 	},
 }
 
-var expectedPipelineRunIterationEmptySpace = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIterationEmptySpace = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1212,19 +1213,19 @@ var expectedPipelineRunIterationEmptySpace = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `" item1 "`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: " item1 "},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: " item1 "},
 		}},
 	},
 }
 
-var expectedPipelineRunIterationWithWhiteSpace = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIterationWithWhiteSpace = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1248,19 +1249,19 @@ var expectedPipelineRunIterationWithWhiteSpace = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `" "`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: " "},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: " "},
 		}},
 	},
 }
 
-var expectedPipelineRunFailed = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunFailed = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-failed",
 		Namespace: "foo",
@@ -1284,19 +1285,19 @@ var expectedPipelineRunFailed = &tektonv1beta1.PipelineRun{
 			"myTestAnnotation": "myTestAnnotationValue",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
 	},
 }
 
-var expectedPipelineRunRetry = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunRetry = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1320,19 +1321,19 @@ var expectedPipelineRunRetry = &tektonv1beta1.PipelineRun{
 			"myTestAnnotation": "myTestAnnotationValue",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
 	},
 }
 
-var expectedPipelineRunIterateNumeric1 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIterateNumeric1 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1356,19 +1357,19 @@ var expectedPipelineRunIterateNumeric1 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": "1",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "n-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "n-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "iteration",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "1"},
 		}},
 	},
 }
 
-var expectedPipelineRunIterateNumeric2 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIterateNumeric2 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1392,19 +1393,19 @@ var expectedPipelineRunIterateNumeric2 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": "-10",
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "n-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "n-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "iteration",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "-10"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "-10"},
 		}},
 	},
 }
 
-var expectedPipelineRunIterateNumericParam = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIterateNumericParam = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1428,20 +1429,20 @@ var expectedPipelineRunIterateNumericParam = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "1"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
 	},
 }
 
 // Note: The pipelinerun for the second iteration has the same random suffix as the first due to the resetting of the seed on each test.
-var expectedPipelineRunIteration2 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunIteration2 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00002-9l9zj",
 		Namespace: "foo",
@@ -1465,19 +1466,19 @@ var expectedPipelineRunIteration2 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item2"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item2"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item2"},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}},
 	},
 }
 
-var expectedPipelineRunWithWorkSpace = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunWithWorkSpace = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-ws-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1501,18 +1502,18 @@ var expectedPipelineRunWithWorkSpace = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{
 			Name: "a-pipeline",
 		},
-		Params: []tektonv1beta1.Param{{
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
-		Workspaces: []tektonv1beta1.WorkspaceBinding{{
+		Workspaces: []tektonv1.WorkspaceBinding{{
 			Name: "test",
 			ConfigMap: &corev1.ConfigMapVolumeSource{
 				LocalObjectReference: corev1.LocalObjectReference{Name: "test"},
@@ -1522,7 +1523,7 @@ var expectedPipelineRunWithWorkSpace = &tektonv1beta1.PipelineRun{
 	},
 }
 
-var expectedPipelineRunWithPodTemplate = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunWithPodTemplate = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-new-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1546,26 +1547,28 @@ var expectedPipelineRunWithPodTemplate = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{
 			Name: "a-pipeline",
 		},
-		Params: []tektonv1beta1.Param{{
+		Params: []tektonv1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
-		ServiceAccountName: "default",
-		PodTemplate: &pod.PodTemplate{
-			HostAliases: []corev1.HostAlias{{
-				IP:        "0.0.0.0",
-				Hostnames: []string{"localhost"},
-			}},
-			HostNetwork: true,
+		TaskRunTemplate: tektonv1.PipelineTaskRunTemplate{
+			ServiceAccountName: "default",
+			PodTemplate: &pod.PodTemplate{
+				HostAliases: []corev1.HostAlias{{
+					IP:        "0.0.0.0",
+					Hostnames: []string{"localhost"},
+				}},
+				HostNetwork: true,
+			},
 		},
-		TaskRunSpecs: []tektonv1beta1.PipelineTaskRunSpec{{
-			PipelineTaskName:       "test-task",
-			TaskServiceAccountName: "test",
-			TaskPodTemplate: &pod.PodTemplate{
+		TaskRunSpecs: []tektonv1.PipelineTaskRunSpec{{
+			PipelineTaskName:   "test-task",
+			ServiceAccountName: "test",
+			PodTemplate: &pod.PodTemplate{
 				HostAliases: []corev1.HostAlias{{
 					IP:        "0.0.0.0",
 					Hostnames: []string{"localhost"},
@@ -1576,7 +1579,7 @@ var expectedPipelineRunWithPodTemplate = &tektonv1beta1.PipelineRun{
 	},
 }
 
-var expectedPipelineRunWithInlineTaskIteration1 = &tektonv1beta1.PipelineRun{
+var expectedPipelineRunWithInlineTaskIteration1 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-with-inline-task-00001-9l9zj",
 		Namespace: "foo",
@@ -1600,37 +1603,37 @@ var expectedPipelineRunWithInlineTaskIteration1 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineSpec: &tektonv1beta1.PipelineSpec{
-			Tasks: []tektonv1beta1.PipelineTask{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineSpec: &tektonv1.PipelineSpec{
+			Tasks: []tektonv1.PipelineTask{{
 				Name: "mytask",
-				TaskSpec: &tektonv1beta1.EmbeddedTask{
-					TaskSpec: tektonv1beta1.TaskSpec{
-						Params: []tektonv1beta1.ParamSpec{{
+				TaskSpec: &tektonv1.EmbeddedTask{
+					TaskSpec: tektonv1.TaskSpec{
+						Params: []tektonv1.ParamSpec{{
 							Name: "additional-parameter",
-							Type: tektonv1beta1.ParamTypeString,
+							Type: tektonv1.ParamTypeString,
 						}, {
 							Name: "current-item",
-							Type: tektonv1beta1.ParamTypeString,
+							Type: tektonv1.ParamTypeString,
 						}},
-						Steps: []tektonv1beta1.Step{{
+						Steps: []tektonv1.Step{{
 							Name: "foo", Image: "bar",
 						}},
 					},
 				},
 			}},
 		},
-		Params: []tektonv1beta1.Param{{
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
-		Timeout: &metav1.Duration{Duration: 5 * time.Minute},
+		Timeouts: &tektonv1.TimeoutFields{Pipeline: &metav1.Duration{Duration: 5 * time.Minute}},
 	},
 }
-var expectedNestedPipelineRun = &tektonv1beta1.PipelineRun{
+var expectedNestedPipelineRun = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "nested-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1654,14 +1657,14 @@ var expectedNestedPipelineRun = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
+	Spec: tektonv1.PipelineRunSpec{
 		PipelineSpec: &setPipelineNestedStackDepth(nestedPipeline, 29).Spec,
-		Params: []tektonv1beta1.Param{{
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
 	},
 }
@@ -1681,10 +1684,10 @@ var conditionRunPipelineLoop = &tektonv1beta1.CustomRun{
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeArray, ArrayVal: []string{"item1", "item2"}},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -1694,7 +1697,7 @@ var conditionRunPipelineLoop = &tektonv1beta1.CustomRun{
 	},
 }
 
-var expectedConditionPipelineRunIteration1 = &tektonv1beta1.PipelineRun{
+var expectedConditionPipelineRunIteration1 = &tektonv1.PipelineRun{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "run-pipelineloop-00001-9l9zj",
 		Namespace: "foo",
@@ -1719,14 +1722,14 @@ var expectedConditionPipelineRunIteration1 = &tektonv1beta1.PipelineRun{
 			"custom.tekton.dev/pipelineLoopCurrentIterationItem": `"item1"`,
 		},
 	},
-	Spec: tektonv1beta1.PipelineRunSpec{
-		PipelineRef: &tektonv1beta1.PipelineRef{Name: "a-pipeline"},
-		Params: []tektonv1beta1.Param{{
+	Spec: tektonv1.PipelineRunSpec{
+		PipelineRef: &tektonv1.PipelineRef{Name: "a-pipeline"},
+		Params: []tektonv1.Param{{
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "stuff"},
 		}, {
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "item1"},
+			Value: tektonv1.ParamValue{Type: tektonv1.ParamTypeString, StringVal: "item1"},
 		}},
 	},
 }
@@ -1749,13 +1752,13 @@ var runPipelineLoopWithInStringSeparatorEmptySpaceParams = &tektonv1beta1.Custom
 	Spec: tektonv1beta1.CustomRunSpec{
 		Params: []tektonv1beta1.Param{{
 			Name:  "current-item",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: " item1 | item2 "},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: " item1 | item2 "},
 		}, {
 			Name:  "separator",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "|"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "|"},
 		}, {
 			Name:  "additional-parameter",
-			Value: tektonv1beta1.ArrayOrString{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
+			Value: tektonv1beta1.ParamValue{Type: tektonv1beta1.ParamTypeString, StringVal: "stuff"},
 		}},
 		CustomRef: &tektonv1beta1.TaskRef{
 			APIVersion: pipelineloopv1alpha1.SchemeGroupVersion.String(),
@@ -1769,221 +1772,221 @@ func TestReconcilePipelineLoopRun(t *testing.T) {
 
 	testcases := []struct {
 		name                 string
-		pipeline             *tektonv1beta1.Pipeline
+		pipeline             *tektonv1.Pipeline
 		pipelineloop         *pipelineloopv1alpha1.PipelineLoop
 		run                  *tektonv1beta1.CustomRun
-		pipelineruns         []*tektonv1beta1.PipelineRun
+		pipelineruns         []*tektonv1.PipelineRun
 		expectedStatus       corev1.ConditionStatus
 		expectedReason       pipelineloopv1alpha1.PipelineLoopRunReason
-		expectedPipelineruns []*tektonv1beta1.PipelineRun
+		expectedPipelineruns []*tektonv1.PipelineRun
 		expectedEvents       []string
 	}{{
 		name:                 "Reconcile a new run with a pipelineloop that references a pipeline",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoop,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIteration1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIteration1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop and a dict params",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoopWithInDictParams,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIterationDict},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIterationDict},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop and a string params",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoopWithInStringParams,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIteration1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIteration1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop and a string params with separator",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoopWithInStringSeparatorParams,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIteration1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIteration1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop and an empty space string params with separator",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoopWithInStringSeparatorEmptySpaceParams,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIterationEmptySpace},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIterationEmptySpace},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop and a string params with whitespace separator",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoopWithSpaceSeparatorParams,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIteration1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIteration1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with iterateNumeric defined",
 		pipeline:             nPipeline,
 		pipelineloop:         nPipelineLoop,
 		run:                  runPipelineLoopWithIterateNumeric,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIterateNumeric1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIterateNumeric1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with -ve numeric range defined",
 		pipeline:             nPipeline,
 		pipelineloop:         nPipelineLoop,
 		run:                  specifyLoopRange("-10", "-15", "-1", runPipelineLoopWithIterateNumeric),
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIterateNumeric2},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIterateNumeric2},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with iterationNumberParam defined",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop2,
 		run:                  runPipelineLoop2,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIterateNumericParam},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIterateNumericParam},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop that contains an inline task",
 		pipelineloop:         aPipelineLoopWithInlineTask,
 		run:                  runPipelineLoopWithInlineTask,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithInlineTaskIteration1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithInlineTaskIteration1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop that contains a workspace",
 		pipeline:             aPipeline,
 		pipelineloop:         wsPipelineLoop,
 		run:                  runWsPipelineLoop,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithWorkSpace},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithWorkSpace},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a run after all PipelineRuns have succeeded",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  loopRunning(runPipelineLoop),
-		pipelineruns:         []*tektonv1beta1.PipelineRun{successful(expectedPipelineRunIteration1), successful(expectedPipelineRunIteration2)},
+		pipelineruns:         []*tektonv1.PipelineRun{successful(expectedPipelineRunIteration1), successful(expectedPipelineRunIteration2)},
 		expectedStatus:       corev1.ConditionTrue,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonSucceeded,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{successful(expectedPipelineRunIteration1), successful(expectedPipelineRunIteration2)},
+		expectedPipelineruns: []*tektonv1.PipelineRun{successful(expectedPipelineRunIteration1), successful(expectedPipelineRunIteration2)},
 		expectedEvents:       []string{"Normal Succeeded All PipelineRuns completed successfully"},
 	}, {
 		name:                 "Reconcile a run after the first PipelineRun has failed",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  loopRunning(runPipelineLoop),
-		pipelineruns:         []*tektonv1beta1.PipelineRun{failed(expectedPipelineRunIteration1)},
+		pipelineruns:         []*tektonv1.PipelineRun{failed(expectedPipelineRunIteration1)},
 		expectedStatus:       corev1.ConditionFalse,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonFailed,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{failed(expectedPipelineRunIteration1)},
+		expectedPipelineruns: []*tektonv1.PipelineRun{failed(expectedPipelineRunIteration1)},
 		expectedEvents:       []string{"Warning Failed PipelineRun " + expectedPipelineRunIteration1.Name + " has failed"},
 	}, {
 		name:                 "Reconcile a run with retries after the first PipelineRun has failed",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  loopRunning(setRetries(runPipelineLoop, 1)),
-		pipelineruns:         []*tektonv1beta1.PipelineRun{failed(expectedPipelineRunFailed)},
+		pipelineruns:         []*tektonv1.PipelineRun{failed(expectedPipelineRunFailed)},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{setDeleted(failed(expectedPipelineRunFailed)), expectedPipelineRunRetry},
+		expectedPipelineruns: []*tektonv1.PipelineRun{setDeleted(failed(expectedPipelineRunFailed)), expectedPipelineRunRetry},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop with Parallelism specified",
 		pipeline:             paraPipeline,
 		pipelineloop:         paraPipelineLoop,
 		run:                  paraRunPipelineLoop,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedParaPipelineRun, expectedParaPipelineRun1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedParaPipelineRun, expectedParaPipelineRun1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a nested pipelineloop",
 		pipeline:             nestedPipeline,
 		pipelineloop:         nestedPipelineLoop,
 		run:                  runNestedPipelineLoop,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedNestedPipelineRun},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedNestedPipelineRun},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a recursive pipelineloop with max nested stack depth 0",
 		pipeline:             setPipelineNestedStackDepth(nestedPipeline, 0),
 		pipelineloop:         setPipelineLoopNestedStackDepth(nestedPipelineLoop, 0),
 		run:                  setRunNestedStackDepth(runNestedPipelineLoop, 0),
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionFalse,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonStackLimitExceeded,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{},
+		expectedPipelineruns: []*tektonv1.PipelineRun{},
 		expectedEvents:       []string{"Normal Started ", "Warning Failed nested stack depth limit reached."},
 	}, {
 		name:                 "Reconcile a run with condition pipelinerun, and the first PipelineRun condition check failed",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  loopRunning(conditionRunPipelineLoop),
-		pipelineruns:         []*tektonv1beta1.PipelineRun{successfulWithSkipedTasks(expectedConditionPipelineRunIteration1)},
+		pipelineruns:         []*tektonv1.PipelineRun{successfulWithSkipedTasks(expectedConditionPipelineRunIteration1)},
 		expectedStatus:       corev1.ConditionTrue,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonSucceeded,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{successfulWithSkipedTasks(expectedConditionPipelineRunIteration1)},
+		expectedPipelineruns: []*tektonv1.PipelineRun{successfulWithSkipedTasks(expectedConditionPipelineRunIteration1)},
 		expectedEvents:       []string{"Normal Succeeded PipelineRuns completed successfully with the conditions are met"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop that contains a PodTemplate, ServiceAccountName, TaskRunSpecs",
 		pipeline:             aPipeline,
 		pipelineloop:         newPipelineLoop,
 		run:                  runNewPipelineLoop,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunWithPodTemplate},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunWithPodTemplate},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop and a string params without separator",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoopWithDefaultSeparatorParams,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIteration1},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIteration1},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	}, {
 		name:                 "Reconcile a new run with a pipelineloop and a string params without separator",
 		pipeline:             aPipeline,
 		pipelineloop:         aPipelineLoop,
 		run:                  runPipelineLoopWithSpaceParam,
-		pipelineruns:         []*tektonv1beta1.PipelineRun{},
+		pipelineruns:         []*tektonv1.PipelineRun{},
 		expectedStatus:       corev1.ConditionUnknown,
 		expectedReason:       pipelineloopv1alpha1.PipelineLoopRunReasonRunning,
-		expectedPipelineruns: []*tektonv1beta1.PipelineRun{expectedPipelineRunIterationWithWhiteSpace},
+		expectedPipelineruns: []*tektonv1.PipelineRun{expectedPipelineRunIterationWithWhiteSpace},
 		expectedEvents:       []string{"Normal Started", "Normal Running Iterations completed: 0"},
 	},
 	}
@@ -1993,7 +1996,7 @@ func TestReconcilePipelineLoopRun(t *testing.T) {
 			ctx := context.Background()
 			names.TestingSeed()
 
-			optionalPipeline := []*tektonv1beta1.Pipeline{tc.pipeline}
+			optionalPipeline := []*tektonv1.Pipeline{tc.pipeline}
 			if tc.pipeline == nil {
 				optionalPipeline = nil
 			}
@@ -2058,7 +2061,7 @@ func TestReconcilePipelineLoopRun(t *testing.T) {
 				if len(createdPipelineruns) == 0 {
 					t.Errorf("A PipelineRun should have been created but was not")
 				} else {
-					pipelineRunsExpectedToBeCreated := make([]*tektonv1beta1.PipelineRun, len(createdPipelineruns))
+					pipelineRunsExpectedToBeCreated := make([]*tektonv1.PipelineRun, len(createdPipelineruns))
 					i := 0
 					for _, pr := range tc.expectedPipelineruns {
 						if pr.Labels["deleted"] != "True" {
@@ -2202,12 +2205,12 @@ func disableCacheForRun(run *tektonv1beta1.CustomRun) *tektonv1beta1.CustomRun {
 	return run
 }
 
-func enableCacheForPr(pr *tektonv1beta1.PipelineRun) *tektonv1beta1.PipelineRun {
+func enableCacheForPr(pr *tektonv1.PipelineRun) *tektonv1.PipelineRun {
 	pr.ObjectMeta.Labels["pipelines.kubeflow.org/cache_enabled"] = "true"
 	return pr
 }
 
-func disableCacheForPr(pr *tektonv1beta1.PipelineRun) *tektonv1beta1.PipelineRun {
+func disableCacheForPr(pr *tektonv1.PipelineRun) *tektonv1.PipelineRun {
 	pr.ObjectMeta.Labels["pipelines.kubeflow.org/cache_enabled"] = "false"
 	return pr
 }
@@ -2215,10 +2218,10 @@ func disableCacheForPr(pr *tektonv1beta1.PipelineRun) *tektonv1beta1.PipelineRun
 func TestReconcilePipelineLoopRunCachedRun(t *testing.T) {
 	testcases := []struct {
 		name           string
-		pipeline       *tektonv1beta1.Pipeline
+		pipeline       *tektonv1.Pipeline
 		pipelineloop   *pipelineloopv1alpha1.PipelineLoop
 		run            *tektonv1beta1.CustomRun
-		pipelineruns   []*tektonv1beta1.PipelineRun
+		pipelineruns   []*tektonv1.PipelineRun
 		expectedStatus corev1.ConditionStatus
 		expectedReason pipelineloopv1alpha1.PipelineLoopRunReason
 		expectedEvents []string
@@ -2227,7 +2230,7 @@ func TestReconcilePipelineLoopRunCachedRun(t *testing.T) {
 		pipeline:       aPipeline,
 		pipelineloop:   aPipelineLoop,
 		run:            enableCacheForRun(loopSucceeded(runPipelineLoop)),
-		pipelineruns:   []*tektonv1beta1.PipelineRun{successful(enableCacheForPr(expectedPipelineRunIteration1)), successful(enableCacheForPr(expectedPipelineRunIteration2))},
+		pipelineruns:   []*tektonv1.PipelineRun{successful(enableCacheForPr(expectedPipelineRunIteration1)), successful(enableCacheForPr(expectedPipelineRunIteration2))},
 		expectedStatus: corev1.ConditionTrue,
 		expectedReason: pipelineloopv1alpha1.PipelineLoopRunReasonSucceeded,
 		expectedEvents: []string{},
@@ -2244,7 +2247,7 @@ func TestReconcilePipelineLoopRunCachedRun(t *testing.T) {
 		t.Run(tc.name, func(t *testing.T) {
 			ctx := context.Background()
 			names.TestingSeed()
-			optionalPipeline := []*tektonv1beta1.Pipeline{tc.pipeline}
+			optionalPipeline := []*tektonv1.Pipeline{tc.pipeline}
 			status := &pipelineloopv1alpha1.PipelineLoopRunStatus{}
 			tc.pipelineloop.Spec.SetDefaults(ctx)
 			status.PipelineLoopSpec = &tc.pipelineloop.Spec
@@ -2304,24 +2307,24 @@ func checkRunResult(t *testing.T, run *tektonv1beta1.CustomRun, expectedResult [
 func TestReconcilePipelineLoopRunLastElemResult(t *testing.T) {
 	testcases := []struct {
 		name           string
-		pipeline       *tektonv1beta1.Pipeline
+		pipeline       *tektonv1.Pipeline
 		pipelineloop   *pipelineloopv1alpha1.PipelineLoop
 		customRun      *tektonv1beta1.CustomRun
-		pipelineruns   []*tektonv1beta1.PipelineRun
+		pipelineruns   []*tektonv1.PipelineRun
 		expectedResult []tektonv1beta1.CustomRunResult
 	}{{
 		name:           "Reconcile a new run with a pipelineloop that references a pipeline",
 		pipeline:       aPipeline,
 		pipelineloop:   aPipelineLoop,
 		customRun:      disableCacheForRun(runPipelineLoop),
-		pipelineruns:   []*tektonv1beta1.PipelineRun{disableCacheForPr(successful(expectedPipelineRunIteration1)), disableCacheForPr(successful(expectedPipelineRunIteration2))},
+		pipelineruns:   []*tektonv1.PipelineRun{disableCacheForPr(successful(expectedPipelineRunIteration1)), disableCacheForPr(successful(expectedPipelineRunIteration2))},
 		expectedResult: []tektonv1beta1.CustomRunResult{{Name: "last-idx", Value: "2"}, {Name: "last-elem", Value: "item2"}, {Name: "condition", Value: "succeeded"}},
 	}}
 	for _, tc := range testcases {
 		t.Run(tc.name, func(t *testing.T) {
 			ctx := context.Background()
 			names.TestingSeed()
-			optionalPipeline := []*tektonv1beta1.Pipeline{tc.pipeline}
+			optionalPipeline := []*tektonv1.Pipeline{tc.pipeline}
 			status := &pipelineloopv1alpha1.PipelineLoopRunStatus{}
 			tc.pipelineloop.Spec.SetDefaults(ctx)
 			status.PipelineLoopSpec = &tc.pipelineloop.Spec
diff --git a/tekton-catalog/pipeline-loops/test/controller.go b/tekton-catalog/pipeline-loops/test/controller.go
index 9d31c3e132..7642c8aab0 100644
--- a/tekton-catalog/pipeline-loops/test/controller.go
+++ b/tekton-catalog/pipeline-loops/test/controller.go
@@ -23,16 +23,17 @@ import (
 	"testing"
 
 	// Link in the fakes so they get injected into injection.Fake
+	tektonv1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
 	"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
 	fakepipelineclientset "github.com/tektoncd/pipeline/pkg/client/clientset/versioned/fake"
+	informers "github.com/tektoncd/pipeline/pkg/client/informers/externalversions/pipeline/v1"
 	informersv1beta1 "github.com/tektoncd/pipeline/pkg/client/informers/externalversions/pipeline/v1beta1"
 	fakepipelineclient "github.com/tektoncd/pipeline/pkg/client/injection/client/fake"
-	fakeclustertaskinformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/clustertask/fake"
+	fakepipelineinformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1/pipeline/fake"
+	fakepipelineruninformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1/pipelinerun/fake"
+	faketaskinformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1/task/fake"
+	faketaskruninformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1/taskrun/fake"
 	fakeCustomRunInformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/customrun/fake"
-	fakepipelineinformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/pipeline/fake"
-	fakepipelineruninformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/pipelinerun/fake"
-	faketaskinformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/task/fake"
-	faketaskruninformer "github.com/tektoncd/pipeline/pkg/client/injection/informers/pipeline/v1beta1/taskrun/fake"
 	fakeresourceclientset "github.com/tektoncd/pipeline/pkg/client/resource/clientset/versioned/fake"
 	fakeresourceclient "github.com/tektoncd/pipeline/pkg/client/resource/injection/client/fake"
 	cloudeventclient "github.com/tektoncd/pipeline/pkg/reconciler/events/cloudevent"
@@ -57,11 +58,10 @@ import (
 // Data represents the desired state of the system (i.e. existing resources) to seed controllers
 // with.
 type Data struct {
-	PipelineRuns    []*v1beta1.PipelineRun
-	Pipelines       []*v1beta1.Pipeline
-	TaskRuns        []*v1beta1.TaskRun
-	Tasks           []*v1beta1.Task
-	ClusterTasks    []*v1beta1.ClusterTask
+	PipelineRuns    []*tektonv1.PipelineRun
+	Pipelines       []*tektonv1.Pipeline
+	TaskRuns        []*tektonv1.TaskRun
+	Tasks           []*tektonv1.Task
 	CustomRuns      []*v1beta1.CustomRun
 	Pods            []*corev1.Pod
 	Namespaces      []*corev1.Namespace
@@ -79,12 +79,11 @@ type Clients struct {
 
 // Informers holds references to informers which are useful for reconciler tests.
 type Informers struct {
-	PipelineRun    informersv1beta1.PipelineRunInformer
-	Pipeline       informersv1beta1.PipelineInformer
-	TaskRun        informersv1beta1.TaskRunInformer
+	PipelineRun    informers.PipelineRunInformer
+	Pipeline       informers.PipelineInformer
+	TaskRun        informers.TaskRunInformer
 	CustomRun      informersv1beta1.CustomRunInformer
-	Task           informersv1beta1.TaskInformer
-	ClusterTask    informersv1beta1.ClusterTaskInformer
+	Task           informers.TaskInformer
 	Pod            coreinformers.PodInformer
 	ConfigMap      coreinformers.ConfigMapInformer
 	ServiceAccount coreinformers.ServiceAccountInformer
@@ -162,7 +161,6 @@ func SeedTestData(t *testing.T, ctx context.Context, d Data) (Clients, Informers
 		TaskRun:        faketaskruninformer.Get(ctx),
 		CustomRun:      fakeCustomRunInformer.Get(ctx),
 		Task:           faketaskinformer.Get(ctx),
-		ClusterTask:    fakeclustertaskinformer.Get(ctx),
 		Pod:            fakepodinformer.Get(ctx),
 		ConfigMap:      fakeconfigmapinformer.Get(ctx),
 		ServiceAccount: fakeserviceaccountinformer.Get(ctx),
@@ -174,35 +172,28 @@ func SeedTestData(t *testing.T, ctx context.Context, d Data) (Clients, Informers
 	c.Pipeline.PrependReactor("*", "pipelineruns", AddToInformer(t, i.PipelineRun.Informer().GetIndexer()))
 	for _, pr := range d.PipelineRuns {
 		pr := pr.DeepCopy() // Avoid assumptions that the informer's copy is modified.
-		if _, err := c.Pipeline.TektonV1beta1().PipelineRuns(pr.Namespace).Create(ctx, pr, metav1.CreateOptions{}); err != nil {
+		if _, err := c.Pipeline.TektonV1().PipelineRuns(pr.Namespace).Create(ctx, pr, metav1.CreateOptions{}); err != nil {
 			t.Fatal(err)
 		}
 	}
 	c.Pipeline.PrependReactor("*", "pipelines", AddToInformer(t, i.Pipeline.Informer().GetIndexer()))
 	for _, p := range d.Pipelines {
 		p := p.DeepCopy() // Avoid assumptions that the informer's copy is modified.
-		if _, err := c.Pipeline.TektonV1beta1().Pipelines(p.Namespace).Create(ctx, p, metav1.CreateOptions{}); err != nil {
+		if _, err := c.Pipeline.TektonV1().Pipelines(p.Namespace).Create(ctx, p, metav1.CreateOptions{}); err != nil {
 			t.Fatal(err)
 		}
 	}
 	c.Pipeline.PrependReactor("*", "taskruns", AddToInformer(t, i.TaskRun.Informer().GetIndexer()))
 	for _, tr := range d.TaskRuns {
 		tr := tr.DeepCopy() // Avoid assumptions that the informer's copy is modified.
-		if _, err := c.Pipeline.TektonV1beta1().TaskRuns(tr.Namespace).Create(ctx, tr, metav1.CreateOptions{}); err != nil {
+		if _, err := c.Pipeline.TektonV1().TaskRuns(tr.Namespace).Create(ctx, tr, metav1.CreateOptions{}); err != nil {
 			t.Fatal(err)
 		}
 	}
 	c.Pipeline.PrependReactor("*", "tasks", AddToInformer(t, i.Task.Informer().GetIndexer()))
 	for _, ta := range d.Tasks {
 		ta := ta.DeepCopy() // Avoid assumptions that the informer's copy is modified.
-		if _, err := c.Pipeline.TektonV1beta1().Tasks(ta.Namespace).Create(ctx, ta, metav1.CreateOptions{}); err != nil {
-			t.Fatal(err)
-		}
-	}
-	c.Pipeline.PrependReactor("*", "clustertasks", AddToInformer(t, i.ClusterTask.Informer().GetIndexer()))
-	for _, ct := range d.ClusterTasks {
-		ct := ct.DeepCopy() // Avoid assumptions that the informer's copy is modified.
-		if _, err := c.Pipeline.TektonV1beta1().ClusterTasks().Create(ctx, ct, metav1.CreateOptions{}); err != nil {
+		if _, err := c.Pipeline.TektonV1().Tasks(ta.Namespace).Create(ctx, ta, metav1.CreateOptions{}); err != nil {
 			t.Fatal(err)
 		}
 	}