@@ -18,13 +18,15 @@ package tektonresult
1818
1919import (
2020 "context"
21+ "fmt"
2122 "os"
2223 "path/filepath"
2324 "strings"
2425
2526 mf "github.com/manifestival/manifestival"
2627 "github.com/tektoncd/operator/pkg/apis/operator/v1alpha1"
2728 operatorclient "github.com/tektoncd/operator/pkg/client/injection/client"
29+ tektonConfiginformer "github.com/tektoncd/operator/pkg/client/injection/informers/operator/v1alpha1/tektonconfig"
2830 "github.com/tektoncd/operator/pkg/reconciler/common"
2931 "github.com/tektoncd/operator/pkg/reconciler/kubernetes/tektoninstallerset/client"
3032 occommon "github.com/tektoncd/operator/pkg/reconciler/openshift/common"
@@ -71,11 +73,15 @@ func OpenShiftExtension(ctx context.Context) common.Extension {
7173 logger .Fatalf ("Failed to fetch logs RBAC manifest: %v" , err )
7274 }
7375
76+ // Get TektonConfig lister to check EnableCentralTLSConfig flag
77+ tektonConfigLister := tektonConfiginformer .Get (ctx ).Lister ()
78+
7479 ext := & openshiftExtension {
7580 installerSetClient : client .NewInstallerSetClient (operatorclient .Get (ctx ).OperatorV1alpha1 ().TektonInstallerSets (),
7681 version , "results-ext" , v1alpha1 .KindTektonResult , nil ),
77- routeManifest : routeManifest ,
78- logsRBACManifest : logsRBACManifest ,
82+ routeManifest : routeManifest ,
83+ logsRBACManifest : logsRBACManifest ,
84+ tektonConfigLister : tektonConfigLister ,
7985 }
8086 return ext
8187}
@@ -84,12 +90,14 @@ type openshiftExtension struct {
8490 installerSetClient * client.InstallerSetClient
8591 routeManifest * mf.Manifest
8692 logsRBACManifest * mf.Manifest
93+ tektonConfigLister occommon.TektonConfigLister
94+ resolvedTLSConfig * occommon.TLSEnvVars
8795}
8896
89- func (oe openshiftExtension ) Transformers (comp v1alpha1.TektonComponent ) []mf.Transformer {
97+ func (oe * openshiftExtension ) Transformers (comp v1alpha1.TektonComponent ) []mf.Transformer {
9098 instance := comp .(* v1alpha1.TektonResult )
9199
92- return []mf.Transformer {
100+ transformers := []mf.Transformer {
93101 occommon .RemoveRunAsUser (),
94102 occommon .RemoveRunAsGroup (),
95103 occommon .ApplyCABundlesToDeployment ,
@@ -101,18 +109,45 @@ func (oe openshiftExtension) Transformers(comp v1alpha1.TektonComponent) []mf.Tr
101109 injectResultsAPIServiceCACert (instance .Spec .ResultsAPIProperties ),
102110 injectPostgresUpgradeSupport (),
103111 }
112+
113+ // Use TLS config resolved in PreReconcile
114+ if oe .resolvedTLSConfig != nil {
115+ transformers = append (transformers , occommon .InjectTLSEnvVars (oe .resolvedTLSConfig , "Deployment" , deploymentAPI , []string {apiContainerName }))
116+ }
117+
118+ return transformers
119+ }
120+
121+
122+ // GetPlatformData returns TLS config fingerprint for hash computation.
123+ // This ensures installer set is updated when TLS config changes.
124+ func (oe * openshiftExtension ) GetPlatformData () string {
125+ if oe .resolvedTLSConfig == nil {
126+ return ""
127+ }
128+ return fmt .Sprintf ("%s:%s:%s" , oe .resolvedTLSConfig .MinVersion , oe .resolvedTLSConfig .CipherSuites , oe .resolvedTLSConfig .CurvePreferences )
104129}
105130
106131func (oe * openshiftExtension ) PreReconcile (ctx context.Context , tc v1alpha1.TektonComponent ) error {
132+ logger := logging .FromContext (ctx )
107133 result := tc .(* v1alpha1.TektonResult )
108- mf := mf.Manifest {}
134+ manifest := mf.Manifest {}
109135
110136 if (result .Spec .LokiStackName != "" && result .Spec .LokiStackNamespace != "" ) ||
111137 strings .EqualFold (result .Spec .LogsType , "LOKI" ) {
112- mf = mf .Append (* oe .logsRBACManifest )
138+ manifest = manifest .Append (* oe .logsRBACManifest )
113139 }
114140
115- return oe .installerSetClient .PreSet (ctx , tc , & mf , filterAndTransform ())
141+ resolvedTLS , err := occommon .ResolveTLSConfig (ctx , oe .tektonConfigLister )
142+ if err != nil {
143+ return err
144+ }
145+ oe .resolvedTLSConfig = resolvedTLS
146+ if oe .resolvedTLSConfig != nil {
147+ logger .Infof ("Injecting central TLS config: MinVersion=%s" , oe .resolvedTLSConfig .MinVersion )
148+ }
149+
150+ return oe .installerSetClient .PreSet (ctx , tc , & manifest , filterAndTransform ())
116151}
117152
118153func (oe openshiftExtension ) PostReconcile (ctx context.Context , tc v1alpha1.TektonComponent ) error {
@@ -130,10 +165,6 @@ func (oe openshiftExtension) PostReconcile(ctx context.Context, tc v1alpha1.Tekt
130165 return oe .installerSetClient .PostSet (ctx , tc , & manifest , filterAndTransform ())
131166}
132167
133- func (oe openshiftExtension ) GetPlatformData () string {
134- return ""
135- }
136-
137168func (oe openshiftExtension ) Finalize (ctx context.Context , tc v1alpha1.TektonComponent ) error {
138169 if err := oe .installerSetClient .CleanupPostSet (ctx ); err != nil {
139170 return err
@@ -474,3 +505,4 @@ func injectPostgresUpgradeSupport() mf.Transformer {
474505 return nil
475506 }
476507}
508+
0 commit comments