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

Context and Capabilities model. #258

Open
krisnova opened this issue Jan 10, 2023 · 0 comments
Open

Context and Capabilities model. #258

krisnova opened this issue Jan 10, 2023 · 0 comments

Comments

@krisnova
Copy link
Contributor

As we grow the feature set of Aurae one thing is being made more and more clear, which is:

The auraed runtime daemon will need to reason about the environment in which it is running.

For example under a specific set of conditions the daemon will assume it is running as a pid 1 host init system, and will potentially need to mount various filesystems, configure networking, manage syslog, and so on.

For example under another set of conditions the daemon will assume it is running as a pid1, but this time inside of a container (new cgroup namespace), and another set of assumptions and context becomes relevant.

As we look at the daemon init module, it is becoming evident that we will likely want to enable/disable various subsystems (gRPC services) based on the context in which we are running.

For example, if we are running as a true pid 1 we should check and see if virtualization is possible and only initialize the virtualization subsystem if relevant. If we are running as a container pid 1, we should likely only have the Pods service, and Cell service enabled.

Open Architecture Questions

How do we architect the code base in a "rusty" way such that we can easily plumb conditions/checks into the init module to determine the context in which we are running? How do we use these context checks to inform which subsystems to initialize? How do we "advertise" or "report" the available subsystems back to the user?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant