Skip to content

cmd/operator-sdk/alpha: 'up/down olm' commands to run an operator #1912

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 41 commits into from
Closed
Show file tree
Hide file tree
Changes from 39 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
b890ef5
cmd/operator-sdk/alpha: 'up/down olm' commands to run an operator
estroz Sep 12, 2019
2da1009
fix unit test
estroz Sep 12, 2019
ea20611
remove excessive Deployment mount paths
estroz Sep 13, 2019
7324bfd
reorganize imports, move DNS 1123 label formatter to registry utils
estroz Sep 13, 2019
17471e5
internal/olm/operator/internal: implement stale registry data check
estroz Sep 13, 2019
fefa150
bump test timeout
estroz Sep 13, 2019
6c89c93
generalize manifests field passed to OLMCmd
estroz Sep 13, 2019
86f170f
handle OperatorGroup's and namespacing correctly
estroz Sep 17, 2019
11e63dd
use integration test suite instead of subcommand tests
estroz Sep 18, 2019
e62ca67
fix up tests
estroz Sep 18, 2019
bc43140
fix test image
estroz Sep 18, 2019
4e11d1d
prow CI integration tests and Makefile target
estroz Sep 18, 2019
5ef2709
redo CLI
estroz Sep 18, 2019
cf7e499
remove unused variable
estroz Sep 18, 2019
320bec7
move FormatOperatorNameDNS1123 from util/{operator-registry -> k8sutil}
estroz Sep 18, 2019
9dce014
some reorg
estroz Sep 18, 2019
54f2dbd
Merge branch 'master' into olm-poc
estroz Sep 26, 2019
52931a2
fix defaultChannel validation
estroz Sep 26, 2019
bbf43c1
Merge branch 'master' into olm-poc
estroz Oct 23, 2019
d82f7da
WIP: testing e2e and prow integration
estroz Oct 25, 2019
61ce024
Merge branch 'master' into olm-poc
estroz Nov 8, 2019
1e51543
add integration tests to .travis.yml
estroz Nov 8, 2019
1c600c3
fix unit tests and add CLI docs
estroz Nov 8, 2019
a5eb84f
address PR comments
estroz Nov 8, 2019
918a6a0
fix docs
estroz Nov 8, 2019
74e4b8c
Merge branch 'master' into olm-poc
estroz Nov 21, 2019
3842b55
go.sum: revendor
estroz Nov 21, 2019
ec2fab6
Merge branch 'master' into olm-poc
estroz Nov 22, 2019
50ee689
update comment and CRD scheme installation
estroz Nov 22, 2019
a97f01e
go.mod: bump OLM to 0.13.0 which uses kk8s 1.16
estroz Nov 22, 2019
c382576
update test/test-framework go.sum
estroz Nov 22, 2019
e61fd47
Merge branch 'master' into olm-poc
estroz Nov 27, 2019
a87c6e9
Makefile: ignore all files in test/ in test-unit recipe
estroz Nov 27, 2019
ed368ae
minor changes to integration test script
estroz Dec 2, 2019
ea728e3
check errs
estroz Dec 3, 2019
c489e80
fix spelling
estroz Dec 3, 2019
4a303c3
Merge branch 'master' into olm-poc
estroz Dec 3, 2019
94382d2
fix linter errors
estroz Dec 3, 2019
d95369e
Merge branch 'master' into olm-poc
estroz Dec 4, 2019
b695492
Merge branch 'master' into olm-poc
estroz Dec 10, 2019
5e150cc
update status method name after merge
estroz Dec 10, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,9 @@ jobs:
# Build and test go
- <<: *test
name: Go on Kubernetes
script: make test-e2e-go
script:
- make test-e2e-go
- make test-integration

# Build and test ansible and test ansible using molecule
- <<: *test
Expand Down
9 changes: 6 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ test-markdown test/markdown:
test-sanity test/sanity: tidy build/operator-sdk
./hack/tests/sanity-check.sh

TEST_PKGS:=$(shell go list ./... | grep -v -P 'github.com/operator-framework/operator-sdk/(hack|test/e2e)')
TEST_PKGS:=$(shell go list ./... | grep -v -P 'github.com/operator-framework/operator-sdk/(hack/|test/)')
test-unit test/unit: ## Run the unit tests
$(Q)go test -coverprofile=coverage.out -covermode=count -count=1 -short ${TEST_PKGS}

