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

Whereabouts should allow non default interfaces to Pod IP list [backport 4.11]

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • None
    • 4.12.0, 4.11.0, 4.10.0
    • Networking / multus
    • None
    • ?
    • Important
    • None
    • Plumbing Sprint 225
    • 1
    • Rejected
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      Whereabouts doesn't allow the use of network interface names that are not preceded by the prefix "net", see https://github.com/k8snetworkplumbingwg/whereabouts/issues/130.

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

       

      How reproducible:

      Always

      Steps to Reproduce:

      1. Define two Pods, one with the interface name 'port1' and the other with 'net-port1':

      test-ip-removal-port1:	
                    k8s.v1.cni.cncf.io/networks:
                      [
                        {
                          "name": "test-sriovnd",
                          "interface": "port1",
                          "namespace": "default"
                        }
                      ]
      
      test-ip-removal-net-port1:
                    k8s.v1.cni.cncf.io/networks:
                      [
                        {
                          "name": "test-sriovnd",
                          "interface": "net-port1",
                          "namespace": "default"
                        }
                      ]
      

      2. IP allocated in the IPPool:

      kind: IPPool
      ...
      spec:
        allocations:
          "16":
            id: ...
            podref: test-ecoloma-1/test-ip-removal-port1
          "17":
            id: ...
            podref: test-ecoloma-1/test-ip-removal-net-port1
      

      3. When the ip-reconciler job is run, the allocation for the port with the interface name 'port1' is removed:

      [13:29][]$ oc get cronjob -n openshift-multus
      NAME            SCHEDULE       SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      ip-reconciler   */15 * * * *   False     0        14m             11d
      
      [13:29][]$ oc get ippools.whereabouts.cni.cncf.io -n openshift-multus   2001-1b70-820d-2610---64 -o yaml
      apiVersion: whereabouts.cni.cncf.io/v1alpha1
      kind: IPPool
      metadata:
      ...
      spec:
        allocations:
          "17":
            id: ...
            podref: test-ecoloma-1/test-ip-removal-net-port1
        range: 2001:1b70:820d:2610::/64
      
      [13:30][]$ oc get cronjob -n openshift-multus
      NAME            SCHEDULE       SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      ip-reconciler   */15 * * * *   False     0        9s              11d
      

       

      Actual results:

      The network interface with a name that doesn't have a 'net' prefix is removed from the ip-reconciler cronjob.

      Expected results:

      The network interface must not be removed, regardless of the name.

      Additional info:

      Upstream PR @ https://github.com/k8snetworkplumbingwg/whereabouts/pull/147 master PR @ https://github.com/openshift/whereabouts-cni/pull/94

              dosmith Douglas Smith
              ugiordan Ugo Giordano
              Weibin Liang Weibin Liang
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: