-
Notifications
You must be signed in to change notification settings - Fork 19
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
[smf] Use new zone network config service #1096
Changes from 3 commits
72b2e24
a0d2310
93897eb
07bb366
9a863f9
3e2bd7c
9f74bb5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,22 +1,36 @@ | ||||||||||||||||||||||||||||||||
[package.crucible] | ||||||||||||||||||||||||||||||||
service_name = "crucible" | ||||||||||||||||||||||||||||||||
[package.crucible-svc] | ||||||||||||||||||||||||||||||||
service_name = "crucible-svc" | ||||||||||||||||||||||||||||||||
source.type = "local" | ||||||||||||||||||||||||||||||||
source.rust.binary_names = ["crucible-agent", "crucible-downstairs"] | ||||||||||||||||||||||||||||||||
source.rust.release = true | ||||||||||||||||||||||||||||||||
source.paths = [ | ||||||||||||||||||||||||||||||||
{ from = "agent/smf", to = "/var/svc/manifest/site/crucible" }, | ||||||||||||||||||||||||||||||||
{ from = "agent/downstairs_method_script.sh", to = "/opt/oxide/lib/svc/manifest/crucible/downstairs.sh" }, | ||||||||||||||||||||||||||||||||
{ from = "agent/agent_method_script.sh", to = "/opt/oxide/lib/svc/manifest/crucible/agent.sh" } | ||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||
output.type = "zone" | ||||||||||||||||||||||||||||||||
output.intermediate_only = true | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
[package.crucible-pantry] | ||||||||||||||||||||||||||||||||
service_name = "pantry" | ||||||||||||||||||||||||||||||||
[package.crucible] | ||||||||||||||||||||||||||||||||
service_name = "crucible" | ||||||||||||||||||||||||||||||||
only_for_targets.image = "standard" | ||||||||||||||||||||||||||||||||
source.type = "composite" | ||||||||||||||||||||||||||||||||
source.packages = [ "crucible-svc.tar.gz", "zone-network-setup.tar.gz" ] | ||||||||||||||||||||||||||||||||
output.type = "zone" | ||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Heya @smklein, I have a couple of questions around packages in this repo
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I'm not really familiar with what's going on in the rbuild tests in crucible, so I can't really comment on that -- but if this issue is basically a question of dependencies (namely: Omicron generally pulls in Crucible, but here, Crucible wants to pull in something from Omicron, in the form of the network setup), then I think there are two options:
Pro: I think this would work with minimal setup
I don't think we should duplicate the service, but this would be my standard for breaking out of a circular dependency. We did something similar for the Omicron packaging tools, so they could be used on both sides: https://github.com/oxidecomputer/omicron-package
This is the entirety of "crucible-package": Lines 9 to 23 in e71b10d
What is getting outputted when you run that command? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Elaborating on that
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, just to confirm: The "omicron" repo is using the same version of EDIT: This is mostly true, except that crucible was missing "sort package creation by dependency order". Added that below. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks @smklein!
Yeah, that's what I was alluding to with the failing tests. If we choose to go this way we'd have to make significant changes to the rbuild test here.
The more I think about it, this is probably the best way to go. It's extremely likely that we'll have more shared services in the future. For example, clickhouse, ch-keeper and cockroachdb all use the internal-dns service, and a tiny service that disables ssh has just been introduced oxidecomputer/omicron#4716. It's probably best to extract shared services into their own repo it seems 🤔 Do you have any thoughts on this @leftwo ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It seems like moving common code to a common location is the way to go, and I don't have any attachment to it being it this repo. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there any reason that the final assembly cannot be done in omicron, keeping the zone network service and all of its illumos dependencies there? I haven't tried, but I think this is could work if the service names here were changed slightly ( If that's workable, I think it's simpler and keeps final zone assembly in one place. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Definitely worth looking into! I'll give it a go |
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
[package.crucible-pantry-svc] | ||||||||||||||||||||||||||||||||
service_name = "pantry-svc" | ||||||||||||||||||||||||||||||||
source.type = "local" | ||||||||||||||||||||||||||||||||
source.rust.binary_names = ["crucible-pantry"] | ||||||||||||||||||||||||||||||||
source.rust.release = true | ||||||||||||||||||||||||||||||||
source.paths = [ | ||||||||||||||||||||||||||||||||
{ from = "pantry/smf/pantry.xml", to = "/var/svc/manifest/site/crucible/pantry.xml" }, | ||||||||||||||||||||||||||||||||
{ from = "pantry/pantry_method_script.sh", to = "/opt/oxide/lib/svc/manifest/crucible/pantry.sh" } | ||||||||||||||||||||||||||||||||
] | ||||||||||||||||||||||||||||||||
output.type = "zone" | ||||||||||||||||||||||||||||||||
output.intermediate_only = true | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
[package.crucible-pantry] | ||||||||||||||||||||||||||||||||
service_name = "crucible-pantry" | ||||||||||||||||||||||||||||||||
only_for_targets.image = "standard" | ||||||||||||||||||||||||||||||||
source.type = "composite" | ||||||||||||||||||||||||||||||||
source.packages = [ "crucible-pantry-svc.tar.gz", "zone-network-setup.tar.gz" ] | ||||||||||||||||||||||||||||||||
output.type = "zone" |
This file was deleted.
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.
They might not be used -- I think
nexus
might have been a relic from before using DNS to find the Nexus address