mirror of
https://github.com/projectcapsule/capsule.git
synced 2026-08-18 12:06:43 +00:00
44 lines
1.1 KiB
Go
44 lines
1.1 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"
|
|
|
|
"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"`
|
|
}
|
|
|
|
type CompiledSelectorWithFields struct {
|
|
LabelSelector labels.Selector
|
|
FieldMatchers []CompiledFieldSelector
|
|
}
|
|
|
|
type CompiledFieldSelector struct {
|
|
Raw string
|
|
Path string
|
|
Operator FieldSelectorOperator
|
|
Value string
|
|
Compiled *jsonpath.CompiledJSONPath
|
|
}
|