mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 14:12:41 +08:00
34 lines
1.5 KiB
Go
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
|
|
}
|