Skip to content

Commit

Permalink
fix (extensions/tekton) : Update Tekton Model to v0.39.0 (fabric8io#4243
Browse files Browse the repository at this point in the history
)

+ Update tekton pipelines model to v0.39.0
+ Update tekton triggers model to v0.20.2
+ Split tekton triggers model into tekton-model-triggers-v1alpha1 and
  tekton-model-triggers-v1beta1

Signed-off-by: Rohan Kumar <rohaan@redhat.com>
  • Loading branch information
rohanKanojia committed Sep 2, 2022
1 parent 0d8bafc commit 5fc5721
Show file tree
Hide file tree
Showing 132 changed files with 21,940 additions and 2,932 deletions.
6 changes: 5 additions & 1 deletion extensions/tekton/client/pom.xml
Expand Up @@ -66,7 +66,11 @@
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>tekton-model-triggers</artifactId>
<artifactId>tekton-model-triggers-v1alpha1</artifactId>
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>tekton-model-triggers-v1beta1</artifactId>
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
Expand Down
Expand Up @@ -30,6 +30,16 @@
import io.fabric8.tekton.pipeline.v1beta1.TaskList;
import io.fabric8.tekton.pipeline.v1beta1.TaskRun;
import io.fabric8.tekton.pipeline.v1beta1.TaskRunList;
import io.fabric8.tekton.triggers.v1beta1.Trigger;
import io.fabric8.tekton.triggers.v1beta1.TriggerList;
import io.fabric8.tekton.triggers.v1beta1.TriggerTemplate;
import io.fabric8.tekton.triggers.v1beta1.TriggerTemplateList;
import io.fabric8.tekton.triggers.v1beta1.TriggerBinding;
import io.fabric8.tekton.triggers.v1beta1.TriggerBindingList;
import io.fabric8.tekton.triggers.v1beta1.EventListener;
import io.fabric8.tekton.triggers.v1beta1.EventListenerList;
import io.fabric8.tekton.triggers.v1beta1.ClusterTriggerBinding;
import io.fabric8.tekton.triggers.v1beta1.ClusterTriggerBindingList;