Expand All @@ -206,8 +206,8 @@ test-subcommand-scorecard:
test-subcommand-olm-install:
./hack/tests/subcommand-olm-install.sh

# E2E tests.
.PHONY: test-e2e test-e2e-go test-e2e-ansible test-e2e-ansible-molecule test-e2e-helm
# E2E and integration tests.
.PHONY: test-e2e test-e2e-go test-e2e-ansible test-e2e-ansible-molecule test-e2e-helm test-integration

test-e2e: test-e2e-go test-e2e-ansible test-e2e-ansible-molecule test-e2e-helm ## Run the e2e tests

Expand All @@ -222,3 +222,6 @@ test-e2e-ansible-molecule: image-build-ansible

test-e2e-helm: image-build-helm
./hack/tests/e2e-helm.sh

test-integration:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is not it just about the integration with OLM? WDYT about we add olm in the name to make it clear?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can always add more tests to test-integration later. We shouldn't have separate targets for every integration test IMO. The Makefile will explode more than it already has.

./hack/tests/integration.sh
3 changes: 3 additions & 0 deletions ci/prow.Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ test-e2e-helm test/e2e/helm:

test-subcommand test/subcommand:
./ci/tests/subcommand.sh

test-integration:
./ci/tests/integration.sh
13 changes: 13 additions & 0 deletions ci/tests/integration.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

set -eux

# Prow CI setup.
component="memcached-operator"
eval IMAGE=$IMAGE_FORMAT
export OSDK_INTEGRATION_IMAGE="$IMAGE"

# Integration tests will use default loading rules for the kubeconfig if
# KUBECONFIG is not set.
# Assumes OLM is installed.
go test -v ./test/integration
1 change: 1 addition & 0 deletions cmd/operator-sdk/alpha/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package alpha

import (
"github.com/operator-framework/operator-sdk/cmd/operator-sdk/alpha/olm"

"github.com/spf13/cobra"
)

Expand Down
4 changes: 3 additions & 1 deletion cmd/operator-sdk/alpha/olm/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@ import (
func NewCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "olm",
Short: "Manage the Operator Lifecycle Manager installation in your cluster",
Short: "Manage the Operator Lifecycle Manager installation and Operators in your cluster",
}
cmd.AddCommand(
NewInstallCmd(),
NewUninstallCmd(),
NewStatusCmd(),
NewUpCmd(),
NewDownCmd(),
)
return cmd
}
44 changes: 44 additions & 0 deletions cmd/operator-sdk/alpha/olm/down.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright 2019 The Operator-SDK Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package olm

import (
"fmt"
"log"

olmoperator "github.com/operator-framework/operator-sdk/internal/olm/operator"

"github.com/spf13/cobra"
)

func NewDownCmd() *cobra.Command {
c := &olmoperator.OLMCmd{}
cmd := &cobra.Command{
Use: "down",
Short: "Tears down the operator with Operator Lifecycle Manager",
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 {
return fmt.Errorf("command %q requires exactly one argument", cmd.CommandPath())
}
c.ManifestsDir = args[0]
if err := c.Down(); err != nil {
log.Fatalf("Failed to uninstall operator: %v", err)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the log we have unninstall, so wdyt about the command be olm uninstall instead of down?

}
return nil
},
}
c.AddToFlagSet(cmd.Flags())
return cmd
}
44 changes: 44 additions & 0 deletions cmd/operator-sdk/alpha/olm/up.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright 2019 The Operator-SDK Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package olm

import (
"fmt"
"log"

olmoperator "github.com/operator-framework/operator-sdk/internal/olm/operator"

"github.com/spf13/cobra"
)

