From 4452c7e1360ab1985f09c5ff0b589cf799a105fc Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Wed, 1 Oct 2025 10:06:57 +0200 Subject: [PATCH] feat: improve LimitRange management in namespaces Add logging for LimitRange checks, enhance error handling for listing LimitRanges, and streamline the creation and deletion of the 'extreme-request-defaults' LimitRange based on namespace exclusion. This improves reliability and visibility during namespace management. --- main.go | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 72ad3ea..dab7cfa 100644 --- a/main.go +++ b/main.go @@ -61,18 +61,26 @@ func main() { } for _, ns := range namespaces.Items { + log.Printf("Checking for LimitRange named extreme-request-defaults in namespace '%v'\n", ns.Name) + limitRanges, err := clientset.CoreV1().LimitRanges(ns.Name).List(ctx, metav1.ListOptions{FieldSelector: "metadata.name=extreme-request-defaults"}) + if err != nil { + log.Printf("Unable to list LimitRanges in namespace '%v': Error: %v\n", ns.Name, err) + continue + } if !nsExcluded(ns.Name, excludedNS) { - log.Printf("Checking for LimitRange named extreme-request-defaults in namespace '%v'\n", ns.Name) - if limitRanges, err := clientset.CoreV1().LimitRanges(ns.Name).List(ctx, metav1.ListOptions{FieldSelector: "metadata.name=extreme-request-defaults"}); err != nil { - panic(err) - } else { - if len(limitRanges.Items) == 0 { - log.Printf("Trying to create LimitRange\n") - if _, err := clientset.CoreV1().LimitRanges(ns.Name).Create(ctx, &limitRange, metav1.CreateOptions{}); err != nil { - log.Printf("Unable to create LimitRange in namespace '%v': Error: %v\n", ns.Name, err) - } else { - log.Printf("LimitRange extreme-request-defaults created in namespace '%v'\n", ns.Name) - } + if len(limitRanges.Items) == 0 { + log.Printf("Trying to create LimitRange\n") + if _, err := clientset.CoreV1().LimitRanges(ns.Name).Create(ctx, &limitRange, metav1.CreateOptions{}); err != nil { + log.Printf("Unable to create LimitRange in namespace '%v': Error: %v\n", ns.Name, err) + } else { + log.Printf("LimitRange extreme-request-defaults created in namespace '%v'\n", ns.Name) + } + } + } else { + if len(limitRanges.Items) > 0 { + log.Printf("Trying to delete LimitRange\n") + if err := clientset.CoreV1().LimitRanges(ns.Name).Delete(ctx, "extreme-request-defaults", metav1.DeleteOptions{}); err != nil { + log.Printf("Unable to delete LimitRange in namespace '%v': Error: %v\n", ns.Name, err) } } }