public class V1beta1APIGroupClient extends ClientAdapter<V1beta1APIGroupClient> implements V1beta1APIGroupDSL {

Expand Down Expand Up @@ -62,4 +72,29 @@ public MixedOperation<TaskRun, TaskRunList, Resource<TaskRun>> taskRuns() {
public NonNamespaceOperation<ClusterTask, ClusterTaskList, Resource<ClusterTask>> clusterTasks() {
return resources(ClusterTask.class, ClusterTaskList.class);
}

@Override
public MixedOperation<Trigger, TriggerList, Resource<Trigger>> triggers() {
return resources(Trigger.class, TriggerList.class);
}

@Override
public MixedOperation<TriggerTemplate, TriggerTemplateList, Resource<TriggerTemplate>> triggerTemplates() {
return resources(TriggerTemplate.class, TriggerTemplateList.class);
}

@Override
public MixedOperation<TriggerBinding, TriggerBindingList, Resource<TriggerBinding>> triggerBindings() {
return resources(TriggerBinding.class, TriggerBindingList.class);
}

@Override
public MixedOperation<EventListener, EventListenerList, Resource<EventListener>> eventListeners() {
return resources(EventListener.class, EventListenerList.class);
}

@Override
public NonNamespaceOperation<ClusterTriggerBinding, ClusterTriggerBindingList, Resource<ClusterTriggerBinding>> clusterTriggerBindings() {
return resources(ClusterTriggerBinding.class, ClusterTriggerBindingList.class);
}
}
Expand Up @@ -29,6 +29,16 @@
import io.fabric8.tekton.pipeline.v1beta1.TaskList;
import io.fabric8.tekton.pipeline.v1beta1.TaskRun;
import io.fabric8.tekton.pipeline.v1beta1.TaskRunList;
import io.fabric8.tekton.triggers.v1beta1.Trigger;
import io.fabric8.tekton.triggers.v1beta1.TriggerList;
import io.fabric8.tekton.triggers.v1beta1.TriggerTemplate;
import io.fabric8.tekton.triggers.v1beta1.TriggerTemplateList;
import io.fabric8.tekton.triggers.v1beta1.TriggerBinding;
import io.fabric8.tekton.triggers.v1beta1.TriggerBindingList;
import io.fabric8.tekton.triggers.v1beta1.EventListener;
import io.fabric8.tekton.triggers.v1beta1.EventListenerList;
import io.fabric8.tekton.triggers.v1beta1.ClusterTriggerBinding;
import io.fabric8.tekton.triggers.v1beta1.ClusterTriggerBindingList;

public interface V1beta1APIGroupDSL extends Client {
/**
Expand Down Expand Up @@ -66,4 +76,38 @@ public interface V1beta1APIGroupDSL extends Client {
*/
NonNamespaceOperation<ClusterTask, ClusterTaskList, Resource<ClusterTask>> clusterTasks();

/**
* API entrypoint for Trigger(triggers.tekton.dev/v1beta1)
*
* @return MixedOperation for Trigger class
*/
MixedOperation<Trigger, TriggerList, Resource<Trigger>> triggers();

/**
* API entrypoint for TriggerTemplate(triggers.tekton.dev/v1beta1)
*
* @return MixedOperation for TriggerTemplate class
*/
MixedOperation<TriggerTemplate, TriggerTemplateList, Resource<TriggerTemplate>> triggerTemplates();

/**
* API entrypoint for TriggerBinding(triggers.tekton.dev/v1beta1)
*
* @return MixedOperation for TriggerBinding class
*/
MixedOperation<TriggerBinding, TriggerBindingList, Resource<TriggerBinding>> triggerBindings();

/**
* API entrypoint for EventListener(triggers.tekton.dev/v1beta1)
*
* @return MixedOperation for EventListener class
*/
MixedOperation<EventListener, EventListenerList, Resource<EventListener>> eventListeners();

/**
* API entrypoint for ClusterTriggerBinding(triggers.tekton.dev/v1beta1)
*
* @return MixedOperation for ClusterTriggerBinding class
*/
NonNamespaceOperation<ClusterTriggerBinding, ClusterTriggerBindingList, Resource<ClusterTriggerBinding>> clusterTriggerBindings();
}
1 change: 1 addition & 0 deletions extensions/tekton/generator-triggers-v1alpha1/.gitignore
@@ -0,0 +1 @@
/vendor/
28 changes: 28 additions & 0 deletions extensions/tekton/generator-triggers-v1alpha1/Makefile
@@ -0,0 +1,28 @@
#
# Copyright (C) 2015 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

SHELL := /bin/bash

all: build

build: gobuild
pushd ../model-triggers-v1alpha1 && \
mvn clean install -o && \
popd

gobuild:
go mod vendor
CGO_ENABLED=0 GO111MODULE=on GO15VENDOREXPERIMENT=1 go run -mod=vendor -a ./cmd/generate/generate.go > ../model-triggers-v1alpha1/src/main/resources/schema/tekton-schema-triggers.json
@@ -0,0 +1,82 @@
/**
* Copyright (C) 2015 Red Hat, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package main

import (
"fmt"
"github.com/fabric8io/kubernetes-client/generator/pkg/schemagen"
triggers "github.com/tektoncd/triggers/pkg/apis/triggers/v1alpha1"
v1apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
machinery "k8s.io/apimachinery/pkg/apis/meta/v1"
"knative.dev/pkg/apis"
"reflect"
)

func main() {

// the CRD List types for which the model should be generated
// no other types need to be defined as they are auto discovered
crdLists := map[reflect.Type]schemagen.CrdScope{
reflect.TypeOf(triggers.TriggerList{}): schemagen.Namespaced,
reflect.TypeOf(triggers.TriggerTemplateList{}): schemagen.Namespaced,
reflect.TypeOf(triggers.TriggerBindingList{}): schemagen.Namespaced,
reflect.TypeOf(triggers.EventListenerList{}): schemagen.Namespaced,
reflect.TypeOf(triggers.ClusterTriggerBindingList{}): schemagen.Cluster,
reflect.TypeOf(triggers.ClusterInterceptorList{}): schemagen.Cluster,
}

// constraints and patterns for fields
constraints := map[reflect.Type]map[string]*schemagen.Constraint{}

// types that are manually defined in the model
providedTypes := []schemagen.ProvidedType{}

// go packages that are provided and where no generation is required and their corresponding java package
providedPackages := map[string]string{
// external
"k8s.io/api/core/v1": "io.fabric8.kubernetes.api.model",
"k8s.io/apimachinery/pkg/apis/meta/v1": "io.fabric8.kubernetes.api.model",
"github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1": "io.fabric8.tekton.pipeline.v1beta1",
}

// mapping of go packages of this module to the resulting java package
// optional ApiGroup and ApiVersion for the go package (which is added to the generated java class)
packageMapping := map[string]schemagen.PackageInformation{
"github.com/tektoncd/triggers/pkg/apis/triggers/v1alpha1": {JavaPackage: "io.fabric8.tekton.triggers.v1alpha1", ApiGroup: "triggers.tekton.dev", ApiVersion: "v1alpha1"},
}

// converts all packages starting with <key> to a java package using an automated scheme:
// - replace <key> with <value> aka "package prefix"
// - replace '/' with '.' for a valid java package name
// e.g. github.com/tektoncd/pipeline/pkg/apis/pipeline/pod/Template is mapped to "io.fabric8.tekton.internal.pipeline.pkg.apis.pipeline.pod.Template"
mappingSchema := map[string]string{
"knative.dev": "io.fabric8.tekton.triggers.internal.knative",
}

// overwriting some types
manualTypeMap := map[reflect.Type]string{
reflect.TypeOf(machinery.Time{}): "java.lang.String",
reflect.TypeOf(apis.VolatileTime{}): "java.lang.String",
reflect.TypeOf(apis.URL{}): "java.lang.String",
reflect.TypeOf(triggers.TriggerResourceTemplate{}): "io.fabric8.kubernetes.api.model.HasMetadata",
reflect.TypeOf(triggers.CustomResource{}): "io.fabric8.kubernetes.api.model.HasMetadata",
reflect.TypeOf(v1apiextensions.JSON{}): "java.lang.Object",
}

json := schemagen.GenerateSchema("http://fabric8.io/tekton/triggers/TektonSchema#", crdLists, providedPackages, manualTypeMap, packageMapping, mappingSchema, providedTypes, constraints, "io.fabric8")

fmt.Println(json)
}
21 changes: 21 additions & 0 deletions extensions/tekton/generator-triggers-v1alpha1/go.mod
@@ -0,0 +1,21 @@
module github.com/fabric8io/kubernetes-client/extensions/tekton/generator

require (
github.com/fabric8io/kubernetes-client/generator v0.0.0
github.com/tektoncd/triggers v0.20.2
k8s.io/apiextensions-apiserver v0.23.4
k8s.io/apimachinery v0.23.5
k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible // indirect
knative.dev/pkg v0.0.0-20220329144915-0a1ec2e0d46c
)

replace (
github.com/fabric8io/kubernetes-client/generator v0.0.0 => ./../../../generator

k8s.io/api => k8s.io/api v0.23.5
k8s.io/apimachinery => k8s.io/apimachinery v0.23.5
k8s.io/client-go => k8s.io/client-go v0.23.5

)

go 1.13

0 comments on commit 5fc5721

Please sign in to comment.