func NewUpCmd() *cobra.Command {
c := &olmoperator.OLMCmd{}
cmd := &cobra.Command{
Use: "up",
Short: "Launches the operator with Operator Lifecycle Manager",
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 {
return fmt.Errorf("command %q requires exactly one argument", cmd.CommandPath())
}
c.ManifestsDir = args[0]
if err := c.Up(); err != nil {
log.Fatalf("Failed to install operator: %v", err)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the log we have install, so wdyt about the command be olm install instead of up?

}
return nil
},
}
c.AddToFlagSet(cmd.Flags())
return cmd
}
2 changes: 1 addition & 1 deletion doc/cli/operator-sdk_alpha.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ Run an alpha subcommand
### SEE ALSO

* [operator-sdk](operator-sdk.md) - An SDK for building operators with ease
* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster
* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation and Operators in your cluster

6 changes: 4 additions & 2 deletions doc/cli/operator-sdk_alpha_olm.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
## operator-sdk alpha olm

Manage the Operator Lifecycle Manager installation in your cluster
Manage the Operator Lifecycle Manager installation and Operators in your cluster

### Synopsis

Manage the Operator Lifecycle Manager installation in your cluster
Manage the Operator Lifecycle Manager installation and Operators in your cluster

### Options

Expand All @@ -15,7 +15,9 @@ Manage the Operator Lifecycle Manager installation in your cluster
### SEE ALSO

* [operator-sdk alpha](operator-sdk_alpha.md) - Run an alpha subcommand
* [operator-sdk alpha olm down](operator-sdk_alpha_olm_down.md) - Tears down the operator with Operator Lifecycle Manager
* [operator-sdk alpha olm install](operator-sdk_alpha_olm_install.md) - Install Operator Lifecycle Manager in your cluster
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since it will enable the OLM on the cluster wdyt about we use to enable/disable and install/uninstall?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The terminology will change depending on how you view "running software in a Kubernetes cluster". For example, OLM has two operator components that manage operator installation through CSVs, so technically you're "installing" both OLM and your operator. You're not explicitly "enabling" anything because installation implies enablement here. For now, OLM installation management will use olm install/uninstall and operator installation management will use olm up/down.

That being said, there's room to adjust command names while these commands are in alpha. We can discuss naming when we decide to move them from alpha to the stable CLI.

Copy link
Contributor

@camilamacedo86 camilamacedo86 Nov 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* [operator-sdk alpha olm install](operator-sdk_alpha_olm_install.md) - Install Operator Lifecycle Manager in your cluster
* [operator-sdk alpha olm enable](operator-sdk_alpha_olm_enable.md) - Enable the Operator Lifecycle Manager catalogue in your cluster.

* [operator-sdk alpha olm status](operator-sdk_alpha_olm_status.md) - Get the status of the Operator Lifecycle Manager installation in your cluster
* [operator-sdk alpha olm uninstall](operator-sdk_alpha_olm_uninstall.md) - Uninstall Operator Lifecycle Manager from your cluster
* [operator-sdk alpha olm up](operator-sdk_alpha_olm_up.md) - Launches the operator with Operator Lifecycle Manager
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* [operator-sdk alpha olm up](operator-sdk_alpha_olm_up.md) - Launches the operator with Operator Lifecycle Manager
* [operator-sdk alpha olm install](operator-sdk_alpha_olm_up.md) - Install the OLM project bundle in your cluster to be checked with OLM catalogue.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc is auto-generated correctly, hence the passing tests.


29 changes: 29 additions & 0 deletions doc/cli/operator-sdk_alpha_olm_down.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## operator-sdk alpha olm down

Tears down the operator with Operator Lifecycle Manager

### Synopsis

Tears down the operator with Operator Lifecycle Manager

```
operator-sdk alpha olm down [flags]
```

### Options

```
--force Force operator-sdk up/down to overwrite/delete all resources known to the command, respectively
-h, --help help for down
--include strings Path to Kubernetes resource manifests, ex. Role, Subscription. These supplement or override defaults generated by up/down
--install-mode string InstallMode to create OperatorGroup with. Format: InstallModeType=[ns1,ns2[, ...]]
--kubeconfig string Path to kubeconfig
--namespace string Namespace in which to create resources
--operator-version string Version of operator to deploy
--timeout duration Time to wait for the command to complete before failing (default 2m0s)
```

### SEE ALSO

* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation and Operators in your cluster

2 changes: 1 addition & 1 deletion doc/cli/operator-sdk_alpha_olm_install.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ operator-sdk alpha olm install [flags]

