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

DeploymentConfig pre hook execPods do not mirror the tolerations of the DC

XMLWordPrintable

    • Moderate
    • None
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      When creating a DeploymentConfig with:
      - Recreate strategy
      - Tolerations defined in the template
      - Pre/Post execPod definitions
      
      The execPods do not have the same tolerations as the DeploymentConfig.
      
      When this is run in an environment where taints/tolerations are heavily used to control workload, this is resulting in scheduling failures for the hook Pods.
      

      Version-Release number of selected component (if applicable):

      OpenShift 4.10.20
      

      How reproducible:

      Everytime
      

      Steps to Reproduce:

      1. Create a Deployment Config matching that described in the Description
      2. Inspect the ExecPods for tolerations
      
      

      Actual results:

      ExecPods do not have Tolerations
      

      Expected results:

      ExecPods to have Tolerations
      

      Additional info:

      Reviewing the relevant controller code for the recreate strategy, the code for processing the pre/post hook definitions appears to be here. [0] This creates a `deployer` Pod which DOES have tolerations.[1][2] 
      
      This `deployer` Pod then creates the pre/post hook exec Pods [3][4][5] but does not appears to set any tolerations on these Pods [6].
      
      Resources:
      [0] https://github.com/openshift/openshift-controller-manager/blob/master/pkg/apps/deployer/deployer_controller.go/#L356-L446
      [1] https://github.com/openshift/openshift-controller-manager/blob/master/pkg/cmd/controller/apps.go/#L31-L32
      [2] https://github.com/openshift/openshift-controller-manager/blob/master/vendor/github.com/openshift/api/openshiftcontrolplane/v1/types.go/#L164-L199
      [3] Deployer image definition:
          https://github.com/openshift/oc/blob/master/images/deployer/Dockerfile.rhel
      [4] Deployer Commands:
          https://github.com/openshift/oc/blob/dd2bcd0b8/pkg/cli/cli.go/#L345-L346
          https://github.com/openshift/oc/blob/dd2bcd0b8/pkg/cli/deployer/deployer.go/#L69-L97
      [5] The exec hook pods are created:
          https://github.com/openshift/oc/blob/dd2bcd0b8/pkg/cli/deployer/strategy/support/lifecycle.go/#L354-L423
      [6] The exec hook Pod generation doesn't define Toleration:
          https://github.com/openshift/oc/blob/dd2bcd0b8/pkg/cli/deployer/strategy/support/lifecycle.go/#L435-L473
       

              jchaloup@redhat.com Jan Chaloupka
              rhn-support-mwasher Michael Washer (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: