You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2020/02/28 07:28:11 UTC

[camel-k] branch master updated (6eb9f94 -> cd0e84b)

This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git.


    from 6eb9f94  Make test timeouts configurable
     new 7df4638  Fix #1305: add spectrum builder
     new b2d1be0  Fix #1305: add build-publish-strategy flag
     new fd4891f  Fix #1305: use spectrum by default on minikube
     new 967e0b7  Fix #1305: add Spectrum to job matrix
     new 113aa76  Fix #1305: fix lint
     new ebf00c6  Fix #1305: fix workflow definition
     new 23f1263  Fix #1305: fix bug in publish strategy initialization
     new 15f6d0e  Fix #1305: fix case of transitive equality between images
     new cd0e84b  Fix #1305: fix test to check kit instead of image

The 9 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/knative.yml                    |  6 ++
 .github/workflows/kubernetes.yml                 |  6 ++
 deploy/resources.go                              |  8 +-
 e2e/test_support.go                              | 10 +++
 e2e/upgrade_test.go                              |  4 +-
 go.mod                                           | 10 +--
 go.sum                                           | 60 +++++++++++----
 pkg/apis/camel/v1/integrationplatform_types.go   | 32 ++++++--
 pkg/builder/spectrum/publisher.go                | 82 ++++++++++++++++++++
 pkg/builder/{s2i/s2i.go => spectrum/spectrum.go} |  6 +-
 pkg/cmd/install.go                               | 96 ++++++++++++++++--------
 pkg/install/operator.go                          |  4 +
 pkg/platform/defaults.go                         |  4 +-
 pkg/trait/builder.go                             |  3 +
 14 files changed, 259 insertions(+), 72 deletions(-)
 create mode 100644 pkg/builder/spectrum/publisher.go
 copy pkg/builder/{s2i/s2i.go => spectrum/spectrum.go} (93%)


[camel-k] 03/09: Fix #1305: use spectrum by default on minikube

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit fd4891f87699ba6a3f93fe0bf04e2e387af35155
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Thu Feb 27 12:32:19 2020 +0100

    Fix #1305: use spectrum by default on minikube
---
 pkg/install/operator.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkg/install/operator.go b/pkg/install/operator.go
index df44050..a12b27b 100644
--- a/pkg/install/operator.go
+++ b/pkg/install/operator.go
@@ -207,6 +207,10 @@ func PlatformOrCollect(ctx context.Context, c client.Client, clusterType string,
 
 			pl.Spec.Build.Registry.Address = *address
 			pl.Spec.Build.Registry.Insecure = true
+			if pl.Spec.Build.PublishStrategy == "" {
+				// Use spectrum in insecure dev clusters by default
+				pl.Spec.Build.PublishStrategy = v1.IntegrationPlatformBuildPublishStrategySpectrum
+			}
 		}
 	}
 


[camel-k] 09/09: Fix #1305: fix test to check kit instead of image

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit cd0e84b50674ef11a20fd727bdbb477c292b9454
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Fri Feb 28 00:52:59 2020 +0100

    Fix #1305: fix test to check kit instead of image
---
 e2e/test_support.go | 10 ++++++++++
 e2e/upgrade_test.go |  4 ++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/e2e/test_support.go b/e2e/test_support.go
index bb6ea57..095942d 100644
--- a/e2e/test_support.go
+++ b/e2e/test_support.go
@@ -358,6 +358,16 @@ func integrationSpecProfile(ns string, name string) func() v1.TraitProfile {
 	}
 }
 
