Skip to content

Commit 3d09ebe

Browse files
fix: Remove all nodePorts in the propagated service manifests (#287)
Co-authored-by: guofei <guofei@microsoft.com> Co-authored-by: Ryan Zhang <yangzhangrice@hotmail.com>
1 parent c64bc1e commit 3d09ebe

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

pkg/controllers/clusterresourceplacement/resource_selector.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,22 @@ func generateManifest(object *unstructured.Unstructured) (*workv1alpha1.Manifest
325325
unstructured.RemoveNestedField(object.Object, "spec", "clusterIP")
326326
unstructured.RemoveNestedField(object.Object, "spec", "clusterIPs")
327327
}
328+
// We should remove all node ports that are assigned by hubcluster if any.
329+
unstructured.RemoveNestedField(object.Object, "spec", "healthCheckNodePort")
330+
331+
vals, found, err := unstructured.NestedFieldNoCopy(object.Object, "spec", "ports")
332+
if found && err == nil {
333+
if ports, ok := vals.([]interface{}); ok {
334+
for i := range ports {
335+
if each, ok := ports[i].(map[string]interface{}); ok {
336+
delete(each, "nodePort")
337+
}
338+
}
339+
}
340+
}
341+
if err != nil {
342+
return nil, errors.Wrapf(err, "failed to get the ports field in Serivce object, name =%s", object.GetName())
343+
}
328344
}
329345

330346
rawContent, err := object.MarshalJSON()

0 commit comments

Comments
 (0)