diff --git a/cmd/epp/runner/runner.go b/cmd/epp/runner/runner.go index 2f5c1e388..5a66532f6 100644 --- a/cmd/epp/runner/runner.go +++ b/cmd/epp/runner/runner.go @@ -132,8 +132,9 @@ var ( configFile = flag.String("config-file", runserver.DefaultConfigFile, "The path to the configuration file") configText = flag.String("config-text", runserver.DefaultConfigText, "The configuration specified as text, in lieu of a file") - modelServerMetricsPort = flag.Int("model-server-metrics-port", 0, "Port to scrape metrics from pods. "+ - "Default value will be set to the InferencePool.Spec.TargetPorts[0].Number if not set.") + modelServerMetricsPort = flag.Int("model-server-metrics-port", 0, "[DEPRECATED] Port to scrape metrics from pods. "+ + "Default value will be set to the InferencePool.Spec.TargetPorts[0].Number if not set."+ + "[DEPRECATED] This option will be removed in the next release.") modelServerMetricsPath = flag.String("model-server-metrics-path", "/metrics", "Path to scrape metrics from pods") modelServerMetricsScheme = flag.String("model-server-metrics-scheme", "http", "Scheme to scrape metrics from pods") modelServerMetricsHttpsInsecureSkipVerify = flag.Bool("model-server-metrics-https-insecure-skip-verify", true, "When using 'https' scheme for 'model-server-metrics-scheme', configure 'InsecureSkipVerify' (default to true)") @@ -191,6 +192,8 @@ func (r *Runner) Run(ctx context.Context) error { flag.Parse() initLogging(&opts) + _ = r.deprecatedFlagsHandler(setupLog) // ignore error for now + if *tracing { err := common.InitTracing(ctx, setupLog) if err != nil { @@ -467,6 +470,33 @@ func (r *Runner) parseConfigurationPhaseTwo(ctx context.Context, rawConfig *conf return cfg, nil } +func (r *Runner) deprecatedFlagsHandler(logger logr.Logger) error { + deprecated := map[string]string{ // Map of deprecated flags: key = flag name, value = replacement (empty if none) + "model-server-metrics-port": "", + } + + var usedDeprecated []string // Track which deprecated flags were explicitly set + flag.Visit(func(f *flag.Flag) { + if _, ok := deprecated[f.Name]; ok { + usedDeprecated = append(usedDeprecated, f.Name) + } + }) + + if len(usedDeprecated) > 0 { // report on deprecated flags used + for _, option := range usedDeprecated { + if replacement := deprecated[option]; replacement != "" { + logger.Info("deprecated option will be removed in the next release", + "option", option, "replacement", replacement) + } else { + logger.Info("deprecated option will be removed in the next release. No replacement available.", + "option", option) + } + } + return errors.New("deprecated options used" + fmt.Sprintf("%+v", usedDeprecated)) + } + return nil +} + func (r *Runner) deprecatedConfigurationHelper(cfg *config.Config, logger logr.Logger) { // Handle deprecated environment variable based feature flags diff --git a/pkg/epp/datastore/datastore.go b/pkg/epp/datastore/datastore.go index 5d6ff751b..80d893681 100644 --- a/pkg/epp/datastore/datastore.go +++ b/pkg/epp/datastore/datastore.go @@ -69,6 +69,8 @@ type Datastore interface { Clear() } +// NewDatastore creates a new data store. +// TODO: modelServerMetricsPort is being deprecated func NewDatastore(parentCtx context.Context, epFactory datalayer.EndpointFactory, modelServerMetricsPort int32) Datastore { store := &datastore{ parentCtx: parentCtx, @@ -93,7 +95,7 @@ type datastore struct { pods *sync.Map // modelServerMetricsPort metrics port from EPP command line argument // used only if there is only one inference engine per pod - modelServerMetricsPort int32 + modelServerMetricsPort int32 // TODO: deprecating epf datalayer.EndpointFactory }