Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-1962

Controller and speakers are not created with tolerations effect is NoScheduleNoSchedule and tolerationSeconds is set 10

XMLWordPrintable

    • Moderate
    • None
    • 3
    • OCP VE Sprint 228
    • 1
    • Rejected
    • False
    • Hide

      None

      Show
      None

      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:

       

       

       

       

       

       

       

              pepalani@redhat.com Periyasamy Palanisamy
              rhn-support-asood Arti Sood
              Arti Sood Arti Sood
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: