Make Certificate loop use Issuer conditions

This commit is contained in:
James Munnelly 2017-09-08 22:37:48 +01:00
parent 6d302c57e3
commit 329ffab15a
3 changed files with 19 additions and 12 deletions

View File

@ -52,6 +52,18 @@ func (c *CertificateACMEStatus) SaveAuthorization(a ACMEDomainAuthorization) {
c.Authorizations = append(c.Authorizations, a)
}
func IssuerHasCondition(iss *Issuer, condition IssuerCondition) bool {
if len(iss.Status.Conditions) == 0 {
return false
}
for _, cond := range iss.Status.Conditions {
if condition.Type == cond.Type && condition.Status == cond.Status {
return true
}
}
return false
}
func UpdateIssuerStatusCondition(iss *Issuer, conditionType IssuerConditionType, status ConditionStatus, reason, message string) *Issuer {
toUpdate := iss.DeepCopy()
newCondition := IssuerCondition{

View File

@ -30,7 +30,12 @@ func (c *Controller) Sync(crt *v1alpha1.Certificate) (err error) {
return fmt.Errorf("could not get issuer '%s' for certificate '%s': %s", crt.Spec.Issuer, crt.Name, err.Error())
}
if !issuerObj.Status.Ready {
issuerReady := !v1alpha1.IssuerHasCondition(issuerObj, v1alpha1.IssuerCondition{
Type: v1alpha1.IssuerConditionReady,
Status: v1alpha1.ConditionTrue,
})
if !issuerReady {
return fmt.Errorf("issuer '%s/%s' for certificate '%s' not ready", issuerObj.Namespace, issuerObj.Name, crt.Name)
}

View File

@ -23,17 +23,7 @@ func WaitForIssuerCondition(client clientset.IssuerInterface, name string, condi
return false, fmt.Errorf("error getting Issuer %v: %v", name, err)
}
if len(issuer.Status.Conditions) == 0 {
return false, nil
}
for _, cond := range issuer.Status.Conditions {
if condition.Type == cond.Type && condition.Status == cond.Status {
return true, nil
}
}
return false, nil
return v1alpha1.IssuerHasCondition(issuer, condition), nil
},
)
}