+func integrationKit(ns string, name string) func() string {
+	return func() string {
+		it := integration(ns, name)()
+		if it == nil {
+			return ""
+		}
+		return it.Status.Kit
+	}
+}
+
 func setIntegrationVersion(ns string, name string, version string) error {
 	it := integration(ns, name)()
 	if it == nil {
diff --git a/e2e/upgrade_test.go b/e2e/upgrade_test.go
index 58e3115..ede5583 100644
--- a/e2e/upgrade_test.go
+++ b/e2e/upgrade_test.go
@@ -60,7 +60,7 @@ func TestIntegrationUpgrade(t *testing.T) {
 		// Run an integration
 		Expect(kamel("run", "-n", ns, "files/js.js").Execute()).Should(BeNil())
 		Eventually(integrationPodPhase(ns, "js"), testTimeoutMedium).Should(Equal(v1.PodRunning))
-		initialImage := integrationPodImage(ns, "js")()
+		initialKit := integrationKit(ns, "js")()
 
 		// Scale the operator down to zero
 		Eventually(scaleOperator(ns, 0)).Should(BeNil())
@@ -88,7 +88,7 @@ func TestIntegrationUpgrade(t *testing.T) {
 		Eventually(integrationVersion(ns, "js")).Should(Equal(defaults.Version))
 		Eventually(kitsWithVersion(ns, "an.older.one")).Should(Equal(1)) // old one is not recycled
 		Eventually(kitsWithVersion(ns, defaults.Version)).Should(Equal(1))
-		Eventually(integrationPodImage(ns, "js"), testTimeoutMedium).ShouldNot(Equal(initialImage)) // rolling deployment triggered
+		Eventually(integrationKit(ns, "js"), testTimeoutMedium).ShouldNot(Equal(initialKit))
 		Eventually(integrationPodPhase(ns, "js"), testTimeoutMedium).Should(Equal(v1.PodRunning))
 	})
 }


[camel-k] 01/09: Fix #1305: add spectrum builder

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 7df4638da9b6e53796129232befc91e0254564dd
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Thu Feb 27 12:07:27 2020 +0100

    Fix #1305: add spectrum builder
---
 deploy/resources.go                            |  8 +--
 go.mod                                         | 10 ++--
 go.sum                                         | 60 +++++++++++++++++------
 pkg/apis/camel/v1/integrationplatform_types.go |  8 +--
 pkg/builder/spectrum/publisher.go              | 68 ++++++++++++++++++++++++++
 pkg/builder/spectrum/spectrum.go               | 43 ++++++++++++++++
 pkg/platform/defaults.go                       |  4 +-
 pkg/trait/builder.go                           |  3 ++
 8 files changed, 174 insertions(+), 30 deletions(-)

diff --git a/deploy/resources.go b/deploy/resources.go
index 78bec6a..2049299 100644
--- a/deploy/resources.go
+++ b/deploy/resources.go
@@ -147,9 +147,9 @@ var assets = func() http.FileSystem {
 		"/operator-deployment.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "operator-deployment.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 2152,
+			uncompressedSize: 2148,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x54\xc1\x6e\xe3\x36\x10\xbd\xeb\x2b\x1e\xac\xcb\x2e\x10\xdb\xc9\x1e\xd5\x93\xea\x38\x88\xd1\x54\x36\x2c\x6f\x83\x3d\x15\x13\x6a\x24\x11\xa1\x48\x95\xa4\xa2\xd5\xdf\x17\x94\xed\xc4\xce\x66\xd3\x1e\x82\xe5\xc9\xe6\xcc\xbc\x79\x6f\xde\x88\x31\xa6\x1f\x77\xa2\x18\x77\x52\xb0\x76\x5c\xc0\x1b\xf8\x9a\x91\xb6\x24\x6a\x46\x6e\x4a\xdf\x93\x65\xdc\x98\x4e\x17\xe4\xa5\xd1\xf8\x94\xe6\x37\x9f\xd1\xe9\x82\x2d\x8c\x66\x18\x8b\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x54\xc1\x6e\xe3\x36\x10\xbd\xeb\x2b\x1e\xac\xcb\x2e\x10\xdb\x9b\x1e\xd5\x93\x9a\x38\x88\xd1\x54\x32\x2c\x6f\x83\x3d\x15\x13\x6a\x24\x11\xa1\x48\x95\xa4\xa2\xd5\xdf\x17\x94\xed\xc4\xce\x66\xd3\x1e\x82\xf2\x64\x73\x66\xde\xbc\x37\x6f\xc4\x18\xf3\x8f\x3b\x51\x8c\x3b\x29\x58\x3b\x2e\xe1\x0d\x7c\xc3\x48\x3b\x12\x0d\xa3\x30\x95\x1f\xc8\x32\x6e\x4c\xaf\x4b\xf2\xd2\x68\x7c\x4a\x8b\x9b\xcf\xe8\x75\xc9\x16\x46\x33\x8c\x45\x [...]
 		},
 		"/operator-role-binding-events.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "operator-role-binding-events.yaml",
@@ -217,9 +217,9 @@ var assets = func() http.FileSystem {
 		"/operator.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "operator.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 2101,
+			uncompressedSize: 2106,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x54\xc1\x6e\xe3\x36\x10\xbd\xeb\x2b\x1e\xac\xcb\x2e\x10\xdb\x9b\x3d\xaa\x27\xd5\x71\xb0\x42\x53\xd9\xb0\xbc\x0d\xf6\x54\x4c\xa8\x91\x44\x84\x22\x55\x92\x8a\x56\x7f\x5f\x50\xb6\x13\x3b\xbb\x4d\x7b\x08\xca\x93\xa4\x99\x79\xf3\xde\xcc\x13\x63\xcc\xdf\xef\x44\x31\xee\xa4\x60\xed\xb8\x84\x37\xf0\x0d\x23\xed\x48\x34\x8c\xc2\x54\x7e\x20\xcb\xb8\x35\xbd\x2e\xc9\x4b\xa3\xf1\x21\x2d\x6e\x3f\xa2\xd7\x25\x5b\x18\xcd\x30\x16\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x54\xc1\x6e\xe3\x36\x10\xbd\xeb\x2b\x1e\xac\xcb\x2e\x10\xdb\x49\x8f\xea\x49\x4d\x1c\xc4\x68\x2a\x19\x96\xb7\xc1\x9e\x8a\x09\x35\x92\x88\x50\xa4\x4a\x52\xd1\xea\xef\x0b\xca\x76\x62\x67\xb7\x69\x0f\xc1\xf2\x24\x69\x66\xde\xbc\x37\xf3\xc4\x18\xf3\x8f\x3b\x51\x8c\x7b\x29\x58\x3b\x2e\xe1\x0d\x7c\xc3\x48\x3b\x12\x0d\xa3\x30\x95\x1f\xc8\x32\x6e\x4d\xaf\x4b\xf2\xd2\x68\x7c\x4a\x8b\xdb\xcf\xe8\x75\xc9\x16\x46\x33\x8c\x45\x [...]
 		},
 		"/platform-cr.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "platform-cr.yaml",
diff --git a/go.mod b/go.mod
index 52f4532..ba55e6e 100644
--- a/go.mod
+++ b/go.mod
@@ -6,15 +6,14 @@ 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
+	contrib.go.opencensus.io/exporter/stackdriver v0.12.9-0.20191108183826-59d068f8d8ff // indirect
 	github.com/Masterminds/semver v1.5.0
-	github.com/alecthomas/jsonschema v0.0.0-20190122210438-a6952de1bbe6
+	github.com/container-tools/spectrum v0.3.0
 	github.com/coreos/prometheus-operator v0.34.0
 	github.com/evanphx/json-patch v4.5.0+incompatible
 	github.com/fatih/structs v1.1.0
 	github.com/gertd/go-pluralize v0.1.1
 	github.com/go-logr/logr v0.1.0
-	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/magiconair/properties v1.8.1
@@ -37,11 +36,10 @@ require (
 	github.com/stoewer/go-strcase v1.0.2
 	github.com/stretchr/testify v1.4.0
 	go.uber.org/multierr v1.1.0
-	golang.org/x/tools v0.0.0-20200204230316-67a4523381ef // indirect
 	gopkg.in/inf.v0 v0.9.1
 	gopkg.in/yaml.v2 v2.2.4
-	k8s.io/api v0.0.0
-	k8s.io/apimachinery v0.0.0
+	k8s.io/api v0.17.0
+	k8s.io/apimachinery v0.17.0
 	k8s.io/client-go v12.0.0+incompatible
 	k8s.io/gengo v0.0.0-20191010091904-7fa3014cb28f
 	knative.dev/eventing v0.12.0
diff --git a/go.sum b/go.sum
index a3675c8..188bbe4 100644
--- a/go.sum
+++ b/go.sum
@@ -15,23 +15,31 @@ contrib.go.opencensus.io/exporter/ocagent v0.6.0 h1:Z1n6UAyr0QwM284yUuh5Zd8JlvxU
 contrib.go.opencensus.io/exporter/ocagent v0.6.0/go.mod h1:zmKjrJcdo0aYcVS7bmEeSEBLPA9YJp5bjrofdU3pIXs=
 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.9-0.20191108183826-59d068f8d8ff h1:g4QkFNN0ak+sCs/jqbhYLNkQaF1NVaKVoQ4Xm1RV3wM=
 contrib.go.opencensus.io/exporter/stackdriver v0.12.9-0.20191108183826-59d068f8d8ff/go.mod h1:XyyafDnFOsqoxHJgTFycKZMrRUrPThLh2iYTJF6uoO0=
-contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA=
 github.com/Azure/azure-sdk-for-go v32.5.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go v38.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
 github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
 github.com/Azure/go-autorest/autorest v0.9.0 h1:MRvx8gncNaXJqOoLmhNjUAKh33JJF8LyxPhomEtOsjs=
 github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI=
+github.com/Azure/go-autorest/autorest v0.9.3 h1:OZEIaBbMdUE/Js+BQKlpO81XlISgipr6yDJ+PSwsgi4=
+github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0=
 github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU=
 github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0=
+github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc=
+github.com/Azure/go-autorest/autorest/adal v0.8.1 h1:pZdL8o72rK+avFWl+p9nE8RWi1JInZrWJYlnpfXJwHk=
+github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q=
 github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM=
 github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA=
+github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM=
+github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g=
 github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
 github.com/Azure/go-autorest/autorest/mocks v0.2.0 h1:Ww5g4zThfD/6cLb4z6xxgeyDa7QDkizMkJKe0ysZXp0=
 github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0=
+github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc=
+github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
 github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocmRAJWqST1wQYhyyjXJ3SJc=
+github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA=
 github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8=
 github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY=
 github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
@@ -54,7 +62,10 @@ github.com/Masterminds/sprig/v3 v3.0.0/go.mod h1:NEUY/Qq8Gdm2xgYA+NwJM6wmfdRV9xk
 github.com/Masterminds/vcs v1.13.0/go.mod h1:N09YCmOQr6RLxC6UNHzuVwAdodYbbnycGHSmwVJjcKA=
 github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
 github.com/Microsoft/go-winio v0.4.12/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
+github.com/Microsoft/go-winio v0.4.14 h1:+hMXMk01us9KgxGb7ftKQt2Xpf5hH/yky+TDA+qxleU=
+github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
 github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
+github.com/Microsoft/hcsshim v0.8.6 h1:ZfF0+zZeYdzMIVMZHKtDKJvLHj76XCuVae/jNkjj0IA=
 github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg=
 github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
 github.com/NYTimes/gziphandler v1.0.1/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
@@ -72,8 +83,6 @@ github.com/Rican7/retry v0.1.0/go.mod h1:FgOROf8P5bebcC1DS0PdOQiqGUridaZvikzUmkF
 github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
 github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
 github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/alecthomas/jsonschema v0.0.0-20190122210438-a6952de1bbe6 h1:xadBCbc8D9mmkaNfCsEBHbIoCjbayJXJNsY1JjPjNio=
-github.com/alecthomas/jsonschema v0.0.0-20190122210438-a6952de1bbe6/go.mod h1:qpebaTNSsyUn5rPSJMsfqEtDw71TTggXM6stUDI16HA=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -88,10 +97,10 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l
 github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM=
 github.com/aws/aws-sdk-go v1.16.26/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
 github.com/aws/aws-sdk-go v1.17.7/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
-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.23.20 h1:2CBuL21P0yKdZN5urf2NxKa1ha8fhnY+A3pBCHFeZoA=
 github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
+github.com/aws/aws-sdk-go v1.27.1 h1:MXnqY6SlWySaZAqNnXThOvjRFdiiOuKtC6i7baFdNdU=
+github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
 github.com/bazelbuild/bazel-gazelle v0.0.0-20181012220611-c728ce9f663e/go.mod h1:uHBSeeATKpVazAACZBDPL/Nk/UhQDDsJWDlqYJo8/Us=
 github.com/bazelbuild/buildtools v0.0.0-20180226164855-80c7f0d45d7e/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -114,8 +123,6 @@ github.com/bugsnag/panicwrap v1.2.0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywR
 github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=
 github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8=
 github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
-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/cespare/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod h1:Xe6ZsFhtM8HrDku0pxJ3/Lr51rwykrzgFwpmTzleatY=
@@ -133,11 +140,16 @@ github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMe
 github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk=
 github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0=
 github.com/container-storage-interface/spec v1.1.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4=
+github.com/container-tools/spectrum v0.2.0 h1:uYv/72LaqCt4GZwfCEs0B197WW3FuMiPSQcCazyLeXk=
+github.com/container-tools/spectrum v0.2.0/go.mod h1:n415mIONApBh3AzudGlBrFPNOaEB6mb2K9MZWmRLFSU=
+github.com/container-tools/spectrum v0.3.0 h1:LrgO7cTuk/V301IV1Gf+MAhqXh+YXw42mKmawe1w5PU=
+github.com/container-tools/spectrum v0.3.0/go.mod h1:n415mIONApBh3AzudGlBrFPNOaEB6mb2K9MZWmRLFSU=
 github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
 github.com/containerd/containerd v1.0.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 github.com/containerd/containerd v1.2.7/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 github.com/containerd/containerd v1.3.0-beta.2.0.20190823190603-4a2f61c4f2b4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
 github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
+github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 h1:4BX8f882bXEDKfWIf0wa8HRvpnBoPszJJXL+TVbBw4M=
 github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
 github.com/containerd/typeurl v0.0.0-20190228175220-2a93cfde8c20/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
 github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY=
@@ -183,14 +195,19 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8
 github.com/dhui/dktest v0.3.0/go.mod h1:cyzIUfGsBEbZ6BT7tnXqAShHSXCZhSNmFl70sZ7c1yc=
 github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
 github.com/docker/cli v0.0.0-20190506213505-d88565df0c2d/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017 h1:2HQmlpI3yI9deH18Q6xiSOIjXD4sLI55Y/gfpa8/558=
+github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 github.com/docker/distribution v2.7.0+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 github.com/docker/docker-credential-helpers v0.6.1/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
+github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ=
+github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
 github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
 github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
 github.com/docker/go-metrics v0.0.0-20181218153428-b84716841b82/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI=
 github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
+github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
 github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/docker/libnetwork v0.0.0-20180830151422-a9cd636e3789/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8=
 github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
@@ -359,8 +376,8 @@ 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-containerregistry v0.0.0-20200220215334-221517453cf9 h1:osTmoIrX1KoDXk9LKc9FmLCka+5yzcNuOatH4OGIAwM=
+github.com/google/go-containerregistry v0.0.0-20200220215334-221517453cf9/go.mod h1:m8YvHwSOuBCq25yrj1DaX/fIMrv6ec3CNg8jY8+5PEA=
 github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
 github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
 github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
@@ -380,6 +397,7 @@ github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+
 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/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
+github.com/googleapis/gnostic v0.2.2/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
 github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
 github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk=
 github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU=
@@ -391,6 +409,7 @@ github.com/gorilla/handlers v1.4.0/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/
 github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
+github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gosuri/uitable v0.0.1/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo=
 github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
@@ -537,6 +556,7 @@ github.com/mitchellh/hashstructure v1.0.0/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1D
 github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
+github.com/moby/moby v0.7.3-0.20190826074503-38ab9da00309 h1:cvy4lBOYN3gKfKj8Lzz5Q9TfviP+L7koMHY7SvkyTKs=
 github.com/moby/moby v0.7.3-0.20190826074503-38ab9da00309/go.mod h1:fDXVQ6+S340veQPv35CzDahGBmHsiclFwfEygB/TWMc=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
@@ -547,6 +567,7 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9
 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
 github.com/morikuni/aec v0.0.0-20170113033406-39771216ff4c/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
+github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
 github.com/mrunalp/fileutils v0.0.0-20160930181131-4ee1cc9a8058/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0=
 github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/munnerz/goautoneg v0.0.0-20190414153302-2ae31c8b6b30/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
@@ -573,9 +594,12 @@ github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo=
 github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
 github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
 github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
+github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=
 github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
 github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
+github.com/opencontainers/runc v1.0.0-rc2.0.20190611121236-6cc515888830 h1:yvQ/2Pupw60ON8TYEIGGTAI77yZsWYkiOeHFZWkwlCk=
 github.com/opencontainers/runc v1.0.0-rc2.0.20190611121236-6cc515888830/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
 github.com/opencontainers/runtime-spec v1.0.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
 github.com/opencontainers/selinux v1.2.2/go.mod h1:+BLncwf63G4dgOzykXAxcmnFlUaOlkDdmw/CqsW6pjs=
@@ -591,7 +615,6 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ
 github.com/operator-framework/api v0.0.0-20200120235816-80fd2f1a09c9/go.mod h1:S5IdlJvmKkF84K2tBvsrqJbI2FVy03P88R75snpRxJo=
 github.com/operator-framework/operator-lifecycle-manager v0.0.0-20191115003340-16619cd27fa5 h1:rjaihxY50c5C+kbQIK4s36R8zxByATYrgRbua4eiG6o=
 github.com/operator-framework/operator-lifecycle-manager v0.0.0-20191115003340-16619cd27fa5/go.mod h1:zL34MNy92LPutBH5gQK+gGhtgTUlZZX03I2G12vWHF4=
-github.com/operator-framework/operator-lifecycle-manager v3.11.0+incompatible h1:Po8C8RVLRWq7pNQ5pKonM9CXpC/osoBWbmsuf+HJnSI=
 github.com/operator-framework/operator-registry v1.5.1/go.mod h1:agrQlkWOo1q8U1SAaLSS2WQ+Z9vswNT2M2HFib9iuLY=
 github.com/operator-framework/operator-registry v1.5.3/go.mod h1:agrQlkWOo1q8U1SAaLSS2WQ+Z9vswNT2M2HFib9iuLY=
 github.com/operator-framework/operator-registry v1.5.7-0.20200121213444-d8e2ec52c19a/go.mod h1:ekexcV4O8YMxdQuPb+Xco7MHfVmRIq7Jvj5e6NU7dHI=
@@ -739,6 +762,7 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
 github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
 github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
+github.com/vdemeester/k8s-pkg-credentialprovider v0.0.0-20200107171650-7c61ffa44238/go.mod h1:JwQJCMWpUDqjZrB5jpw0f5VbN7U95zxFy1ZDpoEarGo=
 github.com/vishvananda/netlink v0.0.0-20171020171820-b2de5d10e38e/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
 github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
 github.com/vmware/govmomi v0.20.1/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
@@ -797,6 +821,8 @@ golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8U
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20191028145041-f83a4685e152 h1:ZC1Xn5A1nlpSmQCIva4bZ3ob3lmhYIefc+GU+DLg1Ow=
 golang.org/x/crypto v0.0.0-20191028145041-f83a4685e152/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 h1:ULYEB3JvPRE/IfO+9uO7vKV/xzVTO7XPAwm8xbf4w2g=
+golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -808,6 +834,7 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx
 golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
 golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
 golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
 golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
 golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=
@@ -932,8 +959,9 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw
 golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
 golang.org/x/tools v0.0.0-20191018212557-ed542cd5b28a h1:UuQ+70Pi/ZdWHuP4v457pkXeOynTdgd/4enxeIO/98k=
 golang.org/x/tools v0.0.0-20191018212557-ed542cd5b28a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200204230316-67a4523381ef h1:mdhEDFpO1Tfj7PXIflIuP1tbXt4rJgHIvbzdh62SARw=
-golang.org/x/tools v0.0.0-20200204230316-67a4523381ef/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200210192313-1ace956b0e17 h1:a/Fd23DJvg1CaeDH0dYHahE+hCI0v9rFgxSNIThoUcM=
+golang.org/x/tools v0.0.0-20200210192313-1ace956b0e17/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=
@@ -947,8 +975,6 @@ gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmK
 google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
 google.golang.org/api v0.3.2/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
 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.6.1-0.20190607001116-5213b8090861 h1:ppLucX0K/60T3t6LPZQzTOkt5PytkEbQLIaSteq+TpE=
 google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4=
 google.golang.org/api v0.7.0 h1:9sdfJOzWlkqPltHAuzT2Cp+yrBeY1KRVYgms8soxMwM=
@@ -1028,6 +1054,7 @@ gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gotest.tools v2.1.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
+gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
 gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
 gotest.tools/gotestsum v0.3.5/go.mod h1:Mnf3e5FUzXbkCfynWBGOwLssY7gTQgCHObK9tMpAriY=
 helm.sh/helm/v3 v3.0.0/go.mod h1:sI7B9yfvMgxtTPMWdk1jSKJ2aa59UyP9qhPydqW6mgo=
@@ -1038,6 +1065,7 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh
 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=
 honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
+honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 k8s.io/api v0.0.0-20191016110408-35e52d86657a h1:VVUE9xTCXP6KUPMf92cQmN88orz600ebexcRRaBTepQ=
 k8s.io/api v0.0.0-20191016110408-35e52d86657a/go.mod h1:/L5qH+AD540e7Cetbui1tuJeXdmNhO8jM6VkXeDdDhQ=
 k8s.io/apiextensions-apiserver v0.0.0-20191016113550-5357c4baaf65 h1:kThoiqgMsSwBdMK/lPgjtYTsEjbUU9nXCA9DyU3feok=
diff --git a/pkg/apis/camel/v1/integrationplatform_types.go b/pkg/apis/camel/v1/integrationplatform_types.go
index ad00423..9e69253 100644
--- a/pkg/apis/camel/v1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1/integrationplatform_types.go
@@ -139,12 +139,14 @@ const (
 type IntegrationPlatformBuildPublishStrategy string
 
 const (
-	// IntegrationPlatformBuildPublishStrategyBuildah
+	// IntegrationPlatformBuildPublishStrategyBuildah --
 	IntegrationPlatformBuildPublishStrategyBuildah = "Buildah"
-	// IntegrationPlatformBuildPublishStrategyKaniko
+	// IntegrationPlatformBuildPublishStrategyKaniko --
 	IntegrationPlatformBuildPublishStrategyKaniko = "Kaniko"
-	// IntegrationPlatformBuildPublishStrategyS2I
+	// IntegrationPlatformBuildPublishStrategyS2I --
 	IntegrationPlatformBuildPublishStrategyS2I = "S2I"
+	// IntegrationPlatformBuildPublishStrategySpectrum --
+	IntegrationPlatformBuildPublishStrategySpectrum = "Spectrum"
 )
 
 // IntegrationPlatformPhase --
diff --git a/pkg/builder/spectrum/publisher.go b/pkg/builder/spectrum/publisher.go
new file mode 100644
index 0000000..4aaf59c
--- /dev/null
+++ b/pkg/builder/spectrum/publisher.go
@@ -0,0 +1,68 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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 spectrum
+
+import (
+	"fmt"
+	"path"
+
+	"github.com/apache/camel-k/pkg/builder"
+	"github.com/apache/camel-k/pkg/platform"
+	spectrum "github.com/container-tools/spectrum/pkg/builder"
+)
+
+func publisher(ctx *builder.Context) error {
+	pl, err := platform.GetCurrentPlatform(ctx.C, ctx, ctx.Namespace)
+	if err != nil {
+		return err
+	}
+
+	target := "camel-k-" + ctx.Build.Meta.Name + ":" + ctx.Build.Meta.ResourceVersion
+	repo := pl.Status.Build.Registry.Organization
+	if repo != "" {
+		target = fmt.Sprintf("%s/%s", repo, target)
+	} else {
+		target = fmt.Sprintf("%s/%s", ctx.Namespace, target)
+	}
+	registry := pl.Status.Build.Registry.Address
+	if registry != "" {
+		target = fmt.Sprintf("%s/%s", registry, target)
+	}
+
+	pullInsecure := pl.Status.Build.Registry.Insecure // incremental build case
+	if ctx.BaseImage == pl.Status.Build.BaseImage {
+		// Assuming the base image is always secure (we should add a flag)
+		pullInsecure = false
+	}
+
+	options := spectrum.Options{
+		Base:         ctx.BaseImage,
+		Target:       target,
+		PullInsecure: pullInsecure,
+		PushInsecure: pl.Status.Build.Registry.Insecure,
+	}
+
+	digest, err := spectrum.Build(options, path.Join(ctx.Path, "context", "dependencies")+":/deployments/dependencies")
+	if err != nil {
+		return err
+	}
+
+	ctx.Image = target
+	ctx.Digest = digest
+	return nil
+}
diff --git a/pkg/builder/spectrum/spectrum.go b/pkg/builder/spectrum/spectrum.go
new file mode 100644
index 0000000..933908d
--- /dev/null
+++ b/pkg/builder/spectrum/spectrum.go
@@ -0,0 +1,43 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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 spectrum
+
+import (
+	"github.com/apache/camel-k/pkg/builder"
+)
+
+func init() {
+	builder.RegisterSteps(Steps)
+}
+
+type steps struct {
+	Publisher builder.Step
+}
+
+// Steps --
+var Steps = steps{
+	Publisher: builder.NewStep(
+		builder.ApplicationPublishPhase,
+		publisher,
+	),
+}
+
+// S2iSteps --
+var SpectrumSteps = []builder.Step{
+	Steps.Publisher,
+}
diff --git a/pkg/platform/defaults.go b/pkg/platform/defaults.go
index 3ad4db1..8b50ec8 100644
--- a/pkg/platform/defaults.go
+++ b/pkg/platform/defaults.go
@@ -42,6 +42,7 @@ import (
 	"github.com/apache/camel-k/pkg/util/openshift"
 )
 
+// BuilderServiceAccount --
 const BuilderServiceAccount = "camel-k-builder"
 
 // ConfigureDefaults fills with default values all missing details about the integration platform.
@@ -78,7 +79,8 @@ func ConfigureDefaults(ctx context.Context, c client.Client, p *v1.IntegrationPl
 			// The only global strategy we have for now
 			p.Status.Build.BuildStrategy = v1.IntegrationPlatformBuildStrategyPod
 		} else {
-			if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyS2I {
+			if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyS2I ||
+				p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategySpectrum {
 				p.Status.Build.BuildStrategy = v1.IntegrationPlatformBuildStrategyRoutine
 			} else {
 				// The build output has to be shared via a volume
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 02f8bcf..ea07f8f 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -23,6 +23,7 @@ import (
 	"strconv"
 	"strings"
 
+	"github.com/apache/camel-k/pkg/builder/spectrum"
 	"github.com/pkg/errors"
 
 	corev1 "k8s.io/api/core/v1"
@@ -192,6 +193,8 @@ func (t *builderTrait) builderTask(e *Environment) *v1.BuilderTask {
 
 	case v1.IntegrationPlatformBuildPublishStrategyS2I:
 		task.Steps = append(task.Steps, builder.StepIDsFor(s2i.S2iSteps...)...)
+	case v1.IntegrationPlatformBuildPublishStrategySpectrum:
+		task.Steps = append(task.Steps, builder.StepIDsFor(spectrum.SpectrumSteps...)...)
 	}
 
 	quarkus := e.Catalog.GetTrait("quarkus").(*quarkusTrait)


[camel-k] 08/09: Fix #1305: fix case of transitive equality between images

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 15f6d0ed90b09bbfd814d6e05dbe3044e176f215
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Fri Feb 28 00:10:38 2020 +0100

    Fix #1305: fix case of transitive equality between images
---
 pkg/builder/spectrum/publisher.go | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/pkg/builder/spectrum/publisher.go b/pkg/builder/spectrum/publisher.go
index 4aaf59c..5b834f7 100644
--- a/pkg/builder/spectrum/publisher.go
+++ b/pkg/builder/spectrum/publisher.go
@@ -19,14 +19,28 @@ package spectrum
 
 import (
 	"fmt"
+	"os"
 	"path"
 
 	"github.com/apache/camel-k/pkg/builder"
 	"github.com/apache/camel-k/pkg/platform"
+	"github.com/apache/camel-k/pkg/util/log"
 	spectrum "github.com/container-tools/spectrum/pkg/builder"
 )
 
 func publisher(ctx *builder.Context) error {
+	libraryPath := path.Join(ctx.Path, "context", "dependencies")
+	_, err := os.Stat(libraryPath)
+	if err != nil && os.IsNotExist(err) {
+		// this can only indicate that there are no more libraries to add to the base image,
+		// because transitive resolution is the same even if spec differs
+		log.Infof("No new image to build, reusing existing image %s", ctx.BaseImage)
+		ctx.Image = ctx.BaseImage
+		return nil
+	} else if err != nil {
+		return err
+	}
+
 	pl, err := platform.GetCurrentPlatform(ctx.C, ctx, ctx.Namespace)
 	if err != nil {
 		return err
@@ -57,7 +71,7 @@ func publisher(ctx *builder.Context) error {
 		PushInsecure: pl.Status.Build.Registry.Insecure,
 	}
 
-	digest, err := spectrum.Build(options, path.Join(ctx.Path, "context", "dependencies")+":/deployments/dependencies")
+	digest, err := spectrum.Build(options, libraryPath+":/deployments/dependencies")
 	if err != nil {
 		return err
 	}


[camel-k] 02/09: Fix #1305: add build-publish-strategy flag

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit b2d1be078e8e49d57f46a734e2b384962d1f72e5
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Thu Feb 27 12:27:39 2020 +0100

    Fix #1305: add build-publish-strategy flag
---
 pkg/apis/camel/v1/integrationplatform_types.go | 22 ++++--
 pkg/cmd/install.go                             | 96 +++++++++++++++++---------
 2 files changed, 80 insertions(+), 38 deletions(-)

diff --git a/pkg/apis/camel/v1/integrationplatform_types.go b/pkg/apis/camel/v1/integrationplatform_types.go
index 9e69253..8c228c6 100644
--- a/pkg/apis/camel/v1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1/integrationplatform_types.go
@@ -130,24 +130,34 @@ type IntegrationPlatformBuildStrategy string
 
 const (
 	// IntegrationPlatformBuildStrategyRoutine performs the build in a routine
-	IntegrationPlatformBuildStrategyRoutine = "routine"
+	IntegrationPlatformBuildStrategyRoutine IntegrationPlatformBuildStrategy = "routine"
 	// IntegrationPlatformBuildStrategyPod performs the build in a pod
-	IntegrationPlatformBuildStrategyPod = "pod"
+	IntegrationPlatformBuildStrategyPod IntegrationPlatformBuildStrategy = "pod"
 )
+var IntegrationPlatformBuildStrategies = []IntegrationPlatformBuildStrategy{
+	IntegrationPlatformBuildStrategyRoutine,
+	IntegrationPlatformBuildStrategyPod,
+}
 
 // IntegrationPlatformBuildPublishStrategy enumerates all implemented publish strategies
 type IntegrationPlatformBuildPublishStrategy string
 
 const (
 	// IntegrationPlatformBuildPublishStrategyBuildah --
-	IntegrationPlatformBuildPublishStrategyBuildah = "Buildah"
+	IntegrationPlatformBuildPublishStrategyBuildah IntegrationPlatformBuildPublishStrategy = "Buildah"
 	// IntegrationPlatformBuildPublishStrategyKaniko --
-	IntegrationPlatformBuildPublishStrategyKaniko = "Kaniko"
+	IntegrationPlatformBuildPublishStrategyKaniko IntegrationPlatformBuildPublishStrategy = "Kaniko"
 	// IntegrationPlatformBuildPublishStrategyS2I --
-	IntegrationPlatformBuildPublishStrategyS2I = "S2I"
+	IntegrationPlatformBuildPublishStrategyS2I IntegrationPlatformBuildPublishStrategy = "S2I"
 	// IntegrationPlatformBuildPublishStrategySpectrum --
-	IntegrationPlatformBuildPublishStrategySpectrum = "Spectrum"
+	IntegrationPlatformBuildPublishStrategySpectrum IntegrationPlatformBuildPublishStrategy = "Spectrum"
 )
+var IntegrationPlatformBuildPublishStrategies = []IntegrationPlatformBuildPublishStrategy{
+	IntegrationPlatformBuildPublishStrategyBuildah,
+	IntegrationPlatformBuildPublishStrategyKaniko,
+	IntegrationPlatformBuildPublishStrategyS2I,
+	IntegrationPlatformBuildPublishStrategySpectrum,
+}
 
 // IntegrationPlatformPhase --
 type IntegrationPlatformPhase string
diff --git a/pkg/cmd/install.go b/pkg/cmd/install.go
index 183f32b..5db2adf 100644
--- a/pkg/cmd/install.go
+++ b/pkg/cmd/install.go
@@ -93,6 +93,7 @@ func newCmdInstall(rootCmdOptions *RootCmdOptions) (*cobra.Command, *installCmdO
 	cmd.Flags().String("operator-image", "", "Set the operator Image used for the operator deployment")
 	cmd.Flags().StringArray("kit", nil, "Add an integration kit to build at startup")
 	cmd.Flags().String("build-strategy", "", "Set the build strategy")
+	cmd.Flags().String("build-publish-strategy", "", "Set the build publish strategy")
 	cmd.Flags().String("build-timeout", "", "Set how long the build process can last")
 	cmd.Flags().String("trait-profile", "", "The profile to use for traits")
 	cmd.Flags().Bool("kaniko-build-cache", false, "To enable or disable the Kaniko cache")
@@ -133,30 +134,31 @@ func newCmdInstall(rootCmdOptions *RootCmdOptions) (*cobra.Command, *installCmdO
 
 type installCmdOptions struct {
 	*RootCmdOptions
-	Wait              bool     `mapstructure:"wait"`
-	ClusterSetupOnly  bool     `mapstructure:"cluster-setup"`
-	SkipOperatorSetup bool     `mapstructure:"skip-operator-setup"`
-	SkipClusterSetup  bool     `mapstructure:"skip-cluster-setup"`
-	ExampleSetup      bool     `mapstructure:"example"`
-	Global            bool     `mapstructure:"global"`
-	KanikoBuildCache  bool     `mapstructure:"kaniko-build-cache"`
-	Save              bool     `mapstructure:"save"`
-	Force             bool     `mapstructure:"force"`
-	Olm               bool     `mapstructure:"olm"`
-	ClusterType       string   `mapstructure:"cluster-type"`
-	OutputFormat      string   `mapstructure:"output"`
-	RuntimeVersion    string   `mapstructure:"runtime-version"`
-	BaseImage         string   `mapstructure:"base-image"`
-	OperatorImage     string   `mapstructure:"operator-image"`
-	LocalRepository   string   `mapstructure:"local-repository"`
-	BuildStrategy     string   `mapstructure:"build-strategy"`
-	BuildTimeout      string   `mapstructure:"build-timeout"`
-	MavenRepositories []string `mapstructure:"maven-repositories"`
-	MavenSettings     string   `mapstructure:"maven-settings"`
-	Properties        []string `mapstructure:"properties"`
-	Kits              []string `mapstructure:"kits"`
-	TraitProfile      string   `mapstructure:"trait-profile"`
-	HTTPProxySecret   string   `mapstructure:"http-proxy-secret"`
+	Wait                 bool     `mapstructure:"wait"`
+	ClusterSetupOnly     bool     `mapstructure:"cluster-setup"`
+	SkipOperatorSetup    bool     `mapstructure:"skip-operator-setup"`
+	SkipClusterSetup     bool     `mapstructure:"skip-cluster-setup"`
+	ExampleSetup         bool     `mapstructure:"example"`
+	Global               bool     `mapstructure:"global"`
+	KanikoBuildCache     bool     `mapstructure:"kaniko-build-cache"`
+	Save                 bool     `mapstructure:"save"`
+	Force                bool     `mapstructure:"force"`
+	Olm                  bool     `mapstructure:"olm"`
+	ClusterType          string   `mapstructure:"cluster-type"`
+	OutputFormat         string   `mapstructure:"output"`
+	RuntimeVersion       string   `mapstructure:"runtime-version"`
+	BaseImage            string   `mapstructure:"base-image"`
+	OperatorImage        string   `mapstructure:"operator-image"`
+	LocalRepository      string   `mapstructure:"local-repository"`
+	BuildStrategy        string   `mapstructure:"build-strategy"`
+	BuildPublishStrategy string   `mapstructure:"build-publish-strategy"`
+	BuildTimeout         string   `mapstructure:"build-timeout"`
+	MavenRepositories    []string `mapstructure:"maven-repositories"`
+	MavenSettings        string   `mapstructure:"maven-settings"`
+	Properties           []string `mapstructure:"properties"`
+	Kits                 []string `mapstructure:"kits"`
+	TraitProfile         string   `mapstructure:"trait-profile"`
+	HTTPProxySecret      string   `mapstructure:"http-proxy-secret"`
 
 	registry     v1.IntegrationPlatformRegistrySpec
 	registryAuth registry.Auth
@@ -291,14 +293,10 @@ func (o *installCmdOptions) install(cobraCmd *cobra.Command, _ []string) error {
 			platform.Spec.Build.BaseImage = o.BaseImage
 		}
 		if o.BuildStrategy != "" {
-			switch s := o.BuildStrategy; s {
-			case v1.IntegrationPlatformBuildStrategyPod:
-				platform.Spec.Build.BuildStrategy = v1.IntegrationPlatformBuildStrategyPod
-			case v1.IntegrationPlatformBuildStrategyRoutine:
-				platform.Spec.Build.BuildStrategy = v1.IntegrationPlatformBuildStrategyRoutine
-			default:
-				return fmt.Errorf("unknown build strategy: %s", s)
-			}
+			platform.Spec.Build.BuildStrategy = v1.IntegrationPlatformBuildStrategy(o.BuildStrategy)
+		}
+		if o.BuildPublishStrategy != "" {
+			platform.Spec.Build.PublishStrategy = v1.IntegrationPlatformBuildPublishStrategy(o.BuildStrategy)
 		}
 		if o.BuildTimeout != "" {
 			d, err := time.ParseDuration(o.BuildTimeout)
@@ -493,6 +491,40 @@ func (o *installCmdOptions) validate(_ *cobra.Command, _ []string) error {
 		result = multierr.Append(result, err)
 	}
 
+	if o.BuildStrategy != "" {
+		found := false
+		for _, s := range v1.IntegrationPlatformBuildStrategies {
+			if string(s) == o.BuildStrategy {
+				found = true
+				break
+			}
+		}
+		if !found {
+			var strategies []string
+			for _, s := range v1.IntegrationPlatformBuildStrategies {
+				strategies = append(strategies, string(s))
+			}
+			return fmt.Errorf("unknown build strategy: %s. One of [%s] is expected", o.BuildStrategy, strings.Join(strategies, ", "))
+		}
+	}
+
+	if o.BuildPublishStrategy != "" {
+		found := false
+		for _, s := range v1.IntegrationPlatformBuildPublishStrategies {
+			if string(s) == o.BuildPublishStrategy {
+				found = true
+				break
+			}
+		}
+		if !found {
+			var strategies []string
+			for _, s := range v1.IntegrationPlatformBuildPublishStrategies {
+				strategies = append(strategies, string(s))
+			}
+			return fmt.Errorf("unknown build publish strategy: %s. One of [%s] is expected", o.BuildPublishStrategy, strings.Join(strategies, ", "))
+		}
+	}
+
 	return result
 }
 


[camel-k] 04/09: Fix #1305: add Spectrum to job matrix

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 967e0b7646deb63923b809fbd799acc3bdaa909d
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Thu Feb 27 12:38:02 2020 +0100

    Fix #1305: add Spectrum to job matrix
---
 .github/workflows/knative.yml    | 5 +++++
 .github/workflows/kubernetes.yml | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/.github/workflows/knative.yml b/.github/workflows/knative.yml
index ef63c4e..06aeb30 100644
--- a/.github/workflows/knative.yml
+++ b/.github/workflows/knative.yml
@@ -30,6 +30,9 @@ jobs:
 
     runs-on: ubuntu-latest
 
+    matrix:
+      publisher: ["Buildah", "Spectrum"]
+
     steps:
     - name: Checkout code
       uses: actions/checkout@v2
@@ -89,6 +92,8 @@ jobs:
         while [ "$(kubectl get pod -n knative-eventing -o 'jsonpath={range .items[*]}{.status.conditions[?(@.type=="Ready")].status}{"\n"}' | grep -v True | wc -l)" != "0" ]; do echo "Waiting for all pods to be ready in knative-eventing"; kubectl get pod -n knative-eventing; sleep 5; done
 
     - name: Run IT
+      env:
+        KAMEL_INSTALL_BUILD_PUBLISH_STRATEGY: ${{ matrix.publisher }}
       run: |
         # Compute registry parameters
         CAMEL_K_REGISTRY=$(docker inspect --format '{{.NetworkSettings.IPAddress }}' "kind-registry")
diff --git a/.github/workflows/kubernetes.yml b/.github/workflows/kubernetes.yml
index 40e6902..82558be 100644
--- a/.github/workflows/kubernetes.yml
+++ b/.github/workflows/kubernetes.yml
@@ -30,6 +30,9 @@ jobs:
 
     runs-on: ubuntu-latest
 
+    matrix:
+      publisher: ["Buildah", "Spectrum"]
+
     steps:
     - name: Checkout code
       uses: actions/checkout@v2
@@ -79,6 +82,8 @@ jobs:
       #  TEST_GITHUB_PACKAGES_REPO: ${{ secrets.TEST_GITHUB_PACKAGES_REPO }}
       #  TEST_GITHUB_PACKAGES_USERNAME: ${{ secrets.TEST_GITHUB_PACKAGES_USERNAME }}
       #  TEST_GITHUB_PACKAGES_PASSWORD: ${{ secrets.TEST_GITHUB_PACKAGES_PASSWORD }}
+      env:
+        KAMEL_INSTALL_BUILD_PUBLISH_STRATEGY: ${{ matrix.publisher }}
       run: |
         # Compute registry parameters
         CAMEL_K_REGISTRY=$(docker inspect --format '{{.NetworkSettings.IPAddress }}' "kind-registry")


[camel-k] 07/09: Fix #1305: fix bug in publish strategy initialization

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 23f1263b4fb358c9819e5bea4cab1d1d6ffb91f8
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Thu Feb 27 14:15:48 2020 +0100

    Fix #1305: fix bug in publish strategy initialization
---
 pkg/cmd/install.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkg/cmd/install.go b/pkg/cmd/install.go
index 5db2adf..d85f2c3 100644
--- a/pkg/cmd/install.go
+++ b/pkg/cmd/install.go
@@ -296,7 +296,7 @@ func (o *installCmdOptions) install(cobraCmd *cobra.Command, _ []string) error {
 			platform.Spec.Build.BuildStrategy = v1.IntegrationPlatformBuildStrategy(o.BuildStrategy)
 		}
 		if o.BuildPublishStrategy != "" {
-			platform.Spec.Build.PublishStrategy = v1.IntegrationPlatformBuildPublishStrategy(o.BuildStrategy)
+			platform.Spec.Build.PublishStrategy = v1.IntegrationPlatformBuildPublishStrategy(o.BuildPublishStrategy)
 		}
 		if o.BuildTimeout != "" {
 			d, err := time.ParseDuration(o.BuildTimeout)


[camel-k] 05/09: Fix #1305: fix lint

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 113aa76396a4e69e09ad1c850a98fed837f32992
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Thu Feb 27 12:42:57 2020 +0100

    Fix #1305: fix lint
---
 pkg/apis/camel/v1/integrationplatform_types.go | 4 ++++
 pkg/builder/spectrum/spectrum.go               | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/pkg/apis/camel/v1/integrationplatform_types.go b/pkg/apis/camel/v1/integrationplatform_types.go
index 8c228c6..143649f 100644
--- a/pkg/apis/camel/v1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1/integrationplatform_types.go
@@ -134,6 +134,8 @@ const (
 	// IntegrationPlatformBuildStrategyPod performs the build in a pod
 	IntegrationPlatformBuildStrategyPod IntegrationPlatformBuildStrategy = "pod"
 )
+
+// IntegrationPlatformBuildStrategies --
 var IntegrationPlatformBuildStrategies = []IntegrationPlatformBuildStrategy{
 	IntegrationPlatformBuildStrategyRoutine,
 	IntegrationPlatformBuildStrategyPod,
@@ -152,6 +154,8 @@ const (
 	// IntegrationPlatformBuildPublishStrategySpectrum --
 	IntegrationPlatformBuildPublishStrategySpectrum IntegrationPlatformBuildPublishStrategy = "Spectrum"
 )
+
+// IntegrationPlatformBuildPublishStrategies --
 var IntegrationPlatformBuildPublishStrategies = []IntegrationPlatformBuildPublishStrategy{
 	IntegrationPlatformBuildPublishStrategyBuildah,
 	IntegrationPlatformBuildPublishStrategyKaniko,
diff --git a/pkg/builder/spectrum/spectrum.go b/pkg/builder/spectrum/spectrum.go
index 933908d..19772a3 100644
--- a/pkg/builder/spectrum/spectrum.go
+++ b/pkg/builder/spectrum/spectrum.go
@@ -37,7 +37,7 @@ var Steps = steps{
 	),
 }
 
-// S2iSteps --
+// SpectrumSteps --
 var SpectrumSteps = []builder.Step{
 	Steps.Publisher,
 }


[camel-k] 06/09: Fix #1305: fix workflow definition

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit ebf00c6c6de543343600d2859c1a750cc1b38820
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Thu Feb 27 13:11:01 2020 +0100

    Fix #1305: fix workflow definition
---
 .github/workflows/knative.yml    | 5 +++--
 .github/workflows/kubernetes.yml | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/knative.yml b/.github/workflows/knative.yml
index 06aeb30..adfb133 100644
--- a/.github/workflows/knative.yml
+++ b/.github/workflows/knative.yml
@@ -30,8 +30,9 @@ jobs:
 
     runs-on: ubuntu-latest
 
-    matrix:
-      publisher: ["Buildah", "Spectrum"]
+    strategy:
+      matrix:
+        publisher: ["Buildah", "Spectrum"]
 
     steps:
     - name: Checkout code
diff --git a/.github/workflows/kubernetes.yml b/.github/workflows/kubernetes.yml
index 82558be..eb6d51e 100644
--- a/.github/workflows/kubernetes.yml
+++ b/.github/workflows/kubernetes.yml
@@ -30,8 +30,9 @@ jobs:
 
     runs-on: ubuntu-latest
 
-    matrix:
-      publisher: ["Buildah", "Spectrum"]
+    strategy:
+      matrix:
+        publisher: ["Buildah", "Spectrum"]
 
     steps:
     - name: Checkout code