From ca38729840c8511d08ef4e73bf094eaccb994ff2 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Tue, 22 Apr 2025 11:21:15 -0500 Subject: [PATCH] chore: revert dynamic params as a safe experiment (#17510) --- coderd/coderd.go | 4 ++-- coderd/experiments.go | 2 +- coderd/experiments_test.go | 10 +++++----- coderd/prometheusmetrics/prometheusmetrics.go | 2 +- coderd/prometheusmetrics/prometheusmetrics_test.go | 8 ++++---- codersdk/deployment.go | 6 ++---- 6 files changed, 15 insertions(+), 17 deletions(-) diff --git a/coderd/coderd.go b/coderd/coderd.go index e9d7a15a53..cb069fd6bf 100644 --- a/coderd/coderd.go +++ b/coderd/coderd.go @@ -1816,10 +1816,10 @@ func ReadExperiments(log slog.Logger, raw []string) codersdk.Experiments { for _, v := range raw { switch v { case "*": - exps = append(exps, codersdk.ExperimentsAll...) + exps = append(exps, codersdk.ExperimentsSafe...) default: ex := codersdk.Experiment(strings.ToLower(v)) - if !slice.Contains(codersdk.ExperimentsAll, ex) { + if !slice.Contains(codersdk.ExperimentsSafe, ex) { log.Warn(context.Background(), "🐉 HERE BE DRAGONS: opting into hidden experiment", slog.F("experiment", ex)) } exps = append(exps, ex) diff --git a/coderd/experiments.go b/coderd/experiments.go index f7debd8c68..6f03daa4e9 100644 --- a/coderd/experiments.go +++ b/coderd/experiments.go @@ -29,6 +29,6 @@ func (api *API) handleExperimentsGet(rw http.ResponseWriter, r *http.Request) { func handleExperimentsSafe(rw http.ResponseWriter, r *http.Request) { ctx := r.Context() httpapi.Write(ctx, rw, http.StatusOK, codersdk.AvailableExperiments{ - Safe: codersdk.ExperimentsAll, + Safe: codersdk.ExperimentsSafe, }) } diff --git a/coderd/experiments_test.go b/coderd/experiments_test.go index 4288b9953f..8f5944609a 100644 --- a/coderd/experiments_test.go +++ b/coderd/experiments_test.go @@ -69,8 +69,8 @@ func Test_Experiments(t *testing.T) { experiments, err := client.Experiments(ctx) require.NoError(t, err) require.NotNil(t, experiments) - require.ElementsMatch(t, codersdk.ExperimentsAll, experiments) - for _, ex := range codersdk.ExperimentsAll { + require.ElementsMatch(t, codersdk.ExperimentsSafe, experiments) + for _, ex := range codersdk.ExperimentsSafe { require.True(t, experiments.Enabled(ex)) } require.False(t, experiments.Enabled("danger")) @@ -91,8 +91,8 @@ func Test_Experiments(t *testing.T) { experiments, err := client.Experiments(ctx) require.NoError(t, err) require.NotNil(t, experiments) - require.ElementsMatch(t, append(codersdk.ExperimentsAll, "danger"), experiments) - for _, ex := range codersdk.ExperimentsAll { + require.ElementsMatch(t, append(codersdk.ExperimentsSafe, "danger"), experiments) + for _, ex := range codersdk.ExperimentsSafe { require.True(t, experiments.Enabled(ex)) } require.True(t, experiments.Enabled("danger")) @@ -131,6 +131,6 @@ func Test_Experiments(t *testing.T) { experiments, err := client.SafeExperiments(ctx) require.NoError(t, err) require.NotNil(t, experiments) - require.ElementsMatch(t, codersdk.ExperimentsAll, experiments.Safe) + require.ElementsMatch(t, codersdk.ExperimentsSafe, experiments.Safe) }) } diff --git a/coderd/prometheusmetrics/prometheusmetrics.go b/coderd/prometheusmetrics/prometheusmetrics.go index ccd88a9e3f..4fd2cfda60 100644 --- a/coderd/prometheusmetrics/prometheusmetrics.go +++ b/coderd/prometheusmetrics/prometheusmetrics.go @@ -655,7 +655,7 @@ func Experiments(registerer prometheus.Registerer, active codersdk.Experiments) return err } - for _, exp := range codersdk.ExperimentsAll { + for _, exp := range codersdk.ExperimentsSafe { var val float64 for _, enabled := range active { if exp == enabled { diff --git a/coderd/prometheusmetrics/prometheusmetrics_test.go b/coderd/prometheusmetrics/prometheusmetrics_test.go index 9911a026ea..be804b3a85 100644 --- a/coderd/prometheusmetrics/prometheusmetrics_test.go +++ b/coderd/prometheusmetrics/prometheusmetrics_test.go @@ -612,7 +612,7 @@ func TestAgentStats(t *testing.T) { func TestExperimentsMetric(t *testing.T) { t.Parallel() - if len(codersdk.ExperimentsAll) == 0 { + if len(codersdk.ExperimentsSafe) == 0 { t.Skip("No experiments are currently defined; skipping test.") } @@ -624,17 +624,17 @@ func TestExperimentsMetric(t *testing.T) { { name: "Enabled experiment is exported in metrics", experiments: codersdk.Experiments{ - codersdk.ExperimentsAll[0], + codersdk.ExperimentsSafe[0], }, expected: map[codersdk.Experiment]float64{ - codersdk.ExperimentsAll[0]: 1, + codersdk.ExperimentsSafe[0]: 1, }, }, { name: "Disabled experiment is exported in metrics", experiments: codersdk.Experiments{}, expected: map[codersdk.Experiment]float64{ - codersdk.ExperimentsAll[0]: 0, + codersdk.ExperimentsSafe[0]: 0, }, }, { diff --git a/codersdk/deployment.go b/codersdk/deployment.go index cf1952f1b5..864a883330 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -3258,13 +3258,11 @@ const ( ExperimentDynamicParameters Experiment = "dynamic-parameters" // Enables dynamic parameters when creating a workspace. ) -// ExperimentsAll should include all experiments that are safe for +// ExperimentsSafe should include all experiments that are safe for // users to opt-in to via --experimental='*'. // Experiments that are not ready for consumption by all users should // not be included here and will be essentially hidden. -var ExperimentsAll = Experiments{ - ExperimentDynamicParameters, -} +var ExperimentsSafe = Experiments{} // Experiments is a list of experiments. // Multiple experiments may be enabled at the same time.