Skip to content

Commit a63d396

Browse files
committed
fix(oidc): fix secret lookup and add condition cleanup
This commit addresses two issues related to OIDC authentication: 1. Fixed OIDC client secret lookup in oidcsetup controller to use the correct informer, namespace (openshift-config) and dynamic secret name from the Authentication CR, instead of hardcoded values. 2. Added condition cleanup in sync_v400 to properly clear the OIDCProviderTrustedAuthorityConfigGet degraded condition when authentication type changes from OIDC to non-OIDC (e.g., IntegratedOAuth). This prevents the Console Operator from remaining in a Degraded state indefinitely during rollback scenarios. The second fix follows the same pattern used in the oidcsetup controller for clearing conditions when auth type is not OIDC. Assisted-by: Claude Code 2.0.5, claude-sonnet-4-5@20250929 Signed-off-by: Ahmed Abdalla <[email protected]>
1 parent ca22e61 commit a63d396

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

pkg/console/controllers/oidcsetup/oidcsetup.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ type oidcSetupController struct {
5858
authnLister configv1listers.AuthenticationLister
5959
consoleOperatorLister operatorv1listers.ConsoleLister
6060
configConfigMapLister corev1listers.ConfigMapLister
61+
configSecretsLister corev1listers.SecretLister
6162
targetNSSecretsLister corev1listers.SecretLister
6263
targetNSConfigMapLister corev1listers.ConfigMapLister
6364
targetNSDeploymentsLister appsv1listers.DeploymentLister
@@ -74,6 +75,7 @@ func NewOIDCSetupController(
7475
authenticationClient configv1client.AuthenticationInterface,
7576
consoleOperatorInformer operatorv1informers.ConsoleInformer,
7677
configConfigMapInformer corev1informers.ConfigMapInformer,
78+
configSecretInformer corev1informers.SecretInformer,
7779
targetNSsecretsInformer corev1informers.SecretInformer,
7880
targetNSConfigMapInformer corev1informers.ConfigMapInformer,
7981
targetNSDeploymentsInformer appsv1informers.DeploymentInformer,
@@ -87,6 +89,7 @@ func NewOIDCSetupController(
8789
authnLister: authnInformer.Lister(),
8890
consoleOperatorLister: consoleOperatorInformer.Lister(),
8991
configConfigMapLister: configConfigMapInformer.Lister(),
92+
configSecretsLister: configSecretInformer.Lister(),
9093
targetNSSecretsLister: targetNSsecretsInformer.Lister(),
9194
targetNSDeploymentsLister: targetNSDeploymentsInformer.Lister(),
9295
targetNSConfigMapLister: targetNSConfigMapInformer.Lister(),
@@ -200,7 +203,7 @@ func (c *oidcSetupController) syncAuthTypeOIDC(ctx context.Context, authnConfig
200203
return nil
201204
}
202205

203-
clientSecret, err := c.targetNSSecretsLister.Secrets(api.TargetNamespace).Get("console-oauth-config")
206+
clientSecret, err := c.configSecretsLister.Secrets(api.OpenShiftConfigNamespace).Get(clientConfig.ClientSecret.Name)
204207
if err != nil {
205208
c.authStatusHandler.Degraded("OIDCClientSecretGet", err.Error())
206209
return err

pkg/console/operator/sync_v400.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,9 @@ func (co *consoleOperator) sync_v400(ctx context.Context, controllerContext fact
117117
if err != nil {
118118
return statusHandler.FlushAndReturn(err)
119119
}
120+
default:
121+
// Clear OIDC-related conditions when auth type is not OIDC
122+
statusHandler.AddConditions(status.HandleProgressingOrDegraded("OIDCProviderTrustedAuthorityConfigGet", "", nil))
120123
}
121124

122125
customLogosErr, customLogosErrReason := co.SyncCustomLogos(updatedOperatorConfig)

pkg/console/starter/starter.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,7 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle
295295
configClient.ConfigV1().Authentications(),
296296
operatorConfigInformers.Operator().V1().Consoles(),
297297
kubeInformersConfigNamespaced.Core().V1().ConfigMaps(),
298+
kubeInformersConfigNamespaced.Core().V1().Secrets(),
298299
kubeInformersNamespaced.Core().V1().Secrets(),
299300
kubeInformersNamespaced.Core().V1().ConfigMaps(),
300301
kubeInformersNamespaced.Apps().V1().Deployments(),

0 commit comments

Comments
 (0)