Skip to content

Commit ab2133a

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

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

pkg/operator/metrics/metrics.go

Lines changed: 16 additions & 3 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,6 +151,9 @@ func (mc *Calculator) metricsLoop() {
150151
mc.log.WithError(err).Error("failed to fetch cloud secret")
151152
return
152153
}
154+
155+
//print the accumulator.podIdentityCredentials for debugging
156+
mc.log.Infof("calling func setCredentialsMode with mode = %v, rootSecret = %v, rootSecretNotFound = %v, podIdentityCredentials = %v", mode, cloudSecret, errors.IsNotFound(err), accumulator.podIdentityCredentials)
153157
setCredentialsMode(&clusterState{
154158
mode: mode,
155159
rootSecret: cloudSecret,
@@ -250,7 +254,8 @@ func (a *credRequestAccumulator) processCR(cr *credreqv1.CredentialsRequest, cco
250254
cloudKey := cloudProviderSpecToMetricsKey(cloudType)
251255
a.crTotals[cloudKey]++
252256

253-
isPodIdentity, err := credRequestIsPodIdentity(cr, cloudType, a.kubeClient)
257+
isPodIdentity, err := credRequestIsPodIdentity(cr, cloudType, a.kubeClient, a.logger)
258+
a.logger.Infof("called func credRequestIsPodIdentity with returned isPodIdentity = %v", isPodIdentity)
254259
if err != nil {
255260
a.logger.WithError(err).Error("failed to determine whether CredentialsRequest is of type STS")
256261
}
@@ -294,11 +299,13 @@ func setCredentialsMode(state *clusterState, logger log.FieldLogger) {
294299
}
295300

296301
detectedMode := determineCredentialsMode(state, logger)
302+
logger.Infof("called func determineCredentialsMode with returned detectedMode = %v", detectedMode)
297303

298304
crMode[detectedMode] = 1
299305

300306
for k, v := range crMode {
301307
if v > 0 {
308+
logger.Infof("peg mode metrics with k = %v, v = %v", k, v)
302309
metricCredentialsMode.WithLabelValues(string(k)).Set(float64(v))
303310
} else {
304311
// Ensure unused modes are cleared if we've recently changed mode:
@@ -312,7 +319,7 @@ func determineCredentialsMode(state *clusterState, logger log.FieldLogger) const
312319
logger.Error("unexpectedly received a nil state for calculating mode")
313320
return constants.ModeUnknown
314321
}
315-
322+
logger.Infof("foundPodIdentityCredentials = %v", state.foundPodIdentityCredentials)
316323
if state.mode == operatorv1.CloudCredentialsModeManual {
317324

318325
// if the accumulator found any Secrets with pod identity credentials data
@@ -363,28 +370,34 @@ func (a *credRequestAccumulator) setMetrics() {
363370
}
364371
}
365372

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

377+
logger.Infof("CR name = %v, CR namespace = %v", cr.Spec.SecretRef.Name, cr.Spec.SecretRef.Namespace)
378+
370379
err := kubeClient.Get(context.TODO(), secretKey, secret)
371380
if errors.IsNotFound(err) {
372381
// Secret for CredReq doesn't exist so we can't query it
382+
logger.Info("secret not found")
373383
return false, nil
374384
} else if err != nil {
385+
logger.Info("error for getting the secret")
375386
return false, err
376387
}
377388

378389
switch cloudType {
379390
case "AWSProviderSpec":
380391
secretData, ok := secret.Data[constants.AWSSecretDataCredentialsKey]
392+
logger.Infof("secretData = %v, ok flag = %v", secretData, ok)
381393
if !ok {
382394
return false, nil
383395
}
384396

385397
// web_identity_token_file is a clear indicator that the credentials
386398
// are configured for pod identity / STS credentials
387399
if strings.Contains(string(secretData), "web_identity_token_file") {
400+
logger.Info("secretData doesn't contain web_identity_token_file")
388401
return true, nil
389402
}
390403

0 commit comments

Comments
 (0)