fix: check if namespace exists (#1187)

* fix: check if namespace exists

* Update pkg/utils/env/env.go

* Update pkg/utils/env/env.go

Co-authored-by: Jianbo Sun <wonderflow.sun@gmail.com>
This commit is contained in:
boris
2021-03-15 15:58:07 +08:00
committed by GitHub
co-authored by Jianbo Sun
parent 1652b4cf0c
commit 6c0141a62d
+10 -3
View File
@@ -15,6 +15,7 @@ import (
corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
k8stypes "k8s.io/apimachinery/pkg/types"
"k8s.io/utils/pointer"
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -75,9 +76,15 @@ func CreateOrUpdateEnv(ctx context.Context, c client.Client, envName string, env
}
var message = ""
// Create Namespace
if err := c.Create(ctx, &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: envArgs.Namespace}}); err != nil && !apierrors.IsAlreadyExists(err) {
return message, err
// Check If Namespace Exists
if err := c.Get(ctx, k8stypes.NamespacedName{Name: envArgs.Namespace}, &corev1.Namespace{}); err != nil {
if !apierrors.IsNotFound(err) {
return message, err
}
// Create Namespace if not found
if err := c.Create(ctx, &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: envArgs.Namespace}}); err != nil {
return message, err
}
}
// Create Issuer For SSL if both email and domain are all set.