func()

in pkg/controller/sslcertificatemanager/manager.go [71:102]


func (s impl) Create(ctx context.Context, sslCertificateName string,
	managedCertificate v1.ManagedCertificate) error {

	klog.Infof("Creating SslCertificate %s for ManagedCertificate %s:%s",
		sslCertificateName, managedCertificate.Namespace, managedCertificate.Name)

	if err := s.ssl.Create(ctx, sslCertificateName, managedCertificate.Spec.Domains); err != nil {
		var sslErr *ssl.Error
		if errors.As(err, &sslErr) && sslErr.IsQuotaExceeded() {
			s.event.TooManyCertificates(managedCertificate, err)
			s.metrics.ObserveSslCertificateQuotaError()

			id := types.NewId(managedCertificate.Namespace, managedCertificate.Name)
			if err := s.state.SetExcludedFromSLO(ctx, id); err != nil {
				return err
			}

			return err
		}

		s.event.BackendError(managedCertificate, err)
		s.metrics.ObserveSslCertificateBackendError()
		return err
	}

	s.event.Create(managedCertificate, sslCertificateName)

	klog.Infof("Created SslCertificate %s for ManagedCertificate %s:%s",
		sslCertificateName, managedCertificate.Namespace, managedCertificate.Name)

	return nil
}