@@ -16,9 +16,11 @@ package config
1616
1717import (
1818 "crypto/tls"
19+ "fmt"
1920 "testing"
2021
2122 configv1 "github.com/openshift/api/config/v1"
23+ openshifttls "github.com/openshift/controller-runtime-common/pkg/tls"
2224 "github.com/stretchr/testify/assert"
2325 "github.com/stretchr/testify/require"
2426 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -27,6 +29,11 @@ import (
2729 "sigs.k8s.io/controller-runtime/pkg/log/zap"
2830)
2931
32+ var (
33+ defaultTLSCiphers , _ = cipherCodes (openshifttls .DefaultTLSCiphers )
34+ modernTLSCiphers , _ = cipherCodes (configv1 .TLSProfiles [configv1 .TLSProfileModernType ].Ciphers )
35+ )
36+
3037func TestNewTLSConfigForOpenShift (t * testing.T ) {
3138 log := zap .New (zap .UseDevMode (true ))
3239 scheme := runtime .NewScheme ()
@@ -44,6 +51,7 @@ func TestNewTLSConfigForOpenShift(t *testing.T) {
4451 ObjectMeta : metav1.ObjectMeta {Name : "cluster" },
4552 },
4653 expected : TLSConfig {
54+ MinVersion : tls .VersionTLS12 ,
4755 OpenShift : & OpenShiftTLS {
4856 TLSAdherencePolicy : configv1 .TLSAdherencePolicyNoOpinion ,
4957 },
@@ -61,6 +69,7 @@ func TestNewTLSConfigForOpenShift(t *testing.T) {
6169 },
6270 },
6371 expected : TLSConfig {
72+ MinVersion : tls .VersionTLS12 ,
6473 OpenShift : & OpenShiftTLS {
6574 TLSAdherencePolicy : configv1 .TLSAdherencePolicyLegacyAdheringComponentsOnly ,
6675 },
@@ -73,11 +82,13 @@ func TestNewTLSConfigForOpenShift(t *testing.T) {
7382 Spec : configv1.APIServerSpec {
7483 TLSAdherence : configv1 .TLSAdherencePolicyStrictAllComponents ,
7584 TLSSecurityProfile : & configv1.TLSSecurityProfile {
76- Type : configv1 .TLSProfileOldType ,
85+ Type : configv1 .TLSProfileModernType ,
7786 },
7887 },
7988 },
8089 expected : TLSConfig {
90+ MinVersion : tls .VersionTLS13 ,
91+ CipherSuites : modernTLSCiphers ,
8192 OpenShift : & OpenShiftTLS {
8293 TLSAdherencePolicy : configv1 .TLSAdherencePolicyStrictAllComponents ,
8394 },
@@ -92,6 +103,8 @@ func TestNewTLSConfigForOpenShift(t *testing.T) {
92103 },
93104 },
94105 expected : TLSConfig {
106+ MinVersion : tls .VersionTLS12 ,
107+ CipherSuites : defaultTLSCiphers ,
95108 OpenShift : & OpenShiftTLS {
96109 TLSAdherencePolicy : configv1 .TLSAdherencePolicyStrictAllComponents ,
97110 },
@@ -105,6 +118,8 @@ func TestNewTLSConfigForOpenShift(t *testing.T) {
105118
106119 for _ , tt := range tests {
107120 t .Run (tt .name , func (t * testing.T ) {
121+ require := require .New (t )
122+ assert := assert .New (t )
108123 builder := fake .NewClientBuilder ().WithScheme (scheme )
109124 if tt .apiServer != nil {
110125 builder = builder .WithObjects (tt .apiServer )
@@ -113,24 +128,23 @@ func TestNewTLSConfigForOpenShift(t *testing.T) {
113128
114129 tlsConfig , err := NewTLSConfigForOpenShift (t .Context (), log , cl )
115130 if tt .wantErr {
116- require .Error (t , err )
131+ require .Error (err )
117132 return
118133 }
119- require .NoError (t , err )
120- require .NotNil (t , tlsConfig )
121- require .NotNil (t , tlsConfig .OpenShift )
134+ require .NoError (err )
135+ require .NotNil (tlsConfig )
136+ require .NotNil (tlsConfig .OpenShift )
122137
123- assert .Equal (t , tt .expected .OpenShift .TLSAdherencePolicy , tlsConfig .OpenShift .TLSAdherencePolicy )
138+ assert .Equal (tt .expected .OpenShift .TLSAdherencePolicy , tlsConfig .OpenShift .TLSAdherencePolicy )
124139
125140 if tt .expected .OpenShift .TLSAdherencePolicy == configv1 .TLSAdherencePolicyStrictAllComponents {
126- assert .NotEmpty (t , tlsConfig .CipherSuites )
127- require .NotNil (t , tlsConfig .OpenShift .TLSConfigFunc )
128- goTLS := & tls.Config {MinVersion : tls .VersionTLS12 }
129- tlsConfig .OpenShift .TLSConfigFunc (goTLS )
130- assert .NotEmpty (t , goTLS .CipherSuites )
141+ assert .Equal (tt .expected .CipherSuites , tlsConfig .CipherSuites )
142+ assert .Equal (tt .expected .MinVersion , tlsConfig .MinVersion ,
143+ fmt .Sprintf ("TLS MinVersion mismatch: expected %s, got %s" , tls .VersionName (tt .expected .MinVersion ), tls .VersionName (tlsConfig .MinVersion )))
144+ require .NotNil (tlsConfig .OpenShift .TLSConfigFunc )
131145 } else {
132- assert .Empty (t , tlsConfig .CipherSuites )
133- assert .Nil (t , tlsConfig .OpenShift .TLSConfigFunc )
146+ assert .Empty (tlsConfig .CipherSuites )
147+ assert .Nil (tlsConfig .OpenShift .TLSConfigFunc )
134148 }
135149 })
136150 }
0 commit comments