Files
Oliver BählerandGitHub 2252c530f4 feat(performance): removed duplicate client calls from all admission paths (#2054)
* chore

* perfromance improvements

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* perfromance improvements

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat(performance): removed duplicate client calls from all admission paths

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat(performance): removed duplicate client calls from all admission paths

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat(performance): removed duplicate client calls from all admission paths

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat(performance): removed duplicate client calls from all admission paths

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat(performance): removed duplicate client calls from all admission paths

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat(performance): removed duplicate client calls from all admission paths

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

* feat(performance): removed duplicate client calls from all admission paths

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>

---------

Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
2026-07-28 14:32:42 +02:00

56 lines
1.6 KiB
Go

// Copyright 2020-2026 Project Capsule Authors
// SPDX-License-Identifier: Apache-2.0
package selectors
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
celruntime "github.com/projectcapsule/capsule/pkg/runtime/cel"
"github.com/projectcapsule/capsule/pkg/runtime/jsonpath"
)
type FieldSelectorOperator string
const (
FieldSelectorTruthy FieldSelectorOperator = "truthy"
FieldSelectorEquals FieldSelectorOperator = "equals"
FieldSelectorNotEquals FieldSelectorOperator = "not-equals"
)
// +kubebuilder:object:generate=true
type SelectorWithFields struct {
// Select Items based on their labels.
*metav1.LabelSelector `json:",inline"`
// Additional boolean JSONPath expressions.
// All must evaluate to true for this selector to match.
// +optional
FieldSelectors []string `json:"fieldSelectors,omitempty"`
// Additional CEL expressions evaluated against the selected object.
// The object is available as "object".
// All must evaluate to true for this selector to match.
// CEL expressions and fieldSelectors may be used together.
// +kubebuilder:validation:MaxItems=64
// +kubebuilder:validation:items:MinLength=1
// +kubebuilder:validation:items:MaxLength=4096
// +optional
CELExpressions []string `json:"celExpressions,omitempty"`
}
type CompiledSelectorWithFields struct {
LabelSelector labels.Selector
FieldMatchers []CompiledFieldSelector
CELMatchers []*celruntime.CompiledExpression
}
type CompiledFieldSelector struct {
Raw string
Path string
Operator FieldSelectorOperator
Value string
Compiled *jsonpath.CompiledJSONPath
}