Newer
Older
AnthosCertManager / pkg / api / util / issuers.go
@Yangyang Xie Yangyang Xie on 19 Nov 2022 919 bytes add issuer support
package util

import (
	"fmt"

	acmapi "gitbucket.jerxie.com/yangyangxie/AnthosCertManager/pkg/apis/anthoscertmanager/v1"
	acmmeta "gitbucket.jerxie.com/yangyangxie/AnthosCertManager/pkg/apis/meta/v1"
)

const (
	IssuerSelfSigned string = "selfsigned"
	// IssuerCA is the name of the simple issuer
	IssuerCA string = "ca"
)

// IssuerKind returns the kind of issuer for a certificate.
func IssuerKind(ref acmmeta.ObjectReference) string {
	if ref.Kind == "" {
		return acmapi.IssuerKind
	}
	return ref.Kind
}

// NameForIssuer determines the name of the Issuer implementation given an
// Issuer resource.
func NameForIssuer(i acmapi.GenericIssuer) (string, error) {
	switch {
	case i.GetSpec().CA != nil:
		return IssuerCA, nil
	case i.GetSpec().SelfSigned != nil:
		return IssuerSelfSigned, nil
	}
	return "", fmt.Errorf("no issuer specified for Issuer '%s/%s'", i.GetObjectMeta().Namespace, i.GetObjectMeta().Name)
}