diff --git a/pkg/action/action.go b/pkg/action/action.go index 7e05ac1b2..705b49a8d 100644 --- a/pkg/action/action.go +++ b/pkg/action/action.go @@ -19,6 +19,7 @@ package action import ( "time" + "github.com/pkg/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/discovery" @@ -49,11 +50,19 @@ type Configuration struct { } // capabilities builds a Capabilities from discovery information. -func (c *Configuration) capabilities() *chartutil.Capabilities { - if c.Capabilities == nil { - return chartutil.DefaultCapabilities +func (c *Configuration) capabilities() (*chartutil.Capabilities, error) { + sv, err := c.Discovery.ServerVersion() + if err != nil { + return nil, err + } + vs, err := GetVersionSet(c.Discovery) + if err != nil { + return nil, errors.Wrap(err, "could not get apiVersions from Kubernetes") } - return c.Capabilities + return &chartutil.Capabilities{ + APIVersions: vs, + KubeVersion: sv, + }, nil } // Now generates a timestamp diff --git a/pkg/action/install.go b/pkg/action/install.go index e2ddee64a..c271bb0b5 100644 --- a/pkg/action/install.go +++ b/pkg/action/install.go @@ -79,7 +79,10 @@ func (i *Install) Run(chrt *chart.Chart, rawValues map[string]interface{}) (*rel return nil, err } - caps := i.cfg.capabilities() + caps, err := i.cfg.capabilities() + if err != nil { + return nil, err + } options := chartutil.ReleaseOptions{ Name: i.ReleaseName,