cert-manager/test/util/generate/certificate.go
2018-08-07 14:16:53 +01:00

56 lines
1.2 KiB
Go

package generate
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/jetstack/cert-manager/pkg/apis/certmanager/v1alpha1"
)
type CertificateConfig struct {
// metadata
Name, Namespace string
// common parameters
IssuerName, IssuerKind string
SecretName string
CommonName string
DNSNames []string
// ACME parameters
SolverConfig v1alpha1.SolverConfig
ACMEOrderURL string
}
func Certificate(cfg CertificateConfig) *v1alpha1.Certificate {
return &v1alpha1.Certificate{
ObjectMeta: metav1.ObjectMeta{
Name: cfg.Name,
Namespace: cfg.Namespace,
},
Spec: v1alpha1.CertificateSpec{
SecretName: cfg.SecretName,
IssuerRef: v1alpha1.ObjectReference{
Name: cfg.IssuerName,
Kind: cfg.IssuerKind,
},
CommonName: cfg.CommonName,
DNSNames: cfg.DNSNames,
ACME: &v1alpha1.ACMECertificateConfig{
Config: []v1alpha1.DomainSolverConfig{
{
Domains: cfg.DNSNames,
SolverConfig: cfg.SolverConfig,
},
},
},
},
Status: v1alpha1.CertificateStatus{
ACME: &v1alpha1.CertificateACMEStatus{
Order: v1alpha1.ACMEOrderStatus{
URL: cfg.ACMEOrderURL,
},
},
},
}
}