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) } } }