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

[Premerge test] Removing OCP BYO external oidc to revert to OAuth IDP caused co/console degraded with AuthStatusHandlerDegraded

XMLWordPrintable

    • Critical
    • None
    • Proposed
    • False
    • Hide

      None

      Show
      None

      Description of problem:
      This is a bug found during pre-merge test of 4.18 epic AUTH-528 PRs and filed for better tracking per existing "OpenShift - Testing Before PR Merges - Left-Shift Testing" google doc workflow.

      co/console degraded with AuthStatusHandlerDegraded after OCP BYO external oidc is configured and then removed (i.e. reverted back to OAuth IDP).
      

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

      Cluster-bot build which is built at 2024-11-25 09:39 CST (UTC+800)
      build 4.18,openshift/cluster-authentication-operator#713,openshift/cluster-authentication-operator#740,openshift/cluster-kube-apiserver-operator#1760,openshift/console-operator#940
      

      How reproducible:

      Always (tried twice, both hit it)
      

      Steps to Reproduce:

      1. Launch a TechPreviewNoUpgrade standalone OCP cluster with above build. Configure htpasswd IDP. Test users can login successfully.
      
      2. Configure BYO external OIDC in this OCP cluster using Microsoft Entra ID. KAS and console pods can roll out successfully. oc login and console login to Microsoft Entra ID can succeed.
      
      3. Remove BYO external OIDC configuration, i.e. go back to original htpasswd OAuth IDP:
      [xxia@2024-11-25 21:10:17 CST my]$ oc patch authentication.config/cluster --type=merge -p='
      spec: 
        type: ""
        oidcProviders: null
      '
      authentication.config.openshift.io/cluster patched
      
      [xxia@2024-11-25 21:15:24 CST my]$ oc get authentication.config  cluster -o yaml
      apiVersion: config.openshift.io/v1
      kind: Authentication
      metadata:
        annotations:
          include.release.openshift.io/ibm-cloud-managed: "true"
          include.release.openshift.io/self-managed-high-availability: "true"
          release.openshift.io/create-only: "true"
        creationTimestamp: "2024-11-25T04:11:59Z"
        generation: 5
        name: cluster
        ownerReferences:
        - apiVersion: config.openshift.io/v1
          kind: ClusterVersion
          name: version
          uid: e814f1dc-0b51-4b87-8f04-6bd99594bf47
        resourceVersion: "284724"
        uid: 2de77b67-7de4-4883-8ceb-f1020b277210
      spec:
        oauthMetadata:
          name: ""
        serviceAccountIssuer: ""
        type: ""
        webhookTokenAuthenticator:
          kubeConfig:
            name: webhook-authentication-integrated-oauth
      status:
        integratedOAuthMetadata:
          name: oauth-openshift
        oidcClients:
        - componentName: cli
          componentNamespace: openshift-console
        - componentName: console
          componentNamespace: openshift-console
          conditions:
          - lastTransitionTime: "2024-11-25T13:10:23Z"
            message: ""
            reason: OIDCConfigAvailable
            status: "False"
            type: Degraded
          - lastTransitionTime: "2024-11-25T13:10:23Z"
            message: ""
            reason: OIDCConfigAvailable
            status: "False"
            type: Progressing
          - lastTransitionTime: "2024-11-25T13:10:23Z"
            message: ""
            reason: OIDCConfigAvailable
            status: "True"
            type: Available
          currentOIDCClients:
          - clientID: 95fbae1d-69a7-4206-86bd-00ea9e0bb778
            issuerURL: https://login.microsoftonline.com/6047c7e9-b2ad-488d-a54e-dc3f6be6a7ee/v2.0
            oidcProviderName: microsoft-entra-id
      
      
      KAS and console pods indeed can roll out successfully; and now oc login and console login indeed can succeed using the htpasswd user and password:
      [xxia@2024-11-25 21:49:32 CST my]$ oc login -u testuser-1 -p xxxxxx
      Login successful.
      ...
      
      But co/console degraded, which is weird:
      [xxia@2024-11-25 21:56:07 CST my]$ oc get co | grep -v 'True *False *False'
      NAME                                       VERSION                                                AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
      console                                    4.18.0-0.test-2024-11-25-020414-ci-ln-71cvsj2-latest   True        False         True       9h      AuthStatusHandlerDegraded: Authentication.config.openshift.io "cluster" is invalid: [status.oidcClients[1].currentOIDCClients[0].issuerURL: Invalid value: "": oidcClients[1].currentOIDCClients[0].issuerURL in body should match '^https:\/\/[^\s]', status.oidcClients[1].currentOIDCClients[0].oidcProviderName: Invalid value: "": oidcClients[1].currentOIDCClients[0].oidcProviderName in body should be at least 1 chars long]
      

      Actual results:

      co/console degraded, as above.
      

      Expected results:

      co/console is normal.
      

      Additional info:

          

              rh-ee-bpalmer Bryce Palmer
              xxia-1 Xingxing Xia
              Xingxing Xia Xingxing Xia
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: