Files
2024-08-13 22:28:17 +03:00

34 lines
1.5 KiB
Go

package rest
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apiserver/pkg/registry/generic"
"k8s.io/apiserver/pkg/registry/rest"
genericapiserver "k8s.io/apiserver/pkg/server"
serverstorage "k8s.io/apiserver/pkg/server/storage"
"github.com/grafana/grafana/pkg/aggregator/apis/aggregation"
"github.com/grafana/grafana/pkg/aggregator/apis/aggregation/v0alpha1"
aggregatorscheme "github.com/grafana/grafana/pkg/aggregator/apiserver/scheme"
dataplaneservicestorage "github.com/grafana/grafana/pkg/aggregator/registry/dataplaneservice/storage"
)
// NewRESTStorage returns an APIGroupInfo object that will work against dataplaneservice.
func NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter, shouldServeBeta bool) genericapiserver.APIGroupInfo {
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(aggregation.GROUP, aggregatorscheme.Scheme, metav1.ParameterCodec, aggregatorscheme.Codecs)
storage := map[string]rest.Storage{}
if resource := "dataplaneservices"; apiResourceConfigSource.ResourceEnabled(v0alpha1.SchemeGroupVersion.WithResource(resource)) {
dataplaneServiceREST := dataplaneservicestorage.NewREST(aggregatorscheme.Scheme, restOptionsGetter)
storage[resource] = dataplaneServiceREST
storage[resource+"/status"] = dataplaneservicestorage.NewStatusREST(aggregatorscheme.Scheme, dataplaneServiceREST)
}
if len(storage) > 0 {
apiGroupInfo.VersionedResourcesStorageMap["v0alpha1"] = storage
}
return apiGroupInfo
}