Update ClusterIssuer to use 'kind' field instead of 'namespace'

This commit is contained in:
James Munnelly 2017-10-12 20:04:00 +01:00
parent cd4b482410
commit 7b30b80dc5
4 changed files with 17 additions and 21 deletions

View File

@ -312,10 +312,15 @@ type LocalObjectReference struct {
// ObjectReference is a reference to an object. If the namespace field is set,
// it is assumed to be in a namespace
type ObjectReference struct {
Name string `json:"name,omitempty"`
Namespace *string `json:"namespace,omitempty"`
Name string `json:"name"`
Kind string `json:"kind,omitempty"`
}
const (
ClusterIssuerKind = "ClusterIssuer"
IssuerKind = "Issuer"
)
type SecretKeySelector struct {
// The name of the secret in the pod's namespace to select from.
LocalObjectReference `json:",inline" protobuf:"bytes,1,opt,name=localObjectReference"`

View File

@ -562,7 +562,7 @@ func (in *CertificateSpec) DeepCopyInto(out *CertificateSpec) {
*out = make([]string, len(*in))
copy(*out, *in)
}
in.IssuerRef.DeepCopyInto(&out.IssuerRef)
out.IssuerRef = in.IssuerRef
if in.ACME != nil {
in, out := &in.ACME, &out.ACME
if *in == nil {
@ -862,15 +862,6 @@ func (in *LocalObjectReference) DeepCopy() *LocalObjectReference {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ObjectReference) DeepCopyInto(out *ObjectReference) {
*out = *in
if in.Namespace != nil {
in, out := &in.Namespace, &out.Namespace
if *in == nil {
*out = nil
} else {
*out = new(string)
**out = **in
}
}
return
}

View File

@ -140,13 +140,13 @@ func (c *Controller) Sync(ctx context.Context, crt *v1alpha1.Certificate) (err e
}
func (c *Controller) getGenericIssuer(crt *v1alpha1.Certificate) (v1alpha1.GenericIssuer, error) {
switch {
case crt.Spec.IssuerRef.Namespace == nil:
switch crt.Spec.IssuerRef.Kind {
case "", v1alpha1.IssuerKind:
return c.issuerLister.Issuers(crt.Namespace).Get(crt.Spec.IssuerRef.Name)
case *crt.Spec.IssuerRef.Namespace == api.NamespaceAll:
case v1alpha1.ClusterIssuerKind:
return c.clusterIssuerLister.Get(crt.Spec.IssuerRef.Name)
default:
return nil, fmt.Errorf(`invalid value '%s' for certificate issuer namespace. Must be nil or ""`, *crt.Spec.IssuerRef.Namespace)
return nil, fmt.Errorf(`invalid value %q for certificate issuer kind. Must be empty, %q or %q`, crt.Spec.IssuerRef.Kind, v1alpha1.IssuerKind, v1alpha1.ClusterIssuerKind)
}
}

View File

@ -64,7 +64,7 @@ var _ = framework.CertManagerDescribe("CA Certificate", func() {
})
Expect(err).NotTo(HaveOccurred())
By("Creating a Certificate")
_, err = f.CertManagerClientSet.CertmanagerV1alpha1().Certificates(f.Namespace.Name).Create(newCertManagerCACertificate(certificateName, certificateSecretName, issuerName, nil))
_, err = f.CertManagerClientSet.CertmanagerV1alpha1().Certificates(f.Namespace.Name).Create(newCertManagerCACertificate(certificateName, certificateSecretName, issuerName, v1alpha1.IssuerKind))
Expect(err).NotTo(HaveOccurred())
By("Waiting for Certificate to become Ready")
err = util.WaitForCertificateCondition(f.CertManagerClientSet.CertmanagerV1alpha1().Certificates(f.Namespace.Name),
@ -89,7 +89,7 @@ var _ = framework.CertManagerDescribe("CA Certificate", func() {
})
Expect(err).NotTo(HaveOccurred())
By("Creating a Certificate")
_, err = f.CertManagerClientSet.CertmanagerV1alpha1().Certificates(f.Namespace.Name).Create(newCertManagerCACertificate(certificateName, certificateSecretName, issuerName, strPtr("")))
_, err = f.CertManagerClientSet.CertmanagerV1alpha1().Certificates(f.Namespace.Name).Create(newCertManagerCACertificate(certificateName, certificateSecretName, issuerName, v1alpha1.ClusterIssuerKind))
Expect(err).NotTo(HaveOccurred())
By("Waiting for Certificate to become Ready")
err = util.WaitForCertificateCondition(f.CertManagerClientSet.CertmanagerV1alpha1().Certificates(f.Namespace.Name),
@ -102,7 +102,7 @@ var _ = framework.CertManagerDescribe("CA Certificate", func() {
})
})
func newCertManagerCACertificate(name, secretName, issuerName string, issuerNamespace *string) *v1alpha1.Certificate {
func newCertManagerCACertificate(name, secretName, issuerName string, issuerKind string) *v1alpha1.Certificate {
return &v1alpha1.Certificate{
ObjectMeta: metav1.ObjectMeta{
Name: name,
@ -113,8 +113,8 @@ func newCertManagerCACertificate(name, secretName, issuerName string, issuerName
},
SecretName: secretName,
IssuerRef: v1alpha1.ObjectReference{
Name: issuerName,
Namespace: issuerNamespace,
Name: issuerName,
Kind: issuerKind,
},
},
}