-
Bug
-
Resolution: Done
-
Undefined
-
None
-
4.12
-
Moderate
-
None
-
3
-
OCP VE Sprint 228
-
1
-
Rejected
-
False
-
Description of problem:
There is an error message logged in controller manager pod that says tolerationSeconds would be ignored if effect is not NoExecute. --- 2022/10/03 15:00:40 reconciling (/v1, Kind=Service) metallb-system/controller-monitor-service 2022/10/03 15:00:40 update was successful 2022/10/03 15:00:40 reconciling (apps/v1, Kind=DaemonSet) metallb-system/speaker 2022/10/03 15:00:40 does not exist, creating (apps/v1, Kind=DaemonSet) metallb-system/speaker 1.6648092402562873e+09 INFO controllers.MetalLB Failed to update metallb status {"metallb": "metallb-system/metallb", "Desired status": "Available"} 1.6648092402563276e+09 ERROR Reconciler error {"controller": "metallb", "controllerGroup": "metallb.io", "controllerKind": "MetalLB", "metalLB": {"name":"metallb","namespace":"metallb-system"}, "namespace": "metallb-system", "name": "metallb", "reconcileID": "e0e20b0b-c0a4-4527-8b32-8b5bb1d39460", "error": "FailedToSyncMetalLBResources: could not apply (apps/v1, Kind=DaemonSet) metallb-system/speaker: DaemonSet.apps \"speaker\" is invalid: spec.template.spec.tolerations[2].effect: Invalid value: \"NoSchedule\": effect must be 'NoExecute' when `tolerationSeconds` is set", "errorVerbose": "DaemonSet.apps \"speaker\" is invalid: spec.template.spec.tolerations[2].effect: Invalid value: \"NoSchedule\": effect must be 'NoExecute' when `tolerationSeconds` is set\ncould not apply (apps/v1, Kind=DaemonSet) metallb-system/speaker\ngithub.com/metallb/metallb-operator/controllers.(*MetalLBReconciler).syncMetalLBResources\n\t/workspace/controllers/metallb_controller.go:169\ngithub.com/metallb/metallb-operator/controllers.(*MetalLBReconciler).reconcileResource\n\t/workspace/controllers/metallb_controller.go:116\ngithub.com/metallb/metallb-operator/controllers.(*MetalLBReconciler).Reconcile\n\t/workspace/controllers/metallb_controller.go:100\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:121\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:320\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:273\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:234\nruntime.goexit\n\t/usr/lib/golang/src/runtime/asm_amd64.s:1571\nFailedToSyncMetalLBResources\ngithub.com/metallb/metallb-operator/controllers.(*MetalLBReconciler).reconcileResource\n\t/workspace/controllers/metallb_controller.go:118\ngithub.com/metallb/metallb-operator/controllers.(*MetalLBReconciler).Reconcile\n\t/workspace/controllers/metallb_controller.go:100\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:121\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:320\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:273\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:234\nruntime.goexit\n\t/usr/lib/golang/src/runtime/asm_amd64.s:1571"} sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:273 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2 /workspace/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:234
Version-Release number of selected component (if applicable):
4.12
How reproducible:
Always
Steps to Reproduce:
1. Install the metallb operator oc get csv -n metallb-system NAME DISPLAY VERSION REPLACES PHASE metallb-operator.4.12.0-202209302306 MetalLB Operator 4.12.0-202209302306 metallb-operator.4.11.0-202209280142 Succeeded 2. Taint two master nodes and one worker node. oc get nodes NAME STATUS ROLES AGE VERSION asood-103-v59jh-master-0 Ready control-plane,master 3h12m v1.24.0+8c7c967 asood-103-v59jh-master-1 Ready control-plane,master 3h12m v1.24.0+8c7c967 asood-103-v59jh-master-2 Ready control-plane,master 3h12m v1.24.0+8c7c967 asood-103-v59jh-worker-nnln2 Ready worker 175m v1.24.0+8c7c967 asood-103-v59jh-worker-wrxkn Ready worker 170m v1.24.0+8c7c967 oc adm taint node asood-103-v59jh-master-1 group=infra:NoSchedule node/asood-103-v59jh-master-1 tainted oc adm taint node asood-103-v59jh-master-2 group=infra:NoSchedule node/asood-103-v59jh-master-2 tainted oc adm taint node asood-103-v59jh-worker-nnln2 group=infra:NoSchedule node/asood-103-v59jh-worker-nnln2 tainted 3. Create a metallb CR with YAML below:- oc get metallb metallb -n metallb-system -oyaml apiVersion: metallb.io/v1beta1 kind: MetalLB metadata: name: metallb namespace: metallb-system spec: controllerTolerations: - effect: NoSchedule key: group operator: Equal tolerationSeconds: 10 value: infra logLevel: debug speakerTolerations: - effect: NoSchedule key: group operator: Equal tolerationSeconds: 10 value: infra
Actual results:
The controller and speakers are not created, but error is logged.
Expected results:
The user should should be warned about the combination of values when user is creating the CR.
Additional info: