diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index ee1277d3bc7c4..c5e16f97ea62b 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -9110,13 +9110,11 @@ const docTemplate = `{ "enum": [ "workspace_actions", "tailnet_pg_coordinator", - "single_tailnet", "deployment_health_page" ], "x-enum-varnames": [ "ExperimentWorkspaceActions", "ExperimentTailnetPGCoordinator", - "ExperimentSingleTailnet", "ExperimentDeploymentHealthPage" ] }, diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 83689a31c6168..784fc2ea3a009 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -8156,13 +8156,11 @@ "enum": [ "workspace_actions", "tailnet_pg_coordinator", - "single_tailnet", "deployment_health_page" ], "x-enum-varnames": [ "ExperimentWorkspaceActions", "ExperimentTailnetPGCoordinator", - "ExperimentSingleTailnet", "ExperimentDeploymentHealthPage" ] }, diff --git a/coderd/coderd.go b/coderd/coderd.go index ae861d568791e..88af4925578c8 100644 --- a/coderd/coderd.go +++ b/coderd/coderd.go @@ -458,25 +458,19 @@ func New(options *Options) *API { api.Auditor.Store(&options.Auditor) api.TailnetCoordinator.Store(&options.TailnetCoordinator) - if api.Experiments.Enabled(codersdk.ExperimentSingleTailnet) { - api.agentProvider, err = NewServerTailnet(api.ctx, - options.Logger, - options.DERPServer, - api.DERPMap, - options.DeploymentValues.DERP.Config.ForceWebSockets.Value(), - func(context.Context) (tailnet.MultiAgentConn, error) { - return (*api.TailnetCoordinator.Load()).ServeMultiAgent(uuid.New()), nil - }, - wsconncache.New(api._dialWorkspaceAgentTailnet, 0), - api.TracerProvider, - ) - if err != nil { - panic("failed to setup server tailnet: " + err.Error()) - } - } else { - api.agentProvider = &wsconncache.AgentProvider{ - Cache: wsconncache.New(api._dialWorkspaceAgentTailnet, 0), - } + api.agentProvider, err = NewServerTailnet(api.ctx, + options.Logger, + options.DERPServer, + api.DERPMap, + options.DeploymentValues.DERP.Config.ForceWebSockets.Value(), + func(context.Context) (tailnet.MultiAgentConn, error) { + return (*api.TailnetCoordinator.Load()).ServeMultiAgent(uuid.New()), nil + }, + wsconncache.New(api._dialWorkspaceAgentTailnet, 0), + api.TracerProvider, + ) + if err != nil { + panic("failed to setup server tailnet: " + err.Error()) } api.TailnetClientService, err = tailnet.NewClientService( api.Logger.Named("tailnetclient"), diff --git a/codersdk/deployment.go b/codersdk/deployment.go index 9117a5131d43b..831ac91291c2b 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -2084,11 +2084,6 @@ const ( // only Coordinator ExperimentTailnetPGCoordinator Experiment = "tailnet_pg_coordinator" - // ExperimentSingleTailnet replaces workspace connections inside coderd to - // all use a single tailnet, instead of the previous behavior of creating a - // single tailnet for each agent. - ExperimentSingleTailnet Experiment = "single_tailnet" - // Deployment health page ExperimentDeploymentHealthPage Experiment = "deployment_health_page" @@ -2102,7 +2097,6 @@ const ( // not be included here and will be essentially hidden. var ExperimentsAll = Experiments{ ExperimentDeploymentHealthPage, - ExperimentSingleTailnet, } // Experiments is a list of experiments. diff --git a/docs/api/schemas.md b/docs/api/schemas.md index 407bb4e34e982..c11b9ae77d906 100644 --- a/docs/api/schemas.md +++ b/docs/api/schemas.md @@ -2880,7 +2880,6 @@ AuthorizationObject can represent a "set" of objects, such as: all workspaces in | ------------------------ | | `workspace_actions` | | `tailnet_pg_coordinator` | -| `single_tailnet` | | `deployment_health_page` | ## codersdk.ExternalAuth diff --git a/enterprise/wsproxy/wsproxy.go b/enterprise/wsproxy/wsproxy.go index d626a7ea51cdd..d43939805d680 100644 --- a/enterprise/wsproxy/wsproxy.go +++ b/enterprise/wsproxy/wsproxy.go @@ -239,27 +239,19 @@ func New(ctx context.Context, opts *Options) (*Server, error) { return nil, xerrors.Errorf("parse app security key: %w", err) } - var agentProvider workspaceapps.AgentProvider - if opts.Experiments.Enabled(codersdk.ExperimentSingleTailnet) { - stn, err := coderd.NewServerTailnet(ctx, - s.Logger, - nil, - func() *tailcfg.DERPMap { - return s.latestDERPMap.Load() - }, - regResp.DERPForceWebSockets, - s.DialCoordinator, - wsconncache.New(s.DialWorkspaceAgent, 0), - s.TracerProvider, - ) - if err != nil { - return nil, xerrors.Errorf("create server tailnet: %w", err) - } - agentProvider = stn - } else { - agentProvider = &wsconncache.AgentProvider{ - Cache: wsconncache.New(s.DialWorkspaceAgent, 0), - } + agentProvider, err := coderd.NewServerTailnet(ctx, + s.Logger, + nil, + func() *tailcfg.DERPMap { + return s.latestDERPMap.Load() + }, + regResp.DERPForceWebSockets, + s.DialCoordinator, + wsconncache.New(s.DialWorkspaceAgent, 0), + s.TracerProvider, + ) + if err != nil { + return nil, xerrors.Errorf("create server tailnet: %w", err) } workspaceAppsLogger := opts.Logger.Named("workspaceapps") diff --git a/enterprise/wsproxy/wsproxy_test.go b/enterprise/wsproxy/wsproxy_test.go index e80d8b1cabf12..312fdf98be047 100644 --- a/enterprise/wsproxy/wsproxy_test.go +++ b/enterprise/wsproxy/wsproxy_test.go @@ -17,7 +17,6 @@ import ( "cdr.dev/slog/sloggers/slogtest" "github.com/coder/coder/v2/agent/agenttest" "github.com/coder/coder/v2/cli/clibase" - "github.com/coder/coder/v2/coderd" "github.com/coder/coder/v2/coderd/coderdtest" "github.com/coder/coder/v2/coderd/healthcheck/derphealth" "github.com/coder/coder/v2/coderd/httpmw" @@ -431,7 +430,7 @@ resourceLoop: require.False(t, p2p) } -func TestWorkspaceProxyWorkspaceApps_Wsconncache(t *testing.T) { +func TestWorkspaceProxyWorkspaceApps(t *testing.T) { t.Parallel() apptest.Run(t, false, func(t *testing.T, opts *apptest.DeploymentOptions) *apptest.Deployment { @@ -487,59 +486,3 @@ func TestWorkspaceProxyWorkspaceApps_Wsconncache(t *testing.T) { } }) } - -func TestWorkspaceProxyWorkspaceApps_SingleTailnet(t *testing.T) { - t.Parallel() - - apptest.Run(t, false, func(t *testing.T, opts *apptest.DeploymentOptions) *apptest.Deployment { - deploymentValues := coderdtest.DeploymentValues(t) - deploymentValues.DisablePathApps = clibase.Bool(opts.DisablePathApps) - deploymentValues.Dangerous.AllowPathAppSharing = clibase.Bool(opts.DangerousAllowPathAppSharing) - deploymentValues.Dangerous.AllowPathAppSiteOwnerAccess = clibase.Bool(opts.DangerousAllowPathAppSiteOwnerAccess) - deploymentValues.Experiments = []string{ - string(codersdk.ExperimentSingleTailnet), - "*", - } - - client, _, api, user := coderdenttest.NewWithAPI(t, &coderdenttest.Options{ - Options: &coderdtest.Options{ - DeploymentValues: deploymentValues, - AppHostname: "*.primary.test.coder.com", - IncludeProvisionerDaemon: true, - RealIPConfig: &httpmw.RealIPConfig{ - TrustedOrigins: []*net.IPNet{{ - IP: net.ParseIP("127.0.0.1"), - Mask: net.CIDRMask(8, 32), - }}, - TrustedHeaders: []string{ - "CF-Connecting-IP", - }, - }, - WorkspaceAppsStatsCollectorOptions: opts.StatsCollectorOptions, - }, - LicenseOptions: &coderdenttest.LicenseOptions{ - Features: license.Features{ - codersdk.FeatureWorkspaceProxy: 1, - }, - }, - }) - - // Create the external proxy - if opts.DisableSubdomainApps { - opts.AppHost = "" - } - proxyAPI := coderdenttest.NewWorkspaceProxy(t, api, client, &coderdenttest.ProxyOptions{ - Name: "best-proxy", - Experiments: coderd.ReadExperiments(api.Logger, deploymentValues.Experiments.Value()), - AppHostname: opts.AppHost, - DisablePathApps: opts.DisablePathApps, - }) - - return &apptest.Deployment{ - Options: opts, - SDKClient: client, - FirstUser: user, - PathAppBaseURL: proxyAPI.Options.AccessURL, - } - }) -} diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index 98def777d9a91..75adb47ba22ca 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1813,12 +1813,10 @@ export const Entitlements: Entitlement[] = [ // From codersdk/deployment.go export type Experiment = | "deployment_health_page" - | "single_tailnet" | "tailnet_pg_coordinator" | "workspace_actions"; export const Experiments: Experiment[] = [ "deployment_health_page", - "single_tailnet", "tailnet_pg_coordinator", "workspace_actions", ]; diff --git a/site/src/pages/DeploySettingsPage/GeneralSettingsPage/GeneralSettingsPageView.stories.tsx b/site/src/pages/DeploySettingsPage/GeneralSettingsPage/GeneralSettingsPageView.stories.tsx index 2b3ec0afa13d5..f47e456a10353 100644 --- a/site/src/pages/DeploySettingsPage/GeneralSettingsPage/GeneralSettingsPageView.stories.tsx +++ b/site/src/pages/DeploySettingsPage/GeneralSettingsPage/GeneralSettingsPageView.stories.tsx @@ -34,13 +34,13 @@ const meta: Meta = { description: "Enable one or more experiments. These are not ready for production. Separate multiple experiments with commas, or enter '*' to opt-in to all available experiments.", flag: "experiments", - value: ["single_tailnet"], + value: ["workspace_actions"], flag_shorthand: "", hidden: false, }, ], deploymentDAUs: MockDeploymentDAUResponse, - safeExperiments: ["single_tailnet", "deployment_health_page"], + safeExperiments: ["deployment_health_page"], }, }; @@ -102,6 +102,6 @@ export const allExperimentsEnabled: Story = { hidden: false, }, ], - safeExperiments: ["single_tailnet", "deployment_health_page"], + safeExperiments: ["deployment_health_page"], }, }; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy