openyurtio / yurt-app-manager

The workload controller manager from NodePool level in OpenYurt cluster
Apache License 2.0
6 stars 1 forks source link

[BUG] infinite loop reconcile yurtappdaemon #129

Open adamzhoul opened 1 year ago

adamzhoul commented 1 year ago

What happened: yurtappdaemon_controlle fall in infinite loop reconciles unchanged yurtappdaemon resource. image

What you expected to happen:

reconcile only one time

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

reason:

But the reconciler creates new controllerrevisions when the hash is updated.

https://github.com/openyurtio/yurt-app-manager/blob/0b378c527513ff74357f40a1fe3cb7e4c84734bc/pkg/yurtappmanager/controller/yurtappdaemon/revision.go#L126-L129

https://github.com/openyurtio/yurt-app-manager/blob/0b378c527513ff74357f40a1fe3cb7e4c84734bc/pkg/yurtappmanager/controller/yurtappdaemon/yurtappdaemon_controller.go#L255-L259

https://github.com/openyurtio/yurt-app-manager/blob/0b378c527513ff74357f40a1fe3cb7e4c84734bc/pkg/yurtappmanager/controller/yurtappdaemon/yurtappdaemon_controller.go#L240-L248

https://github.com/openyurtio/yurt-app-manager/blob/0b378c527513ff74357f40a1fe3cb7e4c84734bc/pkg/yurtappmanager/controller/yurtappdaemon/yurtappdaemon_controller.go#L201-L210

we check:reflect.DeepEqual(oldStatus.NodePools, newStatus.NodePools) but nodepools come from a map. orders can not be made sure https://github.com/openyurtio/yurt-app-manager/blob/0b378c527513ff74357f40a1fe3cb7e4c84734bc/pkg/yurtappmanager/controller/yurtappdaemon/yurtappdaemon_controller.go#L261-L264

Environment:

/kind bug