forked from juanfont/headscale
-
Notifications
You must be signed in to change notification settings - Fork 1
Update flake.lock #12
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
github-actions
wants to merge
1
commit into
main
Choose a base branch
from
update_flake_lock_action
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2c0ce4c to
e28732e
Compare
0dfd0e1 to
cb167b5
Compare
cb167b5 to
d35b547
Compare
d35b547 to
4307e8e
Compare
4307e8e to
be01719
Compare
be01719 to
1948481
Compare
1948481 to
2386524
Compare
2386524 to
0c5117f
Compare
1be3a33 to
16dd697
Compare
16dd697 to
395ade4
Compare
395ade4 to
1256178
Compare
a22a3f4 to
d76e958
Compare
d76e958 to
b0b7c02
Compare
b0b7c02 to
b109d72
Compare
b109d72 to
189a973
Compare
189a973 to
95c387a
Compare
5e49981 to
58e3320
Compare
95c387a to
4c4df88
Compare
4c4df88 to
860e024
Compare
860e024 to
d9e13e3
Compare
19312ce to
63d144b
Compare
63d144b to
6342f5e
Compare
6342f5e to
ec66e0f
Compare
0fd6b22 to
1d17ee6
Compare
1d17ee6 to
0f3f7e7
Compare
1e45dd5 to
7fbbd42
Compare
9ba7194 to
af5cb79
Compare
7f7b87a to
3c61d0b
Compare
3c61d0b to
303906d
Compare
kradalby
added a commit
that referenced
this pull request
Sep 17, 2025
# This is the 1st commit message: integration/auth: increase NetInfo validation timeout to 3 minutes Increase requireAllClientsNetInfoAndDERP timeout from 1 minute to 3 minutes to handle slower NetInfo propagation in CI environments. Add explicit WaitForTailscaleSync before NetInfo validation after reconnection to ensure proper state propagation. Increase polling interval to 5 seconds to reduce system load during validation. # This is the commit message #2: integration/auth: add missing validation to OIDC relogin test Add requireAllClientsOnline and requireAllClientsNetInfoAndDERP validation calls to TestOIDCReloginSameNodeNewUser to match the pattern used in TestAuthKeyLogoutAndReloginSameUser. Validate connection state after initial login, after user2 login, and after logging back into user1. # This is the commit message #3: integration/auth: add missing validation to web flow relogin test Add requireAllClientsOnline and requireAllClientsNetInfoAndDERP validation calls to TestAuthWebFlowLogoutAndRelogin to ensure proper state validation during logout/relogin cycles. Validate initial connection, logout state, and relogin state. # This is the commit message #4: integration/auth: add missing validation to auth key relogin tests Add requireAllClientsOnline and requireAllClientsNetInfoAndDERP validation calls to TestAuthKeyLogoutAndReloginNewUser and TestAuthKeyLogoutAndReloginSameUserExpiredKey to ensure proper state validation during logout/relogin cycles. # This is the commit message #5: integration/helpers: extract expectedNodes collection helper Create collectExpectedNodeIDs helper function to reduce code duplication across relogin tests when collecting node IDs from client status. Replace inline node ID collection in auth key and web flow tests. # This is the commit message #6: integration/auth: fix EventuallyWithT patterns in relogin tests Wrap all external calls (headscale.ListNodes, ts.Status) in EventuallyWithT with appropriate timeouts to handle eventual consistency. Increase timeouts for node count validation to handle cleanup timing and add descriptive messages for debugging. Use longer timeouts for node cleanup scenarios. # This is the commit message #7: integration/auth: standardize timeouts across relogin tests Use consistent timeout values: 120s for initial connection and relogin validation, 120s for logout validation, 180s (3min) for NetInfo/DERP validation to handle CI environment timing variations. # This is the commit message #8: integration/helpers: consolidate collectExpectedNodeIDs helper Move collectExpectedNodeIDs helper function to general_test.go to avoid redeclaration errors and make it available to all integration tests. Remove duplicate implementations from individual test files. # This is the commit message #9: integration/auth: improve node cleanup and add helper functions Fix node cleanup timing in OIDC relogin test by adding explicit node count validation before user switches to prevent "3 nodes instead of 2" failures. Add validateInitialConnection, validateLogoutComplete, and validateReloginComplete helper functions to reduce code duplication and improve maintainability. # This is the commit message #10: integration/auth: add comprehensive documentation to relogin tests Add detailed test documentation explaining the relogin scenarios and use helper functions consistently across OIDC test to improve code clarity and maintainability. # This is the commit message #11: integration: consolidate all helper functions into helpers.go Create comprehensive helpers.go file containing all non-test helper functions: - Move all functions from utils.go - Consolidate helper functions from auth_key_test.go, auth_oidc_test.go, general_test.go - Remove duplicated functions and maintain single source of truth - Organize into logical sections: assertions, node collection, validation, network testing, client state validation, command execution, and policy helpers This creates a single location for all integration test helper functions, improving maintainability and reducing code duplication. # This is the commit message #12: integration: consolidate all helper functions into helpers.go Create comprehensive helpers.go file containing all non-test helper functions: - Move all functions from utils.go - Consolidate helper functions from auth_key_test.go, auth_oidc_test.go, general_test.go - Remove duplicated functions and maintain single source of truth - Organize into logical sections: assertions, node collection, validation, network testing, client state validation, command execution, and policy helpers This creates a single location for all integration test helper functions, improving maintainability and reducing code duplication. # This is the commit message #13: integration: consolidate all helper functions into helpers.go Create comprehensive helpers.go file containing all non-test helper functions: - Move all functions from utils.go - Consolidate helper functions from auth_key_test.go, auth_oidc_test.go, general_test.go - Remove duplicated functions and maintain single source of truth - Organize into logical sections: assertions, node collection, validation, network testing, client state validation, command execution, and policy helpers This creates a single location for all integration test helper functions, improving maintainability and reducing code duplication. # This is the commit message #14: integration/helpers: remove unnecessary basic require helpers Remove basic wrapper functions like requireNoErr, requireNoErrHeadscaleEnv, etc. since they just wrap standard require.NoError calls. Tests should use require.NoError, require.NoErrorf, require.Contains, etc. directly instead of these unnecessary helper wrappers. The remaining helper functions in helpers.go are now focused on actual integration test logic rather than simple assertion wrappers. # This is the commit message #15: integration/helpers: restore basic require helpers to fix compilation Revert the removal of basic require helpers since they are still used throughout the integration tests. The proper approach is to: 1. Keep the helpers for now to maintain compilation 2. Gradually replace usage with direct require.NoError calls 3. Remove helpers only after all usage is updated This maintains a working codebase while allowing incremental improvement. # This is the commit message #16: integration: remove unnecessary require wrapper functions Remove requireNoErr, requireNoErrf, and requireContains wrapper functions and replace their usage with direct require.NoError, require.NoErrorf, and require.Contains calls. These wrappers provided no value over the standard testify require functions. - Updated 154 requireNoErr calls to require.NoError - Updated 5 requireNoErrf calls to require.NoErrorf with correct argument order - Updated 1 requireContains call to require.Contains - Added require import to test files that needed it The remaining helpers in helpers.go now focus on actual integration test logic rather than unnecessary assertion wrappers. # This is the commit message juanfont#17: integration/helpers: remove section comment headers Remove all // ===== section comment headers as they add visual noise without providing value. The functions are logically grouped and have proper documentation comments that explain their purpose. # This is the commit message juanfont#18: integration: add comprehensive godoc to all helper functions - Add godoc comments to all previously undocumented functions in helpers.go - Document validation purpose and failure context for assertion helpers - Explain network testing helpers and their specific use cases - Document policy v2 configuration builders and OIDC test utilities - Improve code maintainability and developer onboarding experience Fixes missing documentation identified in integration test helper analysis. # This is the commit message juanfont#19: integration/auth: fix node cleanup timing in OIDC relogin test - Add explicit node count validation with proper timing for cleanup - Wait for node creation before checking for exact count (avoid 3 nodes issue) - Extend timeout to 90s for node cleanup stabilization in CI environments - Add node stability validation to ensure no phantom nodes remain - Add proper logout validation before relogin to ensure clean state - Improve error handling during login process to handle temporary instability Addresses Phase 3.1 of relogin test flakiness plan - fixes the '3 nodes instead of 2' failure by properly handling cleanup timing. # This is the commit message juanfont#20: integration/auth: improve error messages and logging for debugging - Add comprehensive timestamp logging throughout all relogin tests - Enhance EventuallyWithT error messages with detailed failure context - Add node count expectations and actual values in assertion messages - Improve validation failure reporting with state transition details - Add visual indicators (✅❌) and timeout remaining information - Include machine key and user information in debug logs for node tracking - Standardize error message format across all auth tests Addresses Phase 4.2 of relogin test flakiness plan - provides much better debugging information for timing issues and state validation failures. # This is the commit message juanfont#21: integration/helpers: remove emojis from logging output Replace visual indicators with clean text output for better compatibility across different terminal environments and cleaner log files. # This is the commit message juanfont#22: remove plan Signed-off-by: Kristoffer Dalby <[email protected]> # This is the commit message juanfont#23: integration: fix single-node validation logic in requireAllClientsOnline - Add special handling for single-node scenarios in map response validation - For single node tests, check that map responses exist rather than peer visibility - Revert OIDC test changes to maintain original security-correct logic - Original test expects both user nodes to be online in OIDC multi-user scenario # This is the commit message juanfont#24: integration/auth: implement security-focused OIDC node validation - Only validate active user's node as online (security requirement) - Maintain strict node count validation (exactly 2 nodes, no proliferation) - Preserve all existing security validations (machine key sharing, node key isolation) - Remove validateReloginComplete calls that expected both nodes online - Add explicit validation that only current user's node is online Addresses security concerns about node takeover and ensures proper active/inactive node state management in OIDC multi-user scenarios. # This is the commit message juanfont#25: db Signed-off-by: Kristoffer Dalby <[email protected]> # This is the commit message juanfont#26: Add detailed Docker build error output for integration tests When Docker builds fail in integration tests, we now get detailed error output instead of just 'returned a non-zero code: 1'. This helps with debugging build failures by showing the actual Go compilation errors or other build issues. The solution runs a manual 'docker build' command when the main dockertest build fails, capturing the full output to include in the error message. # This is the commit message juanfont#27: Improve integration test validation with staged offline checking - Split requireAllClientsOnline into separate online/offline validation paths - Add requireAllClientsOfflineStaged for component-specific timeout handling - Implement 3-stage offline validation: 1. Batcher disconnection (immediate, 15s timeout) 2. NodeStore offline status (20s timeout for disconnect detection delay) 3. Map response propagation (60s timeout for peer update delays) - Add detailed timing logs for validation stages - Improve error reporting with better context and timing information This addresses flaky integration tests by properly handling the different timing characteristics of each system component during node disconnection. # This is the commit message juanfont#28: Add comprehensive relogin test improvement plan Document the systematic approach to fixing flaky relogin integration tests: - Analysis of 5 relogin test cases and their specific issues - Staged validation approach with component-specific timeouts - EventuallyWithT pattern standardization for external calls - Infrastructure vs code issue detection strategies - Sequential execution plan for addressing each test individually This plan tracks the completed Phase 1 (validation functions) and Phase 2 (EventuallyWithT patterns) improvements, with detailed analysis of remaining test-specific issues and their root causes.
303906d to
1ac0444
Compare
06601cd to
605695d
Compare
605695d to
c5099e1
Compare
1df2f5b to
352227f
Compare
b54c327 to
bdbb509
Compare
kradalby
added a commit
that referenced
this pull request
Nov 12, 2025
Improve error messages when Docker container builds fail to surface the actual underlying errors instead of generic "returned a non-zero code: 1" messages. This makes CI failures much easier to diagnose, especially for disk space issues. Changes: 1. Modify RunDockerBuildForDiagnostics to: - Return both output and error (previously only returned output on error) - Use CommandContext with 10-minute timeout to prevent hanging - Add --progress=plain and --no-cache flags for detailed output - Always return build output regardless of success/failure 2. Update error handling in hsic.go and tsic.go to: - Display last 100 lines of build output (avoid log overflow) - Differentiate between "build failed" and "build succeeded on retry" - Show more helpful error message when diagnostic build unavailable Example improved error message: ``` could not start headscale container: exit status 1 Docker build failed. Last 100 lines of output: #12 [7/7] RUN CGO_ENABLED=0 GOOS=linux go build ... #12 ERROR: failed to solve: process "/bin/sh -c ..." did not complete successfully: exit code: 1 ------ > [7/7] RUN CGO_ENABLED=0 GOOS=linux go build: #12 0.123 # github.com/juanfont/headscale/cmd/headscale #12 0.456 /go/pkg/mod/...: no space left on device ------ ``` This makes it immediately clear that the issue is disk space rather than a code compilation error.
bdbb509 to
58f40b0
Compare
58f40b0 to
c5e5f65
Compare
kradalby
added a commit
that referenced
this pull request
Nov 28, 2025
Improve error messages when Docker container builds fail to surface the actual underlying errors instead of generic "returned a non-zero code: 1" messages. This makes CI failures much easier to diagnose, especially for disk space issues. Changes: 1. Modify RunDockerBuildForDiagnostics to: - Return both output and error (previously only returned output on error) - Use CommandContext with 10-minute timeout to prevent hanging - Add --progress=plain and --no-cache flags for detailed output - Always return build output regardless of success/failure 2. Update error handling in hsic.go and tsic.go to: - Display last 100 lines of build output (avoid log overflow) - Differentiate between "build failed" and "build succeeded on retry" - Show more helpful error message when diagnostic build unavailable Example improved error message: ``` could not start headscale container: exit status 1 Docker build failed. Last 100 lines of output: #12 [7/7] RUN CGO_ENABLED=0 GOOS=linux go build ... #12 ERROR: failed to solve: process "/bin/sh -c ..." did not complete successfully: exit code: 1 ------ > [7/7] RUN CGO_ENABLED=0 GOOS=linux go build: #12 0.123 # github.com/juanfont/headscale/cmd/headscale #12 0.456 /go/pkg/mod/...: no space left on device ------ ``` This makes it immediately clear that the issue is disk space rather than a code compilation error.
c5e5f65 to
a662797
Compare
a662797 to
fd34c47
Compare
5b3f5c6 to
dc63ceb
Compare
dc63ceb to
998d503
Compare
998d503 to
a362f9a
Compare
Flake lock file updates:
• Updated input 'flake-utils':
'github:numtide/flake-utils/b1d9ab7' (2024-03-11)
→ 'github:numtide/flake-utils/11707dc' (2024-11-13)
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/5629520' (2024-08-31)
→ 'github:NixOS/nixpkgs/3146c6a' (2026-01-10)
a362f9a to
a603ef0
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Automated changes by the update-flake-lock GitHub Action.
Running GitHub Actions on this PR
GitHub Actions will not run workflows on pull requests which are opened by a GitHub Action.
To run GitHub Actions workflows on this PR, close and re-open this pull request.