mirror of
https://github.com/helm/helm.git
synced 2026-08-05 07:30:46 +00:00
fix: stop discovery errors from halting chart rendering. (#6908)
This blocks a particular error (caused by upstream discovery client), printing a warning instead of failing. It's not a great solution, but is a stop-gap until Client-Go gets fixed. Closes #6361 Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
This commit is contained in:
@@ -109,9 +109,19 @@ func (c *Configuration) getCapabilities() (*chartutil.Capabilities, error) {
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not get server version from Kubernetes")
|
||||
}
|
||||
// Issue #6361:
|
||||
// Client-Go emits an error when an API service is registered but unimplemented.
|
||||
// We trap that error here and print a warning. But since the discovery client continues
|
||||
// building the API object, it is correctly populated with all valid APIs.
|
||||
// See https://github.com/kubernetes/kubernetes/issues/72051#issuecomment-521157642
|
||||
apiVersions, err := GetVersionSet(dc)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not get apiVersions from Kubernetes")
|
||||
if discovery.IsGroupDiscoveryFailedError(err) {
|
||||
c.Log("WARNING: The Kubernetes server has an orphaned API service. Server reports: %s", err)
|
||||
c.Log("WARNING: To fix this, kubectl delete apiservice <service-name>")
|
||||
} else {
|
||||
return nil, errors.Wrap(err, "could not get apiVersions from Kubernetes")
|
||||
}
|
||||
}
|
||||
|
||||
c.Capabilities = &chartutil.Capabilities{
|
||||
|
||||
Reference in New Issue
Block a user