@@ -790,44 +790,92 @@ func TestNewLBSpecFailure(t *testing.T) {
790790
791791func TestNewSSLConfig (t * testing.T ) {
792792 testCases := map [string ]struct {
793- listenerSecretName string
794- backendSetSecretName string
795- ports []int
796- ssr sslSecretReader
793+ secretListenerString string
794+ secretBackendSetString string
795+ service * v1.Service
796+ ports []int
797+ ssr sslSecretReader
797798
798799 expectedResult * SSLConfig
799800 }{
800- "noopSSLSecretReader if ssr is nil" : {
801- listenerSecretName : "listenerSecretName" ,
802- backendSetSecretName : "backendSetSecretName" ,
803- ports : []int {8080 },
804- ssr : nil ,
801+ "noopSSLSecretReader if ssr is nil and uses the default service namespace" : {
802+ secretListenerString : "listenerSecretName" ,
803+ secretBackendSetString : "backendSetSecretName" ,
804+ service : & v1.Service {
805+ ObjectMeta : metav1.ObjectMeta {
806+ Namespace : "default" ,
807+ },
808+ },
809+ ports : []int {8080 },
810+ ssr : nil ,
805811
806812 expectedResult : & SSLConfig {
807- Ports : sets .NewInt (8080 ),
808- ListenerSSLSecretName : "listenerSecretName" ,
809- BackendSetSSLSecretName : "backendSetSecretName" ,
810- sslSecretReader : noopSSLSecretReader {},
813+ Ports : sets .NewInt (8080 ),
814+ ListenerSSLSecretName : "listenerSecretName" ,
815+ ListenerSSLSecretNamespace : "default" ,
816+ BackendSetSSLSecretName : "backendSetSecretName" ,
817+ BackendSetSSLSecretNamespace : "default" ,
818+ sslSecretReader : noopSSLSecretReader {},
811819 },
812820 },
813- "ssr is assigned if provided" : {
814- listenerSecretName : "listenerSecretName" ,
815- backendSetSecretName : "backendSetSecretName" ,
816- ports : []int {8080 },
817- ssr : & mockSSLSecretReader {},
821+ "ssr is assigned if provided and uses the default service namespace" : {
822+ secretListenerString : "listenerSecretName" ,
823+ secretBackendSetString : "backendSetSecretName" ,
824+ service : & v1.Service {
825+ ObjectMeta : metav1.ObjectMeta {
826+ Namespace : "default" ,
827+ },
828+ },
829+ ports : []int {8080 },
830+ ssr : & mockSSLSecretReader {},
818831
819832 expectedResult : & SSLConfig {
820- Ports : sets .NewInt (8080 ),
821- ListenerSSLSecretName : "listenerSecretName" ,
822- BackendSetSSLSecretName : "backendSetSecretName" ,
823- sslSecretReader : & mockSSLSecretReader {},
833+ Ports : sets .NewInt (8080 ),
834+ ListenerSSLSecretName : "listenerSecretName" ,
835+ ListenerSSLSecretNamespace : "default" ,
836+ BackendSetSSLSecretName : "backendSetSecretName" ,
837+ BackendSetSSLSecretNamespace : "default" ,
838+ sslSecretReader : & mockSSLSecretReader {},
839+ },
840+ },
841+ "If namespace is specified in secret string, use it" : {
842+ secretListenerString : "namespaceone/listenerSecretName" ,
843+ secretBackendSetString : "namespacetwo/backendSetSecretName" ,
844+ service : & v1.Service {
845+ ObjectMeta : metav1.ObjectMeta {
846+ Namespace : "default" ,
847+ },
848+ },
849+ ports : []int {8080 },
850+ ssr : & mockSSLSecretReader {},
851+
852+ expectedResult : & SSLConfig {
853+ Ports : sets .NewInt (8080 ),
854+ ListenerSSLSecretName : "listenerSecretName" ,
855+ ListenerSSLSecretNamespace : "namespaceone" ,
856+ BackendSetSSLSecretName : "backendSetSecretName" ,
857+ BackendSetSSLSecretNamespace : "namespacetwo" ,
858+ sslSecretReader : & mockSSLSecretReader {},
859+ },
860+ },
861+ "Empty secret string results in empty name and namespace" : {
862+ ports : []int {8080 },
863+ ssr : & mockSSLSecretReader {},
864+
865+ expectedResult : & SSLConfig {
866+ Ports : sets .NewInt (8080 ),
867+ ListenerSSLSecretName : "" ,
868+ ListenerSSLSecretNamespace : "" ,
869+ BackendSetSSLSecretName : "" ,
870+ BackendSetSSLSecretNamespace : "" ,
871+ sslSecretReader : & mockSSLSecretReader {},
824872 },
825873 },
826874 }
827875
828876 for name , tc := range testCases {
829877 t .Run (name , func (t * testing.T ) {
830- result := NewSSLConfig (tc .listenerSecretName , tc .backendSetSecretName , tc .ports , tc .ssr )
878+ result := NewSSLConfig (tc .secretListenerString , tc .secretBackendSetString , tc . service , tc .ports , tc .ssr )
831879 if ! reflect .DeepEqual (result , tc .expectedResult ) {
832880 t .Errorf ("Expected SSlConfig \n %+v\n but got\n %+v" , tc .expectedResult , result )
833881 }
@@ -866,14 +914,15 @@ func TestCertificates(t *testing.T) {
866914 },
867915 },
868916 SSLConfig : & SSLConfig {
869- BackendSetSSLSecretName : backendSecret ,
917+ BackendSetSSLSecretName : backendSecret ,
918+ BackendSetSSLSecretNamespace : "backendnamespace" ,
870919 sslSecretReader : & mockSSLSecretReader {
871920 returnError : false ,
872921 returnMap : map [struct {
873922 namespaceArg string
874923 nameArg string
875924 }]* certificateData {
876- {namespaceArg : "testnamespace " , nameArg : backendSecret }: {
925+ {namespaceArg : "backendnamespace " , nameArg : backendSecret }: {
877926 Name : "certificatename" ,
878927 CACert : []byte (backendSecretCaCert ),
879928 PublicCert : []byte (backendSecretPublicCert ),
@@ -903,22 +952,24 @@ func TestCertificates(t *testing.T) {
903952 },
904953 },
905954 SSLConfig : & SSLConfig {
906- BackendSetSSLSecretName : backendSecret ,
907- ListenerSSLSecretName : listenerSecret ,
955+ BackendSetSSLSecretName : backendSecret ,
956+ BackendSetSSLSecretNamespace : "backendnamespace" ,
957+ ListenerSSLSecretName : listenerSecret ,
958+ ListenerSSLSecretNamespace : "listenernamespace" ,
908959 sslSecretReader : & mockSSLSecretReader {
909960 returnError : false ,
910961 returnMap : map [struct {
911962 namespaceArg string
912963 nameArg string
913964 }]* certificateData {
914- {namespaceArg : "testnamespace " , nameArg : backendSecret }: {
965+ {namespaceArg : "backendnamespace " , nameArg : backendSecret }: {
915966 Name : "backendcertificatename" ,
916967 CACert : []byte (backendSecretCaCert ),
917968 PublicCert : []byte (backendSecretPublicCert ),
918969 PrivateKey : []byte (backendSecretPrivateKey ),
919970 Passphrase : []byte (backendSecretPassphrase ),
920971 },
921- {namespaceArg : "testnamespace " , nameArg : listenerSecret }: {
972+ {namespaceArg : "listenernamespace " , nameArg : listenerSecret }: {
922973 Name : "listenercertificatename" ,
923974 CACert : []byte (listenerSecretCaCert ),
924975 PublicCert : []byte (listenerSecretPublicCert ),
0 commit comments