From bf20fe2185ec75c7f115cc6d33a5cbab4d768785 Mon Sep 17 00:00:00 2001 From: Gunjan Vyas Date: Wed, 10 Aug 2022 02:38:34 +0530 Subject: [PATCH] Add support for providing sink spec in GVR format (#1717) --- pkg/kn/commands/flags/sink.go | 16 +++++++++++++++- pkg/kn/commands/flags/sink_test.go | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/kn/commands/flags/sink.go b/pkg/kn/commands/flags/sink.go index e0cabb6ec..9cc8fea7e 100644 --- a/pkg/kn/commands/flags/sink.go +++ b/pkg/kn/commands/flags/sink.go @@ -108,7 +108,21 @@ func (i *SinkFlags) ResolveSink(ctx context.Context, knclient clientdynamic.KnDy if prefix == "svc" || prefix == "service" { return nil, fmt.Errorf("unsupported sink prefix: '%s', please use prefix 'ksvc' for knative service", prefix) } - return nil, fmt.Errorf("unsupported sink prefix: '%s', if referring to a knative service in another namespace, 'ksvc:name:namespace' combination must be provided explicitly", prefix) + idx := strings.LastIndex(prefix, "/") + var groupVersion string + var kind string + if idx != -1 && idx < len(prefix)-1 { + groupVersion, kind = prefix[:idx], prefix[idx+1:] + } else { + kind = prefix + } + parsedVersion, _ := schema.ParseGroupVersion(groupVersion) + + typ = schema.GroupVersionResource{ + Group: parsedVersion.Group, + Version: parsedVersion.Version, + Resource: kind, + } } if ns != "" { namespace = ns diff --git a/pkg/kn/commands/flags/sink_test.go b/pkg/kn/commands/flags/sink_test.go index 3f63529d0..a194759a8 100644 --- a/pkg/kn/commands/flags/sink_test.go +++ b/pkg/kn/commands/flags/sink_test.go @@ -117,7 +117,7 @@ func TestResolve(t *testing.T) { {"http://target.example.com", &duckv1.Destination{ URI: targetExampleCom, }, ""}, - {"k8ssvc:foo", nil, "unsupported sink prefix: 'k8ssvc'"}, + {"k8ssvc:foo", nil, "k8ssvc \"foo\" not found"}, {"svc:foo", nil, "please use prefix 'ksvc' for knative service"}, {"service:foo", nil, "please use prefix 'ksvc' for knative service"}, }