@@ -23,6 +23,11 @@ import (
23
23
"k8s.io/client-go/util/cert"
24
24
)
25
25
26
+ // ServiceToCommonName generates the CommonName for the certificate when using a k8s service.
27
+ func ServiceToCommonName (serviceNamespace , serviceName string ) string {
28
+ return fmt .Sprintf ("%s.%s.svc" , serviceName , serviceNamespace )
29
+ }
30
+
26
31
// SelfSignedCertProvisioner implements the CertProvisioner interface.
27
32
// It provisions self-signed certificates.
28
33
type SelfSignedCertProvisioner struct {
@@ -32,26 +37,23 @@ type SelfSignedCertProvisioner struct {
32
37
33
38
var _ CertProvisioner = & SelfSignedCertProvisioner {}
34
39
35
- // ProvisionServingCert creates and returns a CA certificate and certificate and
40
+ // ProvisionServingCert creates and returns a CA certificate, certificate and
36
41
// key for the server. serverKey and serverCert are used by the server
37
42
// to establish trust for clients, CA certificate is used by the
38
43
// client to verify the server authentication chain.
39
44
// The cert will be valid for 365 days.
40
- func (cp * SelfSignedCertProvisioner ) ProvisionServingCert () (serverKey , serverCert , caCert [] byte , err error ) {
45
+ func (cp * SelfSignedCertProvisioner ) ProvisionServingCert () (* Certs , error ) {
41
46
signingKey , err := cert .NewPrivateKey ()
42
47
if err != nil {
43
- return nil , nil , nil ,
44
- fmt .Errorf ("failed to create the CA private key: %v" , err )
48
+ return nil , fmt .Errorf ("failed to create the CA private key: %v" , err )
45
49
}
46
50
signingCert , err := cert .NewSelfSignedCACert (cert.Config {CommonName : "webhook-cert-ca" }, signingKey )
47
51
if err != nil {
48
- return nil , nil , nil ,
49
- fmt .Errorf ("failed to create the CA cert: %v" , err )
52
+ return nil , fmt .Errorf ("failed to create the CA cert: %v" , err )
50
53
}
51
54
key , err := cert .NewPrivateKey ()
52
55
if err != nil {
53
- return nil , nil , nil ,
54
- fmt .Errorf ("failed to create the private key: %v" , err )
56
+ return nil , fmt .Errorf ("failed to create the private key: %v" , err )
55
57
}
56
58
signedCert , err := cert .NewSignedCert (
57
59
cert.Config {
@@ -61,8 +63,11 @@ func (cp *SelfSignedCertProvisioner) ProvisionServingCert() (serverKey, serverCe
61
63
key , signingCert , signingKey ,
62
64
)
63
65
if err != nil {
64
- return nil , nil , nil ,
65
- fmt .Errorf ("failed to create the cert: %v" , err )
66
+ return nil , fmt .Errorf ("failed to create the cert: %v" , err )
66
67
}
67
- return cert .EncodePrivateKeyPEM (key ), cert .EncodeCertPEM (signedCert ), cert .EncodeCertPEM (signingCert ), nil
68
+ return & Certs {
69
+ Key : cert .EncodePrivateKeyPEM (key ),
70
+ Cert : cert .EncodeCertPEM (signedCert ),
71
+ CACert : cert .EncodeCertPEM (signingCert ),
72
+ }, nil
68
73
}
0 commit comments