Skip to content

Commit

Permalink
Add CRD Validation (#962)
Browse files Browse the repository at this point in the history
  • Loading branch information
tamalsaha committed Mar 31, 2018
1 parent f585cf5 commit f0ac9e3
Show file tree
Hide file tree
Showing 28 changed files with 1,950 additions and 529 deletions.
6 changes: 3 additions & 3 deletions apis/voyager/v1beta1/certificate.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import (
)

const (
ResourceKindCertificate = "Certificate"
ResourceNameCertificate = "certificate"
ResourceTypeCertificate = "certificates"
ResourceKindCertificate = "Certificate"
ResourceSingularCertificate = "certificate"
ResourcePluralCertificate = "certificates"
)

// +genclient
Expand Down
67 changes: 31 additions & 36 deletions apis/voyager/v1beta1/crd.go
Original file line number Diff line number Diff line change
@@ -1,49 +1,44 @@
package v1beta1

import (
"github.com/appscode/voyager/apis/voyager"
crdutils "github.com/appscode/kutil/apiextensions/v1beta1"
apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

const VoyagerFinalizer = "voyager.appscode.com"

func (r Ingress) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
return &apiextensions.CustomResourceDefinition{
ObjectMeta: metav1.ObjectMeta{
Name: ResourceTypeIngress + "." + SchemeGroupVersion.Group,
Labels: map[string]string{"app": "voyager"},
},
Spec: apiextensions.CustomResourceDefinitionSpec{
Group: voyager.GroupName,
Version: SchemeGroupVersion.Version,
Scope: apiextensions.NamespaceScoped,
Names: apiextensions.CustomResourceDefinitionNames{
Singular: ResourceNameIngress,
Plural: ResourceTypeIngress,
Kind: ResourceKindIngress,
ShortNames: []string{"ing"},
},
return crdutils.NewCustomResourceDefinition(crdutils.Config{
Group: SchemeGroupVersion.Group,
Version: SchemeGroupVersion.Version,
Plural: ResourcePluralIngress,
Singular: ResourceSingularIngress,
Kind: ResourceKindIngress,
ListKind: ResourceKindIngress + "List",
ShortNames: []string{"ing"},
ResourceScope: string(apiextensions.NamespaceScoped),
Labels: crdutils.Labels{
LabelsMap: map[string]string{"app": "voyager"},
},
}
SpecDefinitionName: "github.com/appscode/voyager/apis/voyager/v1beta1.Ingress",
EnableValidation: true,
GetOpenAPIDefinitions: GetOpenAPIDefinitions,
})
}

func (c Certificate) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
return &apiextensions.CustomResourceDefinition{
ObjectMeta: metav1.ObjectMeta{
Name: ResourceTypeCertificate + "." + SchemeGroupVersion.Group,
Labels: map[string]string{"app": "voyager"},
},
Spec: apiextensions.CustomResourceDefinitionSpec{
Group: voyager.GroupName,
Version: SchemeGroupVersion.Version,
Scope: apiextensions.NamespaceScoped,
Names: apiextensions.CustomResourceDefinitionNames{
Singular: ResourceNameCertificate,
Plural: ResourceTypeCertificate,
Kind: ResourceKindCertificate,
ShortNames: []string{"cert"},
},
return crdutils.NewCustomResourceDefinition(crdutils.Config{
Group: SchemeGroupVersion.Group,
Version: SchemeGroupVersion.Version,
Plural: ResourcePluralCertificate,
Singular: ResourceSingularCertificate,
Kind: ResourceKindCertificate,
ListKind: ResourceKindCertificate + "List",
ShortNames: []string{"cert"},
ResourceScope: string(apiextensions.NamespaceScoped),
Labels: crdutils.Labels{
LabelsMap: map[string]string{"app": "voyager"},
},
}
SpecDefinitionName: "github.com/appscode/voyager/apis/voyager/v1beta1.Certificate",
EnableValidation: true,
GetOpenAPIDefinitions: GetOpenAPIDefinitions,
})
}
534 changes: 522 additions & 12 deletions apis/voyager/v1beta1/crds.yaml

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion apis/voyager/v1beta1/diff.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"time"

core_util "github.com/appscode/kutil/core/v1"
"github.com/appscode/voyager/apis/voyager"
"github.com/google/go-cmp/cmp"
"github.com/pkg/errors"
"k8s.io/apimachinery/pkg/api/resource"
Expand Down Expand Up @@ -39,7 +40,7 @@ func (r Ingress) HasChanged(o Ingress) (bool, error) {
return false, errors.New("not the same Ingress")
}

if o.DeletionTimestamp != nil && core_util.HasFinalizer(o.ObjectMeta, VoyagerFinalizer) {
if o.DeletionTimestamp != nil && core_util.HasFinalizer(o.ObjectMeta, voyager.GroupName) {
return true, nil
}

Expand Down
6 changes: 3 additions & 3 deletions apis/voyager/v1beta1/ingress.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import (
)

const (
ResourceKindIngress = "Ingress"
ResourceNameIngress = "ingress"
ResourceTypeIngress = "ingresses"
ResourceKindIngress = "Ingress"
ResourceSingularIngress = "ingress"
ResourcePluralIngress = "ingresses"
)

// +genclient
Expand Down
18 changes: 9 additions & 9 deletions glide.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion glide.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ import:
- package: github.com/spf13/cobra
version: master
- package: github.com/spf13/pflag
version: v1.0.0
version: master
- package: github.com/tredoe/osutil
- package: github.com/xenolf/lego
repo: https://github.com/appscode/lego.git
Expand Down
29 changes: 29 additions & 0 deletions hack/gencrd/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package main

import (
"os"

"github.com/appscode/go/log"
"github.com/appscode/go/runtime"
crdutils "github.com/appscode/kutil/apiextensions/v1beta1"
api "github.com/appscode/voyager/apis/voyager/v1beta1"
crd_api "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
)

func main() {
filename := runtime.GOPath() + "/src/github.com/appscode/voyager/apis/voyager/v1beta1/crds.yaml"

f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
if err != nil {
log.Fatal(err)
}
defer f.Close()

crds := []*crd_api.CustomResourceDefinition{
api.Ingress{}.CustomResourceDefinition(),
api.Certificate{}.CustomResourceDefinition(),
}
for _, crd := range crds {
crdutils.MarshallCrd(f, crd, "yaml")
}
}
151 changes: 151 additions & 0 deletions vendor/github.com/appscode/kutil/apiextensions/v1beta1/cli-utils.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit f0ac9e3

Please sign in to comment.