github.com/cilium/cilium@v1.16.2/pkg/policy/api/service.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 package api 5 6 // ServiceSelector is a label selector for k8s services 7 type ServiceSelector EndpointSelector 8 9 // Service wraps around selectors for services 10 type Service struct { 11 // K8sServiceSelector selects services by k8s labels and namespace 12 K8sServiceSelector *K8sServiceSelectorNamespace `json:"k8sServiceSelector,omitempty"` 13 // K8sService selects service by name and namespace pair 14 K8sService *K8sServiceNamespace `json:"k8sService,omitempty"` 15 } 16 17 // K8sServiceNamespace is an abstraction for the k8s service + namespace types. 18 type K8sServiceNamespace struct { 19 ServiceName string `json:"serviceName,omitempty"` 20 Namespace string `json:"namespace,omitempty"` 21 } 22 23 // K8sServiceSelectorNamespace wraps service selector with namespace 24 type K8sServiceSelectorNamespace struct { 25 // +kubebuilder:validation:Required 26 Selector ServiceSelector `json:"selector"` 27 Namespace string `json:"namespace,omitempty"` 28 }