@@ -160,7 +160,7 @@ func (i *StrategyDeploymentInstaller) getCertResources() []certResource {
160
160
}
161
161
162
162
func (i * StrategyDeploymentInstaller ) certResourcesForDeployment (deploymentName string ) []certResource {
163
- result := []certResource {}
163
+ var result []certResource
164
164
for _ , desc := range i .getCertResources () {
165
165
if desc .getDeploymentName () == deploymentName {
166
166
result = append (result , desc )
@@ -185,8 +185,8 @@ func (i *StrategyDeploymentInstaller) installCertRequirements(strategy Strategy)
185
185
}
186
186
187
187
// Create the CA
188
- expiration , _ := CalculateCertExpirationAndRotateAt ( )
189
- ca , err := certs .GenerateCA (expiration , Organization )
188
+ i . certificateExpirationTime = CalculateCertExpiration ( time . Now () )
189
+ ca , err := certs .GenerateCA (i . certificateExpirationTime , Organization )
190
190
if err != nil {
191
191
logger .Debug ("failed to generate CA" )
192
192
return nil , err
@@ -201,7 +201,7 @@ func (i *StrategyDeploymentInstaller) installCertRequirements(strategy Strategy)
201
201
}
202
202
203
203
// Update the deployment for each certResource
204
- newDepSpec , caPEM , err := i .installCertRequirementsForDeployment (sddSpec .Name , ca , expiration , sddSpec .Spec , getServicePorts (certResources ))
204
+ newDepSpec , caPEM , err := i .installCertRequirementsForDeployment (sddSpec .Name , ca , i . certificateExpirationTime , sddSpec .Spec , getServicePorts (certResources ))
205
205
if err != nil {
206
206
return nil , err
207
207
}
@@ -213,6 +213,14 @@ func (i *StrategyDeploymentInstaller) installCertRequirements(strategy Strategy)
213
213
return strategyDetailsDeployment , nil
214
214
}
215
215
216
+ func (i * StrategyDeploymentInstaller ) CertsRotateAt () time.Time {
217
+ return CalculateCertRotatesAt (i .certificateExpirationTime )
218
+ }
219
+
220
+ func (i * StrategyDeploymentInstaller ) CertsRotated () bool {
221
+ return i .certificatesRotated
222
+ }
223
+
216
224
func ShouldRotateCerts (csv * v1alpha1.ClusterServiceVersion ) bool {
217
225
now := metav1 .Now ()
218
226
if ! csv .Status .CertsRotateAt .IsZero () && csv .Status .CertsRotateAt .Before (& now ) {
@@ -222,10 +230,12 @@ func ShouldRotateCerts(csv *v1alpha1.ClusterServiceVersion) bool {
222
230
return false
223
231
}
224
232
225
- func CalculateCertExpirationAndRotateAt () (expiration time.Time , rotateAt time.Time ) {
226
- expiration = time .Now ().Add (DefaultCertValidFor )
227
- rotateAt = expiration .Add (- 1 * DefaultCertMinFresh )
228
- return
233
+ func CalculateCertExpiration (startingFrom time.Time ) time.Time {
234
+ return startingFrom .Add (DefaultCertValidFor )
235
+ }
236
+
237
+ func CalculateCertRotatesAt (certExpirationTime time.Time ) time.Time {
238
+ return certExpirationTime .Add (- 1 * DefaultCertMinFresh )
229
239
}
230
240
231
241
func (i * StrategyDeploymentInstaller ) installCertRequirementsForDeployment (deploymentName string , ca * certs.KeyPair , expiration time.Time , depSpec appsv1.DeploymentSpec , ports []corev1.ServicePort ) (* appsv1.DeploymentSpec , []byte , error ) {
@@ -316,9 +326,12 @@ func (i *StrategyDeploymentInstaller) installCertRequirementsForDeployment(deplo
316
326
secret = existingSecret
317
327
caPEM = existingCAPEM
318
328
caHash = certs .PEMSHA256 (caPEM )
319
- } else if _ , err := i .strategyClient .GetOpClient ().UpdateSecret (secret ); err != nil {
320
- logger .Warnf ("could not update secret %s" , secret .GetName ())
321
- return nil , nil , err
329
+ } else {
330
+ if _ , err := i .strategyClient .GetOpClient ().UpdateSecret (secret ); err != nil {
331
+ logger .Warnf ("could not update secret %s" , secret .GetName ())
332
+ return nil , nil , err
333
+ }
334
+ i .certificatesRotated = true
322
335
}
323
336
} else if apierrors .IsNotFound (err ) {
324
337
// Create the secret
@@ -335,6 +348,7 @@ func (i *StrategyDeploymentInstaller) installCertRequirementsForDeployment(deplo
335
348
return nil , nil , err
336
349
}
337
350
}
351
+ i .certificatesRotated = true
338
352
} else {
339
353
return nil , nil , err
340
354
}
0 commit comments