in pkg/controller/sync/sync.go [374:424]
func (s impl) ManagedCertificate(ctx context.Context, id types.Id) error {
originalMcrt, err := s.managedCertificate.Get(id)
if errors.IsNotFound(err) {
entry, err := s.state.Get(id)
if errors.IsNotFound(err) {
return nil
} else if err != nil {
return err
}
klog.Infof(`ManagedCertificate %s already deleted. Deleting its
SslCertificate %s`, id.String(), entry.SslCertificateName)
if err = s.deleteSslCertificate(ctx, nil, id, entry.SslCertificateName); err != nil {
return err
}
klog.Infof("Remove entry for ManagedCertificate %s from state", id.String())
s.state.Delete(ctx, id)
return nil
} else if err != nil {
return err
}
klog.Infof("Syncing ManagedCertificate %s", id.String())
stateEntry, err := s.createStateEntry(ctx, id)
if err != nil {
return err
}
modifiedMcrt := originalMcrt.DeepCopy()
sslCert, err := s.createSslCertificate(ctx, stateEntry.SslCertificateName, id, modifiedMcrt)
if err != nil {
return err
}
if err := certificates.CopyStatus(*sslCert, modifiedMcrt, s.config); err != nil {
return err
}
patchBytes, modified, err := patch.CreateMergePatch(originalMcrt, modifiedMcrt)
if err != nil {
return fmt.Errorf("patch.CreateMergePatch(): %w", err)
}
if modified {
err = s.managedCertificate.Patch(ctx, id, patchBytes)
}
return err
}