implement field selector for clusterIP on services
This will allow components that don't need to watch headless services (heavily used on ai/ml workloads) to filter them server side. Specially useful for kubelet and kube-proxy Co-authored-by: Jianbo Ma <sakuranlbj@gmail.com> Change-Id: I6434d2c8c77aaf725ec5c07acbcda14311f24bfa Change-Id: Iba9e25afb90712facfb3dee25c500bbe08ef38fc
This commit is contained in:
@@ -97,6 +97,9 @@ func addConversionFuncs(scheme *runtime.Scheme) error {
|
||||
if err := AddFieldLabelConversionsForSecret(scheme); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := AddFieldLabelConversionsForService(scheme); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -488,6 +491,20 @@ func AddFieldLabelConversionsForSecret(scheme *runtime.Scheme) error {
|
||||
})
|
||||
}
|
||||
|
||||
func AddFieldLabelConversionsForService(scheme *runtime.Scheme) error {
|
||||
return scheme.AddFieldLabelConversionFunc(SchemeGroupVersion.WithKind("Service"),
|
||||
func(label, value string) (string, string, error) {
|
||||
switch label {
|
||||
case "metadata.namespace",
|
||||
"metadata.name",
|
||||
"spec.clusterIP":
|
||||
return label, value, nil
|
||||
default:
|
||||
return "", "", fmt.Errorf("field label not supported: %s", label)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
var initContainerAnnotations = map[string]bool{
|
||||
"pod.beta.kubernetes.io/init-containers": true,
|
||||
"pod.alpha.kubernetes.io/init-containers": true,
|
||||
|
Reference in New Issue
Block a user