in goalresolvers/goal_resolver.go [43:74]
func (g *webhookTlsManagerGoalResolver) shouldRotateCert(ctx context.Context) (bool, *error) {
logger := log.MustGetLogger(ctx)
logger.Infof(ctx, "config is %v", config.AppConfig)
secret, getErr := g.kubeClient.CoreV1().Secrets(config.AppConfig.Namespace).Get(ctx, utils.SecretName(), metav1.GetOptions{})
if k8serrors.IsNotFound(getErr) {
logger.Infof(ctx, "secret %s not exists", utils.SecretName())
return true, nil
}
if getErr != nil {
logger.Errorf(ctx, "get secret %s failed. error: %s", utils.SecretName(), getErr)
return false, &getErr
}
logger.Infof(ctx, "secret %s exists", utils.SecretName())
if v, exist := secret.ObjectMeta.Labels[consts.ManagedLabelKey]; exist && v == consts.ManagedLabelValue {
logger.Infof(ctx, "found secret %s managed by aks. checking expiration date.", utils.SecretName())
expired, err := certificates.IsPEMCertificateExpired(ctx, string(secret.Data["serverCert.pem"]), utils.SecretName(), time.Now().AddDate(0, 1, 0))
if err != nil {
logger.Errorf(ctx, "failed to check cert %s. error: %s", utils.SecretName(), err)
return false, &err
}
if expired {
logger.Infof(ctx, "cert expired.")
return true, nil
}
logger.Infof(ctx, "cert valid.")
return false, nil
}
logger.Warningf(ctx, "found secret %s is not managed by AKS.", utils.SecretName())
return false, nil
}