@@ -18,6 +18,7 @@ package tektonresult
1818
1919import (
2020 "context"
21+ "fmt"
2122 "os"
2223 "path/filepath"
2324 "strings"
@@ -84,7 +85,6 @@ func OpenShiftExtension(ctx context.Context) common.Extension {
8485 logsRBACManifest : logsRBACManifest ,
8586 tektonConfigLister : tektonConfigLister ,
8687 restConfig : injection .GetConfig (ctx ),
87- ctx : ctx ,
8888 }
8989 return ext
9090}
@@ -96,13 +96,12 @@ type openshiftExtension struct {
9696 tektonConfigLister interface {
9797 Get (name string ) (* v1alpha1.TektonConfig , error )
9898 }
99- restConfig * rest.Config
100- ctx context. Context
99+ restConfig * rest.Config
100+ resolvedTLSConfig * occommon. TLSEnvVars
101101}
102102
103- func (oe openshiftExtension ) Transformers (comp v1alpha1.TektonComponent ) []mf.Transformer {
103+ func (oe * openshiftExtension ) Transformers (comp v1alpha1.TektonComponent ) []mf.Transformer {
104104 instance := comp .(* v1alpha1.TektonResult )
105- logger := logging .FromContext (oe .ctx )
106105
107106 transformers := []mf.Transformer {
108107 occommon .RemoveRunAsUser (),
@@ -117,21 +116,18 @@ func (oe openshiftExtension) Transformers(comp v1alpha1.TektonComponent) []mf.Tr
117116 injectPostgresUpgradeSupport (),
118117 }
119118
120- // Resolve TLS configuration with proper precedence:
121- // 1. If EnableCentralTLSConfig AND APIServer has TLS → use APIServer TLS
122- // 2. Otherwise → user-specified config takes effect (handled by component itself)
123- if tlsEnvVars := oe .resolveTLSConfig (); tlsEnvVars != nil {
124- transformers = append (transformers , injectTLSConfig (tlsEnvVars ))
125- logger .Infof ("Injecting central TLS config: MinVersion=%s" , tlsEnvVars .MinVersion )
119+ // Use TLS config resolved in PreReconcile
120+ if oe .resolvedTLSConfig != nil {
121+ transformers = append (transformers , injectTLSConfig (oe .resolvedTLSConfig ))
126122 }
127123
128124 return transformers
129125}
130126
131127// resolveTLSConfig reads TLS config from the shared APIServer lister.
132128// Returns nil if central TLS is disabled or no TLS config is available.
133- func (oe * openshiftExtension ) resolveTLSConfig () * occommon.TLSEnvVars {
134- logger := logging .FromContext (oe . ctx )
129+ func (oe * openshiftExtension ) resolveTLSConfig (ctx context. Context ) * occommon.TLSEnvVars {
130+ logger := logging .FromContext (ctx )
135131
136132 tc , err := oe .tektonConfigLister .Get (v1alpha1 .ConfigResourceName )
137133 if err != nil {
@@ -144,7 +140,7 @@ func (oe *openshiftExtension) resolveTLSConfig() *occommon.TLSEnvVars {
144140 }
145141
146142 // Read TLS config from the shared APIServer lister
147- tlsEnvVars , err := occommon .GetTLSEnvVarsFromAPIServer (oe . ctx , oe .restConfig )
143+ tlsEnvVars , err := occommon .GetTLSEnvVarsFromAPIServer (ctx , oe .restConfig )
148144 if err != nil {
149145 logger .Warnf ("Failed to get TLS config from APIServer: %v" , err )
150146 return nil
@@ -153,20 +149,31 @@ func (oe *openshiftExtension) resolveTLSConfig() *occommon.TLSEnvVars {
153149 return tlsEnvVars
154150}
155151
152+ // GetHashData returns TLS config fingerprint for hash computation.
153+ // This ensures installer set is updated when TLS config changes.
156154func (oe * openshiftExtension ) GetHashData () string {
157- return ""
155+ if oe .resolvedTLSConfig == nil {
156+ return ""
157+ }
158+ return fmt .Sprintf ("%s:%s:%s" , oe .resolvedTLSConfig .MinVersion , oe .resolvedTLSConfig .CipherSuites , oe .resolvedTLSConfig .CurvePreferences )
158159}
159160
160161func (oe * openshiftExtension ) PreReconcile (ctx context.Context , tc v1alpha1.TektonComponent ) error {
162+ logger := logging .FromContext (ctx )
161163 result := tc .(* v1alpha1.TektonResult )
162- mf := mf.Manifest {}
164+ manifest := mf.Manifest {}
163165
164166 if (result .Spec .LokiStackName != "" && result .Spec .LokiStackNamespace != "" ) ||
165167 strings .EqualFold (result .Spec .LogsType , "LOKI" ) {
166- mf = mf .Append (* oe .logsRBACManifest )
168+ manifest = manifest .Append (* oe .logsRBACManifest )
169+ }
170+
171+ oe .resolvedTLSConfig = oe .resolveTLSConfig (ctx )
172+ if oe .resolvedTLSConfig != nil {
173+ logger .Infof ("Injecting central TLS config: MinVersion=%s" , oe .resolvedTLSConfig .MinVersion )
167174 }
168175
169- return oe .installerSetClient .PreSet (ctx , tc , & mf , filterAndTransform ())
176+ return oe .installerSetClient .PreSet (ctx , tc , & manifest , filterAndTransform ())
170177}
171178
172179func (oe openshiftExtension ) PostReconcile (ctx context.Context , tc v1alpha1.TektonComponent ) error {
0 commit comments