7
7
"strings"
8
8
"time"
9
9
10
- "github.com/openshift/api/annotations"
11
10
corev1 "k8s.io/api/core/v1"
12
11
apierrors "k8s.io/apimachinery/pkg/api/errors"
13
12
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -58,11 +57,8 @@ type RotatedSelfSignedCertKeySecret struct {
58
57
// certificate is used, early deletion will be catastrophic.
59
58
Owner * metav1.OwnerReference
60
59
61
- // JiraComponent annotates tls artifacts so that owner could be easily found
62
- JiraComponent string
63
-
64
- // Description is a human-readable one sentence description of certificate purpose
65
- Description string
60
+ // AdditionalAnnotations is a collection of annotations set for the secret
61
+ AdditionalAnnotations AdditionalAnnotations
66
62
67
63
// CertCreator does the actual cert generation.
68
64
CertCreator TargetCertCreator
@@ -104,8 +100,7 @@ func (c RotatedSelfSignedCertKeySecret) EnsureTargetCertKeyPair(ctx context.Cont
104
100
targetCertKeyPairSecret = & corev1.Secret {ObjectMeta : NewTLSArtifactObjectMeta (
105
101
c .Name ,
106
102
c .Namespace ,
107
- c .JiraComponent ,
108
- c .Description ,
103
+ c .AdditionalAnnotations ,
109
104
)}
110
105
}
111
106
targetCertKeyPairSecret .Type = corev1 .SecretTypeTLS
@@ -114,9 +109,7 @@ func (c RotatedSelfSignedCertKeySecret) EnsureTargetCertKeyPair(ctx context.Cont
114
109
if c .Owner != nil {
115
110
needsMetadataUpdate = ensureOwnerReference (& targetCertKeyPairSecret .ObjectMeta , c .Owner )
116
111
}
117
- if len (c .JiraComponent ) > 0 || len (c .Description ) > 0 {
118
- needsMetadataUpdate = EnsureTLSMetadataUpdate (& targetCertKeyPairSecret .ObjectMeta , c .JiraComponent , c .Description ) || needsMetadataUpdate
119
- }
112
+ needsMetadataUpdate = c .AdditionalAnnotations .EnsureTLSMetadataUpdate (& targetCertKeyPairSecret .ObjectMeta ) || needsMetadataUpdate
120
113
if needsMetadataUpdate && len (targetCertKeyPairSecret .ResourceVersion ) > 0 {
121
114
_ , _ , err := resourceapply .ApplySecret (ctx , c .Client , c .EventRecorder , targetCertKeyPairSecret )
122
115
if err != nil {
@@ -126,7 +119,7 @@ func (c RotatedSelfSignedCertKeySecret) EnsureTargetCertKeyPair(ctx context.Cont
126
119
127
120
if reason := c .CertCreator .NeedNewTargetCertKeyPair (targetCertKeyPairSecret .Annotations , signingCertKeyPair , caBundleCerts , c .Refresh , c .RefreshOnlyWhenExpired ); len (reason ) > 0 {
128
121
c .EventRecorder .Eventf ("TargetUpdateRequired" , "%q in %q requires a new target cert/key pair: %v" , c .Name , c .Namespace , reason )
129
- if err := setTargetCertKeyPairSecret (targetCertKeyPairSecret , c .Validity , signingCertKeyPair , c .CertCreator , c .JiraComponent , c . Description ); err != nil {
122
+ if err := setTargetCertKeyPairSecret (targetCertKeyPairSecret , c .Validity , signingCertKeyPair , c .CertCreator , c .AdditionalAnnotations ); err != nil {
130
123
return nil , err
131
124
}
132
125
@@ -217,7 +210,7 @@ func needNewTargetCertKeyPairForTime(annotations map[string]string, signer *cryp
217
210
218
211
// setTargetCertKeyPairSecret creates a new cert/key pair and sets them in the secret. Only one of client, serving, or signer rotation may be specified.
219
212
// TODO refactor with an interface for actually signing and move the one-of check higher in the stack.
220
- func setTargetCertKeyPairSecret (targetCertKeyPairSecret * corev1.Secret , validity time.Duration , signer * crypto.CA , certCreator TargetCertCreator , jiraComponent , description string ) error {
213
+ func setTargetCertKeyPairSecret (targetCertKeyPairSecret * corev1.Secret , validity time.Duration , signer * crypto.CA , certCreator TargetCertCreator , annotations AdditionalAnnotations ) error {
221
214
if targetCertKeyPairSecret .Annotations == nil {
222
215
targetCertKeyPairSecret .Annotations = map [string ]string {}
223
216
}
@@ -244,12 +237,8 @@ func setTargetCertKeyPairSecret(targetCertKeyPairSecret *corev1.Secret, validity
244
237
targetCertKeyPairSecret .Annotations [CertificateNotAfterAnnotation ] = certKeyPair .Certs [0 ].NotAfter .Format (time .RFC3339 )
245
238
targetCertKeyPairSecret .Annotations [CertificateNotBeforeAnnotation ] = certKeyPair .Certs [0 ].NotBefore .Format (time .RFC3339 )
246
239
targetCertKeyPairSecret .Annotations [CertificateIssuer ] = certKeyPair .Certs [0 ].Issuer .CommonName
247
- if len (jiraComponent ) > 0 {
248
- targetCertKeyPairSecret .Annotations [annotations .OpenShiftComponent ] = jiraComponent
249
- }
250
- if len (description ) > 0 {
251
- targetCertKeyPairSecret .Annotations [annotations .OpenShiftDescription ] = description
252
- }
240
+
241
+ _ = annotations .EnsureTLSMetadataUpdate (& targetCertKeyPairSecret .ObjectMeta )
253
242
certCreator .SetAnnotations (certKeyPair , targetCertKeyPairSecret .Annotations )
254
243
255
244
return nil
0 commit comments