-
Notifications
You must be signed in to change notification settings - Fork 103
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
ADR for osquery extension, runner, and instance refactor #1905
ADR for osquery extension, runner, and instance refactor #1905
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is really well written and the approach makes sense to me! being somewhat unfamiliar with these pieces I am curious if there were any alternative approaches you had considered? mostly just for my own learning but maybe worth adding if so
|
||
The osquery instance will now be responsible for managing extension health -- if the extension exits, the instance will need to take corrective action. (This is potentially a better outcome than before, since now extension shutdown can be remediated without a full launcher restart.) | ||
|
||
This decision does preserve a shared JSONRPC client to talk to Kolide SaaS. If we determine this is not optimal, it would be fairly easy to update to a model where we have one JSONRPC client per extension. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
any known reasons to share vs break out per extension? or we're just not aware of a reason to duplicate the client
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
or we're just not aware of a reason to duplicate the client
Basically this! I am imagining it's the sort of thing that I'll have a stronger opinion on once we get further through implementation. But either way, not hard to change after the fact.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this would definitely be an improvement. More logical separation of concerns. Much better to let the osqueryrunner -> instance handle the extension so we don't have restart launcher if it dies.
915b78b
@zackattack01 -- the main alternative was to leave the extension where it is, and then either 1) share the extension among all the instances, or 2) create multiple extensions. I added more details in this commit: 915b78b |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks great, thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
love the diagrams
db8671a
Relates to #1827.
Relates to #1936.
(ER diagram docs are here.)