@@ -11,15 +11,17 @@ import (
11
11
"github.com/go-logr/logr"
12
12
13
13
"sigs.k8s.io/controller-runtime/pkg/client"
14
+ "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
14
15
15
16
corev1 "k8s.io/api/core/v1"
16
17
"k8s.io/apimachinery/pkg/api/errors"
17
18
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
19
+ "k8s.io/apimachinery/pkg/runtime"
18
20
)
19
21
20
22
// CreateCertificate creates a Certificate resource for an appropriately
21
23
// labeled service
22
- func CreateCertificate (ctx context.Context , l logr.Logger , c client.Client , svc corev1.Service , secretName string ) error {
24
+ func CreateCertificate (ctx context.Context , l logr.Logger , c client.Client , svc corev1.Service , secretName string , scheme * runtime. Scheme ) error {
23
25
certName := CertificateName (svc .Name )
24
26
25
27
cert := cmapi.Certificate {}
@@ -30,7 +32,7 @@ func CreateCertificate(ctx context.Context, l logr.Logger, c client.Client, svc
30
32
if err != nil {
31
33
if errors .IsNotFound (err ) {
32
34
l .V (1 ).Info ("Certificate resource doesn't exist, creating" )
33
- return newCertificate (ctx , c , certName , secretName , svc )
35
+ return newCertificate (ctx , c , certName , secretName , svc , scheme )
34
36
}
35
37
36
38
l .V (1 ).Info ("Error looking up certificate resource" , "error" , err )
@@ -39,7 +41,7 @@ func CreateCertificate(ctx context.Context, l logr.Logger, c client.Client, svc
39
41
}
40
42
41
43
origCert := cert .DeepCopy ()
42
- err = updateCertificate (& cert , svc )
44
+ err = updateCertificate (& cert , svc , scheme )
43
45
if err != nil {
44
46
return err
45
47
}
@@ -50,7 +52,7 @@ func CreateCertificate(ctx context.Context, l logr.Logger, c client.Client, svc
50
52
return nil
51
53
}
52
54
53
- func newCertificate (ctx context.Context , c client.Client , certName , secretName string , svc corev1.Service ) error {
55
+ func newCertificate (ctx context.Context , c client.Client , certName , secretName string , svc corev1.Service , scheme * runtime. Scheme ) error {
54
56
cert := & cmapi.Certificate {
55
57
ObjectMeta : metav1.ObjectMeta {
56
58
Name : certName ,
@@ -67,14 +69,14 @@ func newCertificate(ctx context.Context, c client.Client, certName, secretName s
67
69
},
68
70
}
69
71
70
- if err := updateCertificate (cert , svc ); err != nil {
72
+ if err := updateCertificate (cert , svc , scheme ); err != nil {
71
73
return err
72
74
}
73
75
74
76
return c .Create (ctx , cert )
75
77
}
76
78
77
- func updateCertificate (cert * cmapi.Certificate , svc corev1.Service ) error {
79
+ func updateCertificate (cert * cmapi.Certificate , svc corev1.Service , scheme * runtime. Scheme ) error {
78
80
svcName := fmt .Sprintf ("%s.%s" , svc .Name , svc .Namespace )
79
81
svcDNSNames := []string {
80
82
svc .Name ,
@@ -103,9 +105,7 @@ func updateCertificate(cert *cmapi.Certificate, svc corev1.Service) error {
103
105
}
104
106
105
107
// Set ownerreference on certificate to service
106
- cert .OwnerReferences = []metav1.OwnerReference {
107
- * metav1 .NewControllerRef (& svc , corev1 .SchemeGroupVersion .WithKind ("Service" )),
108
- }
108
+ controllerutil .SetControllerReference (& svc , cert , scheme )
109
109
110
110
return nil
111
111
}
0 commit comments