From df1dbc0c7bcd97b152e99585d51d04eb0d67b7a4 Mon Sep 17 00:00:00 2001 From: Philip Laine Date: Wed, 29 May 2024 11:34:33 +0200 Subject: [PATCH] Ignore not found delete errors --- go.mod | 3 ++- src/internal/packager/helm/post-render.go | 8 ++++---- src/pkg/cluster/namespace.go | 8 +++++--- src/pkg/packager/deploy.go | 3 +++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 1275140145..137284437c 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,6 @@ go 1.21.8 replace github.com/xeipuuv/gojsonschema => github.com/defenseunicorns/gojsonschema v0.0.0-20231116163348-e00f069122d6 require ( - cuelang.org/go v0.7.0 github.com/AlecAivazis/survey/v2 v2.3.7 github.com/Masterminds/semver/v3 v3.2.1 github.com/agnivade/levenshtein v1.1.1 @@ -62,6 +61,8 @@ require ( sigs.k8s.io/yaml v1.4.0 ) +require cuelang.org/go v0.7.0 // indirect + require ( atomicgo.dev/cursor v0.2.0 // indirect atomicgo.dev/keyboard v0.2.9 // indirect diff --git a/src/internal/packager/helm/post-render.go b/src/internal/packager/helm/post-render.go index 50327fa16f..bae82268d4 100644 --- a/src/internal/packager/helm/post-render.go +++ b/src/internal/packager/helm/post-render.go @@ -11,7 +11,7 @@ import ( "os" "path/filepath" "reflect" - "strings" + "slices" "github.com/defenseunicorns/pkg/helpers" "github.com/defenseunicorns/zarf/src/config" @@ -139,9 +139,9 @@ func (r *renderer) adoptAndUpdateNamespaces(ctx context.Context) error { return fmt.Errorf("unable to create the missing namespace %s", name) } } else if r.cfg.DeployOpts.AdoptExistingResources { - // IsInitialNamespace returns true if the given namespace name is an initial k8s namespace: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#initial-namespaces - if name == "default" || strings.HasPrefix(name, "kube-") { - // If this is a K8s initial namespace, refuse to adopt it + // Refuse to adopt namespace if it is one of four initial Kubernetes namespaces. + // https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#initial-namespaces + if slices.Contains([]string{"default", "kube-node-lease", "kube-public", "kube-system"}, name) { message.Warnf("Refusing to adopt the initial namespace: %s", name) } else { // This is an existing namespace to adopt diff --git a/src/pkg/cluster/namespace.go b/src/pkg/cluster/namespace.go index 11ac738c96..f7e776146d 100644 --- a/src/pkg/cluster/namespace.go +++ b/src/pkg/cluster/namespace.go @@ -20,9 +20,11 @@ func (c *Cluster) DeleteZarfNamespace(ctx context.Context) error { spinner := message.NewProgressSpinner("Deleting the zarf namespace from this cluster") defer spinner.Stop() - gracePeriod := int64(0) - err := c.Clientset.CoreV1().Namespaces().Delete(ctx, ZarfNamespaceName, metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod}) - if err != nil && !kerrors.IsNotFound(err) { + err := c.Clientset.CoreV1().Namespaces().Delete(ctx, ZarfNamespaceName, metav1.DeleteOptions{}) + if kerrors.IsNotFound(err) { + return nil + } + if err != nil { return err } timer := time.NewTimer(0) diff --git a/src/pkg/packager/deploy.go b/src/pkg/packager/deploy.go index 5f4c112c06..b7268bb8ca 100644 --- a/src/pkg/packager/deploy.go +++ b/src/pkg/packager/deploy.go @@ -460,6 +460,9 @@ func (p *Packager) setupState(ctx context.Context) (err error) { if err != nil && !kerrors.IsAlreadyExists(err) { return err } + if err == nil { + return nil + } _, err = p.cluster.Clientset.CoreV1().Namespaces().Update(ctx, zarfNamespace, metav1.UpdateOptions{}) if err != nil { return err