Skip to content

Commit 1206dd1

Browse files
committed
OCPBUGS-29900:fix the Metric cco_credentials_mode issue
1 parent f019679 commit 1206dd1

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

pkg/operator/metrics/metrics.go

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ func (mc *Calculator) metricsLoop() {
139139
return
140140
}
141141

142+
mc.log.Info("calling func processCR for all CredentialsRequests")
142143
accumulator := newAccumulator(mc.Client, mc.log)
143144
for _, cr := range credRequests.Items {
144145
accumulator.processCR(&cr, ccoDisabled)
@@ -150,11 +151,17 @@ func (mc *Calculator) metricsLoop() {
150151
mc.log.WithError(err).Error("failed to fetch cloud secret")
151152
return
152153
}
154+
155+
tokenCluster, err := utils.IsTimedTokenCluster(mc.Client, context.TODO(), mc.log)
156+
mc.log.Infof("called func IsTimedTokenCluster with returned tokenCluster = %v", tokenCluster)
157+
158+
//print the accumulator.podIdentityCredentials for debugging
159+
mc.log.Infof("calling func setCredentialsMode with mode = %v, rootSecret = %v, rootSecretNotFound = %v, podIdentityCredentials = %v", mode, cloudSecret, errors.IsNotFound(err), accumulator.podIdentityCredentials)
153160
setCredentialsMode(&clusterState{
154161
mode: mode,
155162
rootSecret: cloudSecret,
156163
rootSecretNotFound: errors.IsNotFound(err),
157-
foundPodIdentityCredentials: accumulator.podIdentityCredentials > 0,
164+
foundPodIdentityCredentials: tokenCluster,
158165
}, mc.log)
159166
}
160167

@@ -250,7 +257,8 @@ func (a *credRequestAccumulator) processCR(cr *credreqv1.CredentialsRequest, cco
250257
cloudKey := cloudProviderSpecToMetricsKey(cloudType)
251258
a.crTotals[cloudKey]++
252259

253-
isPodIdentity, err := credRequestIsPodIdentity(cr, cloudType, a.kubeClient)
260+
isPodIdentity, err := credRequestIsPodIdentity(cr, cloudType, a.kubeClient, a.logger)
261+
a.logger.Infof("called func credRequestIsPodIdentity with returned isPodIdentity = %v", isPodIdentity)
254262
if err != nil {
255263
a.logger.WithError(err).Error("failed to determine whether CredentialsRequest is of type STS")
256264
}
@@ -294,11 +302,13 @@ func setCredentialsMode(state *clusterState, logger log.FieldLogger) {
294302
}
295303

296304
detectedMode := determineCredentialsMode(state, logger)
305+
logger.Infof("called func determineCredentialsMode with returned detectedMode = %v", detectedMode)
297306

298307
crMode[detectedMode] = 1
299308

300309
for k, v := range crMode {
301310
if v > 0 {
311+
logger.Infof("peg mode metrics with k = %v, v = %v", k, v)
302312
metricCredentialsMode.WithLabelValues(string(k)).Set(float64(v))
303313
} else {
304314
// Ensure unused modes are cleared if we've recently changed mode:
@@ -312,7 +322,7 @@ func determineCredentialsMode(state *clusterState, logger log.FieldLogger) const
312322
logger.Error("unexpectedly received a nil state for calculating mode")
313323
return constants.ModeUnknown
314324
}
315-
325+
logger.Infof("foundPodIdentityCredentials = %v", state.foundPodIdentityCredentials)
316326
if state.mode == operatorv1.CloudCredentialsModeManual {
317327

318328
// if the accumulator found any Secrets with pod identity credentials data
@@ -363,28 +373,34 @@ func (a *credRequestAccumulator) setMetrics() {
363373
}
364374
}
365375

366-
func credRequestIsPodIdentity(cr *credreqv1.CredentialsRequest, cloudType string, kubeClient client.Client) (bool, error) {
367-
secretKey := types.NamespacedName{Name: cr.Spec.SecretRef.Name, Namespace: cr.Spec.SecretRef.Namespace}
376+
func credRequestIsPodIdentity(cr *credreqv1.CredentialsRequest, cloudType string, kubeClient client.Client, logger log.FieldLogger) (bool, error) {
377+
secretKey := types.NamespacedName{Namespace: cr.Spec.SecretRef.Namespace, Name: cr.Spec.SecretRef.Name}
368378
secret := &corev1.Secret{}
369379

380+
logger.Infof("Secret name = %v, Secret namespace = %v", cr.Spec.SecretRef.Name, cr.Spec.SecretRef.Namespace)
381+
370382
err := kubeClient.Get(context.TODO(), secretKey, secret)
371383
if errors.IsNotFound(err) {
372384
// Secret for CredReq doesn't exist so we can't query it
385+
logger.Info("secret not found")
373386
return false, nil
374387
} else if err != nil {
388+
logger.Info("error for getting the secret")
375389
return false, err
376390
}
377391

378392
switch cloudType {
379393
case "AWSProviderSpec":
380394
secretData, ok := secret.Data[constants.AWSSecretDataCredentialsKey]
395+
logger.Infof("secretData = %v, ok flag = %v", secretData, ok)
381396
if !ok {
382397
return false, nil
383398
}
384399

385400
// web_identity_token_file is a clear indicator that the credentials
386401
// are configured for pod identity / STS credentials
387402
if strings.Contains(string(secretData), "web_identity_token_file") {
403+
logger.Info("secretData doesn't contain web_identity_token_file")
388404
return true, nil
389405
}
390406

0 commit comments

Comments
 (0)