Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ff8d3de

Browse files
committed
Merge branch 'main' of github.com:/coder/coder into yevhenii/512-claim-prebuild
2 parents b246589 + 0ef7d0b commit ff8d3de

File tree

96 files changed

+1964
-107
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+1964
-107
lines changed

agent/ls.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,14 @@ func listFiles(query LSRequest) (LSResponse, error) {
125125
}
126126

127127
func listDrives() (LSResponse, error) {
128+
// disk.Partitions() will return partitions even if there was a failure to
129+
// get one. Any errored partitions will not be returned.
128130
partitionStats, err := disk.Partitions(true)
129-
if err != nil {
131+
if err != nil && len(partitionStats) == 0 {
132+
// Only return the error if there were no partitions returned.
130133
return LSResponse{}, xerrors.Errorf("failed to get partitions: %w", err)
131134
}
135+
132136
contents := make([]LSFile, 0, len(partitionStats))
133137
for _, a := range partitionStats {
134138
// Drive letters on Windows have a trailing separator as part of their name.

cli/server.go

+2
Original file line numberDiff line numberDiff line change
@@ -2160,6 +2160,8 @@ func startBuiltinPostgres(ctx context.Context, cfg config.Root, logger slog.Logg
21602160
embeddedpostgres.DefaultConfig().
21612161
Version(embeddedpostgres.V13).
21622162
BinariesPath(filepath.Join(cfg.PostgresPath(), "bin")).
2163+
// Default BinaryRepositoryURL repo1.maven.org is flaky.
2164+
BinaryRepositoryURL("https://repo.maven.apache.org/maven2").
21632165
DataPath(filepath.Join(cfg.PostgresPath(), "data")).
21642166
RuntimePath(filepath.Join(cfg.PostgresPath(), "runtime")).
21652167
CachePath(cachePath).

coderd/coderd.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1819,10 +1819,10 @@ func ReadExperiments(log slog.Logger, raw []string) codersdk.Experiments {
18191819
for _, v := range raw {
18201820
switch v {
18211821
case "*":
1822-
exps = append(exps, codersdk.ExperimentsAll...)
1822+
exps = append(exps, codersdk.ExperimentsSafe...)
18231823
default:
18241824
ex := codersdk.Experiment(strings.ToLower(v))
1825-
if !slice.Contains(codersdk.ExperimentsAll, ex) {
1825+
if !slice.Contains(codersdk.ExperimentsSafe, ex) {
18261826
log.Warn(context.Background(), "🐉 HERE BE DRAGONS: opting into hidden experiment", slog.F("experiment", ex))
18271827
}
18281828
exps = append(exps, ex)

coderd/experiments.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ func (api *API) handleExperimentsGet(rw http.ResponseWriter, r *http.Request) {
2929
func handleExperimentsSafe(rw http.ResponseWriter, r *http.Request) {
3030
ctx := r.Context()
3131
httpapi.Write(ctx, rw, http.StatusOK, codersdk.AvailableExperiments{
32-
Safe: codersdk.ExperimentsAll,
32+
Safe: codersdk.ExperimentsSafe,
3333
})
3434
}

coderd/experiments_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ func Test_Experiments(t *testing.T) {
6969
experiments, err := client.Experiments(ctx)
7070
require.NoError(t, err)
7171
require.NotNil(t, experiments)
72-
require.ElementsMatch(t, codersdk.ExperimentsAll, experiments)
73-
for _, ex := range codersdk.ExperimentsAll {
72+
require.ElementsMatch(t, codersdk.ExperimentsSafe, experiments)
73+
for _, ex := range codersdk.ExperimentsSafe {
7474
require.True(t, experiments.Enabled(ex))
7575
}
7676
require.False(t, experiments.Enabled("danger"))
@@ -91,8 +91,8 @@ func Test_Experiments(t *testing.T) {
9191
experiments, err := client.Experiments(ctx)
9292
require.NoError(t, err)
9393
require.NotNil(t, experiments)
94-
require.ElementsMatch(t, append(codersdk.ExperimentsAll, "danger"), experiments)
95-
for _, ex := range codersdk.ExperimentsAll {
94+
require.ElementsMatch(t, append(codersdk.ExperimentsSafe, "danger"), experiments)
95+
for _, ex := range codersdk.ExperimentsSafe {
9696
require.True(t, experiments.Enabled(ex))
9797
}
9898
require.True(t, experiments.Enabled("danger"))
@@ -131,6 +131,6 @@ func Test_Experiments(t *testing.T) {
131131
experiments, err := client.SafeExperiments(ctx)
132132
require.NoError(t, err)
133133
require.NotNil(t, experiments)
134-
require.ElementsMatch(t, codersdk.ExperimentsAll, experiments.Safe)
134+
require.ElementsMatch(t, codersdk.ExperimentsSafe, experiments.Safe)
135135
})
136136
}

coderd/prometheusmetrics/prometheusmetrics.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,7 @@ func Experiments(registerer prometheus.Registerer, active codersdk.Experiments)
655655
return err
656656
}
657657

658-
for _, exp := range codersdk.ExperimentsAll {
658+
for _, exp := range codersdk.ExperimentsSafe {
659659
var val float64
660660
for _, enabled := range active {
661661
if exp == enabled {

coderd/prometheusmetrics/prometheusmetrics_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ func TestAgentStats(t *testing.T) {
612612
func TestExperimentsMetric(t *testing.T) {
613613
t.Parallel()
614614

615-
if len(codersdk.ExperimentsAll) == 0 {
615+
if len(codersdk.ExperimentsSafe) == 0 {
616616
t.Skip("No experiments are currently defined; skipping test.")
617617
}
618618

@@ -624,17 +624,17 @@ func TestExperimentsMetric(t *testing.T) {
624624
{
625625
name: "Enabled experiment is exported in metrics",
626626
experiments: codersdk.Experiments{
627-
codersdk.ExperimentsAll[0],
627+
codersdk.ExperimentsSafe[0],
628628
},
629629
expected: map[codersdk.Experiment]float64{
630-
codersdk.ExperimentsAll[0]: 1,
630+
codersdk.ExperimentsSafe[0]: 1,
631631
},
632632
},
633633
{
634634
name: "Disabled experiment is exported in metrics",
635635
experiments: codersdk.Experiments{},
636636
expected: map[codersdk.Experiment]float64{
637-
codersdk.ExperimentsAll[0]: 0,
637+
codersdk.ExperimentsSafe[0]: 0,
638638
},
639639
},
640640
{

codersdk/deployment.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -3258,11 +3258,11 @@ const (
32583258
ExperimentDynamicParameters Experiment = "dynamic-parameters" // Enables dynamic parameters when creating a workspace.
32593259
)
32603260

3261-
// ExperimentsAll should include all experiments that are safe for
3261+
// ExperimentsSafe should include all experiments that are safe for
32623262
// users to opt-in to via --experimental='*'.
32633263
// Experiments that are not ready for consumption by all users should
32643264
// not be included here and will be essentially hidden.
3265-
var ExperimentsAll = Experiments{}
3265+
var ExperimentsSafe = Experiments{}
32663266

32673267
// Experiments is a list of experiments.
32683268
// Multiple experiments may be enabled at the same time.

docs/admin/networking/troubleshooting.md

+18-5
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,27 @@ the NAT configuration, or deploy an internal STUN server.
9595

9696
If a network interface on the side of either the client or agent has an MTU
9797
smaller than 1378, any direct connections form may have degraded quality or
98-
performance, as IP packets are fragmented. `coder ping` will indicate if this is
99-
the case by inspecting network interfaces on both the client and the workspace
100-
agent.
98+
might hang entirely.
10199

102-
If another interface cannot be used, and the MTU cannot be changed, you may need
103-
to disable direct connections, and relay all traffic via DERP instead, which
100+
Use `coder ping` to check for MTU issues, as it inspects
101+
network interfaces on both the client and the workspace agent:
102+
103+
```console
104+
$ coder ping my-workspace
105+
...
106+
Possible client-side issues with direct connection:
107+
108+
- Network interface utun0 has MTU 1280 (less than 1378), which may degrade the quality of direct connections or render them unusable.
109+
```
110+
111+
If another interface cannot be used, and the MTU cannot be changed, you should
112+
disable direct connections and relay all traffic via DERP instead, which
104113
will not be affected by the low MTU.
105114

115+
To disable direct connections, set the
116+
[`--block-direct-connections`](../../reference/cli/server.md#--block-direct-connections)
117+
flag or `CODER_BLOCK_DIRECT` environment variable on the Coder server.
118+
106119
## Throughput
107120

108121
The `coder speedtest <workspace>` command measures the throughput between the

go.mod

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ replace github.com/tcnksm/go-httpstat => github.com/coder/go-httpstat v0.0.0-202
3636

3737
// There are a few minor changes we make to Tailscale that we're slowly upstreaming. Compare here:
3838
// https://github.com/tailscale/tailscale/compare/main...coder:tailscale:main
39-
replace tailscale.com => github.com/coder/tailscale v1.1.1-0.20250410041146-e62bfe0e9301
39+
replace tailscale.com => github.com/coder/tailscale v1.1.1-0.20250422090654-5090e715905e
4040

4141
// This is replaced to include
4242
// 1. a fix for a data race: c.f. https://github.com/tailscale/wireguard-go/pull/25
@@ -102,7 +102,7 @@ require (
102102
github.com/coder/quartz v0.1.2
103103
github.com/coder/retry v1.5.1
104104
github.com/coder/serpent v0.10.0
105-
github.com/coder/terraform-provider-coder/v2 v2.4.0-pre1
105+
github.com/coder/terraform-provider-coder/v2 v2.4.0-pre1.0.20250417100258-c86bb5c3ddcd
106106
github.com/coder/websocket v1.8.13
107107
github.com/coder/wgtunnel v0.1.13-0.20240522110300-ade90dfb2da0
108108
github.com/coreos/go-oidc/v3 v3.14.1
@@ -488,7 +488,7 @@ require (
488488
)
489489

490490
require (
491-
github.com/coder/preview v0.0.0-20250417203026-7edcb9e02d99
491+
github.com/coder/preview v0.0.1
492492
github.com/kylecarbs/aisdk-go v0.0.5
493493
github.com/mark3labs/mcp-go v0.22.0
494494
)

go.sum

+6-6
Original file line numberDiff line numberDiff line change
@@ -909,8 +909,8 @@ github.com/coder/pq v1.10.5-0.20240813183442-0c420cb5a048 h1:3jzYUlGH7ZELIH4XggX
909909
github.com/coder/pq v1.10.5-0.20240813183442-0c420cb5a048/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
910910
github.com/coder/pretty v0.0.0-20230908205945-e89ba86370e0 h1:3A0ES21Ke+FxEM8CXx9n47SZOKOpgSE1bbJzlE4qPVs=
911911
github.com/coder/pretty v0.0.0-20230908205945-e89ba86370e0/go.mod h1:5UuS2Ts+nTToAMeOjNlnHFkPahrtDkmpydBen/3wgZc=
912-
github.com/coder/preview v0.0.0-20250417203026-7edcb9e02d99 h1:ek8akG49hG304Dsj6T+k8qd4t4rEjUyJ97EiQ9xqkYA=
913-
github.com/coder/preview v0.0.0-20250417203026-7edcb9e02d99/go.mod h1:nyq3UKfaBu4jmA6ddJH05kD5K6paHEMLpRmwLdYJctU=
912+
github.com/coder/preview v0.0.1 h1:2X5McKdMOZJILTIDf7qRplXKupT+91qTJBN67XUh5cA=
913+
github.com/coder/preview v0.0.1/go.mod h1:eInDmOdSDF8cxCvapIvYkGRzmzvcvGAFL1HYqcA4g+E=
914914
github.com/coder/quartz v0.1.2 h1:PVhc9sJimTdKd3VbygXtS4826EOCpB1fXoRlLnCrE+s=
915915
github.com/coder/quartz v0.1.2/go.mod h1:vsiCc+AHViMKH2CQpGIpFgdHIEQsxwm8yCscqKmzbRA=
916916
github.com/coder/retry v1.5.1 h1:iWu8YnD8YqHs3XwqrqsjoBTAVqT9ml6z9ViJ2wlMiqc=
@@ -919,12 +919,12 @@ github.com/coder/serpent v0.10.0 h1:ofVk9FJXSek+SmL3yVE3GoArP83M+1tX+H7S4t8BSuM=
919919
github.com/coder/serpent v0.10.0/go.mod h1:cZFW6/fP+kE9nd/oRkEHJpG6sXCtQ+AX7WMMEHv0Y3Q=
920920
github.com/coder/ssh v0.0.0-20231128192721-70855dedb788 h1:YoUSJ19E8AtuUFVYBpXuOD6a/zVP3rcxezNsoDseTUw=
921921
github.com/coder/ssh v0.0.0-20231128192721-70855dedb788/go.mod h1:aGQbuCLyhRLMzZF067xc84Lh7JDs1FKwCmF1Crl9dxQ=
922-
github.com/coder/tailscale v1.1.1-0.20250410041146-e62bfe0e9301 h1:RMo8EZAMYnM9+HtCBDvXbcgCf0t8Roo1ZLiy8fVuooQ=
923-
github.com/coder/tailscale v1.1.1-0.20250410041146-e62bfe0e9301/go.mod h1:1ggFFdHTRjPRu9Yc1yA7nVHBYB50w9Ce7VIXNqcW6Ko=
922+
github.com/coder/tailscale v1.1.1-0.20250422090654-5090e715905e h1:nope/SZfoLB9MCOB9wdCE6gW5+8l3PhFrDC5IWPL8bk=
923+
github.com/coder/tailscale v1.1.1-0.20250422090654-5090e715905e/go.mod h1:1ggFFdHTRjPRu9Yc1yA7nVHBYB50w9Ce7VIXNqcW6Ko=
924924
github.com/coder/terraform-config-inspect v0.0.0-20250107175719-6d06d90c630e h1:JNLPDi2P73laR1oAclY6jWzAbucf70ASAvf5mh2cME0=
925925
github.com/coder/terraform-config-inspect v0.0.0-20250107175719-6d06d90c630e/go.mod h1:Gz/z9Hbn+4KSp8A2FBtNszfLSdT2Tn/uAKGuVqqWmDI=
926-
github.com/coder/terraform-provider-coder/v2 v2.4.0-pre1 h1:jdpJAMk5EtkOmQFs9+hFC8eRxiEdrTrzwAzepiIejto=
927-
github.com/coder/terraform-provider-coder/v2 v2.4.0-pre1/go.mod h1:qKLEgjP/F5CPNEdvXJI+2ajaKBpK9lb/1HnH21wlCG0=
926+
github.com/coder/terraform-provider-coder/v2 v2.4.0-pre1.0.20250417100258-c86bb5c3ddcd h1:FsIG6Fd0YOEK7D0Hl/CJywRA+Y6Gd5RQbSIa2L+/BmE=
927+
github.com/coder/terraform-provider-coder/v2 v2.4.0-pre1.0.20250417100258-c86bb5c3ddcd/go.mod h1:56/KdGYaA+VbwXJbTI8CA57XPfnuTxN8rjxbR34PbZw=
928928
github.com/coder/trivy v0.0.0-20250409153844-e6b004bc465a h1:yryP7e+IQUAArlycH4hQrjXQ64eRNbxsV5/wuVXHgME=
929929
github.com/coder/trivy v0.0.0-20250409153844-e6b004bc465a/go.mod h1:dDvq9axp3kZsT63gY2Znd1iwzfqDq3kXbQnccIrjRYY=
930930
github.com/coder/websocket v1.8.13 h1:f3QZdXy7uGVz+4uCJy2nTZyM0yTBj8yANEHhqlXZ9FE=

helm/coder/tests/chart_test.go

+8
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,14 @@ var testCases = []testCase{
117117
name: "securitycontext",
118118
expectedError: "",
119119
},
120+
{
121+
name: "custom_resources",
122+
expectedError: "",
123+
},
124+
{
125+
name: "partial_resources",
126+
expectedError: "",
127+
},
120128
}
121129

122130
type testCase struct {

helm/coder/tests/testdata/auto_access_url_1.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,13 @@ spec:
181181
path: /healthz
182182
port: http
183183
scheme: HTTP
184-
resources: {}
184+
resources:
185+
limits:
186+
cpu: 2000m
187+
memory: 4096Mi
188+
requests:
189+
cpu: 2000m
190+
memory: 4096Mi
185191
securityContext:
186192
allowPrivilegeEscalation: false
187193
readOnlyRootFilesystem: null

helm/coder/tests/testdata/auto_access_url_1_coder.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,13 @@ spec:
181181
path: /healthz
182182
port: http
183183
scheme: HTTP
184-
resources: {}
184+
resources:
185+
limits:
186+
cpu: 2000m
187+
memory: 4096Mi
188+
requests:
189+
cpu: 2000m
190+
memory: 4096Mi
185191
securityContext:
186192
allowPrivilegeEscalation: false
187193
readOnlyRootFilesystem: null

helm/coder/tests/testdata/auto_access_url_2.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,13 @@ spec:
181181
path: /healthz
182182
port: http
183183
scheme: HTTP
184-
resources: {}
184+
resources:
185+
limits:
186+
cpu: 2000m
187+
memory: 4096Mi
188+
requests:
189+
cpu: 2000m
190+
memory: 4096Mi
185191
securityContext:
186192
allowPrivilegeEscalation: false
187193
readOnlyRootFilesystem: null

helm/coder/tests/testdata/auto_access_url_2_coder.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,13 @@ spec:
181181
path: /healthz
182182
port: http
183183
scheme: HTTP
184-
resources: {}
184+
resources:
185+
limits:
186+
cpu: 2000m
187+
memory: 4096Mi
188+
requests:
189+
cpu: 2000m
190+
memory: 4096Mi
185191
securityContext:
186192
allowPrivilegeEscalation: false
187193
readOnlyRootFilesystem: null

helm/coder/tests/testdata/auto_access_url_3.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,13 @@ spec:
179179
path: /healthz
180180
port: http
181181
scheme: HTTP
182-
resources: {}
182+
resources:
183+
limits:
184+
cpu: 2000m
185+
memory: 4096Mi
186+
requests:
187+
cpu: 2000m
188+
memory: 4096Mi
183189
securityContext:
184190
allowPrivilegeEscalation: false
185191
readOnlyRootFilesystem: null

helm/coder/tests/testdata/auto_access_url_3_coder.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,13 @@ spec:
179179
path: /healthz
180180
port: http
181181
scheme: HTTP
182-
resources: {}
182+
resources:
183+
limits:
184+
cpu: 2000m
185+
memory: 4096Mi
186+
requests:
187+
cpu: 2000m
188+
memory: 4096Mi
183189
securityContext:
184190
allowPrivilegeEscalation: false
185191
readOnlyRootFilesystem: null

helm/coder/tests/testdata/command.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,13 @@ spec:
179179
path: /healthz
180180
port: http
181181
scheme: HTTP
182-
resources: {}
182+
resources:
183+
limits:
184+
cpu: 2000m
185+
memory: 4096Mi
186+
requests:
187+
cpu: 2000m
188+
memory: 4096Mi
183189
securityContext:
184190
allowPrivilegeEscalation: false
185191
readOnlyRootFilesystem: null

helm/coder/tests/testdata/command_args.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,13 @@ spec:
180180
path: /healthz
181181
port: http
182182
scheme: HTTP
183-
resources: {}
183+
resources:
184+
limits:
185+
cpu: 2000m
186+
memory: 4096Mi
187+
requests:
188+
cpu: 2000m
189+
memory: 4096Mi
184190
securityContext:
185191
allowPrivilegeEscalation: false
186192
readOnlyRootFilesystem: null

helm/coder/tests/testdata/command_args_coder.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,13 @@ spec:
180180
path: /healthz
181181
port: http
182182
scheme: HTTP
183-
resources: {}
183+
resources:
184+
limits:
185+
cpu: 2000m
186+
memory: 4096Mi
187+
requests:
188+
cpu: 2000m
189+
memory: 4096Mi
184190
securityContext:
185191
allowPrivilegeEscalation: false
186192
readOnlyRootFilesystem: null

helm/coder/tests/testdata/command_coder.golden

+7-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,13 @@ spec:
179179
path: /healthz
180180
port: http
181181
scheme: HTTP
182-
resources: {}
182+
resources:
183+
limits:
184+
cpu: 2000m
185+
memory: 4096Mi
186+
requests:
187+
cpu: 2000m
188+
memory: 4096Mi
183189
securityContext:
184190
allowPrivilegeEscalation: false
185191
readOnlyRootFilesystem: null

0 commit comments

Comments
 (0)