@@ -17,24 +17,24 @@ limitations under the License.
1717package cert
1818
1919import (
20- "crypto/sha256"
21- "crypto/x509"
22- "encoding/pem"
23- "fmt"
24- "io"
25- "net"
26- "os"
27- "path/filepath"
28- "testing"
29- "time"
30-
31- certutil "k8s.io/client-go/util/cert"
32- "k8s.io/klog/v2"
33-
34- initopt "github.com/karmada-io/karmada/pkg/karmadactl/cmdinit/options "
35- globalopt "github.com/karmada-io/karmada/pkg/karmadactl/options"
36- "github.com/karmada-io/karmada/pkg/karmadactl/cmdinit/utils "
37- "github.com/karmada-io/karmada/pkg/util/names"
20+ "crypto/sha256"
21+ "crypto/x509"
22+ "encoding/pem"
23+ "fmt"
24+ "io"
25+ "net"
26+ "os"
27+ "path/filepath"
28+ "testing"
29+ "time"
30+
31+ certutil "k8s.io/client-go/util/cert"
32+ "k8s.io/klog/v2"
33+
34+ "github.com/karmada-io/karmada/pkg/karmadactl/cmdinit/utils "
35+ initopt "github.com/karmada-io/karmada/pkg/karmadactl/cmdinit /options"
36+ globalopt "github.com/karmada-io/karmada/pkg/karmadactl/options "
37+ "github.com/karmada-io/karmada/pkg/util/names"
3838)
3939
4040const (
@@ -189,67 +189,67 @@ func compareFiles(file1, file2 string) (bool, error) {
189189
190190// compareCertFilesInDirs compares specific files in two directories to check if they are the same
191191func compareCertFilesInDirs (dir1 , dir2 , filename string ) (bool , error ) {
192- file1 := filepath .Join (dir1 , filename )
193- file2 := filepath .Join (dir2 , filename )
194- return compareFiles (file1 , file2 )
192+ file1 := filepath .Join (dir1 , filename )
193+ file2 := filepath .Join (dir2 , filename )
194+ return compareFiles (file1 , file2 )
195195}
196196
197197// helper: read certificate from dir/name.{crt}
198198func readCertFromPath (t * testing.T , dir , name string ) * x509.Certificate {
199- t .Helper ()
200- b , err := os .ReadFile (filepath .Join (dir , fmt .Sprintf ("%s.crt" , name )))
201- if err != nil {
202- t .Fatalf ("failed reading cert %s: %v" , name , err )
203- }
204- blk , _ := pem .Decode (b )
205- if blk == nil {
206- t .Fatalf ("failed decoding PEM for %s" , name )
207- }
208- crt , err := x509 .ParseCertificate (blk .Bytes )
209- if err != nil {
210- t .Fatalf ("failed parsing x509 for %s: %v" , name , err )
211- }
212- return crt
199+ t .Helper ()
200+ b , err := os .ReadFile (filepath .Join (dir , fmt .Sprintf ("%s.crt" , name )))
201+ if err != nil {
202+ t .Fatalf ("failed reading cert %s: %v" , name , err )
203+ }
204+ blk , _ := pem .Decode (b )
205+ if blk == nil {
206+ t .Fatalf ("failed decoding PEM for %s" , name )
207+ }
208+ crt , err := x509 .ParseCertificate (blk .Bytes )
209+ if err != nil {
210+ t .Fatalf ("failed parsing x509 for %s: %v" , name , err )
211+ }
212+ return crt
213213}
214214
215215// TestNewGenCerts_CASelection verifies certificates are signed by the expected CA
216216// according to their names: etcd-* by etcd-ca, front-proxy-client by front-proxy-ca,
217217// others by main CA.
218218func TestNewGenCerts_CASelection (t * testing.T ) {
219- dir := t .TempDir ()
220- notAfter := time .Now ().Add (Duration365d ).UTC ()
221-
222- cfg := map [string ]* CertsConfig {
223- // main CA signer
224- initopt .KarmadaApiServerCertAndKeyName : NewCertConfig (initopt .KarmadaApiServerCN , nil , certutil.AltNames {DNSNames : []string {"localhost" }, IPs : []net.IP {utils .StringToNetIP ("127.0.0.1" )}}, & notAfter ),
225- // front-proxy CA signer
226- initopt .FrontProxyClientCertAndKeyName : NewCertConfig (initopt .KarmadaFrontProxyClientCN , nil , certutil.AltNames {}, & notAfter ),
227- // etcd CA signer
228- initopt .KarmadaApiServerEtcdClientCertAndKeyName : NewCertConfig (initopt .KarmadaApiServerEtcdClientCN , nil , certutil.AltNames {}, & notAfter ),
229- }
230-
231- if err := NewGenCerts (dir , "" , "" , cfg ); err != nil {
232- t .Fatalf ("NewGenCerts error: %v" , err )
233- }
234-
235- // load CA certs
236- ca := readCertFromPath (t , dir , globalopt .CaCertAndKeyName )
237- etcdCA := readCertFromPath (t , dir , initopt .EtcdCaCertAndKeyName )
238- fpCA := readCertFromPath (t , dir , initopt .FrontProxyCaCertAndKeyName )
239-
240- cases := []struct {
241- name string
242- expected string
243- }{
244- {initopt .KarmadaApiServerCertAndKeyName , ca .Subject .CommonName },
245- {initopt .FrontProxyClientCertAndKeyName , fpCA .Subject .CommonName },
246- {initopt .KarmadaApiServerEtcdClientCertAndKeyName , etcdCA .Subject .CommonName },
247- }
248-
249- for _ , tc := range cases {
250- crt := readCertFromPath (t , dir , tc .name )
251- if got := crt .Issuer .CommonName ; got != tc .expected {
252- t .Fatalf ("%s issuer CN = %q, want %q" , tc .name , got , tc .expected )
253- }
254- }
219+ dir := t .TempDir ()
220+ notAfter := time .Now ().Add (Duration365d ).UTC ()
221+
222+ cfg := map [string ]* CertsConfig {
223+ // main CA signer
224+ initopt .KarmadaAPIServerCertAndKeyName : NewCertConfig (initopt .KarmadaAPIServerCN , nil , certutil.AltNames {DNSNames : []string {"localhost" }, IPs : []net.IP {utils .StringToNetIP ("127.0.0.1" )}}, & notAfter ),
225+ // front-proxy CA signer
226+ initopt .FrontProxyClientCertAndKeyName : NewCertConfig (initopt .KarmadaFrontProxyClientCN , nil , certutil.AltNames {}, & notAfter ),
227+ // etcd CA signer
228+ initopt .KarmadaAPIServerEtcdClientCertAndKeyName : NewCertConfig (initopt .KarmadaAPIServerEtcdClientCN , nil , certutil.AltNames {}, & notAfter ),
229+ }
230+
231+ if err := NewGenCerts (dir , "" , "" , cfg ); err != nil {
232+ t .Fatalf ("NewGenCerts error: %v" , err )
233+ }
234+
235+ // load CA certs
236+ ca := readCertFromPath (t , dir , globalopt .CaCertAndKeyName )
237+ etcdCA := readCertFromPath (t , dir , initopt .EtcdCaCertAndKeyName )
238+ fpCA := readCertFromPath (t , dir , initopt .FrontProxyCaCertAndKeyName )
239+
240+ cases := []struct {
241+ name string
242+ expected string
243+ }{
244+ {initopt .KarmadaAPIServerCertAndKeyName , ca .Subject .CommonName },
245+ {initopt .FrontProxyClientCertAndKeyName , fpCA .Subject .CommonName },
246+ {initopt .KarmadaAPIServerEtcdClientCertAndKeyName , etcdCA .Subject .CommonName },
247+ }
248+
249+ for _ , tc := range cases {
250+ crt := readCertFromPath (t , dir , tc .name )
251+ if got := crt .Issuer .CommonName ; got != tc .expected {
252+ t .Fatalf ("%s issuer CN = %q, want %q" , tc .name , got , tc .expected )
253+ }
254+ }
255255}
0 commit comments