### SEE ALSO

* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster
* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation and Operators in your cluster

2 changes: 1 addition & 1 deletion doc/cli/operator-sdk_alpha_olm_status.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ operator-sdk alpha olm status [flags]

### SEE ALSO

* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster
* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation and Operators in your cluster

2 changes: 1 addition & 1 deletion doc/cli/operator-sdk_alpha_olm_uninstall.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ operator-sdk alpha olm uninstall [flags]

### SEE ALSO

* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation in your cluster
* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation and Operators in your cluster

29 changes: 29 additions & 0 deletions doc/cli/operator-sdk_alpha_olm_up.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## operator-sdk alpha olm up

Launches the operator with Operator Lifecycle Manager

### Synopsis

Launches the operator with Operator Lifecycle Manager

```
operator-sdk alpha olm up [flags]
```

### Options

```
--force Force operator-sdk up/down to overwrite/delete all resources known to the command, respectively
-h, --help help for up
--include strings Path to Kubernetes resource manifests, ex. Role, Subscription. These supplement or override defaults generated by up/down
--install-mode string InstallMode to create OperatorGroup with. Format: InstallModeType=[ns1,ns2[, ...]]
--kubeconfig string Path to kubeconfig
--namespace string Namespace in which to create resources
--operator-version string Version of operator to deploy
--timeout duration Time to wait for the command to complete before failing (default 2m0s)
```

### SEE ALSO

* [operator-sdk alpha olm](operator-sdk_alpha_olm.md) - Manage the Operator Lifecycle Manager installation and Operators in your cluster

