Skip to content
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

Runner registration #83

Open
Tracked by #39
scott-taubman opened this issue Sep 26, 2022 · 2 comments
Open
Tracked by #39

Runner registration #83

scott-taubman opened this issue Sep 26, 2022 · 2 comments
Labels
epic needs discussion Discussion required to make decisions or gain clarity before proceeding runner Related to the package runner

Comments

@scott-taubman
Copy link
Contributor

scott-taubman commented Sep 26, 2022

We need to develop a workflow for registering runners both for the shared / public runner pool, as well as private runners for specific teams.

Possible steps / things to consider (future sub-tasks):

  • There should be a registration token that functionary application administrators have access to that would be used for public runner registration.
  • Each team would also have a registration token that the team admins have access to.
  • The runner container would allow you to launch it in registration mode, where you supply the token and other relevant config information. The runner would then register itself with the functionary instance and get back the information it needs to operate (location of and credentials for dependent services).
  • When registering a runner, the backend likely needs to provision an account on the message broker that has access only to consume from the queues that its tasking will go to publish only to the exchange for tasking results.
  • Some amount of queue declaration and binding will presumably be needed as well.
@scott-taubman scott-taubman mentioned this issue Sep 26, 2022
46 tasks
@scott-taubman scott-taubman added runner Related to the package runner needs discussion Discussion required to make decisions or gain clarity before proceeding labels Sep 26, 2022
@scott-taubman
Copy link
Contributor Author

This is fundamentally similar to the registration process for something like a GitLab runner, so that's probably a good reference point for what a reasonable workflow looks like from the user perspective.

Also, we should document and test the exchange / queue / topic design before we start work on this to make sure our ideas about how the routing is going to work pan out.

@scott-taubman
Copy link
Contributor Author

scott-taubman commented Sep 27, 2022

As I think through this some more, I think the routing should be kept simple initially, with runners consuming from only one of two queues: the public queue or a shared queue for the team or environment's pool of runners (side-note, might have to think about supporting that distinction a little bit). I don't believe RabbitMQ (or any alternative we might explore) would be able handle the routing needs for something like the arbitrary runner tags that GitLab supports. There would have to be some application level routing logic to support that, which isn't the right thing to invest in at this stage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic needs discussion Discussion required to make decisions or gain clarity before proceeding runner Related to the package runner
Projects
None yet
Development

No branches or pull requests

1 participant