You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2019/10/01 13:53:44 UTC
[camel-k] 01/08: Fix #952, #888: upgrade to Knative 0.9.0
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
commit c77912dbdbe30a4157ac6c4d19028d2c99313929
Author: nferraro <ni...@gmail.com>
AuthorDate: Thu Sep 26 11:41:52 2019 +0200
Fix #952, #888: upgrade to Knative 0.9.0
---
deploy/operator-role-knative.yaml | 1 +
deploy/resources.go | 1 +
e2e/test_support.go | 13 +-
examples/knative/messages-channel.yaml | 9 +-
examples/knative/words-channel.yaml | 9 +-
go.mod | 11 +-
go.sum | 64 +++++++--
pkg/apis/addtoscheme_knative_eventing_v1alpha1.go | 4 +-
pkg/apis/addtoscheme_knative_serving_v1alpha1.go | 2 +-
pkg/trait/classpath_test.go | 5 +-
pkg/trait/container.go | 6 +-
pkg/trait/istio.go | 6 +-
pkg/trait/istio_test.go | 33 ++---
pkg/trait/knative.go | 153 ++++++++++++++--------
pkg/trait/knative_service.go | 18 ++-
pkg/trait/knative_service_test.go | 6 +-
pkg/trait/knative_test.go | 76 +++++++----
pkg/trait/owner.go | 4 +-
pkg/trait/probes_test.go | 26 ++--
pkg/util/knative/knative.go | 144 +++++++++++++-------
pkg/util/kubernetes/collection.go | 11 +-
pkg/util/kubernetes/replace.go | 6 +-
22 files changed, 378 insertions(+), 230 deletions(-)
diff --git a/deploy/operator-role-knative.yaml b/deploy/operator-role-knative.yaml
index 76b7fb5..a4edc11 100644
--- a/deploy/operator-role-knative.yaml
+++ b/deploy/operator-role-knative.yaml
@@ -37,6 +37,7 @@ rules:
- watch
- apiGroups:
- eventing.knative.dev
+ - messaging.knative.dev
resources:
- "*"
verbs:
diff --git a/deploy/resources.go b/deploy/resources.go
index 1346f1d..defd3a4 100644
--- a/deploy/resources.go
+++ b/deploy/resources.go
@@ -2894,6 +2894,7 @@ rules:
- watch
- apiGroups:
- eventing.knative.dev
+ - messaging.knative.dev
resources:
- "*"
verbs:
diff --git a/e2e/test_support.go b/e2e/test_support.go
index 38e92bf..fd0b1b0 100644
--- a/e2e/test_support.go
+++ b/e2e/test_support.go
@@ -39,7 +39,7 @@ import (
"github.com/apache/camel-k/pkg/util/log"
"github.com/apache/camel-k/pkg/util/openshift"
"github.com/google/uuid"
- eventing "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1"
"github.com/onsi/gomega"
projectv1 "github.com/openshift/api/project/v1"
"github.com/spf13/cobra"
@@ -496,22 +496,15 @@ func createKamelPod(ns string, name string, command ...string) error {
func createKnativeChannel(ns string, name string) func() error {
return func() error {
- channel := eventing.Channel{
+ channel := messaging.InMemoryChannel{
TypeMeta: metav1.TypeMeta{
Kind: "Channel",
- APIVersion: eventing.SchemeGroupVersion.String(),
+ APIVersion: messaging.SchemeGroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Namespace: ns,
Name: name,
},
- Spec: eventing.ChannelSpec{
- Provisioner: &v1.ObjectReference{
- APIVersion: "eventing.knative.dev/v1alpha1",
- Kind: "ClusterChannelProvisioner",
- Name: "in-memory",
- },
- },
}
return testClient.Create(testContext, &channel)
}
diff --git a/examples/knative/messages-channel.yaml b/examples/knative/messages-channel.yaml
index 177faf9..fe44738 100644
--- a/examples/knative/messages-channel.yaml
+++ b/examples/knative/messages-channel.yaml
@@ -15,12 +15,7 @@
# limitations under the License.
# ---------------------------------------------------------------------------
-apiVersion: eventing.knative.dev/v1alpha1
-kind: Channel
+apiVersion: messaging.knative.dev/v1alpha1
+kind: InMemoryChannel
metadata:
name: messages
-spec:
- provisioner:
- apiVersion: eventing.knative.dev/v1alpha1
- kind: ClusterChannelProvisioner
- name: in-memory
\ No newline at end of file
diff --git a/examples/knative/words-channel.yaml b/examples/knative/words-channel.yaml
index 1688cea..94e0ec1 100644
--- a/examples/knative/words-channel.yaml
+++ b/examples/knative/words-channel.yaml
@@ -15,12 +15,7 @@
# limitations under the License.
# ---------------------------------------------------------------------------
-apiVersion: eventing.knative.dev/v1alpha1
-kind: Channel
+apiVersion: messaging.knative.dev/v1alpha1
+kind: InMemoryChannel
metadata:
name: words
-spec:
- provisioner:
- apiVersion: eventing.knative.dev/v1alpha1
- kind: ClusterChannelProvisioner
- name: in-memory
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 2c0114f..bedbd73 100644
--- a/go.mod
+++ b/go.mod
@@ -1,7 +1,8 @@
module github.com/apache/camel-k
require (
- cloud.google.com/go v0.43.0 // indirect
+ contrib.go.opencensus.io/exporter/prometheus v0.1.0 // indirect
+ contrib.go.opencensus.io/exporter/stackdriver v0.12.2
github.com/Masterminds/semver v1.4.2
github.com/alecthomas/jsonschema v0.0.0-20190122210438-a6952de1bbe6
github.com/coreos/prometheus-operator v0.29.0
@@ -10,9 +11,6 @@ require (
github.com/google/go-containerregistry v0.0.0-20190206233756-dbc4da98389f // indirect
github.com/google/uuid v1.1.1
github.com/jpillora/backoff v0.0.0-20170918002102-8eab2debe79d
- github.com/knative/eventing v0.7.1
- github.com/knative/pkg v0.0.0-20190624141606-d82505e6c5b4
- github.com/knative/serving v0.7.1
github.com/mitchellh/mapstructure v1.1.2
github.com/onsi/ginkgo v1.8.0 // indirect
github.com/onsi/gomega v1.5.0
@@ -27,13 +25,14 @@ require (
github.com/stoewer/go-strcase v1.0.2
github.com/stretchr/testify v1.3.0
go.uber.org/multierr v1.1.0
- golang.org/x/net v0.0.0-20190628185345-da137c7871d7 // indirect
- golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect
gopkg.in/yaml.v2 v2.2.2
k8s.io/api v0.0.0-20190612125737-db0771252981
k8s.io/apimachinery v0.0.0-20190612125636-6a5db36e93ad
k8s.io/client-go v11.0.0+incompatible
k8s.io/kube-openapi v0.0.0-20190510232812-a01b7d5d6c22 // indirect
+ knative.dev/eventing v0.9.0
+ knative.dev/pkg v0.0.0-20190913154335-74659889c421
+ knative.dev/serving v0.9.0
sigs.k8s.io/controller-runtime v0.1.10
)
diff --git a/go.sum b/go.sum
index ec092e6..f547e81 100644
--- a/go.sum
+++ b/go.sum
@@ -5,10 +5,18 @@ cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.37.2 h1:4y4L7BdHenTfZL0HervofNTHh9Ad6mNX72cQvl+5eH0=
cloud.google.com/go v0.37.2/go.mod h1:H8IAquKe2L30IxoupDgqTaQvKSwF/c8prYHynGIWQbA=
+cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.43.0 h1:banaiRPAM8kUVYneOSkhgcDsLzEvL25FinuiSZaH/2w=
cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg=
contrib.go.opencensus.io/exporter/ocagent v0.4.11/go.mod h1:7ihiYRbdcVfW4m4wlXi9WRPdv79C0fStcjNlyE6ek9s=
+contrib.go.opencensus.io/exporter/prometheus v0.1.0 h1:SByaIoWwNgMdPSgl5sMqM2KDE5H/ukPWBRo314xiDvg=
+contrib.go.opencensus.io/exporter/prometheus v0.1.0/go.mod h1:cGFniUXGZlKRjzOyuZJ6mgB+PgBcCIa79kEKR8YCW+A=
+contrib.go.opencensus.io/exporter/stackdriver v0.12.2 h1:jU1p9F07ASK11wYgSTPKtFlTvTtCDj6R1d3nRt0ZHDE=
+contrib.go.opencensus.io/exporter/stackdriver v0.12.2/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw=
+contrib.go.opencensus.io/exporter/stackdriver v0.12.7 h1:XWDDoMSlZchLyQZw8HKE+7vn3FpfaVR5Yz9E4ifxiU0=
+contrib.go.opencensus.io/exporter/stackdriver v0.12.7/go.mod h1:ZOhmSfHIoyVaQ+bKN+lR4h7K2olTIJsrdOwWHsNGw4w=
+contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA=
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
github.com/Azure/go-autorest v11.1.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
github.com/Azure/go-autorest v11.7.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
@@ -38,11 +46,18 @@ github.com/appscode/jsonpatch v0.0.0-20190108182946-7c0e3b262f30 h1:Kn3rqvbUFqSe
github.com/appscode/jsonpatch v0.0.0-20190108182946-7c0e3b262f30/go.mod h1:4AJxUpXUhv4N+ziTvIcWWXgeorXpxPZOfk9HdEVr96M=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
+github.com/aws/aws-sdk-go v1.19.18 h1:Hb3+b9HCqrOrbAtFstUWg7H5TQ+/EcklJtE8VShVs8o=
+github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.22.1 h1://WJvJi9iq/i5TWHuK3hIC23xCZYH7Qv7SIN2vZVqxY=
+github.com/aws/aws-sdk-go v1.22.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
+github.com/census-instrumentation/opencensus-proto v0.2.0 h1:LzQXZOgg4CQfE6bFvXGM30YZL1WW/M337pXml+GrcZ4=
github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/chai2010/gettext-go v0.0.0-20170215093142-bf70f2a70fb1/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/coreos/bbolt v1.3.0/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
@@ -136,6 +151,8 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
+github.com/gogo/protobuf v1.3.0 h1:G8O7TerXerS4F6sx9OV7/nRfJdnXgHZu/S/7F2SN+UE=
+github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/golang/glog v0.0.0-20141105023935-44145f04b68c/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -154,6 +171,7 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/google/addlicense v0.0.0-20190510175307-22550fa7c1b0/go.mod h1:QtPG26W17m+OIQgE6gQ24gC1M6pUaMBAbFrTIDtwG/E=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
@@ -162,6 +180,8 @@ github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-containerregistry v0.0.0-20190206233756-dbc4da98389f h1:qfn7ap/7lpxI+y6FEnnoAYxJs2d07OxdC5PFuDEJo0g=
github.com/google/go-containerregistry v0.0.0-20190206233756-dbc4da98389f/go.mod h1:yZAFP63pRshzrEYLXLGPmUt0Ay+2zdjmMN1loCnRLUk=
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
@@ -178,7 +198,9 @@ github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gax-go v2.0.0+incompatible h1:j0GKcs05QVmm7yesiZq2+9cxHkNK9YM6zKx4D2qucQU=
github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY=
+github.com/googleapis/gax-go/v2 v2.0.4 h1:hU4mGcQI4DaAYW+IbTun+2qEZVFxK0ySjQLTbS0VQKc=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g=
@@ -205,6 +227,8 @@ github.com/hashicorp/golang-lru v0.0.0-20160207214719-a0d98a5f2880/go.mod h1:/m3
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk=
+github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
@@ -217,6 +241,8 @@ github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
+github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
+github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
@@ -230,13 +256,8 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
+github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/knative/eventing v0.7.1 h1:41Jr2mGB+m27G9keCOuUS/DFfyJLbmglRzTAt/kKcg0=
-github.com/knative/eventing v0.7.1/go.mod h1:SkBc5JFsl70Fq/Bjc97+uix8759e4ho0imxq8DQm4DA=
-github.com/knative/pkg v0.0.0-20190624141606-d82505e6c5b4 h1:EttEM3qdT41tGjgsYk3RqIBS9vKlgIe2C+F2pZl3kgY=
-github.com/knative/pkg v0.0.0-20190624141606-d82505e6c5b4/go.mod h1:7Ijfhw7rfB+H9VtosIsDYvZQ+qYTz7auK3fHW/5z4ww=
-github.com/knative/serving v0.7.1 h1:PLlqzHN4MJYHeugK3yxZrwifC+nmNtJGkKEH+j4ZV0Q=
-github.com/knative/serving v0.7.1/go.mod h1:ljvMfwQy2qanaM/8xnBSK4Mz3Vv2NawC2fo5kFRJS1A=
github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -393,6 +414,7 @@ go.opencensus.io v0.19.2/go.mod h1:NO/8qkisMZLZ1FCsKNqtJPwc8/TaclWyY0B6wcYNg9M=
go.opencensus.io v0.20.0 h1:L/ARO58pdktB6dLmYI0zAyW1XnavEmGziFd0MKfxnck=
go.opencensus.io v0.20.0/go.mod h1:NO/8qkisMZLZ1FCsKNqtJPwc8/TaclWyY0B6wcYNg9M=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
+go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
@@ -446,12 +468,13 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJV
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09 h1:KaQtG+aDELoNmXYas3TVkGNYRuq8JQ1aa7LJt8EXVyo=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190628185345-da137c7871d7 h1:rTIdg5QFRR7XCaK4LCjBiPbx8j4DQRpdYMnGn/bJUEU=
-golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 h1:Ao/3l156eZf2AW5wK8a7/smtodRU+gha3+BeqJ69lRk=
+golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/oauth2 v0.0.0-20170412232759-a6bd8cefa181/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -489,12 +512,13 @@ golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67 h1:1Fzlr8kkDLQwqMP8GxrhptBLqZG/EDpiATneiZHY998=
golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd h1:r7DufRZuZbWB7j439YfAzP8RPDa9unLkpwQKUYbIMPI=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 h1:LepdCS8Gf/MVejFIt8lsiexZATdoGVyp5bcyS+rYoUI=
-golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa h1:KIDDMLT1O0Nr7TSxp8xM5tJcdn8tgyAONntO829og1M=
+golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -510,6 +534,7 @@ golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGm
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181011152555-a398e557df60/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181207222222-4c874b978acb/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -521,6 +546,7 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3
golang.org/x/tools v0.0.0-20190408170212-12dd9f86f350/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
@@ -529,6 +555,9 @@ google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+
google.golang.org/api v0.2.0/go.mod h1:IfRCZScioGtypHNTlz3gFk67J8uePVW7uDTBzXuIkhU=
google.golang.org/api v0.3.0/go.mod h1:IuvZyQh8jgscv8qWfQ4ABd8m7hEudgBFM/EdhA3BnXw=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+google.golang.org/api v0.5.0 h1:lj9SyhMzyoa38fgFF0oO2T6pjs5IzkLPKfVtxpyCRMM=
+google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+google.golang.org/api v0.7.0 h1:9sdfJOzWlkqPltHAuzT2Cp+yrBeY1KRVYgms8soxMwM=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -546,16 +575,22 @@ google.golang.org/genproto v0.0.0-20181219182458-5a97ab628bfb/go.mod h1:7Ep/1NZk
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb h1:i1Ppqkc3WQXikh8bXiwHqAN5Rv3/qDCcRk0/Otx73BY=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64 h1:iKtrH9Y8mcbADOP0YFaEMth7OfuHY9xHOwNj4znpM1A=
+google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+google.golang.org/grpc v1.22.1 h1:/7cs52RnTJmD43s3uxzlq2U7nqVTd/37viQwMrMNlOM=
+google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
@@ -583,6 +618,7 @@ honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/api v0.0.0-20190222213804-5cb15d344471 h1:MzQGt8qWQCR+39kbYRd0uQqsvSidpYqJLFeWiJ9l4OE=
k8s.io/api v0.0.0-20190222213804-5cb15d344471/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=
k8s.io/apiextensions-apiserver v0.0.0-20190228180357-d002e88f6236 h1:JfFtjaElBIgYKCWEtYQkcNrTpW+lMO4GJy8NP6SVQmM=
@@ -612,6 +648,14 @@ k8s.io/kube-state-metrics v1.6.0/go.mod h1:84+q9aGVQPzXYGgtvyhZr/fSI6BdLsbPWXn37
k8s.io/kubernetes v1.13.4/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7 h1:8r+l4bNWjRlsFYlQJnKJ2p7s1YQPj4XyXiJVqDHRx7c=
k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
+knative.dev/eventing v0.9.0 h1:0eqp7rES1E5DE5Hj3MOHHyM2BzCe/7Mtp5tPjYoeCxs=
+knative.dev/eventing v0.9.0/go.mod h1:UxweNv8yXhsdHJitcb9R6rmfNaUD2DFi9GWwNRyIs58=
+knative.dev/pkg v0.0.0-20190913154335-74659889c421 h1:gdJs7TkosL+7S2mnZpLRS4v2GJVTnY7gQ8PPjktERx8=
+knative.dev/pkg v0.0.0-20190913154335-74659889c421/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q=
+knative.dev/pkg v0.0.0-20190924000116-25b6d3af4d22 h1:tJIYe/gaJn4ZNkZYe7W4ZqCunt29XymVbpEP5rMPSOE=
+knative.dev/pkg v0.0.0-20190924000116-25b6d3af4d22/go.mod h1:pgODObA1dTyhNoFxPZTTjNWfx6F0aKsKzn+vaT9XO/Q=
+knative.dev/serving v0.9.0 h1:GVnsksAEX6vMXGygvzsGPIrFTypiesaseK7emm0LKWQ=
+knative.dev/serving v0.9.0/go.mod h1:x2n255JS2XBI39tmjZ8CwTxIf9EKNMCrkVuiOttLRm0=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
sigs.k8s.io/controller-runtime v0.1.10 h1:amLOmcekVdnsD1uIpmgRqfTbQWJ2qxvQkcdeFhcotn4=
sigs.k8s.io/controller-runtime v0.1.10/go.mod h1:HFAYoOh6XMV+jKF1UjFwrknPbowfyHEHHRdJMf2jMX8=
diff --git a/pkg/apis/addtoscheme_knative_eventing_v1alpha1.go b/pkg/apis/addtoscheme_knative_eventing_v1alpha1.go
index 8cf75a2..222e639 100644
--- a/pkg/apis/addtoscheme_knative_eventing_v1alpha1.go
+++ b/pkg/apis/addtoscheme_knative_eventing_v1alpha1.go
@@ -18,10 +18,12 @@ limitations under the License.
package apis
import (
- eventing "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ eventing "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
+ messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1"
)
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)
}
diff --git a/pkg/apis/addtoscheme_knative_serving_v1alpha1.go b/pkg/apis/addtoscheme_knative_serving_v1alpha1.go
index c037a3a..b96c913 100644
--- a/pkg/apis/addtoscheme_knative_serving_v1alpha1.go
+++ b/pkg/apis/addtoscheme_knative_serving_v1alpha1.go
@@ -18,7 +18,7 @@ limitations under the License.
package apis
import (
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
)
func init() {
diff --git a/pkg/trait/classpath_test.go b/pkg/trait/classpath_test.go
index 6ea833c..125d75e 100644
--- a/pkg/trait/classpath_test.go
+++ b/pkg/trait/classpath_test.go
@@ -23,10 +23,11 @@ import (
"strings"
"testing"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ servingv1 "knative.dev/serving/pkg/apis/serving/v1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
"github.com/apache/camel-k/pkg/util/kubernetes"
@@ -147,7 +148,7 @@ func TestApplyClasspathTraitWithKNativeResource(t *testing.T) {
trait, environment := createNominalClasspathTest()
s := serving.Service{}
- s.Spec.ConfigurationSpec.Template = &serving.RevisionTemplateSpec{}
+ s.Spec.ConfigurationSpec.Template = servingv1.RevisionTemplateSpec{}
s.Spec.ConfigurationSpec.Template.Spec.Containers = []corev1.Container{
{
Name: defaultContainerName,
diff --git a/pkg/trait/container.go b/pkg/trait/container.go
index 4b12089..df7de6e 100644
--- a/pkg/trait/container.go
+++ b/pkg/trait/container.go
@@ -23,7 +23,7 @@ import (
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
"github.com/apache/camel-k/pkg/util/envvar"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
@@ -130,11 +130,11 @@ func (t *containerTrait) Apply(e *Environment) error {
}
e.ConfigureVolumesAndMounts(
- &service.Spec.ConfigurationSpec.GetTemplate().Spec.Volumes,
+ &service.Spec.ConfigurationSpec.Template.Spec.Volumes,
&container.VolumeMounts,
)
- service.Spec.ConfigurationSpec.GetTemplate().Spec.Containers = append(service.Spec.ConfigurationSpec.GetTemplate().Spec.Containers, container)
+ service.Spec.ConfigurationSpec.Template.Spec.Containers = append(service.Spec.ConfigurationSpec.Template.Spec.Containers, container)
})
if t.Expose != nil && *t.Expose {
diff --git a/pkg/trait/istio.go b/pkg/trait/istio.go
index 4f3b353..fb88316 100644
--- a/pkg/trait/istio.go
+++ b/pkg/trait/istio.go
@@ -21,8 +21,8 @@ import (
"strconv"
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
appsv1 "k8s.io/api/apps/v1"
+ servingv1 "knative.dev/serving/pkg/apis/serving/v1"
)
type istioTrait struct {
@@ -56,8 +56,8 @@ func (t *istioTrait) Apply(e *Environment) error {
e.Resources.VisitDeployment(func(d *appsv1.Deployment) {
d.Spec.Template.Annotations = t.injectIstioAnnotation(d.Spec.Template.Annotations, true)
})
- e.Resources.VisitKnativeConfigurationSpec(func(cs *serving.ConfigurationSpec) {
- cs.GetTemplate().Annotations = t.injectIstioAnnotation(cs.GetTemplate().Annotations, false)
+ e.Resources.VisitKnativeConfigurationSpec(func(cs *servingv1.ConfigurationSpec) {
+ cs.Template.Annotations = t.injectIstioAnnotation(cs.Template.Annotations, false)
})
}
return nil
diff --git a/pkg/trait/istio_test.go b/pkg/trait/istio_test.go
index 0aaae7c..7f804e4 100644
--- a/pkg/trait/istio_test.go
+++ b/pkg/trait/istio_test.go
@@ -26,10 +26,11 @@ import (
"github.com/stretchr/testify/assert"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ servingv1 "knative.dev/serving/pkg/apis/serving/v1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
)
func NewIstioTestEnv(t *testing.T, d *appsv1.Deployment, s *serving.Service, enabled bool) Environment {
@@ -73,9 +74,9 @@ func NewIstioTestEnv(t *testing.T, d *appsv1.Deployment, s *serving.Service, ena
func TestIstioInject(t *testing.T) {
s := serving.Service{
- Spec: serving.ServiceSpec{
- ConfigurationSpec: serving.ConfigurationSpec{
- Template: &serving.RevisionTemplateSpec{},
+ Spec: servingv1.ServiceSpec{
+ ConfigurationSpec: servingv1.ConfigurationSpec{
+ Template: servingv1.RevisionTemplateSpec{},
},
},
}
@@ -89,15 +90,15 @@ func TestIstioInject(t *testing.T) {
err := env.Catalog.apply(&env)
assert.Nil(t, err)
- assert.Empty(t, s.Spec.ConfigurationSpec.GetTemplate().Annotations[istioSidecarInjectAnnotation])
+ assert.Empty(t, s.Spec.ConfigurationSpec.Template.Annotations[istioSidecarInjectAnnotation])
assert.NotEmpty(t, d.Spec.Template.Annotations[istioSidecarInjectAnnotation])
}
func TestIstioForcedInjectTrue(t *testing.T) {
s := serving.Service{
- Spec: serving.ServiceSpec{
- ConfigurationSpec: serving.ConfigurationSpec{
- Template: &serving.RevisionTemplateSpec{},
+ Spec: servingv1.ServiceSpec{
+ ConfigurationSpec: servingv1.ConfigurationSpec{
+ Template: servingv1.RevisionTemplateSpec{},
},
},
}
@@ -113,15 +114,15 @@ func TestIstioForcedInjectTrue(t *testing.T) {
err := env.Catalog.apply(&env)
assert.Nil(t, err)
- assert.Equal(t, "true", s.Spec.ConfigurationSpec.GetTemplate().Annotations[istioSidecarInjectAnnotation])
+ assert.Equal(t, "true", s.Spec.ConfigurationSpec.Template.Annotations[istioSidecarInjectAnnotation])
assert.Equal(t, "true", d.Spec.Template.Annotations[istioSidecarInjectAnnotation])
}
func TestIstioForcedInjectFalse(t *testing.T) {
s := serving.Service{
- Spec: serving.ServiceSpec{
- ConfigurationSpec: serving.ConfigurationSpec{
- Template: &serving.RevisionTemplateSpec{},
+ Spec: servingv1.ServiceSpec{
+ ConfigurationSpec: servingv1.ConfigurationSpec{
+ Template: servingv1.RevisionTemplateSpec{},
},
},
}
@@ -137,15 +138,15 @@ func TestIstioForcedInjectFalse(t *testing.T) {
err := env.Catalog.apply(&env)
assert.Nil(t, err)
- assert.Equal(t, "false", s.Spec.ConfigurationSpec.GetTemplate().Annotations[istioSidecarInjectAnnotation])
+ assert.Equal(t, "false", s.Spec.ConfigurationSpec.Template.Annotations[istioSidecarInjectAnnotation])
assert.Equal(t, "false", d.Spec.Template.Annotations[istioSidecarInjectAnnotation])
}
func TestIstioDisabled(t *testing.T) {
s := serving.Service{
- Spec: serving.ServiceSpec{
- ConfigurationSpec: serving.ConfigurationSpec{
- Template: &serving.RevisionTemplateSpec{},
+ Spec: servingv1.ServiceSpec{
+ ConfigurationSpec: servingv1.ConfigurationSpec{
+ Template: servingv1.RevisionTemplateSpec{},
},
},
}
diff --git a/pkg/trait/knative.go b/pkg/trait/knative.go
index 3246138..14705ad 100644
--- a/pkg/trait/knative.go
+++ b/pkg/trait/knative.go
@@ -19,7 +19,7 @@ package trait
import (
"fmt"
- "net/url"
+ "regexp"
"strings"
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
@@ -27,28 +27,53 @@ import (
"github.com/apache/camel-k/pkg/util/envvar"
"github.com/pkg/errors"
"github.com/scylladb/go-set/strset"
+ k8serrors "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/apimachinery/pkg/runtime/schema"
knativeapi "github.com/apache/camel-k/pkg/apis/camel/v1alpha1/knative"
knativeutil "github.com/apache/camel-k/pkg/util/knative"
- duck "github.com/knative/pkg/apis/duck/v1alpha1"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
)
type knativeTrait struct {
BaseTrait `property:",squash"`
- Configuration string `property:"configuration"`
- ChannelSources string `property:"channel-sources"`
- ChannelSinks string `property:"channel-sinks"`
- EndpointSources string `property:"endpoint-sources"`
- EndpointSinks string `property:"endpoint-sinks"`
- FilterSourceChannels *bool `property:"filter-source-channels"`
- Auto *bool `property:"auto"`
+ Configuration string `property:"configuration"`
+ ChannelSources string `property:"channel-sources"`
+ ChannelSinks string `property:"channel-sinks"`
+ EndpointSources string `property:"endpoint-sources"`
+ EndpointSinks string `property:"endpoint-sinks"`
+ FilterSourceChannels *bool `property:"filter-source-channels"`
+ ChannelAPIs []string `property:"channel-apis"`
+ EndpointAPIs []string `property:"endpoint-apis"`
+ Auto *bool `property:"auto"`
}
const (
knativeHistoryHeader = "ce-knativehistory"
)
+var (
+ kindAPIGroupVersionFormat = regexp.MustCompile(`^([^/]+)/([^/]+)/([^/]+)$`)
+
+ defaultChannelAPIs = []string{
+ "messaging.knative.dev/v1alpha1/Channel",
+ "eventing.knative.dev/v1alpha1/Channel",
+ "messaging.knative.dev/v1alpha1/InMemoryChannel",
+ "messaging.knative.dev/v1alpha1/KafkaChannel",
+ "messaging.knative.dev/v1alpha1/NatssChannel",
+ }
+
+ defaultEndpointAPIs = []string{
+ "serving.knative.dev/v1beta1/Service",
+ "serving.knative.dev/v1alpha1/Service",
+ "serving.knative.dev/v1/Service",
+ }
+)
+
+func init() {
+ // Channels are also endpoints
+ defaultEndpointAPIs = append(defaultEndpointAPIs, defaultChannelAPIs...)
+}
+
func newKnativeTrait() *knativeTrait {
t := &knativeTrait{
BaseTrait: newBaseTrait("knative"),
@@ -66,6 +91,14 @@ func (t *knativeTrait) Configure(e *Environment) (bool, error) {
return false, nil
}
+ // Always applying the defaults
+ if len(t.ChannelAPIs) == 0 {
+ t.ChannelAPIs = append(t.ChannelAPIs, defaultChannelAPIs...)
+ }
+ if len(t.EndpointAPIs) == 0 {
+ t.EndpointAPIs = append(t.EndpointAPIs, defaultEndpointAPIs...)
+ }
+
if t.Auto == nil || *t.Auto {
if t.ChannelSources == "" {
items := make([]string, 0)
@@ -157,8 +190,16 @@ func (t *knativeTrait) createConfiguration(e *Environment) error {
func (t *knativeTrait) createSubscriptions(e *Environment) error {
channels := t.extractNames(t.ChannelSources)
+ types, err := decodeKindAPIGroupVersions(t.ChannelAPIs)
+ if err != nil {
+ return err
+ }
for _, ch := range channels {
- sub := knativeutil.CreateSubscription(e.Integration.Namespace, ch, e.Integration.Name)
+ chRef, err := knativeutil.GetAddressableReference(t.ctx, t.client, types, e.Integration.Namespace, ch)
+ if err != nil {
+ return err
+ }
+ sub := knativeutil.CreateSubscription(*chRef, e.Integration.Name)
e.Resources.Add(&sub)
}
@@ -174,7 +215,12 @@ func (t *knativeTrait) configureChannels(e *Environment, env *knativeapi.CamelEn
is := strset.Intersection(sr, sk)
if is.Size() > 0 {
- return fmt.Errorf("cannot use the same channels as source and synk (%s)", is.List())
+ return fmt.Errorf("cannot use the same channels as source and sink (%s)", is.List())
+ }
+
+ types, err := decodeKindAPIGroupVersions(t.ChannelAPIs)
+ if err != nil {
+ return err
}
// Sources
@@ -183,12 +229,11 @@ func (t *knativeTrait) configureChannels(e *Environment, env *knativeapi.CamelEn
continue
}
- c, err := knativeutil.GetChannel(t.ctx, t.client, e.Integration.Namespace, ch)
- if err != nil {
- return err
- }
- if c == nil {
+ targetURL, err := knativeutil.GetAnySinkURL(t.ctx, t.client, types, e.Integration.Namespace, ch)
+ if err != nil && k8serrors.IsNotFound(err) {
return errors.Errorf("cannot find channel %s", ch)
+ } else if err != nil {
+ return err
}
meta := map[string]string{
@@ -196,7 +241,7 @@ func (t *knativeTrait) configureChannels(e *Environment, env *knativeapi.CamelEn
}
if t.FilterSourceChannels != nil && *t.FilterSourceChannels {
meta[knativeapi.CamelMetaFilterHeaderName] = knativeHistoryHeader
- meta[knativeapi.CamelMetaFilterHeaderValue] = c.Status.Address.Hostname
+ meta[knativeapi.CamelMetaFilterHeaderValue] = targetURL.Host
}
svc := knativeapi.CamelServiceDefinition{
Name: ch,
@@ -215,15 +260,14 @@ func (t *knativeTrait) configureChannels(e *Environment, env *knativeapi.CamelEn
continue
}
- c, err := knativeutil.GetChannel(t.ctx, t.client, e.Integration.Namespace, ch)
- if err != nil {
- return err
- }
- if c == nil {
+ targetURL, err := knativeutil.GetAnySinkURL(t.ctx, t.client, types, e.Integration.Namespace, ch)
+ if err != nil && k8serrors.IsNotFound(err) {
return errors.Errorf("cannot find channel %s", ch)
+ } else if err != nil {
+ return err
}
-
- svc, err := buildServiceDefinition(ch, knativeapi.CamelServiceTypeChannel, c.Status.Address)
+ t.L.Infof("Found URL for channel %s: %s", ch, targetURL.String())
+ svc, err := knativeapi.BuildCamelServiceDefinition(ch, knativeapi.CamelServiceTypeChannel, *targetURL)
if err != nil {
return errors.Wrapf(err, "cannot determine address of channel %s", ch)
}
@@ -245,6 +289,11 @@ func (t *knativeTrait) configureEndpoints(e *Environment, env *knativeapi.CamelE
return fmt.Errorf("cannot use the same enadpoints as source and synk (%s)", is.List())
}
+ types, err := decodeKindAPIGroupVersions(t.EndpointAPIs)
+ if err != nil {
+ return err
+ }
+
// Sources
for _, endpoint := range sources {
if env.ContainsService(endpoint, knativeapi.CamelServiceTypeEndpoint) {
@@ -269,14 +318,14 @@ func (t *knativeTrait) configureEndpoints(e *Environment, env *knativeapi.CamelE
continue
}
- s, err := knativeutil.GetService(t.ctx, t.client, e.Integration.Namespace, endpoint)
- if err != nil {
- return err
- }
- if s == nil {
+ targetURL, err := knativeutil.GetAnySinkURL(t.ctx, t.client, types, e.Integration.Namespace, endpoint)
+ if err != nil && k8serrors.IsNotFound(err) {
return errors.Errorf("cannot find endpoint %s", endpoint)
+ } else if err != nil {
+ return err
}
- svc, err := buildServiceDefinitionFromStatus(endpoint, knativeapi.CamelServiceTypeEndpoint, s.Status)
+ t.L.Infof("Found URL for endpoint %s: %s", endpoint, targetURL.String())
+ svc, err := knativeapi.BuildCamelServiceDefinition(endpoint, knativeapi.CamelServiceTypeEndpoint, *targetURL)
if err != nil {
return errors.Wrapf(err, "cannot determine address of endpoint %s", endpoint)
}
@@ -298,32 +347,26 @@ func (t *knativeTrait) extractNames(names string) []string {
return answer
}
-// buildServiceDefinitionFromStatus creates a CamelServiceDefinition from a Knative ServiceStatus
-func buildServiceDefinitionFromStatus(name string, serviceType knativeapi.CamelServiceType, status serving.ServiceStatus) (knativeapi.CamelServiceDefinition, error) {
- // use cluster-local URL from the addressable
- if status.Address != nil {
- return buildServiceDefinition(name, serviceType, *status.Address)
- }
- // fallback to using the public URL information if available
- if status.URL != nil && status.URL.Host != "" {
- return knativeapi.BuildCamelServiceDefinition(name, serviceType, url.URL(*status.URL))
+func decodeKindAPIGroupVersions(specs []string) ([]schema.GroupVersionKind, error) {
+ lst := make([]schema.GroupVersionKind, 0, len(specs))
+ for _, spec := range specs {
+ res, err := decodeKindAPIGroupVersion(spec)
+ if err != nil {
+ return lst, err
+ }
+ lst = append(lst, res)
}
- return knativeapi.CamelServiceDefinition{}, errors.New("cannot determine service hostname")
+ return lst, nil
}
-// buildServiceDefinition creates a CamelServiceDefinition from a Knative Addressable
-func buildServiceDefinition(name string, serviceType knativeapi.CamelServiceType, addressable duck.Addressable) (knativeapi.CamelServiceDefinition, error) {
- // build it using the URL information if available
- if addressable.URL != nil && addressable.URL.Host != "" {
- return knativeapi.BuildCamelServiceDefinition(name, serviceType, url.URL(*addressable.URL))
- }
- // fallback to using hostname
- if addressable.Hostname == "" {
- return knativeapi.CamelServiceDefinition{}, errors.New("cannot determine addressable hostname")
- }
- serviceURL, err := url.Parse(fmt.Sprintf("http://%s", addressable.Hostname))
- if err != nil {
- return knativeapi.CamelServiceDefinition{}, err
+func decodeKindAPIGroupVersion(spec string) (schema.GroupVersionKind, error) {
+ if !kindAPIGroupVersionFormat.MatchString(spec) {
+ return schema.GroupVersionKind{}, errors.Errorf("spec does not match the Group/Version/Kind format: %s", spec)
}
- return knativeapi.BuildCamelServiceDefinition(name, serviceType, *serviceURL)
+ matches := kindAPIGroupVersionFormat.FindStringSubmatch(spec)
+ return schema.GroupVersionKind{
+ Group: matches[1],
+ Version: matches[2],
+ Kind: matches[3],
+ }, nil
}
diff --git a/pkg/trait/knative_service.go b/pkg/trait/knative_service.go
index 63b56b7..ad622b9 100644
--- a/pkg/trait/knative_service.go
+++ b/pkg/trait/knative_service.go
@@ -24,10 +24,10 @@ import (
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
"github.com/apache/camel-k/pkg/metadata"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
- servingbeta "github.com/knative/serving/pkg/apis/serving/v1beta1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ servingv1 "knative.dev/serving/pkg/apis/serving/v1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
)
const (
@@ -198,18 +198,16 @@ func (t *knativeServiceTrait) getServiceFor(e *Environment) *serving.Service {
Labels: labels,
Annotations: e.Integration.Annotations,
},
- Spec: serving.ServiceSpec{
- ConfigurationSpec: serving.ConfigurationSpec{
- Template: &serving.RevisionTemplateSpec{
+ Spec: servingv1.ServiceSpec{
+ ConfigurationSpec: servingv1.ConfigurationSpec{
+ Template: servingv1.RevisionTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: labels,
Annotations: annotations,
},
- Spec: serving.RevisionSpec{
- RevisionSpec: servingbeta.RevisionSpec{
- PodSpec: corev1.PodSpec{
- ServiceAccountName: e.Integration.Spec.ServiceAccountName,
- },
+ Spec: servingv1.RevisionSpec{
+ PodSpec: corev1.PodSpec{
+ ServiceAccountName: e.Integration.Spec.ServiceAccountName,
},
},
},
diff --git a/pkg/trait/knative_service_test.go b/pkg/trait/knative_service_test.go
index 91efd14..7b39ed0 100644
--- a/pkg/trait/knative_service_test.go
+++ b/pkg/trait/knative_service_test.go
@@ -28,7 +28,7 @@ import (
"github.com/apache/camel-k/pkg/util/kubernetes"
"github.com/apache/camel-k/pkg/util/test"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -127,7 +127,7 @@ func TestKnativeService(t *testing.T) {
assert.NotNil(t, s)
- spec := s.Spec.ConfigurationSpec.GetTemplate().Spec
+ spec := s.Spec.ConfigurationSpec.Template.Spec
assert.Len(t, spec.Containers[0].VolumeMounts, 5)
assert.Len(t, spec.Volumes, 5)
@@ -254,6 +254,6 @@ func TestKnativeServiceWithCustomContainerName(t *testing.T) {
assert.Equal(
t,
environment.Integration.Spec.Traits["container"].Configuration["name"],
- s.Spec.ConfigurationSpec.GetTemplate().Spec.Containers[0].Name,
+ s.Spec.ConfigurationSpec.Template.Spec.Containers[0].Name,
)
}
diff --git a/pkg/trait/knative_test.go b/pkg/trait/knative_test.go
index 3611298..a3cbfac 100644
--- a/pkg/trait/knative_test.go
+++ b/pkg/trait/knative_test.go
@@ -19,6 +19,8 @@ package trait
import (
"context"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+ "knative.dev/pkg/apis"
"testing"
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
@@ -32,11 +34,13 @@ import (
knativeapi "github.com/apache/camel-k/pkg/apis/camel/v1alpha1/knative"
k8sutils "github.com/apache/camel-k/pkg/util/kubernetes"
- eventing "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
- duckv1alpha1 "github.com/knative/pkg/apis/duck/v1alpha1"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1"
+ duckv1 "knative.dev/pkg/apis/duck/v1"
+ duckv1alpha1 "knative.dev/pkg/apis/duck/v1alpha1"
+ servingv1 "knative.dev/serving/pkg/apis/serving/v1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
)
func TestKnativeEnvConfigurationFromTrait(t *testing.T) {
@@ -104,7 +108,6 @@ func TestKnativeEnvConfigurationFromTrait(t *testing.T) {
assert.Nil(t, err)
tr := tc.GetTrait("knative").(*knativeTrait)
-
ok, err := tr.Configure(&environment)
assert.Nil(t, err)
assert.True(t, ok)
@@ -236,35 +239,63 @@ func TestKnativeEnvConfigurationFromSource(t *testing.T) {
assert.Equal(t, 8080, source.Port)
}
+func TestDecodeKindAPIGroupVersion(t *testing.T) {
+ kgv, err := decodeKindAPIGroupVersion("messaging.knative.dev/v1alpha1/Channel")
+ assert.Nil(t, err)
+ assert.Equal(t, schema.GroupVersionKind{
+ Group: "messaging.knative.dev",
+ Version: "v1alpha1",
+ Kind: "Channel",
+ }, kgv)
+
+ kgv, err = decodeKindAPIGroupVersion("messaging.knative.dev/v1alpha1/Chann/el/")
+ assert.NotNil(t, err)
+
+ kgv, err = decodeKindAPIGroupVersion("messaging.knative.dev/v1alpha1")
+ assert.NotNil(t, err)
+}
+
func NewFakeClient(namespace string) (client.Client, error) {
+ sink1URL, err := apis.ParseURL("http://endpoint-sink-1.host/")
+ if err != nil {
+ return nil, err
+ }
+ sink2URL, err := apis.ParseURL("http://endpoint-sink-2.host/")
+ if err != nil {
+ return nil, err
+ }
return test.NewFakeClient(
- &eventing.Channel{
+ &messaging.Channel{
TypeMeta: metav1.TypeMeta{
Kind: "Channel",
- APIVersion: eventing.SchemeGroupVersion.String(),
+ APIVersion: messaging.SchemeGroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: "channel-source-1",
},
- Status: eventing.ChannelStatus{
- Address: duckv1alpha1.Addressable{
- Hostname: "channel-source-1.host",
+ Status: messaging.ChannelStatus{
+ AddressStatus: duckv1alpha1.AddressStatus{
+ Address: &duckv1alpha1.Addressable{
+ Hostname: "channel-source-1.host",
+ },
},
},
},
- &eventing.Channel{
+ &messaging.Channel{
TypeMeta: metav1.TypeMeta{
Kind: "Channel",
- APIVersion: eventing.SchemeGroupVersion.String(),
+ APIVersion: messaging.SchemeGroupVersion.String(),
},
ObjectMeta: metav1.ObjectMeta{
Namespace: namespace,
Name: "channel-sink-1",
},
- Status: eventing.ChannelStatus{
- Address: duckv1alpha1.Addressable{
- Hostname: "channel-sink-1.host",
+ Status: messaging.ChannelStatus{
+ AddressStatus: duckv1alpha1.AddressStatus{
+ Address: &duckv1alpha1.Addressable{
+ Hostname: "channel-sink-1.host",
+ },
},
},
},
@@ -277,10 +308,11 @@ func NewFakeClient(namespace string) (client.Client, error) {
Namespace: namespace,
Name: "endpoint-sink-1",
},
- Status: serving.ServiceStatus{
- RouteStatusFields: serving.RouteStatusFields{
- Address: &duckv1alpha1.Addressable{
- Hostname: "endpoint-sink-1.host",
+ Status: servingv1.ServiceStatus{
+ RouteStatusFields: servingv1.RouteStatusFields{
+
+ Address: &duckv1.Addressable{
+ URL: sink1URL,
},
},
},
@@ -294,10 +326,10 @@ func NewFakeClient(namespace string) (client.Client, error) {
Namespace: namespace,
Name: "endpoint-sink-2",
},
- Status: serving.ServiceStatus{
- RouteStatusFields: serving.RouteStatusFields{
- Address: &duckv1alpha1.Addressable{
- Hostname: "endpoint-sink-2.host",
+ Status: servingv1.ServiceStatus{
+ RouteStatusFields: servingv1.RouteStatusFields{
+ Address: &duckv1.Addressable{
+ URL: sink2URL,
},
},
},
diff --git a/pkg/trait/owner.go b/pkg/trait/owner.go
index e2ab4b3..286b085 100644
--- a/pkg/trait/owner.go
+++ b/pkg/trait/owner.go
@@ -25,7 +25,7 @@ import (
"github.com/pkg/errors"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
appsv1 "k8s.io/api/apps/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -113,7 +113,7 @@ func (t *ownerTrait) Apply(e *Environment) error {
})
e.Resources.VisitKnativeService(func(service *serving.Service) {
- t.propagateLabelAndAnnotations(service.Spec.ConfigurationSpec.GetTemplate(), targetLabels, targetAnnotations)
+ t.propagateLabelAndAnnotations(&service.Spec.ConfigurationSpec.Template, targetLabels, targetAnnotations)
})
return nil
diff --git a/pkg/trait/probes_test.go b/pkg/trait/probes_test.go
index 1248224..e2d1b09 100644
--- a/pkg/trait/probes_test.go
+++ b/pkg/trait/probes_test.go
@@ -25,10 +25,10 @@ import (
"github.com/stretchr/testify/assert"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
- servingbeta "github.com/knative/serving/pkg/apis/serving/v1beta1"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
+ servingv1 "knative.dev/serving/pkg/apis/serving/v1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
)
func TestProbesDeps(t *testing.T) {
@@ -101,16 +101,14 @@ func TestProbesOnDeployment(t *testing.T) {
func TestProbesOnKnativeService(t *testing.T) {
target := serving.Service{
- Spec: serving.ServiceSpec{
- ConfigurationSpec: serving.ConfigurationSpec{
- Template: &serving.RevisionTemplateSpec{
- Spec: serving.RevisionSpec{
- RevisionSpec: servingbeta.RevisionSpec{
- PodSpec: corev1.PodSpec{
- Containers: []corev1.Container{
- {
- Image: "dummy",
- },
+ Spec: servingv1.ServiceSpec{
+ ConfigurationSpec: servingv1.ConfigurationSpec{
+ Template: servingv1.RevisionTemplateSpec{
+ Spec: servingv1.RevisionSpec{
+ PodSpec: corev1.PodSpec{
+ Containers: []corev1.Container{
+ {
+ Image: "dummy",
},
},
},
@@ -142,6 +140,6 @@ func TestProbesOnKnativeService(t *testing.T) {
err = tr.Apply(&e)
assert.Nil(t, err)
- assert.Nil(t, target.Spec.ConfigurationSpec.GetTemplate().Spec.Containers[0].LivenessProbe)
- assert.Nil(t, target.Spec.ConfigurationSpec.GetTemplate().Spec.Containers[0].ReadinessProbe)
+ assert.Nil(t, target.Spec.ConfigurationSpec.Template.Spec.Containers[0].LivenessProbe)
+ assert.Nil(t, target.Spec.ConfigurationSpec.Template.Spec.Containers[0].ReadinessProbe)
}
diff --git a/pkg/util/knative/knative.go b/pkg/util/knative/knative.go
index 54bfc6f..2653701 100644
--- a/pkg/util/knative/knative.go
+++ b/pkg/util/knative/knative.go
@@ -19,24 +19,30 @@ package knative
import (
"context"
+ "fmt"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+ "net/url"
"github.com/apache/camel-k/pkg/client"
"github.com/apache/camel-k/pkg/util/log"
- "github.com/pkg/errors"
-
k8serrors "k8s.io/apimachinery/pkg/api/errors"
+ "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/client-go/kubernetes"
+ controller "sigs.k8s.io/controller-runtime/pkg/client"
k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
- eventing "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ eventing "knative.dev/eventing/pkg/apis/eventing/v1alpha1"
+ messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1"
+ "knative.dev/pkg/apis/duck"
+ duckv1alpha1 "knative.dev/pkg/apis/duck/v1alpha1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
)
// IsEnabledInNamespace returns true if we can list some basic knative objects in the given namespace
func IsEnabledInNamespace(ctx context.Context, c k8sclient.Reader, namespace string) bool {
- channels := eventing.ChannelList{
+ channels := messaging.ChannelList{
TypeMeta: metav1.TypeMeta{
Kind: "Channel",
APIVersion: eventing.SchemeGroupVersion.String(),
@@ -62,73 +68,111 @@ func IsInstalled(ctx context.Context, c kubernetes.Interface) (bool, error) {
}
// CreateSubscription ---
-func CreateSubscription(namespace string, channel string, name string) eventing.Subscription {
- return eventing.Subscription{
+func CreateSubscription(channelReference corev1.ObjectReference, serviceName string) messaging.Subscription {
+ return messaging.Subscription{
TypeMeta: metav1.TypeMeta{
- APIVersion: eventing.SchemeGroupVersion.String(),
+ APIVersion: messaging.SchemeGroupVersion.String(),
Kind: "Subscription",
},
ObjectMeta: metav1.ObjectMeta{
- Namespace: namespace,
- Name: channel + "-" + name,
+ Namespace: channelReference.Namespace,
+ Name: channelReference.Name + "-" + serviceName,
},
- Spec: eventing.SubscriptionSpec{
+ Spec: messaging.SubscriptionSpec{
Channel: corev1.ObjectReference{
- APIVersion: eventing.SchemeGroupVersion.String(),
- Kind: "Channel",
- Name: channel,
+ APIVersion: channelReference.GroupVersionKind().GroupVersion().String(),
+ Kind: channelReference.Kind,
+ Name: channelReference.Name,
},
- Subscriber: &eventing.SubscriberSpec{
+ Subscriber: &messaging.SubscriberSpec{
Ref: &corev1.ObjectReference{
APIVersion: serving.SchemeGroupVersion.String(),
Kind: "Service",
- Name: name,
+ Name: serviceName,
},
},
},
}
}
-// GetService --
-func GetService(ctx context.Context, client client.Client, namespace string, name string) (*serving.Service, error) {
- service := serving.Service{
- TypeMeta: metav1.TypeMeta{
- Kind: "Service",
- APIVersion: serving.SchemeGroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
+// GetAnySinkURL looks up the resource among all given types and returns the resource sink URL if present
+func GetAnySinkURL(ctx context.Context, c client.Client, types []schema.GroupVersionKind, namespace string, name string) (*url.URL, error) {
+ for _, gvk := range types {
+ sink := corev1.ObjectReference{
+ Kind: gvk.Kind,
+ APIVersion: gvk.GroupVersion().String(),
Namespace: namespace,
- Name: name,
- },
- }
- key := k8sclient.ObjectKey{
- Namespace: namespace,
- Name: name,
- }
- if err := client.Get(ctx, key, &service); err != nil {
- return nil, errors.Wrap(err, "could not retrieve service "+name+" in namespace "+namespace)
+ Name: name,
+ }
+
+ res, err := GetSinkURI(ctx, c, &sink, namespace)
+ if err != nil && k8serrors.IsNotFound(err) {
+ continue
+ } else if err != nil {
+ return nil, err
+ }
+ return url.Parse(res)
}
- return &service, nil
+ return nil, k8serrors.NewNotFound(schema.GroupResource{}, name)
}
-// GetChannel --
-func GetChannel(ctx context.Context, client client.Client, namespace string, name string) (*eventing.Channel, error) {
- channel := eventing.Channel{
- TypeMeta: metav1.TypeMeta{
- Kind: "Channel",
- APIVersion: eventing.SchemeGroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
+// GetAddressableReference looks up the resource among all given types and returns an object reference to it
+func GetAddressableReference(ctx context.Context, c client.Client, types []schema.GroupVersionKind, namespace string, name string) (*corev1.ObjectReference, error) {
+ for _, gvk := range types {
+ sink := corev1.ObjectReference{
+ Kind: gvk.Kind,
+ APIVersion: gvk.GroupVersion().String(),
Namespace: namespace,
- Name: name,
- },
+ Name: name,
+ }
+
+ _, err := GetSinkURI(ctx, c, &sink, namespace)
+ if err != nil && k8serrors.IsNotFound(err) {
+ continue
+ } else if err != nil {
+ return nil, err
+ }
+
+ return &sink, nil
+ }
+ return nil, k8serrors.NewNotFound(schema.GroupResource{}, name)
+}
+
+// GetSinkURI retrieves the sink URI from the object referenced by the given
+// ObjectReference.
+//
+// Method taken from https://github.com/knative/eventing-contrib/blob/master/pkg/controller/sinks/sinks.go
+func GetSinkURI(ctx context.Context, c client.Client, sink *corev1.ObjectReference, namespace string) (string, error) {
+ if sink == nil {
+ return "", fmt.Errorf("sink ref is nil")
+ }
+
+ u := &unstructured.Unstructured{}
+ u.SetGroupVersionKind(sink.GroupVersionKind())
+ err := c.Get(ctx, controller.ObjectKey{Namespace: namespace, Name: sink.Name}, u)
+ if err != nil {
+ return "", err
+ }
+
+ objIdentifier := fmt.Sprintf("\"%s/%s\" (%s)", u.GetNamespace(), u.GetName(), u.GroupVersionKind())
+ // Special case v1/Service to allow it be addressable
+ if u.GroupVersionKind().Kind == "Service" && u.GroupVersionKind().Version == "v1" {
+ return fmt.Sprintf("http://%s.%s.svc/", u.GetName(), u.GetNamespace()), nil
}
- key := k8sclient.ObjectKey{
- Namespace: namespace,
- Name: name,
+
+ t := duckv1alpha1.AddressableType{}
+ err = duck.FromUnstructured(u, &t)
+ if err != nil {
+ return "", fmt.Errorf("failed to deserialize sink %s: %v", objIdentifier, err)
}
- if err := client.Get(ctx, key, &channel); err != nil {
- return nil, errors.Wrap(err, "could not retrieve channel "+name+" in namespace "+namespace)
+
+ if t.Status.Address == nil {
+ return "", fmt.Errorf("sink %s does not contain address", objIdentifier)
+ }
+
+ url := t.Status.Address.GetURL()
+ if url.Host == "" {
+ return "", fmt.Errorf("sink %s contains an empty hostname", objIdentifier)
}
- return &channel, nil
+ return url.String(), nil
}
diff --git a/pkg/util/kubernetes/collection.go b/pkg/util/kubernetes/collection.go
index ca00640..0f52d4a 100644
--- a/pkg/util/kubernetes/collection.go
+++ b/pkg/util/kubernetes/collection.go
@@ -19,7 +19,8 @@ package kubernetes
import (
"github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
- serving "github.com/knative/serving/pkg/apis/serving/v1alpha1"
+ serving "knative.dev/serving/pkg/apis/serving/v1beta1"
+ servingv1 "knative.dev/serving/pkg/apis/serving/v1"
routev1 "github.com/openshift/api/route/v1"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
@@ -276,16 +277,16 @@ func (c *Collection) VisitContainer(visitor func(container *corev1.Container)) {
visitor(cntref)
}
})
- c.VisitKnativeConfigurationSpec(func(cs *serving.ConfigurationSpec) {
- for id := range cs.GetTemplate().Spec.Containers {
- cntref := &cs.GetTemplate().Spec.Containers[id]
+ c.VisitKnativeConfigurationSpec(func(cs *servingv1.ConfigurationSpec) {
+ for id := range cs.Template.Spec.Containers {
+ cntref := &cs.Template.Spec.Containers[id]
visitor(cntref)
}
})
}
// VisitKnativeConfigurationSpec executes the visitor function on all knative ConfigurationSpec inside serving Services
-func (c *Collection) VisitKnativeConfigurationSpec(visitor func(container *serving.ConfigurationSpec)) {
+func (c *Collection) VisitKnativeConfigurationSpec(visitor func(container *servingv1.ConfigurationSpec)) {
c.VisitKnativeService(func(s *serving.Service) {
visitor(&s.Spec.ConfigurationSpec)
})
diff --git a/pkg/util/kubernetes/replace.go b/pkg/util/kubernetes/replace.go
index 0e6625f..927a625 100644
--- a/pkg/util/kubernetes/replace.go
+++ b/pkg/util/kubernetes/replace.go
@@ -21,7 +21,7 @@ import (
"context"
"github.com/apache/camel-k/pkg/client"
- eventing "github.com/knative/eventing/pkg/apis/eventing/v1alpha1"
+ messaging "knative.dev/eventing/pkg/apis/messaging/v1alpha1"
routev1 "github.com/openshift/api/route/v1"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
@@ -93,8 +93,8 @@ func mapRequiredRouteData(from runtime.Object, to runtime.Object) {
}
func mapRequiredKnativeData(from runtime.Object, to runtime.Object) {
- if fromC, ok := from.(*eventing.Subscription); ok {
- if toC, ok := to.(*eventing.Subscription); ok {
+ if fromC, ok := from.(*messaging.Subscription); ok {
+ if toC, ok := to.(*messaging.Subscription); ok {
toC.Spec.DeprecatedGeneration = fromC.Spec.DeprecatedGeneration
}
}