This is an automated email from the ASF dual-hosted git repository. nferraro pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/master by this push: new 25d6122 Fix #1414: upgrade to knative 0.14 and support v1beta1 channels and broker 25d6122 is described below commit 25d61221b1517208bbd9d51581e5a95eaa2a30c8 Author: Nicola Ferraro <ni.ferr...@gmail.com> AuthorDate: Wed Apr 29 14:52:49 2020 +0200 Fix #1414: upgrade to knative 0.14 and support v1beta1 channels and broker --- cmd/util/doc-gen/generators/traitmetadatagen.go | 6 ++---- e2e/knative/knative_test.go | 20 +++++++++++++++++--- e2e/support/test_support.go | 25 +++++++++++++++++++++---- go.mod | 10 ++++------ go.sum | 7 +++++++ pkg/apis/addtoscheme_knative_eventing.go | 12 ++++++++---- pkg/cmd/trait_help.go | 1 + pkg/trait/knative_test.go | 2 +- pkg/util/knative/apis.go | 24 ++++++++++++++++++++++++ pkg/util/knative/apis_test.go | 8 ++++---- pkg/util/knative/knative.go | 4 ++-- 11 files changed, 91 insertions(+), 28 deletions(-) diff --git a/cmd/util/doc-gen/generators/traitmetadatagen.go b/cmd/util/doc-gen/generators/traitmetadatagen.go index d1b48a0..ac39845 100644 --- a/cmd/util/doc-gen/generators/traitmetadatagen.go +++ b/cmd/util/doc-gen/generators/traitmetadatagen.go @@ -19,13 +19,13 @@ package generators import ( "fmt" - "gopkg.in/yaml.v2" "io" "os" "path" "reflect" "strings" + "gopkg.in/yaml.v2" "k8s.io/gengo/args" "k8s.io/gengo/generator" "k8s.io/gengo/types" @@ -152,9 +152,7 @@ func (g *traitMetaDataGen) buildMembers(t *types.Type, content *[]string, td *tr pd.Name = prop pd.TypeName = strings.TrimPrefix(m.Type.Name.Name, "*") - for _, line := range filterOutTagsAndComments(m.CommentLines) { - res = append(res, line) - } + res = append(res, filterOutTagsAndComments(m.CommentLines)...) pd.Description = strings.Join(res, "") td.Properties = append(td.Properties, pd) } diff --git a/e2e/knative/knative_test.go b/e2e/knative/knative_test.go index c8e79dc..20a996d 100644 --- a/e2e/knative/knative_test.go +++ b/e2e/knative/knative_test.go @@ -51,10 +51,24 @@ func TestRunServiceCombo(t *testing.T) { }) } -func TestRunChannelCombo(t *testing.T) { +func TestRunChannelComboV1Alpha1(t *testing.T) { WithNewTestNamespace(t, func(ns string) { - Expect(CreateKnativeChannel(ns, "messages")()).Should(BeNil()) + Expect(CreateKnativeChannelv1Alpha1(ns, "messages")()).Should(BeNil()) + Expect(Kamel("install", "-n", ns, "--trait-profile", "knative").Execute()).Should(BeNil()) + Expect(Kamel("run", "-n", ns, "files/knativech2.groovy").Execute()).Should(BeNil()) + Expect(Kamel("run", "-n", ns, "files/knativech1.groovy").Execute()).Should(BeNil()) + Eventually(IntegrationPodPhase(ns, "knativech2"), TestTimeoutLong).Should(Equal(v1.PodRunning)) + Eventually(IntegrationPodPhase(ns, "knativech1"), TestTimeoutLong).Should(Equal(v1.PodRunning)) + Eventually(IntegrationLogs(ns, "knativech2"), TestTimeoutMedium).Should(ContainSubstring("Received: Hello from knativech1")) + Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil()) + }) +} + +func TestRunChannelComboV1Beta1(t *testing.T) { + WithNewTestNamespace(t, func(ns string) { + + Expect(CreateKnativeChannelv1Beta1(ns, "messages")()).Should(BeNil()) Expect(Kamel("install", "-n", ns, "--trait-profile", "knative").Execute()).Should(BeNil()) Expect(Kamel("run", "-n", ns, "files/knativech2.groovy").Execute()).Should(BeNil()) Expect(Kamel("run", "-n", ns, "files/knativech1.groovy").Execute()).Should(BeNil()) @@ -68,7 +82,7 @@ func TestRunChannelCombo(t *testing.T) { func TestRunChannelComboGetToPost(t *testing.T) { WithNewTestNamespace(t, func(ns string) { - Expect(CreateKnativeChannel(ns, "messages")()).Should(BeNil()) + Expect(CreateKnativeChannelv1Beta1(ns, "messages")()).Should(BeNil()) Expect(Kamel("install", "-n", ns, "--trait-profile", "knative").Execute()).Should(BeNil()) Expect(Kamel("run", "-n", ns, "files/knativegetpost2.groovy").Execute()).Should(BeNil()) Expect(Kamel("run", "-n", ns, "files/knativegetpost1.groovy").Execute()).Should(BeNil()) diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go index c622164..3a21b74 100644 --- a/e2e/support/test_support.go +++ b/e2e/support/test_support.go @@ -58,7 +58,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" eventing "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" k8sclient "sigs.k8s.io/controller-runtime/pkg/client" // let's enable addons in all tests @@ -864,12 +865,28 @@ func CreateKamelPod(ns string, name string, command ...string) error { Knative */ -func CreateKnativeChannel(ns string, name string) func() error { +func CreateKnativeChannelv1Alpha1(ns string, name string) func() error { return func() error { - channel := messaging.InMemoryChannel{ + channel := messagingv1alpha1.InMemoryChannel{ TypeMeta: metav1.TypeMeta{ Kind: "InMemoryChannel", - APIVersion: messaging.SchemeGroupVersion.String(), + APIVersion: messagingv1alpha1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: ns, + Name: name, + }, + } + return TestClient.Create(TestContext, &channel) + } +} + +func CreateKnativeChannelv1Beta1(ns string, name string) func() error { + return func() error { + channel := messagingv1beta1.InMemoryChannel{ + TypeMeta: metav1.TypeMeta{ + Kind: "InMemoryChannel", + APIVersion: messagingv1beta1.SchemeGroupVersion.String(), }, ObjectMeta: metav1.ObjectMeta{ Namespace: ns, diff --git a/go.mod b/go.mod index b042de0..7790d36 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,6 @@ go 1.13 require ( contrib.go.opencensus.io/exporter/ocagent v0.6.0 // indirect contrib.go.opencensus.io/exporter/prometheus v0.1.0 // indirect - // required by knative 0.12 - contrib.go.opencensus.io/exporter/stackdriver v0.12.9-0.20191108183826-59d068f8d8ff // indirect github.com/Masterminds/semver v1.5.0 github.com/container-tools/spectrum v0.3.2 github.com/coreos/prometheus-operator v0.34.0 @@ -42,14 +40,14 @@ require ( k8s.io/apimachinery v0.17.4 k8s.io/client-go v12.0.0+incompatible k8s.io/gengo v0.0.0-20191010091904-7fa3014cb28f - knative.dev/eventing v0.12.0 - knative.dev/pkg v0.0.0-20200113182502-b8dc5fbc6d2f - knative.dev/serving v0.12.1 + knative.dev/eventing v0.14.1 + knative.dev/pkg v0.0.0-20200410152005-2a1db869228c + knative.dev/serving v0.14.0 sigs.k8s.io/controller-runtime v0.4.0 ) // Pinned to kubernetes 1.16.2: -// - Knative 0.12.0 requires 1.16.4 +// - Knative 0.14.0 requires 1.16.4 // - Operator SDK 0.15.0 requires 1.16.2 replace ( k8s.io/api => k8s.io/api v0.0.0-20191016110408-35e52d86657a diff --git a/go.sum b/go.sum index d5fdd68..93a0e15 100644 --- a/go.sum +++ b/go.sum @@ -1127,10 +1127,17 @@ k8s.io/utils v0.0.0-20191010214722-8d271d903fe4 h1:Gi+/O1saihwDqnlmC8Vhv1M5Sp4+r k8s.io/utils v0.0.0-20191010214722-8d271d903fe4/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= knative.dev/eventing v0.12.0 h1:u3Ck5+dpr2affDlsGfRKnBTb87Is/tfzWNfZz1FSAMI= knative.dev/eventing v0.12.0/go.mod h1:UxweNv8yXhsdHJitcb9R6rmfNaUD2DFi9GWwNRyIs58= +knative.dev/eventing v0.13.8/go.mod h1:UxweNv8yXhsdHJitcb9R6rmfNaUD2DFi9GWwNRyIs58= +knative.dev/eventing v0.14.1 h1:YmnEl3IBVRkBcVYWPMWZegRGifeI7ibcA9xuhHWvAaw= +knative.dev/eventing v0.14.1/go.mod h1:UxweNv8yXhsdHJitcb9R6rmfNaUD2DFi9GWwNRyIs58= knative.dev/pkg v0.0.0-20200113182502-b8dc5fbc6d2f h1:EFhlUkg97lfwyAxsNZUqbmHxVzQ0YpPdNyf/o16WkAw= knative.dev/pkg v0.0.0-20200113182502-b8dc5fbc6d2f/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q= +knative.dev/pkg v0.0.0-20200410152005-2a1db869228c h1:+Ob3pOC0WuNFxKv2UdMGkC0FGSbWC24FvJleJ8+Lp1A= +knative.dev/pkg v0.0.0-20200410152005-2a1db869228c/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q= knative.dev/serving v0.12.1 h1:ZL5pJ5rZq7vNGuhBlG2hU7dp9WnTJLlv2WfwoP9crQk= knative.dev/serving v0.12.1/go.mod h1:x2n255JS2XBI39tmjZ8CwTxIf9EKNMCrkVuiOttLRm0= +knative.dev/serving v0.14.0 h1:9iDyOqTciNuAh2D5KJP0soOq23FDR4HQHdIQNBQ/rAE= +knative.dev/serving v0.14.0/go.mod h1:x2n255JS2XBI39tmjZ8CwTxIf9EKNMCrkVuiOttLRm0= modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= diff --git a/pkg/apis/addtoscheme_knative_eventing.go b/pkg/apis/addtoscheme_knative_eventing.go index 222e639..ef0486b 100644 --- a/pkg/apis/addtoscheme_knative_eventing.go +++ b/pkg/apis/addtoscheme_knative_eventing.go @@ -18,12 +18,16 @@ limitations under the License. package apis import ( - eventing "knative.dev/eventing/pkg/apis/eventing/v1alpha1" - messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + eventingv1alpha1 "knative.dev/eventing/pkg/apis/eventing/v1alpha1" + eventingv1beta1 "knative.dev/eventing/pkg/apis/eventing/v1beta1" + messagingv1alpha1 "knative.dev/eventing/pkg/apis/messaging/v1alpha1" + messagingv1beta1 "knative.dev/eventing/pkg/apis/messaging/v1beta1" ) func init() { // Register the types with the Scheme so the components can map objects to GroupVersionKinds and back - AddToSchemes = append(AddToSchemes, eventing.AddToScheme) - AddToSchemes = append(AddToSchemes, messaging.AddToScheme) + AddToSchemes = append(AddToSchemes, eventingv1alpha1.AddToScheme) + AddToSchemes = append(AddToSchemes, eventingv1beta1.AddToScheme) + AddToSchemes = append(AddToSchemes, messagingv1alpha1.AddToScheme) + AddToSchemes = append(AddToSchemes, messagingv1beta1.AddToScheme) } diff --git a/pkg/cmd/trait_help.go b/pkg/cmd/trait_help.go index 1df82e1..0e2143d 100644 --- a/pkg/cmd/trait_help.go +++ b/pkg/cmd/trait_help.go @@ -131,6 +131,7 @@ func (command *traitHelpCommandOptions) run(cmd *cobra.Command, args []string) e var targetTrait *traitDescription for _, item := range traitMetaData.Traits { + item := item if item.Name == t.ID() { targetTrait = &item td.Description = item.Description diff --git a/pkg/trait/knative_test.go b/pkg/trait/knative_test.go index 941e557..0ef90b0 100644 --- a/pkg/trait/knative_test.go +++ b/pkg/trait/knative_test.go @@ -521,7 +521,7 @@ func NewFakeClient(namespace string) (client.Client, error) { }, Broker: "default", Subscriber: duckv1.Destination{ - Ref: &corev1.ObjectReference{ + Ref: &duckv1.KReference{ APIVersion: serving.SchemeGroupVersion.String(), Kind: "Service", Name: "event-source-1", diff --git a/pkg/util/knative/apis.go b/pkg/util/knative/apis.go index c5374ed..fbe26ce 100644 --- a/pkg/util/knative/apis.go +++ b/pkg/util/knative/apis.go @@ -31,6 +31,14 @@ var ( GroupVersionKind: schema.GroupVersionKind{ Kind: "Channel", Group: "messaging.knative.dev", + Version: "v1beta1", + }, + Resource: "channels", + }, + { + GroupVersionKind: schema.GroupVersionKind{ + Kind: "Channel", + Group: "messaging.knative.dev", Version: "v1alpha1", }, Resource: "channels", @@ -47,6 +55,14 @@ var ( GroupVersionKind: schema.GroupVersionKind{ Kind: "InMemoryChannel", Group: "messaging.knative.dev", + Version: "v1beta1", + }, + Resource: "inmemorychannels", + }, + { + GroupVersionKind: schema.GroupVersionKind{ + Kind: "InMemoryChannel", + Group: "messaging.knative.dev", Version: "v1alpha1", }, Resource: "inmemorychannels", @@ -103,6 +119,14 @@ var ( GroupVersionKind: schema.GroupVersionKind{ Kind: "Broker", Group: "eventing.knative.dev", + Version: "v1beta1", + }, + Resource: "brokers", + }, + { + GroupVersionKind: schema.GroupVersionKind{ + Kind: "Broker", + Group: "eventing.knative.dev", Version: "v1alpha1", }, Resource: "brokers", diff --git a/pkg/util/knative/apis_test.go b/pkg/util/knative/apis_test.go index 7710e87..b1014b6 100644 --- a/pkg/util/knative/apis_test.go +++ b/pkg/util/knative/apis_test.go @@ -85,7 +85,7 @@ func TestAPIs(t *testing.T) { checkValidRefs(t, refs) assert.Equal(t, v1.ObjectReference{ Kind: "Channel", - APIVersion: "messaging.knative.dev/v1alpha1", + APIVersion: "messaging.knative.dev/v1beta1", Name: "ciao", }, refs[0]) @@ -105,7 +105,7 @@ func TestAPIs(t *testing.T) { checkValidRefs(t, refs) assert.Equal(t, v1.ObjectReference{ Kind: "Channel", - APIVersion: "messaging.knative.dev/v1alpha1", + APIVersion: "messaging.knative.dev/v1beta1", Name: "ciao", }, refs[0]) @@ -130,7 +130,7 @@ func TestAPIs(t *testing.T) { checkValidRefs(t, refs) assert.Equal(t, v1.ObjectReference{ Kind: "Broker", - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Name: "default", }, refs[0]) @@ -150,7 +150,7 @@ func TestAPIs(t *testing.T) { checkValidRefs(t, refs) assert.Equal(t, v1.ObjectReference{ Kind: "Broker", - APIVersion: "eventing.knative.dev/v1alpha1", + APIVersion: "eventing.knative.dev/v1beta1", Name: "aaa", }, refs[0]) } diff --git a/pkg/util/knative/knative.go b/pkg/util/knative/knative.go index d3f3f9b..e39eb54 100644 --- a/pkg/util/knative/knative.go +++ b/pkg/util/knative/knative.go @@ -56,7 +56,7 @@ func CreateSubscription(channelReference corev1.ObjectReference, serviceName str Name: channelReference.Name, }, Subscriber: &duckv1.Destination{ - Ref: &corev1.ObjectReference{ + Ref: &duckv1.KReference{ APIVersion: serving.SchemeGroupVersion.String(), Kind: "Service", Name: serviceName, @@ -87,7 +87,7 @@ func CreateTrigger(brokerReference corev1.ObjectReference, serviceName string, e }, Broker: brokerReference.Name, Subscriber: duckv1.Destination{ - Ref: &corev1.ObjectReference{ + Ref: &duckv1.KReference{ APIVersion: serving.SchemeGroupVersion.String(), Kind: "Service", Name: serviceName,