Skip to content

Commit b7be135

Browse files
authored
Merge pull request #1209 from eromanova/ensure-namespace
[clusterctl] Fix ensure namespace function in clusterclient
2 parents 59350ec + 8f67f5d commit b7be135

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

cmd/clusterctl/clusterdeployer/clusterclient/clusterclient.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,25 @@ func (c *client) EnsureNamespace(namespaceName string) error {
132132
return errors.Wrap(err, "error creating core clientset")
133133
}
134134

135+
_, err = clientset.CoreV1().Namespaces().Get(namespaceName, metav1.GetOptions{})
136+
if err == nil {
137+
return nil
138+
}
139+
if apierrors.IsForbidden(err) {
140+
namespaces, err := clientset.CoreV1().Namespaces().List(metav1.ListOptions{})
141+
if err != nil {
142+
return err
143+
}
144+
145+
for _, ns := range namespaces.Items {
146+
if ns.Name == namespaceName {
147+
return nil
148+
}
149+
}
150+
}
151+
if !apierrors.IsNotFound(err) {
152+
return err
153+
}
135154
namespace := apiv1.Namespace{
136155
ObjectMeta: metav1.ObjectMeta{
137156
Name: namespaceName,

0 commit comments

Comments
 (0)