Play nicely with roles that don't allow creating namespaces

It is unnecessary to create a namespace just to test that it exists.
Roles that don't have post namespace will error out even if the namespace exists
and it is possible to install the package anyway. This patch Gets a namespace and
only creates one if it doesn't exist.
pull/1715/head
Marius Grigoriu 9 years ago
parent b3d812b346
commit d87cd95112

@ -32,10 +32,19 @@ func createNamespace(client internalclientset.Interface, namespace string) error
return err return err
} }
func getNamespace(client internalclientset.Interface, namespace string) (*api.Namespace, error) {
return client.Core().Namespaces().Get(namespace)
}
func ensureNamespace(client internalclientset.Interface, namespace string) error { func ensureNamespace(client internalclientset.Interface, namespace string) error {
err := createNamespace(client, namespace) if _, getError := getNamespace(client, namespace); getError != nil && errors.IsNotFound(getError) {
if err != nil && !errors.IsAlreadyExists(err) { createError := createNamespace(client, namespace)
return err if createError != nil {
return createError
}
} else if getError != nil {
return getError
} }
return nil return nil
} }

Loading…
Cancel
Save