Skip to content

Commit

Permalink
Fix error messages for resources with default namespace (#749)
Browse files Browse the repository at this point in the history
  • Loading branch information
lblackstone committed Aug 26, 2019
1 parent b909384 commit b026ef0
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 22 deletions.
10 changes: 6 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
## 1.0.0-beta.2 (Unreleased)

- Correctly compute version number for plugin to send with registration requests (fixes https://github.com/pulumi/pulumi-kubernetes/issues/732).
- Allow a user to pass CustomTimeouts as part of ResourceOptions (fixes https://github.com/pulumi/pulumi-kubernetes/issues/672)


### Supported Kubernetes versions

- v1.15.x
Expand All @@ -19,6 +15,12 @@
- Clean up Python SDK get methods. (https://github.com/pulumi/pulumi-kubernetes/pull/740).
- Remove undocumented kubectl replace invoke method. (https://github.com/pulumi/pulumi-kubernetes/pull/738).
- Don't populate `.status` in input types (https://github.com/pulumi/pulumi-kubernetes/pull/635).
- Allow a user to pass CustomTimeouts as part of ResourceOptions (fixes https://github.com/pulumi/pulumi-kubernetes/issues/672)

### Bug fixes

- Fix error messages for resources with default namespace. (https://github.com/pulumi/pulumi-kubernetes/pull/749).
- Correctly compute version number for plugin to send with registration requests (fixes https://github.com/pulumi/pulumi-kubernetes/issues/732).

## 1.0.0-beta.1 (August 13, 2019)

Expand Down
30 changes: 12 additions & 18 deletions pkg/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -533,8 +533,7 @@ func (k *kubeProvider) Diff(
namespacedKind = true
} else {
return nil, pkgerrors.Wrapf(err,
"API server returned error when asked if resource type %s/%s/%s is namespaced",
gvk.Group, gvk.Version, gvk.Kind)
"API server returned error when asked if resource type %s is namespaced", gvk)
}
}

Expand All @@ -554,8 +553,8 @@ func (k *kubeProvider) Diff(
supportsDryRun, err := openapi.SupportsDryRun(k.clientSet.DiscoveryClientCached, gvk)
if err != nil {
return nil, pkgerrors.Wrapf(err,
"Failed to check for changes in resource %s/%s because of an error communicating with the API server",
newInputs.GetNamespace(), newInputs.GetName())
"Failed to check for changes in resource %s because of an error communicating with the API server",
fqObjName(newInputs))
}

var patch []byte
Expand Down Expand Up @@ -723,18 +722,16 @@ func (k *kubeProvider) Create(
// CustomResourceDefinition. This usually happens if the CRD was not created, and we
// print a more useful error message in this case.
return nil, pkgerrors.Wrapf(
awaitErr, "creation of resource %s/%s failed because the Kubernetes API server "+
awaitErr, "creation of resource %s failed because the Kubernetes API server "+
"reported that the apiVersion for this resource does not exist. "+
"Verify that any required CRDs have been created",
newInputs.GetNamespace(), newInputs.GetName())
"Verify that any required CRDs have been created", fqObjName(newInputs))
}
partialErr, isPartialErr := awaitErr.(await.PartialError)
if !isPartialErr {
// Object creation failed.
return nil, pkgerrors.Wrapf(
awaitErr,
"resource %s/%s was not successfully created by the Kubernetes API server "+
newInputs.GetNamespace(), newInputs.GetName())
"resource %s was not successfully created by the Kubernetes API server ", fqObjName(newInputs))
}

// Resource was created, but failed to become fully initialized.
Expand All @@ -755,9 +752,8 @@ func (k *kubeProvider) Create(
return nil, partialError(
fqObjName(initialized),
pkgerrors.Wrapf(
awaitErr, "resource %s/%s was successfully created, but the Kubernetes API server "+
"reported that it failed to fully initialize or become live",
newInputs.GetNamespace(), newInputs.GetName()),
awaitErr, "resource %s was successfully created, but the Kubernetes API server "+
"reported that it failed to fully initialize or become live", fqObjName(newInputs)),
inputsAndComputed,
nil)
}
Expand Down Expand Up @@ -1027,20 +1023,18 @@ func (k *kubeProvider) Update(
// CustomResourceDefinition. This usually happens if the CRD was not created, and we
// print a more useful error message in this case.
return nil, pkgerrors.Wrapf(
awaitErr, "update of resource %s/%s failed because the Kubernetes API server "+
awaitErr, "update of resource %s failed because the Kubernetes API server "+
"reported that the apiVersion for this resource does not exist. "+
"Verify that any required CRDs have been created",
newInputs.GetNamespace(), newInputs.GetName())
"Verify that any required CRDs have been created", fqObjName(newInputs))
}

var getErr error
initialized, getErr = k.readLiveObject(newInputs)
if getErr != nil {
// Object update/creation failed.
return nil, pkgerrors.Wrapf(
awaitErr, "update of resource %s/%s failed because the Kubernetes API server "+
"reported that it failed to fully initialize or become live",
newInputs.GetNamespace(), newInputs.GetName())
awaitErr, "update of resource %s failed because the Kubernetes API server "+
"reported that it failed to fully initialize or become live", fqObjName(newInputs))
}
// If we get here, resource successfully registered with the API server, but failed to
// initialize.
Expand Down

0 comments on commit b026ef0

Please sign in to comment.