Skip to content

feat: implement multiple token support and token management #1089

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
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Unix4ever
Copy link
Member

Added new pages for join token management.
The token can be created, revoked and deleted.
Also support tokens with the expiration.

Introduced new resources:

  • JoinToken - keeps the token, it's ID is the token string.
  • JoinTokenStatus - is generated by the controller, it calculates the information about the current token state: active, revoked or expired. And also has the information about if the token is default.
  • DefaultJoinToken - is the singleton resource that keeps the current default token id.

The behavior of siderolink manager was changed to create a default JoinToken resource out of whatever is currently stored in the siderolink.Config resource.

siderolink.ConnectionParams is now generated by the controller. It's using the default token from the DefaultJoinToken resource.

Infra providers also rely on the default join tokens for now.

Fixes: #907

@Unix4ever
Copy link
Member Author

The UI:

Screen.Recording.2025-04-11.at.23.57.53.mov

@Unix4ever Unix4ever force-pushed the join-token-management branch 2 times, most recently from ae3c66b to 34a0525 Compare April 12, 2025 18:30
@Unix4ever Unix4ever added the integration/e2e Triggers all e2e tests for Omni label Apr 12, 2025
@Unix4ever Unix4ever force-pushed the join-token-management branch 5 times, most recently from bbc5b6c to b8ee734 Compare April 14, 2025 13:28
@Unix4ever Unix4ever requested a review from Copilot April 15, 2025 10:03
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 61 out of 61 changed files in this pull request and generated no comments.

@Unix4ever Unix4ever force-pushed the join-token-management branch 4 times, most recently from 93e9522 to 382bf26 Compare April 21, 2025 18:56
Added new pages for join token management.
The token can be created, revoked and deleted.
Also support tokens with the expiration.

Introduced new resources:
- `JoinToken` - keeps the token, it's ID is the token string.
- `JoinTokenStatus` - is generated by the controller, it calculates the
  information about the current token state: active, revoked or expired.
  And also has the information about if the token is default.
- `DefaultJoinToken` - is the singleton resource that keeps the current
  default token id.

The behavior of siderolink manager was changed to create a default
`JoinToken` resource out of whatever is currently stored in the
`siderolink.Config` resource.

`siderolink.ConnectionParams` is now generated by the controller.
It's using the default token from the `DefaultJoinToken` resource.

Infra providers also rely on the default join tokens for now.

Fixes: siderolabs#907

Signed-off-by: Artem Chernyshev <[email protected]>
@Unix4ever Unix4ever force-pushed the join-token-management branch from 382bf26 to b2b4089 Compare April 22, 2025 13:03
@Unix4ever
Copy link
Member Author

Need to add join token usage resource as the input to the cluster machine config controller.
And need to fix the join token list on the download installation media modal window.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integration/e2e Triggers all e2e tests for Omni status/ok-to-test
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Join Token Management
2 participants