9 changes: 6 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,16 @@ require (
github.com/blang/semver v3.5.1+incompatible
github.com/coreos/go-semver v0.3.0
github.com/coreos/prometheus-operator v0.34.0
github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c // indirect
github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f // indirect
github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f // indirect
github.com/fatih/structtag v1.1.0
github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32
github.com/go-logr/logr v0.1.0
github.com/go-logr/zapr v0.1.1
github.com/gobuffalo/packr v1.30.1 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/gregjones/httpcache v0.0.0-20190203031600-7a902570cb17 // indirect
github.com/gorilla/websocket v1.4.1 // indirect
github.com/huandu/xstrings v1.2.0 // indirect
github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365
github.com/jmoiron/sqlx v1.2.0 // indirect
Expand All @@ -28,8 +31,8 @@ require (
github.com/mitchellh/copystructure v1.0.0 // indirect
github.com/mitchellh/go-homedir v1.1.0
github.com/mitchellh/mapstructure v1.1.2
github.com/operator-framework/operator-lifecycle-manager v0.0.0-20191115003340-16619cd27fa5
github.com/operator-framework/operator-registry v1.5.1
github.com/operator-framework/operator-lifecycle-manager v0.0.0-20191115003340-16619cd27fa5 // 0.13.0
github.com/operator-framework/operator-registry v1.5.3
github.com/pborman/uuid v1.2.0
github.com/pkg/errors v0.8.1
github.com/prometheus/client_golang v1.1.0
Expand Down
21 changes: 18 additions & 3 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM=
bou.ke/monkey v1.0.1 h1:zEMLInw9xvNakzUUPjfS4Ds6jYPqCFx3m7bRmG5NH2U=
bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
Expand Down Expand Up @@ -59,6 +60,7 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMx
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/ant31/crd-validation v0.0.0-20180702145049-30f8a35d0ac2/go.mod h1:X0noFIik9YqfhGYBLEHg8LJKEwy7QIitLQuFMpKLcPk=
github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6 h1:uZuxRZCz65cG1o6K/xUqImNcYKtmk9ylqaH0itMSvzA=
github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
Expand Down Expand Up @@ -165,6 +167,8 @@ github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD
github.com/docker/libnetwork v0.0.0-20180830151422-a9cd636e3789/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8=
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96 h1:cenwrSVm+Z7QLSV/BsnenAOcDXdX4cMv4wP0B/5QbPg=
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c h1:ZfSZ3P3BedhKGUhzj7BQlPSU4OvT6tfOKe3DVHzOA7s=
github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
Expand All @@ -173,6 +177,10 @@ github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFP
github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e h1:p1yVGRW3nmb85p1Sh1ZJSDm4A4iKLS5QNbvUHMgGu/M=
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f h1:8GDPb0tCY8LQ+OJ3dbHb5sA6YZWXFORQYZx5sdsTlMs=
github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f h1:AUj1VoZUfhPhOPHULCQQDnGhRelpFWHMLhQVWDsS0v4=
github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful v2.9.6+incompatible h1:tfrHha8zJ01ywiOEC1miGY8st1/igzWB8OmvPgoYX7w=
Expand Down Expand Up @@ -280,6 +288,7 @@ github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09Vjb
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.2.2-0.20190730201129-28a6bbf47e48 h1:X+zN6RZXsvnrSJaAIQhZezPfAfvsqihKKR8oiLHid34=
github.com/gogo/protobuf v1.2.2-0.20190730201129-28a6bbf47e48/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/golang-migrate/migrate/v4 v4.6.2 h1:LDDOHo/q1W5UDj6PbkxdCv7lv9yunyZHXvxuwDkGo3k=
github.com/golang-migrate/migrate/v4 v4.6.2/go.mod h1:JYi6reN3+Z734VZ0akNuyOJNcrg45ZL7LDBMW3WGJL0=
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=
Expand Down Expand Up @@ -340,9 +349,10 @@ github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z
github.com/gorilla/mux v1.7.1/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7 h1:6TSoaYExHper8PYsJu23GWVNOyYRCSnIFyxKgLSZ54w=
github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/gregjones/httpcache v0.0.0-20190203031600-7a902570cb17 h1:prg2TTpTOcJF1jRWL2zSU1FQNgB0STAFNux8GK82y8k=
github.com/gregjones/httpcache v0.0.0-20190203031600-7a902570cb17/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/grpc-ecosystem/go-grpc-middleware v0.0.0-20190222133341-cfaf5686ec79/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
Expand Down Expand Up @@ -525,12 +535,16 @@ github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFSt
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
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-registry v1.5.1 h1:8ruUOG6IBDVTAXYWKsv6hwr4yv/0SFPFPAYGCpcv97E=
github.com/operator-framework/operator-registry v1.5.1/go.mod h1:agrQlkWOo1q8U1SAaLSS2WQ+Z9vswNT2M2HFib9iuLY=
github.com/operator-framework/operator-registry v1.5.3 h1:az83WDwgB+tHsmVn+tFq72yQBbaUAye8e4+KkDQmzLs=
github.com/operator-framework/operator-registry v1.5.3/go.mod h1:agrQlkWOo1q8U1SAaLSS2WQ+Z9vswNT2M2HFib9iuLY=
github.com/otiai10/copy v1.0.1 h1:gtBjD8aq4nychvRZ2CyJvFWAw0aja+VHazDdruZKGZA=
github.com/otiai10/copy v1.0.1/go.mod h1:8bMCJrAqOtN/d9oyh5HR7HhLQMvcGMpGdwRDYsfOCHc=
github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=
github.com/otiai10/curr v0.0.0-20190513014714-f5a3d24e5776 h1:o59bHXu8Ejas8Kq6pjoVJQ9/neN66SM8AKh6wI42BBs=
github.com/otiai10/curr v0.0.0-20190513014714-f5a3d24e5776/go.mod h1:3HNVkVOU7vZeFXocWuvtcS0XSFLcf2XUSDHkq9t1jU4=
github.com/otiai10/mint v1.2.3/go.mod h1:YnfyPNhBvnY8bW4SGQHCs/aAFhkgySlMZbrF5U0bOVw=
github.com/otiai10/mint v1.2.4 h1:DxYL0itZyPaR5Z9HILdxSoHx+gNs6Yx+neOGS3IVUk0=
github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M=
github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g=
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
Expand Down Expand Up @@ -588,6 +602,7 @@ github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uY
github.com/robfig/cron v0.0.0-20170526150127-736158dc09e1/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc=
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.5.0 h1:Usqs0/lDK/NqTkvrmKSwA/3XkZAs7ZAW/eLeQ2MVBTw=
Expand Down
Loading