Bug 1749581

Summary: IngressController resource's scale subresource has incorrect label selector path
Product: OpenShift Container Platform Reporter: Miciah Dashiel Butler Masters <mmasters>
Component: NetworkingAssignee: Miciah Dashiel Butler Masters <mmasters>
Networking sub component: router QA Contact: Hongan Li <hongli>
Status: CLOSED ERRATA Docs Contact:
Severity: low    
Priority: unspecified CC: aos-bugs
Version: 4.1.0   
Target Milestone: ---   
Target Release: 4.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-10-16 06:40:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Go program that uses client-go to get the default ingresscontroller's scale subresource and prints the label selector path none

Description Miciah Dashiel Butler Masters 2019-09-05 22:38:57 UTC
Description of problem:

The IngressController custom resource definition (CRD) specifies an incorrect label selector path in the scale subresource.  As a consequence, clients will see an empty value for the label selector on the scale subresource.


Version-Release number of selected component (if applicable):
4.1 and 4.2.


How reproducible:
100%.


Steps to Reproduce:

Run the following command while logged in to a v4 cluster:

     oc get --raw /apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/default/scale | jq .

Alternatively, run the attached Go program, which uses the scale client from client-go to get the default ingresscontroller's scale resource and prints the label selector.


Actual results:

    % go run scale-test.go
    scale status.selector: ""
    % oc get --raw /apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/default/scale | jq .
    {
      "kind": "Scale",
      "apiVersion": "autoscaling/v1",
      "metadata": {
        "name": "default",
        "namespace": "openshift-ingress-operator",
        "selfLink": "/apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/default/scale",
        "uid": "15c66196-d016-11e9-b1af-42010a000004",
        "resourceVersion": "35527",
        "creationTimestamp": "2019-09-05T19:48:08Z"
      },
      "spec": {
        "replicas": 2
      },
      "status": {
        "replicas": 2
      }
    }
    % 


Expected results:

    % go run scale-test.go
    scale status.selector: "ingresscontroller.operator.openshift.io/deployment-ingresscontroller=default"
    % oc get --raw /apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/default/scale | jq .
    {
      "kind": "Scale",
      "apiVersion": "autoscaling/v1",
      "metadata": {
        "name": "default",
        "namespace": "openshift-ingress-operator",
        "selfLink": "/apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/default/scale",
        "uid": "15c66196-d016-11e9-b1af-42010a000004",
        "resourceVersion": "35527",
        "creationTimestamp": "2019-09-05T19:48:08Z"
      },
      "spec": {
        "replicas": 2
      },
      "status": {
        "replicas": 2,
        "selector": "ingresscontroller.operator.openshift.io/deployment-ingresscontroller=default"
      }
    }
    % 


Additional info:

The label selector path will need to be fixed for the horizontal pod autoscaler (HPA).  I am not aware of anything else that the incorrect path could break.

Comment 1 Miciah Dashiel Butler Masters 2019-09-05 22:42:51 UTC
Created attachment 1612093 [details]
Go program that uses client-go to get the default ingresscontroller's scale subresource and prints the label selector path

Comment 3 Hongan Li 2019-09-17 02:44:59 UTC
verified with 4.2.0-0.nightly-2019-09-15-052022 and issue has been fixed.

$ oc get --raw /apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/default/scale | jq .
{
  "kind": "Scale",
  "apiVersion": "autoscaling/v1",
  "metadata": {
    "name": "default",
    "namespace": "openshift-ingress-operator",
    "selfLink": "/apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/default/scale",
    "uid": "80d8539f-d81d-11e9-ab02-000d3a979766",
    "resourceVersion": "13689",
    "creationTimestamp": "2019-09-16T01:01:23Z"
  },
  "spec": {
    "replicas": 2
  },
  "status": {
    "replicas": 2,
    "selector": "ingresscontroller.operator.openshift.io/deployment-ingresscontroller=default"
  }
}

Comment 5 errata-xmlrpc 2019-10-16 06:40:35 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:2922