Merge pull request #5717 from jdolitsky/feat-v3/oci-registry-loglevel

Helm 3: pass debug option to registry client
pull/5735/head
Matthew Fisher 5 years ago committed by GitHub
commit 31667b6050
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

56
Gopkg.lock generated

@ -242,12 +242,13 @@
version = "v1.1.1"
[[projects]]
digest = "1:82158435e282da9b23bb1188487fe1c68b17a54ed9dcd557ab6204782ad3ff92"
digest = "1:32b33e550e9fba29158153b1881dd46b86593e045564746dcb56557b9061668f"
name = "github.com/deislabs/oras"
packages = [
"pkg/auth",
"pkg/auth/docker",
"pkg/content",
"pkg/context",
"pkg/oras",
]
pruneopts = "UT"
@ -891,12 +892,12 @@
version = "v1.5.2"
[[projects]]
digest = "1:69b1cc331fca23d702bd72f860c6a647afd0aa9fcbc1d0659b1365e26546dd70"
digest = "1:fd61cf4ae1953d55df708acb6b91492d538f49c305b364a014049914495db426"
name = "github.com/sirupsen/logrus"
packages = ["."]
pruneopts = "UT"
revision = "bcd833dfe83d3cebad139e4a29ed79cb2318bf95"
version = "v1.2.0"
revision = "8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f"
version = "v1.4.1"
[[projects]]
digest = "1:e01b05ba901239c783dfe56450bcde607fc858908529868259c9a8765dc176d0"
@ -1404,90 +1405,51 @@
revision = "44a48934c135b31e4f1c0d12e91d384e1cb2304c"
[[projects]]
digest = "1:fe724e5bfc9e388624ccf76b77051c0c7da8695a264b3ab4103de270a8965b18"
digest = "1:1ac7533fe6c10c68cb17d26bd44975d582cbe4dee89fd0e095d3133c7680416b"
name = "k8s.io/client-go"
packages = [
"discovery",
"discovery/cached/disk",
"discovery/cached/memory",
"discovery/fake",
"dynamic",
"dynamic/fake",
"kubernetes",
"kubernetes/fake",
"kubernetes/scheme",
"kubernetes/typed/admissionregistration/v1beta1",
"kubernetes/typed/admissionregistration/v1beta1/fake",
"kubernetes/typed/apps/v1",
"kubernetes/typed/apps/v1/fake",
"kubernetes/typed/apps/v1beta1",
"kubernetes/typed/apps/v1beta1/fake",
"kubernetes/typed/apps/v1beta2",
"kubernetes/typed/apps/v1beta2/fake",
"kubernetes/typed/auditregistration/v1alpha1",
"kubernetes/typed/auditregistration/v1alpha1/fake",
"kubernetes/typed/authentication/v1",
"kubernetes/typed/authentication/v1/fake",
"kubernetes/typed/authentication/v1beta1",
"kubernetes/typed/authentication/v1beta1/fake",
"kubernetes/typed/authorization/v1",
"kubernetes/typed/authorization/v1/fake",
"kubernetes/typed/authorization/v1beta1",
"kubernetes/typed/authorization/v1beta1/fake",
"kubernetes/typed/autoscaling/v1",
"kubernetes/typed/autoscaling/v1/fake",
"kubernetes/typed/autoscaling/v2beta1",
"kubernetes/typed/autoscaling/v2beta1/fake",
"kubernetes/typed/autoscaling/v2beta2",
"kubernetes/typed/autoscaling/v2beta2/fake",
"kubernetes/typed/batch/v1",
"kubernetes/typed/batch/v1/fake",
"kubernetes/typed/batch/v1beta1",
"kubernetes/typed/batch/v1beta1/fake",
"kubernetes/typed/batch/v2alpha1",
"kubernetes/typed/batch/v2alpha1/fake",
"kubernetes/typed/certificates/v1beta1",
"kubernetes/typed/certificates/v1beta1/fake",
"kubernetes/typed/coordination/v1",
"kubernetes/typed/coordination/v1/fake",
"kubernetes/typed/coordination/v1beta1",
"kubernetes/typed/coordination/v1beta1/fake",
"kubernetes/typed/core/v1",
"kubernetes/typed/core/v1/fake",
"kubernetes/typed/events/v1beta1",
"kubernetes/typed/events/v1beta1/fake",
"kubernetes/typed/extensions/v1beta1",
"kubernetes/typed/extensions/v1beta1/fake",
"kubernetes/typed/networking/v1",
"kubernetes/typed/networking/v1/fake",
"kubernetes/typed/networking/v1beta1",
"kubernetes/typed/networking/v1beta1/fake",
"kubernetes/typed/node/v1alpha1",
"kubernetes/typed/node/v1alpha1/fake",
"kubernetes/typed/node/v1beta1",
"kubernetes/typed/node/v1beta1/fake",
"kubernetes/typed/policy/v1beta1",
"kubernetes/typed/policy/v1beta1/fake",
"kubernetes/typed/rbac/v1",
"kubernetes/typed/rbac/v1/fake",
"kubernetes/typed/rbac/v1alpha1",
"kubernetes/typed/rbac/v1alpha1/fake",
"kubernetes/typed/rbac/v1beta1",
"kubernetes/typed/rbac/v1beta1/fake",
"kubernetes/typed/scheduling/v1",
"kubernetes/typed/scheduling/v1/fake",
"kubernetes/typed/scheduling/v1alpha1",
"kubernetes/typed/scheduling/v1alpha1/fake",
"kubernetes/typed/scheduling/v1beta1",
"kubernetes/typed/scheduling/v1beta1/fake",
"kubernetes/typed/settings/v1alpha1",
"kubernetes/typed/settings/v1alpha1/fake",
"kubernetes/typed/storage/v1",
"kubernetes/typed/storage/v1/fake",
"kubernetes/typed/storage/v1alpha1",
"kubernetes/typed/storage/v1alpha1/fake",
"kubernetes/typed/storage/v1beta1",
"kubernetes/typed/storage/v1beta1/fake",
"pkg/apis/clientauthentication",
"pkg/apis/clientauthentication/v1alpha1",
"pkg/apis/clientauthentication/v1beta1",
@ -1780,6 +1742,7 @@
"github.com/deislabs/oras/pkg/auth",
"github.com/deislabs/oras/pkg/auth/docker",
"github.com/deislabs/oras/pkg/content",
"github.com/deislabs/oras/pkg/context",
"github.com/deislabs/oras/pkg/oras",
"github.com/docker/distribution/configuration",
"github.com/docker/distribution/registry",
@ -1796,6 +1759,7 @@
"github.com/opencontainers/go-digest",
"github.com/opencontainers/image-spec/specs-go/v1",
"github.com/pkg/errors",
"github.com/sirupsen/logrus",
"github.com/spf13/cobra",
"github.com/spf13/cobra/doc",
"github.com/spf13/pflag",
@ -1827,17 +1791,15 @@
"k8s.io/apimachinery/pkg/util/strategicpatch",
"k8s.io/apimachinery/pkg/util/validation",
"k8s.io/apimachinery/pkg/util/wait",
"k8s.io/apimachinery/pkg/version",
"k8s.io/apimachinery/pkg/watch",
"k8s.io/cli-runtime/pkg/genericclioptions",
"k8s.io/cli-runtime/pkg/resource",
"k8s.io/client-go/discovery",
"k8s.io/client-go/discovery/cached/memory",
"k8s.io/client-go/kubernetes",
"k8s.io/client-go/kubernetes/fake",
"k8s.io/client-go/kubernetes/scheme",
"k8s.io/client-go/kubernetes/typed/core/v1",
"k8s.io/client-go/plugin/pkg/client/auth",
"k8s.io/client-go/rest",
"k8s.io/client-go/rest/fake",
"k8s.io/client-go/tools/clientcmd",
"k8s.io/client-go/tools/watch",

@ -46,6 +46,10 @@
name = "github.com/deislabs/oras"
version = "0.4.0"
[[constraint]]
name = "github.com/sirupsen/logrus"
version = "1.3.0"
[[constraint]]
name = "github.com/docker/go-units"
version = "~0.3.3"

@ -81,6 +81,7 @@ func newRootCmd(actionConfig *action.Configuration, out io.Writer, args []string
panic(err)
}
actionConfig.RegistryClient = registry.NewClient(&registry.ClientOptions{
Debug: settings.Debug,
Out: out,
Authorizer: registry.Authorizer{
Client: client,

@ -22,8 +22,10 @@ import (
"io"
orascontent "github.com/deislabs/oras/pkg/content"
orascontext "github.com/deislabs/oras/pkg/context"
"github.com/deislabs/oras/pkg/oras"
"github.com/gosuri/uitable"
"github.com/sirupsen/logrus"
"helm.sh/helm/pkg/chart"
)
@ -35,6 +37,7 @@ const (
type (
// ClientOptions is used to construct a new client
ClientOptions struct {
Debug bool
Out io.Writer
Authorizer Authorizer
Resolver Resolver
@ -43,6 +46,7 @@ type (
// Client works with OCI-compliant registries and local Helm chart cache
Client struct {
debug bool
out io.Writer
authorizer Authorizer
resolver Resolver
@ -53,6 +57,7 @@ type (
// NewClient returns a new registry client with config
func NewClient(options *ClientOptions) *Client {
return &Client{
debug: options.Debug,
out: options.Out,
resolver: options.Resolver,
authorizer: options.Authorizer,
@ -66,7 +71,7 @@ func NewClient(options *ClientOptions) *Client {
// Login logs into a registry
func (c *Client) Login(hostname string, username string, password string) error {
err := c.authorizer.Login(context.Background(), hostname, username, password)
err := c.authorizer.Login(c.newContext(), hostname, username, password)
if err != nil {
return err
}
@ -76,7 +81,7 @@ func (c *Client) Login(hostname string, username string, password string) error
// Logout logs out of a registry
func (c *Client) Logout(hostname string) error {
err := c.authorizer.Logout(context.Background(), hostname)
err := c.authorizer.Logout(c.newContext(), hostname)
if err != nil {
return err
}
@ -92,7 +97,7 @@ func (c *Client) PushChart(ref *Reference) error {
if err != nil {
return err
}
_, err = oras.Push(context.Background(), c.resolver, ref.String(), c.cache.store, layers)
_, err = oras.Push(c.newContext(), c.resolver, ref.String(), c.cache.store, layers)
if err != nil {
return err
}
@ -109,7 +114,7 @@ func (c *Client) PushChart(ref *Reference) error {
func (c *Client) PullChart(ref *Reference) error {
c.setDefaultTag(ref)
fmt.Fprintf(c.out, "%s: Pulling from %s\n", ref.Tag, ref.Repo)
_, layers, err := oras.Pull(context.Background(), c.resolver, ref.String(), c.cache.store, oras.WithAllowedMediaTypes(KnownMediaTypes()))
_, layers, err := oras.Pull(c.newContext(), c.resolver, ref.String(), c.cache.store, oras.WithAllowedMediaTypes(KnownMediaTypes()))
if err != nil {
return err
}
@ -184,3 +189,13 @@ func (c *Client) setDefaultTag(ref *Reference) {
fmt.Fprintf(c.out, "Using default tag: %s\n", HelmChartDefaultTag)
}
}
// disable verbose logging coming from ORAS unless debug is enabled
func (c *Client) newContext() context.Context {
if !c.debug {
return orascontext.Background()
}
ctx := orascontext.WithLoggerFromWriter(context.Background(), c.out)
orascontext.GetLogger(ctx).Logger.SetLevel(logrus.DebugLevel)
return ctx
}

@ -71,7 +71,8 @@ func (suite *RegistryClientTestSuite) SetupSuite() {
// Init test client
suite.RegistryClient = NewClient(&ClientOptions{
Out: suite.Out,
Debug: false,
Out: suite.Out,
Authorizer: Authorizer{
Client: client,
},

Loading…
Cancel
Save