@@ -19,7 +19,6 @@ package parallel
1919import (
2020 "context"
2121 "fmt"
22- "strings"
2322
2423 argov1beta1api "github.com/argoproj-labs/argocd-operator/api/v1beta1"
2524 . "github.com/onsi/ginkgo/v2"
@@ -86,40 +85,31 @@ var _ = Describe("GitOps Operator Parallel E2E Tests", func() {
8685
8786 By ("validating that the Dex Client Secret was copied from dex serviceaccount token secret to argocd-secret, by the operator" )
8887 Eventually (func () error {
89- // Get the service account and find its token secret
90- err := k8sClient .Get (ctx , client .ObjectKeyFromObject (dexServiceAccount ), dexServiceAccount )
91- if err != nil {
92- return err
93- }
94-
95- // Find the token secret from the service account secrets
96- var tokenSecretName string
97- for _ , secret := range dexServiceAccount .Secrets {
98- if secret .Name != "" && strings .Contains (secret .Name , "token" ) {
99- tokenSecretName = secret .Name
100- break
101- }
102- }
88+ // The operator now creates an Opaque secret with a deterministic name for the Dex token
89+ // (via TokenRequest API) instead of using auto-generated kubernetes.io/service-account-token secrets.
90+ // The secret name follows the pattern: <argocd-name>-<dex-sa-name>-token
91+ dexTokenSecretName := "example-argocd-argocd-dex-server-token" // #nosec G101 -- This is a Kubernetes secret name, not a credential
10392
104- if tokenSecretName == "" {
105- return fmt .Errorf ("no token secret found for service account %s" , dexServiceAccount .Name )
106- }
107-
108- // Get the token secret and extract the token
109- tokenSecret := & corev1.Secret {
93+ // Get the Dex token secret and extract the token
94+ dexTokenSecret := & corev1.Secret {
11095 ObjectMeta : metav1.ObjectMeta {
111- Name : tokenSecretName ,
96+ Name : dexTokenSecretName ,
11297 Namespace : namespace .Name ,
11398 },
11499 }
115- err = k8sClient .Get (ctx , client .ObjectKeyFromObject (tokenSecret ), tokenSecret )
100+ err : = k8sClient .Get (ctx , client .ObjectKeyFromObject (dexTokenSecret ), dexTokenSecret )
116101 if err != nil {
117102 return err
118103 }
119104
120- expectedClientSecret , exists := tokenSecret .Data ["token" ]
105+ expectedClientSecret , exists := dexTokenSecret .Data ["token" ]
121106 if ! exists {
122- return fmt .Errorf ("token not found in secret %s" , tokenSecretName )
107+ return fmt .Errorf ("token not found in secret %s" , dexTokenSecretName )
108+ }
109+
110+ // Verify the secret also contains an expiry field
111+ if _ , exists := dexTokenSecret .Data ["expiry" ]; ! exists {
112+ return fmt .Errorf ("expiry not found in secret %s" , dexTokenSecretName )
123113 }
124114
125115 // Get the argocd-secret and extract the oidc.dex.clientSecret
0 commit comments