mirror of
https://github.com/projectcapsule/capsule.git
synced 2026-05-21 00:32:50 +00:00
* feat: namespace metadata sync on creation #1378 Signed-off-by: Siarhei Rasiukevich <s_rasiukevich@wargaming.net> * fix(tenant): internal error is not returned in cordon webhook Signed-off-by: Siarhei Rasiukevich <s_rasiukevich@wargaming.net> * fix(utils): lint on pkg/utils/namespace_selector.go Signed-off-by: Siarhei Rasiukevich <s_rasiukevich@wargaming.net> --------- Signed-off-by: Siarhei Rasiukevich <s_rasiukevich@wargaming.net> Co-authored-by: Siarhei Rasiukevich <s_rasiukevich@wargaming.net>
24 lines
584 B
Go
24 lines
584 B
Go
// Copyright 2020-2023 Project Capsule Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package utils
|
|
|
|
import (
|
|
corev1 "k8s.io/api/core/v1"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/apimachinery/pkg/labels"
|
|
)
|
|
|
|
func IsNamespaceSelectedBySelector(ns *corev1.Namespace, selector *metav1.LabelSelector) (bool, error) {
|
|
if selector == nil {
|
|
return true, nil // If selector is nil, all namespaces match
|
|
}
|
|
|
|
labelSelector, err := metav1.LabelSelectorAsSelector(selector)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return labelSelector.Matches(labels.Set(ns.Labels)), nil
|
|
}
|