Skip to content

Commit

Permalink
Merge pull request #110477 from halfcrazy/feat/hostnetwork-fieldsel
Browse files Browse the repository at this point in the history
support fieldSelector spec.hostNetwork
  • Loading branch information
k8s-ci-robot committed Apr 22, 2023
2 parents cb032ec + 7fb88ee commit 25a25e2
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 1 deletion.
1 change: 1 addition & 0 deletions pkg/apis/core/v1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ func addConversionFuncs(scheme *runtime.Scheme) error {
"spec.restartPolicy",
"spec.schedulerName",
"spec.serviceAccountName",
"spec.hostNetwork",
"status.phase",
"status.podIP",
"status.podIPs",
Expand Down
8 changes: 7 additions & 1 deletion pkg/registry/core/pod/strategy.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,11 +319,17 @@ func ToSelectableFields(pod *api.Pod) fields.Set {
// amount of allocations needed to create the fields.Set. If you add any
// field here or the number of object-meta related fields changes, this should
// be adjusted.
podSpecificFieldsSet := make(fields.Set, 9)
podSpecificFieldsSet := make(fields.Set, 10)
podSpecificFieldsSet["spec.nodeName"] = pod.Spec.NodeName
podSpecificFieldsSet["spec.restartPolicy"] = string(pod.Spec.RestartPolicy)
podSpecificFieldsSet["spec.schedulerName"] = string(pod.Spec.SchedulerName)
podSpecificFieldsSet["spec.serviceAccountName"] = string(pod.Spec.ServiceAccountName)
if pod.Spec.SecurityContext != nil {
podSpecificFieldsSet["spec.hostNetwork"] = strconv.FormatBool(pod.Spec.SecurityContext.HostNetwork)
} else {
// default to false
podSpecificFieldsSet["spec.hostNetwork"] = strconv.FormatBool(false)
}
podSpecificFieldsSet["status.phase"] = string(pod.Status.Phase)
// TODO: add podIPs as a downward API value(s) with proper format
podIP := ""
Expand Down
47 changes: 47 additions & 0 deletions pkg/registry/core/pod/strategy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,53 @@ func TestMatchPod(t *testing.T) {
fieldSelector: fields.ParseSelectorOrDie("status.podIP=2001:db7::"),
expectMatch: false,
},
{
in: &api.Pod{
Spec: api.PodSpec{
SecurityContext: &api.PodSecurityContext{
HostNetwork: true,
},
},
},
fieldSelector: fields.ParseSelectorOrDie("spec.hostNetwork=true"),
expectMatch: true,
},
{
in: &api.Pod{
Spec: api.PodSpec{
SecurityContext: &api.PodSecurityContext{
HostNetwork: true,
},
},
},
fieldSelector: fields.ParseSelectorOrDie("spec.hostNetwork=false"),
expectMatch: false,
},
{
in: &api.Pod{
Spec: api.PodSpec{
SecurityContext: &api.PodSecurityContext{
HostNetwork: false,
},
},
},
fieldSelector: fields.ParseSelectorOrDie("spec.hostNetwork=false"),
expectMatch: true,
},
{
in: &api.Pod{
Spec: api.PodSpec{},
},
fieldSelector: fields.ParseSelectorOrDie("spec.hostNetwork=false"),
expectMatch: true,
},
{
in: &api.Pod{
Spec: api.PodSpec{},
},
fieldSelector: fields.ParseSelectorOrDie("spec.hostNetwork=true"),
expectMatch: false,
},
}
for _, testCase := range testCases {
m := MatchPod(labels.Everything(), testCase.fieldSelector)
Expand Down

0 comments on commit 25a25e2

Please sign in to comment.