diff --git a/go.mod b/go.mod index c9486e0789..6070c96fda 100644 --- a/go.mod +++ b/go.mod @@ -109,8 +109,8 @@ require ( github.com/ipfs/go-log/v2 v2.5.1 github.com/joho/godotenv v1.5.1 github.com/json-iterator/go v1.1.12 - github.com/k3s-io/api v0.1.1 - github.com/k3s-io/helm-controller v0.16.11 + github.com/k3s-io/api v0.1.2-0.20250707203559-eba70d696089 + github.com/k3s-io/helm-controller v0.16.12-0.20250703174217-fcdaa90161e6 github.com/k3s-io/kine v0.13.15 github.com/klauspost/compress v1.18.0 github.com/libp2p/go-libp2p v0.41.1 @@ -156,6 +156,7 @@ require ( google.golang.org/grpc v1.72.0 gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.33.2 + k8s.io/apiextensions-apiserver v0.33.2 k8s.io/apimachinery v0.33.2 k8s.io/apiserver v0.33.2 k8s.io/cli-runtime v0.33.2 @@ -489,7 +490,6 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.33.2 // indirect k8s.io/controller-manager v0.25.4 // indirect k8s.io/csi-translation-lib v0.0.0 // indirect k8s.io/dynamic-resource-allocation v0.0.0 // indirect diff --git a/go.sum b/go.sum index 0785ec868e..951b56645b 100644 --- a/go.sum +++ b/go.sum @@ -778,8 +778,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= -github.com/k3s-io/api v0.1.1 h1:7ZJnCsRu88yF5MkA2bwJ7hWIRjrgALW8pRkxTXjb54U= -github.com/k3s-io/api v0.1.1/go.mod h1:9aQAaTKBFWO+BpGrMFJk9uZaUhZRrL9aahobcOQQm64= +github.com/k3s-io/api v0.1.2-0.20250707203559-eba70d696089 h1:1iX9DP6fzhgcbbCKv0B67/+TldvyvD5Wlw5+dre80yA= +github.com/k3s-io/api v0.1.2-0.20250707203559-eba70d696089/go.mod h1:9aQAaTKBFWO+BpGrMFJk9uZaUhZRrL9aahobcOQQm64= github.com/k3s-io/cadvisor v0.52.1 h1:KeeADD5no2159ICWnTRTJfExlNbVfhqbo9ohixQ74GM= github.com/k3s-io/cadvisor v0.52.1/go.mod h1:OAhPcx1nOm5YwMh/JhpUOMKyv1YKLRtS9KgzWPndHmA= github.com/k3s-io/containerd/v2 v2.0.5-k3s1 h1:bQxBHXObL7pHJ5c2rlTYsQuR+hNhBN7vpN+bX6CwpUk= @@ -804,8 +804,8 @@ github.com/k3s-io/etcd/raft/v3 v3.5.21-k3s1 h1:sZIV+qFhbGPyOXRiIC6zjdGS00GPjeDo/ github.com/k3s-io/etcd/raft/v3 v3.5.21-k3s1/go.mod h1:fmcuY5R2SNkklU4+fKVBQi2biVp5vafMrWUEj4TJ4Cs= github.com/k3s-io/etcd/server/v3 v3.5.21-k3s1 h1:N7yuD8/WUf7oEOu4nlXbsoSTvF5yPMMOU2uc3WrJ/eM= github.com/k3s-io/etcd/server/v3 v3.5.21-k3s1/go.mod h1:G1mOzdwuzKT1VRL7SqRchli/qcFrtLBTAQ4lV20sXXo= -github.com/k3s-io/helm-controller v0.16.11 h1:SUxXQSgB16HkffAVcseNWEaAY+MOeG9gL6cMZ7rUeIU= -github.com/k3s-io/helm-controller v0.16.11/go.mod h1:mw6sVaH/eli+81sUnRqRYh5wV7YVzYp+U7OucLT5kUc= +github.com/k3s-io/helm-controller v0.16.12-0.20250703174217-fcdaa90161e6 h1:wz2x5YDBtoMZvitxHixM6Br1ijh6TZp+zBEhCTZJL2Q= +github.com/k3s-io/helm-controller v0.16.12-0.20250703174217-fcdaa90161e6/go.mod h1:mw6sVaH/eli+81sUnRqRYh5wV7YVzYp+U7OucLT5kUc= github.com/k3s-io/kine v0.13.15 h1:XZyWMPyfYq+O8TUSfa9BfjNNDsuwXH6IM3YYKX3weDc= github.com/k3s-io/kine v0.13.15/go.mod h1:oWMP9mcizQ8VCvhJbMWjryyUKARZT+5P6XXB7n6oujo= github.com/k3s-io/klog/v2 v2.120.1-k3s1 h1:7twAHPFpZA21KdMnMNnj68STQMPldAxF2Zsaol57dxw= diff --git a/hack/crdgen.go b/hack/crdgen.go deleted file mode 100644 index e875940b28..0000000000 --- a/hack/crdgen.go +++ /dev/null @@ -1,13 +0,0 @@ -package main - -import ( - "os" - - k3scrd "github.com/k3s-io/k3s/pkg/crd" - _ "github.com/k3s-io/api/pkg/generated/controllers/k3s.cattle.io/v1" - "github.com/rancher/wrangler/v3/pkg/crd" -) - -func main() { - crd.Print(os.Stdout, k3scrd.List()) -} diff --git a/pkg/crd/crds.go b/pkg/crd/crds.go deleted file mode 100644 index 0515419d2d..0000000000 --- a/pkg/crd/crds.go +++ /dev/null @@ -1,24 +0,0 @@ -package crd - -import ( - v1 "github.com/k3s-io/api/k3s.cattle.io/v1" - "github.com/rancher/wrangler/v3/pkg/crd" -) - -func List() []crd.CRD { - addon := v1.Addon{} - etcdSnapshotFile := v1.ETCDSnapshotFile{} - return []crd.CRD{ - crd.NamespacedType("Addon.k3s.cattle.io/v1"). - WithSchemaFromStruct(addon). - WithColumn("Source", ".spec.source"). - WithColumn("Checksum", ".spec.checksum"), - crd.NonNamespacedType("ETCDSnapshotFile.k3s.cattle.io/v1"). - WithSchemaFromStruct(etcdSnapshotFile). - WithColumn("SnapshotName", ".spec.snapshotName"). - WithColumn("Node", ".spec.nodeName"). - WithColumn("Location", ".spec.location"). - WithColumn("Size", ".status.size"). - WithColumn("CreationTime", ".status.creationTime"), - } -} diff --git a/pkg/server/context.go b/pkg/server/context.go index 9483fbafdf..5a0c625b21 100644 --- a/pkg/server/context.go +++ b/pkg/server/context.go @@ -2,11 +2,12 @@ package server import ( "context" + "time" + k3scrds "github.com/k3s-io/api/pkg/crds" "github.com/k3s-io/api/pkg/generated/controllers/k3s.cattle.io" - helmcrd "github.com/k3s-io/helm-controller/pkg/crd" + helmcrds "github.com/k3s-io/helm-controller/pkg/crds" "github.com/k3s-io/helm-controller/pkg/generated/controllers/helm.cattle.io" - addoncrd "github.com/k3s-io/k3s/pkg/crd" "github.com/k3s-io/k3s/pkg/util" "github.com/k3s-io/k3s/pkg/version" pkgerrors "github.com/pkg/errors" @@ -17,6 +18,8 @@ import ( "github.com/rancher/wrangler/v3/pkg/generated/controllers/discovery" "github.com/rancher/wrangler/v3/pkg/generated/controllers/rbac" "github.com/rancher/wrangler/v3/pkg/start" + apiextv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" @@ -76,21 +79,27 @@ func NewContext(ctx context.Context, config *Config, forServer bool) (*Context, }, nil } +type crdLister func() ([]*apiextv1.CustomResourceDefinition, error) + func registerCrds(ctx context.Context, config *Config, restConfig *rest.Config) error { - factory, err := crd.NewFactoryFromClient(restConfig) + listers := []crdLister{k3scrds.List} + if !config.ControlConfig.DisableHelmController { + listers = append(listers, helmcrds.List) + } + + crds := []*apiextv1.CustomResourceDefinition{} + for _, list := range listers { + l, err := list() + if err != nil { + return err + } + crds = append(crds, l...) + } + + client, err := clientset.NewForConfig(restConfig) if err != nil { return err } - factory.BatchCreateCRDs(ctx, crds(config)...) - - return factory.BatchWait() -} - -func crds(config *Config) []crd.CRD { - defaultCrds := addoncrd.List() - if !config.ControlConfig.DisableHelmController { - defaultCrds = append(defaultCrds, helmcrd.List()...) - } - return defaultCrds + return crd.BatchCreateCRDs(ctx, client.ApiextensionsV1().CustomResourceDefinitions(), nil, time.Minute, crds) }