mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
parent
ba63e62311
commit
c879588332
@ -62,7 +62,7 @@ func newCommandStartExampleAPIServer(o *APIServerOptions, stopCh <-chan struct{}
|
||||
}
|
||||
|
||||
cmd.Flags().StringVar(&runtimeConfig, "runtime-config", "", "A set of key=value pairs that enable or disable built-in APIs.")
|
||||
o.factory.InitFlags(cmd.Flags())
|
||||
o.factory.GetOptions().AddFlags(cmd.Flags())
|
||||
|
||||
// Register standard k8s flags with the command line
|
||||
o.RecommendedOptions = options.NewRecommendedOptions(
|
||||
|
@ -110,6 +110,7 @@ func (o *APIServerOptions) ModifiedApplyTo(config *genericapiserver.RecommendedC
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -160,6 +161,7 @@ func (o *APIServerOptions) Config() (*genericapiserver.RecommendedConfig, error)
|
||||
func (o *APIServerOptions) Validate(args []string) error {
|
||||
errors := []error{}
|
||||
errors = append(errors, o.RecommendedOptions.Validate()...)
|
||||
errors = append(errors, o.factory.GetOptions().ValidateOptions()...)
|
||||
return utilerrors.NewAggregate(errors)
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,11 @@ import (
|
||||
genericoptions "k8s.io/apiserver/pkg/server/options"
|
||||
)
|
||||
|
||||
type OptionsProvider interface {
|
||||
AddFlags(fs *pflag.FlagSet)
|
||||
ValidateOptions() []error
|
||||
}
|
||||
|
||||
const defaultEtcdPathPrefix = "/registry/grafana.app"
|
||||
|
||||
type Options struct {
|
||||
@ -17,6 +22,7 @@ type Options struct {
|
||||
AggregatorOptions *AggregatorServerOptions
|
||||
StorageOptions *StorageOptions
|
||||
ExtraOptions *ExtraOptions
|
||||
APIOptions []OptionsProvider
|
||||
}
|
||||
|
||||
func NewOptions(codec runtime.Codec) *Options {
|
||||
@ -36,6 +42,10 @@ func (o *Options) AddFlags(fs *pflag.FlagSet) {
|
||||
o.AggregatorOptions.AddFlags(fs)
|
||||
o.StorageOptions.AddFlags(fs)
|
||||
o.ExtraOptions.AddFlags(fs)
|
||||
|
||||
for _, api := range o.APIOptions {
|
||||
api.AddFlags(fs)
|
||||
}
|
||||
}
|
||||
|
||||
func (o *Options) Validate() []error {
|
||||
@ -69,6 +79,11 @@ func (o *Options) Validate() []error {
|
||||
}
|
||||
}
|
||||
|
||||
for _, api := range o.APIOptions {
|
||||
if errs := api.ValidateOptions(); len(errs) != 0 {
|
||||
return errs
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -100,7 +115,6 @@ func (o *Options) ApplyTo(serverConfig *genericapiserver.RecommendedConfig) erro
|
||||
}
|
||||
serverConfig.SecureServing = nil
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
"github.com/spf13/pflag"
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
|
||||
@ -19,6 +18,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/actest"
|
||||
"github.com/grafana/grafana/pkg/services/apiserver/builder"
|
||||
"github.com/grafana/grafana/pkg/services/apiserver/endpoints/request"
|
||||
"github.com/grafana/grafana/pkg/services/apiserver/options"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
testdatasource "github.com/grafana/grafana/pkg/tsdb/grafana-testdata-datasource"
|
||||
@ -26,7 +26,7 @@ import (
|
||||
|
||||
type APIServerFactory interface {
|
||||
// Called before the groups are loaded so any custom command can be registered
|
||||
InitFlags(flags *pflag.FlagSet)
|
||||
GetOptions() options.OptionsProvider
|
||||
|
||||
// Given the flags, what can we produce
|
||||
GetEnabled(runtime []RuntimeConfig) ([]schema.GroupVersion, error)
|
||||
@ -42,7 +42,9 @@ func GetDummyAPIFactory() APIServerFactory {
|
||||
|
||||
type DummyAPIFactory struct{}
|
||||
|
||||
func (p *DummyAPIFactory) InitFlags(flags *pflag.FlagSet) {}
|
||||
func (p *DummyAPIFactory) GetOptions() options.OptionsProvider {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *DummyAPIFactory) GetEnabled(runtime []RuntimeConfig) ([]schema.GroupVersion, error) {
|
||||
gv := []schema.GroupVersion{}
|
||||
|
Loading…
Reference in New Issue
Block a user