@@ -29,20 +29,20 @@ import (
2929 "k8s.io/apimachinery/pkg/runtime"
3030)
3131
32- // makeTriggersWebhookDeployment returns an unstructured triggers webhook Deployment for transformer tests .
33- func makeTriggersWebhookDeployment (t * testing.T ) unstructured.Unstructured {
32+ // makeDeployment returns an unstructured Deployment with the given name and container name .
33+ func makeDeployment (t * testing.T , deploymentName , containerName string ) unstructured.Unstructured {
3434 t .Helper ()
3535
3636 d := & appsv1.Deployment {
3737 ObjectMeta : metav1.ObjectMeta {
38- Name : tektonTriggersWebhookDeployment ,
38+ Name : deploymentName ,
3939 Namespace : "openshift-pipelines" ,
4040 },
4141 Spec : appsv1.DeploymentSpec {
4242 Template : corev1.PodTemplateSpec {
4343 Spec : corev1.PodSpec {
4444 Containers : []corev1.Container {
45- {Name : webhookContainerName },
45+ {Name : containerName },
4646 },
4747 },
4848 },
@@ -58,6 +58,16 @@ func makeTriggersWebhookDeployment(t *testing.T) unstructured.Unstructured {
5858 return u
5959}
6060
61+ // makeTriggersWebhookDeployment returns an unstructured triggers webhook Deployment for transformer tests.
62+ func makeTriggersWebhookDeployment (t * testing.T ) unstructured.Unstructured {
63+ return makeDeployment (t , tektonTriggersWebhookDeployment , webhookContainerName )
64+ }
65+
66+ // makeCoreInterceptorsDeployment returns an unstructured core interceptors Deployment for transformer tests.
67+ func makeCoreInterceptorsDeployment (t * testing.T ) unstructured.Unstructured {
68+ return makeDeployment (t , tektonTriggersCoreInterceptors , coreInterceptorsContainerName )
69+ }
70+
6171func TestTriggersTransformers_NoTLSConfig (t * testing.T ) {
6272 ext := & openshiftExtension {
6373 resolvedTLSConfig : nil ,
@@ -85,7 +95,8 @@ func TestTriggersTransformers_NoTLSConfig(t *testing.T) {
8595 continue
8696 }
8797 for _ , e := range c .Env {
88- if e .Name == occommon .TLSMinVersionEnvVar || e .Name == occommon .TLSCipherSuitesEnvVar {
98+ if e .Name == occommon .WebhookEnvVarPrefix + occommon .TLSMinVersionEnvVar ||
99+ e .Name == occommon .WebhookEnvVarPrefix + occommon .TLSCipherSuitesEnvVar {
89100 t .Errorf ("unexpected TLS env var %s set when resolvedTLSConfig is nil" , e .Name )
90101 }
91102 }
@@ -129,6 +140,54 @@ func TestTriggersTransformers_WithTLSConfig_InjectsEnvVarsIntoWebhook(t *testing
129140 }
130141 }
131142
143+ webhookMinVersion := occommon .WebhookEnvVarPrefix + occommon .TLSMinVersionEnvVar
144+ webhookCipherSuites := occommon .WebhookEnvVarPrefix + occommon .TLSCipherSuitesEnvVar
145+
146+ if got := envMap [webhookMinVersion ]; got != tlsConfig .MinVersion {
147+ t .Errorf ("%s = %q, want %q" , webhookMinVersion , got , tlsConfig .MinVersion )
148+ }
149+ if got := envMap [webhookCipherSuites ]; got != tlsConfig .CipherSuites {
150+ t .Errorf ("%s = %q, want %q" , webhookCipherSuites , got , tlsConfig .CipherSuites )
151+ }
152+ }
153+
154+ func TestTriggersTransformers_WithTLSConfig_InjectsEnvVarsIntoCoreInterceptors (t * testing.T ) {
155+ tlsConfig := & occommon.TLSEnvVars {
156+ MinVersion : "1.2" ,
157+ CipherSuites : "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_AES_128_GCM_SHA256" ,
158+ }
159+ ext := & openshiftExtension {
160+ resolvedTLSConfig : tlsConfig ,
161+ }
162+
163+ transformers := ext .Transformers (& v1alpha1.TektonTrigger {})
164+
165+ u := makeCoreInterceptorsDeployment (t )
166+ manifest , err := mf .ManifestFrom (mf .Slice ([]unstructured.Unstructured {u }))
167+ if err != nil {
168+ t .Fatalf ("failed to build manifest: %v" , err )
169+ }
170+
171+ transformed , err := manifest .Transform (transformers ... )
172+ if err != nil {
173+ t .Fatalf ("transform failed: %v" , err )
174+ }
175+
176+ d := & appsv1.Deployment {}
177+ if err := runtime .DefaultUnstructuredConverter .FromUnstructured (transformed .Resources ()[0 ].Object , d ); err != nil {
178+ t .Fatalf ("failed to convert back: %v" , err )
179+ }
180+
181+ envMap := map [string ]string {}
182+ for _ , c := range d .Spec .Template .Spec .Containers {
183+ if c .Name != coreInterceptorsContainerName {
184+ continue
185+ }
186+ for _ , e := range c .Env {
187+ envMap [e .Name ] = e .Value
188+ }
189+ }
190+
132191 if got := envMap [occommon .TLSMinVersionEnvVar ]; got != tlsConfig .MinVersion {
133192 t .Errorf ("%s = %q, want %q" , occommon .TLSMinVersionEnvVar , got , tlsConfig .MinVersion )
134193 }
@@ -137,6 +196,39 @@ func TestTriggersTransformers_WithTLSConfig_InjectsEnvVarsIntoWebhook(t *testing
137196 }
138197}
139198
199+ func TestTriggersTransformers_NoTLSConfig_DoesNotInjectIntoCoreInterceptors (t * testing.T ) {
200+ ext := & openshiftExtension {
201+ resolvedTLSConfig : nil ,
202+ }
203+
204+ transformers := ext .Transformers (& v1alpha1.TektonTrigger {})
205+
206+ u := makeCoreInterceptorsDeployment (t )
207+ manifest , err := mf .ManifestFrom (mf .Slice ([]unstructured.Unstructured {u }))
208+ if err != nil {
209+ t .Fatalf ("failed to build manifest: %v" , err )
210+ }
211+
212+ transformed , err := manifest .Transform (transformers ... )
213+ if err != nil {
214+ t .Fatalf ("transform failed: %v" , err )
215+ }
216+
217+ d := & appsv1.Deployment {}
218+ if err := runtime .DefaultUnstructuredConverter .FromUnstructured (transformed .Resources ()[0 ].Object , d ); err != nil {
219+ t .Fatalf ("failed to convert back: %v" , err )
220+ }
221+ for _ , c := range d .Spec .Template .Spec .Containers {
222+ for _ , e := range c .Env {
223+ if e .Name == occommon .TLSMinVersionEnvVar || e .Name == occommon .TLSCipherSuitesEnvVar ||
224+ e .Name == occommon .WebhookEnvVarPrefix + occommon .TLSMinVersionEnvVar ||
225+ e .Name == occommon .WebhookEnvVarPrefix + occommon .TLSCipherSuitesEnvVar {
226+ t .Errorf ("unexpected TLS env var %s set when resolvedTLSConfig is nil" , e .Name )
227+ }
228+ }
229+ }
230+ }
231+
140232func TestTriggersTransformers_WithTLSConfig_DoesNotInjectIntoOtherDeployments (t * testing.T ) {
141233 tlsConfig := & occommon.TLSEnvVars {
142234 MinVersion : "1.3" ,
@@ -189,7 +281,9 @@ func TestTriggersTransformers_WithTLSConfig_DoesNotInjectIntoOtherDeployments(t
189281
190282 for _ , c := range result .Spec .Template .Spec .Containers {
191283 for _ , e := range c .Env {
192- if e .Name == occommon .TLSMinVersionEnvVar || e .Name == occommon .TLSCipherSuitesEnvVar {
284+ if e .Name == occommon .TLSMinVersionEnvVar || e .Name == occommon .TLSCipherSuitesEnvVar ||
285+ e .Name == occommon .WebhookEnvVarPrefix + occommon .TLSMinVersionEnvVar ||
286+ e .Name == occommon .WebhookEnvVarPrefix + occommon .TLSCipherSuitesEnvVar {
193287 t .Errorf ("unexpected TLS env var %s injected into non-webhook deployment" , e .Name )
194288 }
195289 }
0 commit comments