Files
capsule/pkg/runtime/selectors/fields.go
T
Oliver BählerandGitHub 4c4d927bea fix: use different match strategy for truthy and match (#1953)
* fix(controller): decode old object for delete requests

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* chore: modernize golang

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* fix: preserve ca-bundles injected from external providers

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

* fix: best effort patch reconciling status

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

* fix: use different match strategy for truthy and match

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

---------

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>
Signed-off-by: Oliver Baehler <oliver@sudo-i.net>
2026-06-05 14:46:37 +02:00

43 lines
1014 B
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"
"github.com/projectcapsule/capsule/pkg/runtime/jsonpath"
)
type FieldSelectorOperator string
const (
FieldSelectorTruthy FieldSelectorOperator = "truthy"
FieldSelectorEquals FieldSelectorOperator = "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"`
}
type CompiledSelectorWithFields struct {
LabelSelector labels.Selector
FieldMatchers []CompiledFieldSelector
}
type CompiledFieldSelector struct {
Raw string
Path string
Operator FieldSelectorOperator
Value string
Compiled *jsonpath.CompiledJSONPath
}