Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DO NOT REVIEW/MERGE#16523

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Closed
dannykopping wants to merge417 commits intomainfromdk/prebuilds
Closed
Show file tree
Hide file tree
Changes fromall commits
Commits
Show all changes
417 commits
Select commitHold shift + click to select a range
7a991f7
fix tests
SasSwartMar 12, 2025
b40d37b
Implement missing dbauthz tests
dannykoppingMar 12, 2025
00616f5
Add migration fixtures for prebuilds
dannykoppingMar 12, 2025
41d1b66
Accounting for dbmem
dannykoppingMar 12, 2025
4afd88e
Merge branch 'main' of github.com:/coder/coder into dk/prebuilds
dannykoppingMar 12, 2025
8293890
Merge branch 'jjs/prebuilds-metrics' of github.com:/coder/coder into …
dannykoppingMar 12, 2025
e03231e
Removing migrations test in release.yaml in order to produce an Early…
dannykoppingMar 12, 2025
9359efa
Moving prebuilds owner ID to OSS package to prevent AGPL-violating im…
dannykoppingMar 12, 2025
d1708cb
Only warn on SSE failure when there is an actual failure
dannykoppingMar 12, 2025
287cb6e
Merge branch 'main' of github.com:/coder/coder into dk/prebuilds
dannykoppingMar 13, 2025
4b6d501
Implement and use restricted RBAC context
dannykoppingMar 13, 2025
3bbe40e
don't list prebuild user in org api queries
SasSwartMar 13, 2025
4ee53e2
prevent creation and modification of system users
SasSwartMar 13, 2025
5ecc277
add prebuilds system user database changes and associated changes
SasSwartMar 12, 2025
bc5f4f4
optionally prevent system users from counting to user count
dannykoppingMar 13, 2025
48c5372
appease the linter
dannykoppingMar 13, 2025
b16d126
add unit test for system user behaviour
dannykoppingMar 13, 2025
2c25542
reverting RBAC changes; not relevant here
dannykoppingMar 13, 2025
8e491d8
removing unnecessary changes
dannykoppingMar 13, 2025
514fdbf
exclude system user db tests from non-linux OSs
dannykoppingMar 13, 2025
390a1fd
feat: add migrations and queries to support prebuilds
SasSwartMar 12, 2025
6de93d1
Merge branch 'prebuilds-db' into dk/prebuilds
dannykoppingMar 14, 2025
5bed44c
Fixing e2e tests
dannykoppingMar 14, 2025
2a378b8
Simplify workspace_latest_build view
dannykoppingMar 14, 2025
cc7fcf1
Remove redundant comment
dannykoppingMar 15, 2025
fca64aa
Merge remote-tracking branch 'origin/main' into dk/prebuilds
SasSwartMar 17, 2025
16593a4
Merge branch 'dk/prebuilds' of github.com:/coder/coder into dk/prebuilds
dannykoppingMar 17, 2025
300e80f
add prebuilds system user database changes and associated changes
SasSwartMar 12, 2025
b788237
optionally prevent system users from counting to user count
dannykoppingMar 13, 2025
8122595
appease the linter
dannykoppingMar 13, 2025
bfb7c28
add unit test for system user behaviour
dannykoppingMar 13, 2025
6639167
reverting RBAC changes; not relevant here
dannykoppingMar 13, 2025
769ae1d
removing unnecessary changes
dannykoppingMar 13, 2025
e7e9c27
exclude system user db tests from non-linux OSs
dannykoppingMar 13, 2025
3936047
Rename prebuild system user reference
SasSwartMar 17, 2025
8bdcafb
ensure that users.IsSystem is not nullable
SasSwartMar 17, 2025
412d198
feat: add migrations and queries to support prebuilds
SasSwartMar 12, 2025
51773ec
Simplify workspace_latest_build view
dannykoppingMar 14, 2025
b1899dd
Simplify workspace_latest_build view
dannykoppingMar 14, 2025
fb7a168
Rename prebuild system user reference
SasSwartMar 17, 2025
b0d7403
ensure that users.IsSystem is not nullable
SasSwartMar 17, 2025
b1b0f59
Merge branch 'main' of github.com:/coder/coder into dk/prebuilds
dannykoppingMar 17, 2025
c11086d
Rename prebuild system user reference
dannykoppingMar 17, 2025
23773c2
Revert test change
dannykoppingMar 17, 2025
bc3ff44
make gen
dannykoppingMar 17, 2025
7ff747e
mark prebuilds as such and set their preset ids
SasSwartMar 17, 2025
3939fdc
Merge branch 'main' of github.com:/coder/coder into dk/prebuilds
dannykoppingMar 18, 2025
436db15
Account for shit happening
dannykoppingMar 18, 2025
899a7e7
Change prebuilds system user login type to none
SasSwartMar 18, 2025
9c04f21
make -B gen
SasSwartMar 18, 2025
63c624b
change prebuild user login type to none
SasSwartMar 18, 2025
baa3076
refactor: add comments to SQL queries
evgeniy-scherbinaMar 19, 2025
ed14fb3
test: added get-presets-backoff test
evgeniy-scherbinaMar 20, 2025
3cc74fb
refactor: add comment to SQL query
evgeniy-scherbinaMar 20, 2025
fc32154
refactor: add comments + improve tests
evgeniy-scherbinaMar 21, 2025
d7b4ec4
fix: bug in SQL
evgeniy-scherbinaMar 21, 2025
e8b53f7
test: minor changes to the test
evgeniy-scherbinaMar 21, 2025
9df6554
refactor: remove job_status from SQL query
evgeniy-scherbinaMar 21, 2025
ccc309e
refactor: embed preset_prebuilds table into presets table
evgeniy-scherbinaMar 21, 2025
ee1f16a
refactor: rename sql table
evgeniy-scherbinaMar 21, 2025
d040ddd
refactor: remove unnecessary JOIN
evgeniy-scherbinaMar 23, 2025
83a6722
refactor: remove unnecessary JOIN
evgeniy-scherbinaMar 23, 2025
cd70710
refactor: use INNER JOIN for consistency
evgeniy-scherbinaMar 23, 2025
97cc4ff
refactor: simplify GetPresetsBackoff SQL Query
evgeniy-scherbinaMar 24, 2025
4d59039
Revert "refactor: simplify GetPresetsBackoff SQL Query"
evgeniy-scherbinaMar 24, 2025
205d6af
refactor: improve GetPresetsBackoff query
evgeniy-scherbinaMar 24, 2025
4dafd37
Merge remote-tracking branch 'origin/main' into dk/prebuilds
SasSwartMar 25, 2025
c094be5
Merge remote-tracking branch 'origin/main' into dk/prebuilds
SasSwartMar 25, 2025
e489e1b
Merge remote-tracking branch 'origin/main' into prebuilds-db
evgeniy-scherbinaMar 25, 2025
1b29686
Merge remote-tracking branch 'origin/main' into prebuilds-db
evgeniy-scherbinaMar 25, 2025
20470e4
fix: bump migration numbers
evgeniy-scherbinaMar 25, 2025
7b9c8ce
test: remove deprecated test
evgeniy-scherbinaMar 25, 2025
e189a0b
fix: fix linter
evgeniy-scherbinaMar 25, 2025
692c0e5
fix: fix 000310_prebuilds.down migration
evgeniy-scherbinaMar 25, 2025
f747db0
fix: fix fixture migration
evgeniy-scherbinaMar 25, 2025
3166a42
fix: fix get-presets-backoff test
evgeniy-scherbinaMar 25, 2025
aa6b490
fix: fix linter
evgeniy-scherbinaMar 25, 2025
bc4e7d2
fix: fix linter
evgeniy-scherbinaMar 25, 2025
0d03de7
Merge branch 'prebuilds-db' into dk/prebuilds
evgeniy-scherbinaMar 25, 2025
8cc1fe5
Fixes after merge with prebuilds-db
evgeniy-scherbinaMar 25, 2025
d78a4c3
make -B gen and fix tests
SasSwartMar 26, 2025
fae6e9c
correctly select for the latest built with a preset in latest_prebuil…
SasSwartMar 26, 2025
f167b92
correctly select for the latest built with a preset in latest_prebuil…
SasSwartMar 26, 2025
fa4f91a
refactor: rename CTE
evgeniy-scherbinaMar 26, 2025
67c7c71
add organization name labels to prebuilds metrics
SasSwartMar 26, 2025
60a170a
fix: support multiple agents per workspace
evgeniy-scherbinaMar 26, 2025
acdbb06
refactor: update comment for SQL query
evgeniy-scherbinaMar 26, 2025
84dd78d
add tests for deleted template prebuilds
SasSwartMar 26, 2025
8fd34ab
Merge remote-tracking branch 'origin/main' into prebuilds-db
SasSwartMar 26, 2025
9c1ea00
Merge branch 'main' of https://github.com/coder/coder into dk/prebuilds
SasSwartMar 26, 2025
7a8ec49
Properly label and filter metrics for prebuilds
SasSwartMar 26, 2025
a64d661
test: fix db tests
evgeniy-scherbinaMar 27, 2025
fd9df33
test: added tests for workspaces with multiple agents
evgeniy-scherbinaMar 27, 2025
7b701ef
refactor: avoid code duplication
evgeniy-scherbinaMar 27, 2025
c88f105
clarify query clause
SasSwartMar 27, 2025
a7ac2b1
tidy up dbauthz_test.go
SasSwartMar 27, 2025
e39e22a
refactor: remove * usage from prebuilds.sql queries
evgeniy-scherbinaMar 27, 2025
40140f5
refactor: remove * usage from prebuilds views
evgeniy-scherbinaMar 27, 2025
176855f
refactor: join wlb with pj
evgeniy-scherbinaMar 27, 2025
f953e57
refactor: Rename SQL query
evgeniy-scherbinaMar 27, 2025
8716619
Added comments for SQL query
evgeniy-scherbinaMar 27, 2025
c787cd2
test: added tests for workspaces with multiple agents
evgeniy-scherbinaMar 27, 2025
bd38603
refactor: avoid code duplication
evgeniy-scherbinaMar 27, 2025
097f9c3
clarify query clause
SasSwartMar 27, 2025
4cfdd6f
tidy up dbauthz_test.go
SasSwartMar 27, 2025
4a34d52
refactor: remove * usage from prebuilds.sql queries
evgeniy-scherbinaMar 27, 2025
8d9cd45
refactor: remove * usage from prebuilds views
evgeniy-scherbinaMar 27, 2025
f870d7e
refactor: join wlb with pj
evgeniy-scherbinaMar 27, 2025
18ad931
refactor: Rename SQL query
evgeniy-scherbinaMar 27, 2025
4667171
Added comments for SQL query
evgeniy-scherbinaMar 27, 2025
8cdd768
refactor: fix down migration
evgeniy-scherbinaMar 27, 2025
a26c094
refactor: fix down migration
evgeniy-scherbinaMar 27, 2025
dd6064c
Merge remote-tracking branch 'origin/main' into dk/prebuilds
SasSwartMar 28, 2025
6ed4121
Merge remote-tracking branch 'origin/main' into prebuilds-db
SasSwartMar 28, 2025
2312f41
renumber migrations
SasSwartMar 28, 2025
8da7f47
Merge remote-tracking branch 'origin/prebuilds-db' into 16930
SasSwartMar 28, 2025
4d4c9f8
refactor: clarify comment for SQL query
evgeniy-scherbinaMar 28, 2025
568e5b3
refactor: fix indentations
evgeniy-scherbinaMar 28, 2025
af8b42c
refactor: rename helper func in test package
evgeniy-scherbinaMar 28, 2025
eac23f2
refactor: database level tests
evgeniy-scherbinaMar 28, 2025
6ba5862
refactor: database level tests
evgeniy-scherbinaMar 28, 2025
34e8cda
refactor: helper funcs in db-level tests
evgeniy-scherbinaMar 28, 2025
db61f9e
refactor: minor improvement in SQL query
evgeniy-scherbinaMar 28, 2025
eef1ad0
refactor: rename SQL queries
evgeniy-scherbinaMar 28, 2025
55791e0
refactor: rename SQL queries
evgeniy-scherbinaMar 28, 2025
d549c2b
refactor: rename fields in SQL query
evgeniy-scherbinaMar 31, 2025
5150a5c
refactor: clarify comment for SQL query
evgeniy-scherbinaMar 28, 2025
bff34ea
refactor: fix indentations
evgeniy-scherbinaMar 28, 2025
ef462b6
refactor: rename helper func in test package
evgeniy-scherbinaMar 28, 2025
dc45165
refactor: database level tests
evgeniy-scherbinaMar 28, 2025
9c8a352
refactor: database level tests
evgeniy-scherbinaMar 28, 2025
eb80919
refactor: helper funcs in db-level tests
evgeniy-scherbinaMar 28, 2025
0b2bbee
refactor: minor improvement in SQL query
evgeniy-scherbinaMar 28, 2025
3a97bf6
refactor: rename SQL queries
evgeniy-scherbinaMar 28, 2025
2eeb884
refactor: rename SQL queries
evgeniy-scherbinaMar 28, 2025
73f99e8
refactor: rename fields in SQL query
evgeniy-scherbinaMar 31, 2025
c942753
add tests to ensure workspace builds that include a preset have it se…
SasSwartApr 1, 2025
9badf7c
test to ensure we mark prebuilds as such
SasSwartApr 1, 2025
6763ba2
make -B gen fmt
SasSwartApr 1, 2025
e5117d7
add template_version_preset_id to mock types
SasSwartApr 1, 2025
dfec884
Merge branch 'prebuilds-db' into 16930
SasSwartApr 1, 2025
5065ad6
fix dbmem tests
SasSwartApr 1, 2025
e354956
review notes. mostly rename isPrebuild to prebuild
SasSwartApr 1, 2025
9c4623a
fix: improve rbac policies
evgeniy-scherbinaApr 1, 2025
db65b8b
fix: minor fix in filtered_builds CTE
evgeniy-scherbinaApr 1, 2025
f3c9e06
fix: formatting
evgeniy-scherbinaApr 2, 2025
be27a98
refactor: minor refactoring
evgeniy-scherbinaApr 2, 2025
3e52186
fix: handle presets with the same tv.id and name
evgeniy-scherbinaApr 2, 2025
bb62a7c
fix: redefine RBAC permissions for prebuilds
evgeniy-scherbinaApr 2, 2025
9c4b268
test: fix dbmem tests
evgeniy-scherbinaApr 2, 2025
941424a
test: fix dbmem tests
evgeniy-scherbinaApr 2, 2025
c1bb945
fix: linter
evgeniy-scherbinaApr 2, 2025
1412600
fix: linter
evgeniy-scherbinaApr 2, 2025
38ce101
fix: linter
evgeniy-scherbinaApr 2, 2025
4d3aab6
Merge remote-tracking branch 'origin/main' into yevhenii/510-reconcil…
evgeniy-scherbinaApr 4, 2025
97b3886
fix dbmem tests
SasSwartApr 1, 2025
fe60b56
feat: implement reconciliation loop
evgeniy-scherbinaApr 4, 2025
eeb0407
refactor: temporary commit - tests are passing
evgeniy-scherbinaApr 7, 2025
d89f954
Merge remote-tracking branch 'origin/main' into 16930
SasSwartApr 9, 2025
e807d02
refactor: remove DeterminePrebuildsState lock
evgeniy-scherbinaApr 9, 2025
d78675e
refactor: use TryAcquireLock
evgeniy-scherbinaApr 9, 2025
7f60a5d
refactor: Verify ActionType in state_test.go
evgeniy-scherbinaApr 9, 2025
8f5c9f9
refactor: minor refactor
evgeniy-scherbinaApr 9, 2025
42582e1
refactor: minor refactoring
evgeniy-scherbinaApr 9, 2025
14d924c
added comments
evgeniy-scherbinaApr 9, 2025
82e016c
mark prebuilds as such and set their preset ids
SasSwartMar 17, 2025
c03ea52
add tests to ensure workspace builds that include a preset have it se…
SasSwartApr 1, 2025
3693d45
test to ensure we mark prebuilds as such
SasSwartApr 1, 2025
beb814f
make -B gen fmt
SasSwartApr 1, 2025
a5418ac
add template_version_preset_id to mock types
SasSwartApr 1, 2025
f4f9b17
fix dbmem tests
SasSwartApr 1, 2025
d11fd58
go mod tidy && make -B gen
SasSwartApr 10, 2025
31d3bf6
test: added few more tests
evgeniy-scherbinaApr 10, 2025
5007a83
refactor: remove redundant check for consistency
evgeniy-scherbinaApr 10, 2025
a79fe4c
refactor: use slice.Find instead of slice.Filter for backoff
evgeniy-scherbinaApr 10, 2025
c0246f4
refactor: make sure InProgress works on preset level as well
evgeniy-scherbinaApr 10, 2025
ed608cb
refactor: remove irrelevant comment
evgeniy-scherbinaApr 10, 2025
70223e4
refactor: add BackoffUntil to validateActions func
evgeniy-scherbinaApr 10, 2025
07808c2
refactor: CR's fixes
evgeniy-scherbinaApr 10, 2025
a2ceeb6
refactor: CR's fixes
evgeniy-scherbinaApr 10, 2025
73fb414
Remove todo
evgeniy-scherbinaApr 10, 2025
7e9c65f
minor refactoring
evgeniy-scherbinaApr 10, 2025
2ca8030
refactor: remove deprecated TODOs
evgeniy-scherbinaApr 10, 2025
ce83f92
refactor: slighly adjust comment
evgeniy-scherbinaApr 10, 2025
3bc4d8a
refactor: CR fixes
evgeniy-scherbinaApr 10, 2025
2986574
Remove deprecated TODO
evgeniy-scherbinaApr 10, 2025
aa22a8a
refactor: update comments
evgeniy-scherbinaApr 10, 2025
f41b19e
refactor: remove deprecated TODO
evgeniy-scherbinaApr 10, 2025
61a88e4
deduplicate test and add back proto field
SasSwartApr 11, 2025
9ac7a2c
refactor: add RunLoop test
evgeniy-scherbinaApr 11, 2025
d0c2094
Merge remote-tracking branch 'origin/16930' into yevhenii/510-reconci…
evgeniy-scherbinaApr 11, 2025
474fc06
Fixes after merge
evgeniy-scherbinaApr 11, 2025
9fac5d7
refactor: simplify SQL query
evgeniy-scherbinaApr 11, 2025
868d0b6
refactor
evgeniy-scherbinaApr 11, 2025
5f204f2
minor fix
evgeniy-scherbinaApr 11, 2025
40b3e5f
minor fix
evgeniy-scherbinaApr 11, 2025
5e3adbc
make fmt
evgeniy-scherbinaApr 11, 2025
108720f
make lint
evgeniy-scherbinaApr 11, 2025
9d8f6b1
chore: fix gpg forwarding test (#17355)
deansheatherApr 11, 2025
b994eec
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
eff754e
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
4b052be
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
bc5297c
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
0989636
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
2b57ac4
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
41d7e07
fix: linter
evgeniy-scherbinaApr 11, 2025
ab5fa8f
fix: linter
evgeniy-scherbinaApr 11, 2025
f485bc0
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
074f768
refactor: fix linter
evgeniy-scherbinaApr 11, 2025
a47627a
refactor: fix imports
evgeniy-scherbinaApr 11, 2025
eebb298
refactor: fix SQL comment
evgeniy-scherbinaApr 14, 2025
9a672dd
refactor: rename dblock
evgeniy-scherbinaApr 14, 2025
c2f4561
Merge remote-tracking branch 'origin/main' into yevhenii/510-reconcil…
evgeniy-scherbinaApr 14, 2025
62fb3f4
refactor: add test when create-prebuild helper fails
evgeniy-scherbinaApr 14, 2025
1d695cc
Merge branch 'main' of github.com:/coder/coder into dk/prebuilds
dannykoppingApr 15, 2025
742d0d3
refactor: add additional check for create-prebuilds flow
evgeniy-scherbinaApr 15, 2025
f3e24b1
refactor: minor fixes in util.go
evgeniy-scherbinaApr 15, 2025
08aed24
refactor: minor fix in noop.go
evgeniy-scherbinaApr 15, 2025
951c8b5
refactor: add TestFilter in util/slice package
evgeniy-scherbinaApr 15, 2025
9c1e82f
refactor: add doc comments
evgeniy-scherbinaApr 15, 2025
46e240c
refactor: update comment
evgeniy-scherbinaApr 16, 2025
6dc1f68
fix: minor bug and add correspoding test
evgeniy-scherbinaApr 16, 2025
23964aa
fix: minor fix for logging
evgeniy-scherbinaApr 16, 2025
0a4d053
fix: CR's fixes
evgeniy-scherbinaApr 16, 2025
98d203d
fix: CR's fixes
evgeniy-scherbinaApr 16, 2025
145b9ff
fix: CR's fixes
evgeniy-scherbinaApr 16, 2025
8b91668
CR's fixes
evgeniy-scherbinaApr 16, 2025
cccdab2
Update coderd/prebuilds/preset_snapshot_test.go
evgeniy-scherbinaApr 16, 2025
a2e5643
Update coderd/prebuilds/preset_snapshot_test.go
evgeniy-scherbinaApr 16, 2025
1771c84
refactor: CR's fixes
evgeniy-scherbinaApr 16, 2025
1fc551d
refactor: CR's fixes
evgeniy-scherbinaApr 16, 2025
d99c5cb
refactor: CR's fixes
evgeniy-scherbinaApr 16, 2025
b98ccd4
fix: make sure prebuild is owned by prebuild user before deleting
evgeniy-scherbinaApr 16, 2025
936cc38
refactor: CR's fixes
evgeniy-scherbinaApr 16, 2025
32da1ab
refactor: CR's fixes
evgeniy-scherbinaApr 16, 2025
5a403c0
Update enterprise/coderd/prebuilds/reconcile.go
evgeniy-scherbinaApr 16, 2025
908e6eb
refactor: CR's fixes
evgeniy-scherbinaApr 16, 2025
77e4472
refactor: CR's fixes
evgeniy-scherbinaApr 17, 2025
853af80
refactor: CR's fixes
evgeniy-scherbinaApr 17, 2025
172177f
Merge remote-tracking branch 'origin/main' into yevhenii/510-reconcil…
evgeniy-scherbinaApr 17, 2025
93c2bc5
Merge branch 'yevhenii/510-reconciliation-loop-v2-before-reducing' in…
evgeniy-scherbinaApr 17, 2025
b2f6946
run make gen
evgeniy-scherbinaApr 17, 2025
967a37d
Rename counter metrics to match best-practice naming
dannykoppingApr 18, 2025
efcc2a2
Merge branch 'dk/prebuilds' of github.com:/coder/coder into dk/prebuilds
dannykoppingApr 18, 2025
ada06ec
Merge branch 'main' of github.com:/coder/coder into dk/prebuilds
dannykoppingApr 21, 2025
0898097
Merge branch 'main' of github.com:/coder/coder into dk/prebuilds
dannykoppingApr 22, 2025
fd08cee
Merge branch 'main' of github.com:coder/coder into dk/prebuilds
dannykoppingApr 22, 2025
978a1ee
Fixing tests after minor UI updates
dannykoppingApr 22, 2025
8ecf5a6
Add explanation for findNewBuildParameterValue
dannykoppingApr 24, 2025
e49f1d1
Merge remote-tracking branch 'origin/main' into dk/prebuilds
evgeniy-scherbinaApr 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions.github/workflows/release.yaml
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -34,7 +34,7 @@ env:
jobs:
# build-dylib is a separate job to build the dylib on macOS.
build-dylib:
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest' }}
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest'}}
steps:
# Harden Runner doesn't work on macOS.
- name: Checkout
Expand DownExpand Up@@ -279,9 +279,9 @@ jobs:
env:
EV_SIGNING_CERT: ${{ secrets.EV_SIGNING_CERT }}

- name: Test migrations from current ref to main
run: |
POSTGRES_VERSION=13 make test-migrations
# - name: Test migrations from current ref to main
# run: |
# POSTGRES_VERSION=13 make test-migrations

# Setup GCloud for signing Windows binaries.
- name: Authenticate to Google Cloud
Expand Down
16 changes: 12 additions & 4 deletionsagent/agent.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -36,6 +36,9 @@ import (
"tailscale.com/util/clientmetric"

"cdr.dev/slog"

"github.com/coder/retry"

"github.com/coder/clistat"
"github.com/coder/coder/v2/agent/agentcontainers"
"github.com/coder/coder/v2/agent/agentexec"
Expand All@@ -53,7 +56,6 @@ import (
"github.com/coder/coder/v2/tailnet"
tailnetproto "github.com/coder/coder/v2/tailnet/proto"
"github.com/coder/quartz"
"github.com/coder/retry"
)

const (
Expand DownExpand Up@@ -365,9 +367,11 @@ func (a *agent) runLoop() {
if ctx.Err() != nil {
// Context canceled errors may come from websocket pings, so we
// don't want to use `errors.Is(err, context.Canceled)` here.
a.logger.Warn(ctx, "runLoop exited with error", slog.Error(ctx.Err()))
return
}
if a.isClosed() {
a.logger.Warn(ctx, "runLoop exited because agent is closed")
return
}
if errors.Is(err, io.EOF) {
Expand DownExpand Up@@ -1048,7 +1052,11 @@ func (a *agent) run() (retErr error) {
return a.statsReporter.reportLoop(ctx, aAPI)
})

return connMan.wait()
err = connMan.wait()
if err != nil {
a.logger.Warn(context.Background(), "connection manager errored", slog.Error(err))
}
return err
}

// handleManifest returns a function that fetches and processes the manifest
Expand DownExpand Up@@ -2005,7 +2013,7 @@ func (a *apiConnRoutineManager) startAgentAPI(
a.eg.Go(func() error {
logger.Debug(ctx, "starting agent routine")
err := f(ctx, a.aAPI)
ifxerrors.Is(err, context.Canceled) && ctx.Err() != nil {
iferrors.Is(err, context.Canceled) && ctx.Err() != nil {
logger.Debug(ctx, "swallowing context canceled")
// Don't propagate context canceled errors to the error group, because we don't want the
// graceful context being canceled to halt the work of routines with
Expand DownExpand Up@@ -2042,7 +2050,7 @@ func (a *apiConnRoutineManager) startTailnetAPI(
a.eg.Go(func() error {
logger.Debug(ctx, "starting tailnet routine")
err := f(ctx, a.tAPI)
ifxerrors.Is(err, context.Canceled) && ctx.Err() != nil {
iferrors.Is(err, context.Canceled) && ctx.Err() != nil {
logger.Debug(ctx, "swallowing context canceled")
// Don't propagate context canceled errors to the error group, because we don't want the
// graceful context being canceled to halt the work of routines with
Expand Down
1 change: 1 addition & 0 deletionsagent/agenttest/client.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,6 +21,7 @@ import (
"tailscale.com/tailcfg"

"cdr.dev/slog"

agentproto "github.com/coder/coder/v2/agent/proto"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/codersdk/agentsdk"
Expand Down
10 changes: 10 additions & 0 deletionsagent/metrics.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,7 @@ type agentMetrics struct {
// took to run. This is reported once per agent.
startupScriptSeconds *prometheus.GaugeVec
currentConnections *prometheus.GaugeVec
manifestsReceived prometheus.Counter
}

func newAgentMetrics(registerer prometheus.Registerer) *agentMetrics {
Expand DownExpand Up@@ -54,11 +55,20 @@ func newAgentMetrics(registerer prometheus.Registerer) *agentMetrics {
}, []string{"connection_type"})
registerer.MustRegister(currentConnections)

manifestsReceived := prometheus.NewCounter(prometheus.CounterOpts{
Namespace: "coderd",
Subsystem: "agentstats",
Name: "manifests_received",
Help: "The number of manifests this agent has received from the control plane.",
})
registerer.MustRegister(manifestsReceived)

return &agentMetrics{
connectionsTotal: connectionsTotal,
reconnectingPTYErrors: reconnectingPTYErrors,
startupScriptSeconds: startupScriptSeconds,
currentConnections: currentConnections,
manifestsReceived: manifestsReceived,
}
}

Expand Down
5 changes: 5 additions & 0 deletionsagent/reaper/reaper_unix.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,6 +3,7 @@
package reaper

import (
"fmt"
"os"
"os/signal"
"syscall"
Expand All@@ -29,6 +30,10 @@ func catchSignals(pid int, sigs []os.Signal) {
s := <-sc
sig, ok := s.(syscall.Signal)
if ok {
// TODO:
// Tried using a logger here but the I/O streams are already closed at this point...
// Why is os.Stderr still working then?
_, _ = fmt.Fprintf(os.Stderr, "reaper caught %q signal, killing process %v\n", sig.String(), pid)
_ = syscall.Kill(pid, sig)
}
}
Expand Down
130 changes: 89 additions & 41 deletionscli/agent.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,12 +19,16 @@
"golang.org/x/xerrors"
"gopkg.in/natefinch/lumberjack.v2"

"github.com/coder/retry"

"github.com/prometheus/client_golang/prometheus"

"cdr.dev/slog"
"cdr.dev/slog/sloggers/sloghuman"
"cdr.dev/slog/sloggers/slogjson"
"cdr.dev/slog/sloggers/slogstackdriver"
"github.com/coder/serpent"

"github.com/coder/coder/v2/agent"
"github.com/coder/coder/v2/agent/agentcontainers"
"github.com/coder/coder/v2/agent/agentexec"
Expand All@@ -34,7 +38,6 @@
"github.com/coder/coder/v2/cli/clilog"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/codersdk/agentsdk"
"github.com/coder/serpent"
)

func (r *RootCmd) workspaceAgent() *serpent.Command {
Expand DownExpand Up@@ -63,8 +66,10 @@
// This command isn't useful to manually execute.
Hidden: true,
Handler: func(inv *serpent.Invocation) error {
ctx, cancel := context.WithCancel(inv.Context())
defer cancel()
ctx, cancel := context.WithCancelCause(inv.Context())
defer func() {
cancel(xerrors.New("defer"))
}()

var (
ignorePorts = map[int]string{}
Expand DownExpand Up@@ -281,7 +286,6 @@
return xerrors.Errorf("add executable to $PATH: %w", err)
}

prometheusRegistry := prometheus.NewRegistry()
subsystemsRaw := inv.Environ.Get(agent.EnvAgentSubsystem)
subsystems := []codersdk.AgentSubsystem{}
for _, s := range strings.Split(subsystemsRaw, ",") {
Expand DownExpand Up@@ -328,46 +332,90 @@
containerLister = agentcontainers.NewDocker(execer)
}

agnt := agent.New(agent.Options{
Client: client,
Logger: logger,
LogDir: logDir,
ScriptDataDir: scriptDataDir,
// #nosec G115 - Safe conversion as tailnet listen port is within uint16 range (0-65535)
TailnetListenPort: uint16(tailnetListenPort),
ExchangeToken: func(ctx context.Context) (string, error) {
if exchangeToken == nil {
return client.SDK.SessionToken(), nil
// TODO: timeout ok?
reinitCtx, reinitCancel := context.WithTimeout(context.Background(), time.Hour*24)
defer reinitCancel()
reinitEvents := make(chan agentsdk.ReinitializationResponse)

go func() {
// Retry to wait for reinit, main context cancels the retrier.
for retrier := retry.New(100*time.Millisecond, 10*time.Second); retrier.Wait(ctx); {
select {
case <-reinitCtx.Done():
return
default:
}
resp, err := exchangeToken(ctx)

err := client.WaitForReinit(reinitCtx, reinitEvents)
if err != nil {
return "", err
logger.Error(ctx, "failed to wait for reinit instructions, will retry",slog.Error(err))
}
client.SetSessionToken(resp.SessionToken)
return resp.SessionToken, nil
},
EnvironmentVariables: environmentVariables,
IgnorePorts: ignorePorts,
SSHMaxTimeout: sshMaxTimeout,
Subsystems: subsystems,

PrometheusRegistry: prometheusRegistry,
BlockFileTransfer: blockFileTransfer,
Execer: execer,
ContainerLister: containerLister,

ExperimentalDevcontainersEnabled: experimentalDevcontainersEnabled,
})

promHandler := agent.PrometheusMetricsHandler(prometheusRegistry, logger)
prometheusSrvClose := ServeHandler(ctx, logger, promHandler, prometheusAddress, "prometheus")
defer prometheusSrvClose()

debugSrvClose := ServeHandler(ctx, logger, agnt.HTTPDebug(), debugAddress, "debug")
defer debugSrvClose()

<-ctx.Done()
return agnt.Close()
}
}()

var (
lastErr error
mustExit bool
)
for {
prometheusRegistry := prometheus.NewRegistry()

agnt := agent.New(agent.Options{
Client: client,
Logger: logger,
LogDir: logDir,
ScriptDataDir: scriptDataDir,
// #nosec G115 - Safe conversion as tailnet listen port is within uint16 range (0-65535)
TailnetListenPort: uint16(tailnetListenPort),
ExchangeToken: func(ctx context.Context) (string, error) {
if exchangeToken == nil {
return client.SDK.SessionToken(), nil
}
resp, err := exchangeToken(ctx)
if err != nil {
return "", err
}
client.SetSessionToken(resp.SessionToken)
return resp.SessionToken, nil
},
EnvironmentVariables: environmentVariables,
IgnorePorts: ignorePorts,
SSHMaxTimeout: sshMaxTimeout,
Subsystems: subsystems,

PrometheusRegistry: prometheusRegistry,
BlockFileTransfer: blockFileTransfer,
Execer: execer,
ContainerLister: containerLister,
ExperimentalDevcontainersEnabled: experimentalDevcontainersEnabled,
})

promHandler := agent.PrometheusMetricsHandler(prometheusRegistry, logger)
prometheusSrvClose := ServeHandler(ctx, logger, promHandler, prometheusAddress, "prometheus")

debugSrvClose := ServeHandler(ctx, logger, agnt.HTTPDebug(), debugAddress, "debug")

select {
case <-ctx.Done():
logger.Warn(ctx, "agent shutting down", slog.Error(ctx.Err()), slog.F("cause", context.Cause(ctx)))

Check failure on line 400 in cli/agent.go

View workflow job for this annotation

GitHub Actions/ lint

ruleguard: Error should be logged using "slog.Error" instead. (gocritic)
mustExit = true
case event := <-reinitEvents:
logger.Warn(ctx, "agent received instruction to reinitialize",
slog.F("message", event.Message), slog.F("reason", event.Reason))
}

lastErr = agnt.Close()
debugSrvClose()
prometheusSrvClose()

if mustExit {
reinitCancel()
break
}

logger.Info(ctx, "reinitializing...")

Check failure on line 416 in cli/agent.go

View workflow job for this annotation

GitHub Actions/ lint

ruleguard: Message "reinitializing..." must start with lowercase, and does not end with a special characters. (gocritic)
}
return lastErr
},
}

Expand Down
6 changes: 6 additions & 0 deletionscli/testdata/coder_server_--help.golden
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -670,6 +670,12 @@ workspaces stopping during the day due to template scheduling.
must be *. Only one hour and minute can be specified (ranges or comma
separated values are not supported).

WORKSPACE PREBUILDS OPTIONS:
Configure how workspace prebuilds behave.

--workspace-prebuilds-reconciliation-interval duration, $CODER_WORKSPACE_PREBUILDS_RECONCILIATION_INTERVAL (default: 15s)
How often to reconcile workspace prebuilds state.

⚠️ DANGEROUS OPTIONS:
--dangerous-allow-path-app-sharing bool, $CODER_DANGEROUS_ALLOW_PATH_APP_SHARING
Allow workspace apps that are not served from subdomains to be shared.
Expand Down
12 changes: 12 additions & 0 deletionscli/testdata/server-config.yaml.golden
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,3 +688,15 @@ notifications:
# How often to query the database for queued notifications.
# (default: 15s, type: duration)
fetchInterval: 15s
# Configure how workspace prebuilds behave.
workspace_prebuilds:
# How often to reconcile workspace prebuilds state.
# (default: 15s, type: duration)
reconciliation_interval: 15s
# Interval to increase reconciliation backoff by when unrecoverable errors occur.
# (default: 15s, type: duration)
reconciliation_backoff_interval: 15s
# Interval to look back to determine number of failed builds, which influences
# backoff.
# (default: 1h0m0s, type: duration)
reconciliation_backoff_lookback_period: 1h0m0s
2 changes: 2 additions & 0 deletionscoderd/agentapi/api.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -109,6 +109,8 @@ func New(opts Options) *API {
Database: opts.Database,
DerpMapFn: opts.DerpMapFn,
WorkspaceID: opts.WorkspaceID,
Log: opts.Log.Named("manifests"),
Pubsub: opts.Pubsub,
}

api.AnnouncementBannerAPI = &AnnouncementBannerAPI{
Expand Down
6 changes: 6 additions & 0 deletionscoderd/agentapi/manifest.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,6 +8,10 @@ import (
"strings"
"time"

"cdr.dev/slog"

"github.com/coder/coder/v2/coderd/database/pubsub"

"github.com/google/uuid"
"golang.org/x/sync/errgroup"
"golang.org/x/xerrors"
Expand DownExpand Up@@ -35,6 +39,8 @@ type ManifestAPI struct {
AgentFn func(context.Context) (database.WorkspaceAgent, error)
Database database.Store
DerpMapFn func() *tailcfg.DERPMap
Pubsub pubsub.Pubsub
Log slog.Logger
}

func (a *ManifestAPI) GetManifest(ctx context.Context, _ *agentproto.GetManifestRequest) (*agentproto.Manifest, error) {
Expand Down
Loading
Loading

[8]ページ先頭

©2009-2025 Movatter.jp