diff --git a/Makefile b/Makefile index 1576c35eb644202e91dd2da945619ccea2894118..f4a1a4dcc0ee932f612b79a3f2987da9cbf01f62 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ LD_FLAGS := -ldflags '-buildid=IdByKubeOS \ $(EXTRALDFLAGS) ' GO_BUILD_CGO = CGO_ENABLED=1 \ - CGO_CFLAGS="-fstack-protector-strong -fPIE -D_FORTIFY_SOURCE=2 -O2" \ + CGO_CFLAGS="-fstack-protector-strong -fPIE -fPIC -D_FORTIFY_SOURCE=2 -O2" \ CGO_LDFLAGS_ALLOW='-Wl,-z,relro,-z,now' \ CGO_LDFLAGS="-Wl,-z,relro,-z,now -Wl,-z,noexecstack" \ ${GO_BUILD} -buildmode=pie -trimpath -tags "seccomp selinux static_build cgo netgo osusergo" diff --git a/cmd/operator/controllers/os_controller.go b/cmd/operator/controllers/os_controller.go index 87eaac7b47a3ae74277b5cc28ec6a6f3c44788ee..f86a0b2c44b81c57a6c483dbf1404aa50b6efe5c 100644 --- a/cmd/operator/controllers/os_controller.go +++ b/cmd/operator/controllers/os_controller.go @@ -109,16 +109,17 @@ func (r *OSReconciler) SetupWithManager(mgr ctrl.Manager) error { func (r *OSReconciler) DeleteOSInstance(e event.DeleteEvent, q workqueue.RateLimitingInterface) { ctx := context.Background() hostname := e.Object.GetName() - osInstance := upgradev1.OSInstance{} - if err := r.Get(ctx, types.NamespacedName{ - Namespace: "default", - Name: hostname, - }, &osInstance); err != nil { - log.Error(err, "unable to get osinstance") + labelSelector := labels.SelectorFromSet(labels.Set{"upgrade.openeuler.org/osinstance-node": hostname}) + osInstanceList := &upgradev1.OSInstanceList{} + if err := r.List(ctx, osInstanceList, client.MatchingLabelsSelector{Selector: labelSelector}); err != nil { + log.Error(err, "unable to list osInstances") return } - if err := r.Delete(ctx, &osInstance); err != nil { - log.Error(err, "unable to delete osinstance") + for _, osInstance := range osInstanceList.Items { + if err := r.Delete(ctx, &osInstance); err != nil { + log.Error(err, "unable to delete osInstance") + } + log.Info("Delete osinstance successfully", "name", hostname) } } diff --git a/cmd/proxy/controllers/os_controller.go b/cmd/proxy/controllers/os_controller.go index 95f43971ccedbf5a2add0477ad80a240b42e85ea..a17afacfd6796949350720f557994301f2687d9e 100644 --- a/cmd/proxy/controllers/os_controller.go +++ b/cmd/proxy/controllers/os_controller.go @@ -260,6 +260,9 @@ func checkOsiExist(ctx context.Context, r common.ReadStatusWriter, nameSpace str ObjectMeta: metav1.ObjectMeta{ Namespace: nameSpace, Name: nodeName, + Labels: map[string]string{ + "upgrade.openeuler.org/osinstance-node": nodeName, + }, }, } osInstance.Spec.NodeStatus = values.NodeStatusIdle.String()