pkg/k8s/backend.go: use apiextensions/v1
This commit is contained in:
parent
e272d725a5
commit
6cfcc4e58d
2
go.mod
2
go.mod
@ -3,7 +3,6 @@ module github.com/squat/kilo
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/ant31/crd-validation v0.0.0-20180801212718-38f6a293f140
|
||||
github.com/awalterschulze/gographviz v0.0.0-20181013152038-b2885df04310
|
||||
github.com/campoy/embedmd v1.0.0
|
||||
github.com/containernetworking/cni v0.6.0
|
||||
@ -14,6 +13,7 @@ require (
|
||||
github.com/go-openapi/spec v0.19.5
|
||||
github.com/imdario/mergo v0.3.6 // indirect
|
||||
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348
|
||||
github.com/leonnicolas/crd-validation v0.0.0-20210602093346-4236c21fcd92
|
||||
github.com/oklog/run v1.0.0
|
||||
github.com/prometheus/client_golang v1.7.1
|
||||
github.com/spf13/cobra v1.1.1
|
||||
|
6
go.sum
6
go.sum
@ -43,8 +43,6 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy
|
||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/ant31/crd-validation v0.0.0-20180801212718-38f6a293f140 h1:ljF9TLBK+JYXKB8aklLhcubPDBUjpvzWKiqgZ37s+QY=
|
||||
github.com/ant31/crd-validation v0.0.0-20180801212718-38f6a293f140/go.mod h1:X0noFIik9YqfhGYBLEHg8LJKEwy7QIitLQuFMpKLcPk=
|
||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||
@ -258,6 +256,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4=
|
||||
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
|
||||
github.com/leonnicolas/crd-validation v0.0.0-20210601171249-de84deb9584e h1:tvtcs1K8lD5OkB8NyibdP1adEiwTkdc64uF+SLCl+rI=
|
||||
github.com/leonnicolas/crd-validation v0.0.0-20210601171249-de84deb9584e/go.mod h1:CAR0fVjRp8CDdr5dz8bRqHlin8K3wL0ZRyYyWTju4MM=
|
||||
github.com/leonnicolas/crd-validation v0.0.0-20210602093346-4236c21fcd92 h1:FJZdDGBUAH+ToDazE5vSoASB3UBW8wRz5+A12fqAX9E=
|
||||
github.com/leonnicolas/crd-validation v0.0.0-20210602093346-4236c21fcd92/go.mod h1:CAR0fVjRp8CDdr5dz8bRqHlin8K3wL0ZRyYyWTju4MM=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||
|
@ -25,9 +25,9 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
crdutils "github.com/ant31/crd-validation/pkg"
|
||||
crdutils "github.com/leonnicolas/crd-validation/pkg"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
extv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
apiextensions "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@ -417,7 +417,7 @@ func (pb *peerBackend) Init(stop <-chan struct{}) error {
|
||||
crd := crdutils.NewCustomResourceDefinition(crdutils.Config{
|
||||
SpecDefinitionName: "github.com/squat/kilo/pkg/k8s/apis/kilo/v1alpha1.Peer",
|
||||
EnableValidation: true,
|
||||
ResourceScope: string(v1beta1.ClusterScoped),
|
||||
ResourceScope: string(extv1.ClusterScoped),
|
||||
Group: v1alpha1.GroupName,
|
||||
Kind: v1alpha1.PeerKind,
|
||||
Version: v1alpha1.SchemeGroupVersion.Version,
|
||||
@ -425,10 +425,13 @@ func (pb *peerBackend) Init(stop <-chan struct{}) error {
|
||||
ShortNames: v1alpha1.PeerShortNames,
|
||||
GetOpenAPIDefinitions: v1alpha1.GetOpenAPIDefinitions,
|
||||
})
|
||||
crd.Spec.Subresources.Scale = nil
|
||||
crd.Spec.Subresources.Status = nil
|
||||
for _, v := range crd.Spec.Versions {
|
||||
v.Subresources.Scale = nil
|
||||
v.Subresources.Status = nil
|
||||
v.Schema.OpenAPIV3Schema.Type = "object"
|
||||
}
|
||||
|
||||
_, err := pb.extensionsClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(context.TODO(), crd, metav1.CreateOptions{})
|
||||
_, err := pb.extensionsClient.ApiextensionsV1().CustomResourceDefinitions().Create(context.TODO(), crd, metav1.CreateOptions{})
|
||||
if err != nil && !apierrors.IsAlreadyExists(err) {
|
||||
return fmt.Errorf("failed to create CRD: %v", err)
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/ghodss/yaml"
|
||||
extensionsobj "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
extensionsobj "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
)
|
||||
@ -86,6 +86,7 @@ func (labels *Labels) Set(value string) error {
|
||||
}
|
||||
|
||||
func NewCustomResourceDefinition(config Config) *extensionsobj.CustomResourceDefinition {
|
||||
schema := GetCustomResourceValidation(config.SpecDefinitionName, config.GetOpenAPIDefinitions)
|
||||
|
||||
crd := &extensionsobj.CustomResourceDefinition{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
@ -95,31 +96,33 @@ func NewCustomResourceDefinition(config Config) *extensionsobj.CustomResourceDef
|
||||
},
|
||||
TypeMeta: CustomResourceDefinitionTypeMeta,
|
||||
Spec: extensionsobj.CustomResourceDefinitionSpec{
|
||||
Group: config.Group,
|
||||
Version: config.Version,
|
||||
Scope: extensionsobj.ResourceScope(config.ResourceScope),
|
||||
Group: config.Group,
|
||||
Versions: []extensionsobj.CustomResourceDefinitionVersion{
|
||||
{
|
||||
Name: config.Version,
|
||||
Schema: schema,
|
||||
Subresources: &extensionsobj.CustomResourceSubresources{
|
||||
Status: &extensionsobj.CustomResourceSubresourceStatus{},
|
||||
Scale: &extensionsobj.CustomResourceSubresourceScale{
|
||||
SpecReplicasPath: config.SpecReplicasPath,
|
||||
StatusReplicasPath: config.StatusReplicasPath,
|
||||
LabelSelectorPath: &config.LabelSelectorPath,
|
||||
},
|
||||
},
|
||||
Served: true,
|
||||
Storage: true,
|
||||
},
|
||||
},
|
||||
Scope: extensionsobj.ResourceScope(config.ResourceScope),
|
||||
Names: extensionsobj.CustomResourceDefinitionNames{
|
||||
Plural: config.Plural,
|
||||
Kind: config.Kind,
|
||||
Categories: config.Categories,
|
||||
ShortNames: config.ShortNames,
|
||||
},
|
||||
Subresources: &extensionsobj.CustomResourceSubresources{
|
||||
Status: &extensionsobj.CustomResourceSubresourceStatus {
|
||||
},
|
||||
Scale: &extensionsobj.CustomResourceSubresourceScale {
|
||||
SpecReplicasPath: config.SpecReplicasPath,
|
||||
StatusReplicasPath: config.StatusReplicasPath,
|
||||
LabelSelectorPath: &config.LabelSelectorPath,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
if config.SpecDefinitionName != "" && config.EnableValidation == true {
|
||||
crd.Spec.Validation = GetCustomResourceValidation(config.SpecDefinitionName, config.GetOpenAPIDefinitions)
|
||||
}
|
||||
|
||||
return crd
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ package crdvalidation
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
spec "github.com/go-openapi/spec"
|
||||
extensionsobj "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
extensionsobj "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
common "k8s.io/kube-openapi/pkg/common"
|
||||
)
|
||||
|
@ -2,7 +2,7 @@ package crdvalidation
|
||||
|
||||
import (
|
||||
spec "github.com/go-openapi/spec"
|
||||
extensionsobj "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
extensionsobj "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
common "k8s.io/kube-openapi/pkg/common"
|
||||
)
|
||||
@ -10,7 +10,7 @@ import (
|
||||
// CustomResourceDefinitionTypeMeta set the default kind/apiversion of CRD
|
||||
var CustomResourceDefinitionTypeMeta = metav1.TypeMeta{
|
||||
Kind: "CustomResourceDefinition",
|
||||
APIVersion: "apiextensions.k8s.io/v1beta1",
|
||||
APIVersion: "apiextensions.k8s.io/v1",
|
||||
}
|
||||
|
||||
// OpenAPIRefCallBack returns a jsonref using the input string without modification
|
||||
@ -69,4 +69,3 @@ func fixKnownTypes(openapiSpec map[string]common.OpenAPIDefinition) {
|
||||
},
|
||||
}
|
||||
}
|
||||
|
6
vendor/modules.txt
vendored
6
vendor/modules.txt
vendored
@ -2,9 +2,6 @@
|
||||
github.com/PuerkitoBio/purell
|
||||
# github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
|
||||
github.com/PuerkitoBio/urlesc
|
||||
# github.com/ant31/crd-validation v0.0.0-20180801212718-38f6a293f140
|
||||
## explicit
|
||||
github.com/ant31/crd-validation/pkg
|
||||
# github.com/awalterschulze/gographviz v0.0.0-20181013152038-b2885df04310
|
||||
## explicit
|
||||
github.com/awalterschulze/gographviz
|
||||
@ -104,6 +101,9 @@ github.com/kr/logfmt
|
||||
## explicit
|
||||
github.com/kylelemons/godebug/diff
|
||||
github.com/kylelemons/godebug/pretty
|
||||
# github.com/leonnicolas/crd-validation v0.0.0-20210602093346-4236c21fcd92
|
||||
## explicit
|
||||
github.com/leonnicolas/crd-validation/pkg
|
||||
# github.com/mailru/easyjson v0.7.0
|
||||
github.com/mailru/easyjson/buffer
|
||||
github.com/mailru/easyjson/jlexer
|
||||
|
Loading…
Reference in New Issue
Block a user