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

[smf] Update manifests to reflect self assembling switch zone #239

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

karencfv
Copy link

@karencfv karencfv commented May 2, 2024

DO NOT MERGE - let's wait until release 8 is out the door

In Omicron, we are converting all zones to be self assembling. This means we are no longer having to boot the zone, configure zone networking, configure all the services and finally refresh each service.

For the switch zone we have two new services that configure common zone networking in oxidecomputer/omicron#5593. This PR adds these dependencies to the SMF files that require them, and sets the service default instance as enabled by default.

This PR should be merged in conjunction with oxidecomputer/omicron#5593

@karencfv
Copy link
Author

karencfv commented May 2, 2024

| + ./build.sh
| Unable to generate SMF dependency on svc:/oxide/zone-network-setup:default declared in /wo [...]
| Unable to generate SMF dependency on svc:/oxide/switch_zone_setup:default declared in /wor [...]

Oof, this is unfortunate. Other repos seem to not have a problem with those services living in omicron 🤔 From the contents of the build.sh file I can't really tell what's going on. @jclulow, is this a buildomat thing? Do you have a clue about what's going on?

@karencfv
Copy link
Author

karencfv commented May 2, 2024

Ok, after looking into this a bit further, this issue appears to stem from https://github.com/oxidecomputer/pkg5.

I'm guessing we probably don't want to change any functionality there directly 🤔 @citrus-it do you have any suggestions on how to best resolve this issue?

@jclulow
Copy link

jclulow commented May 3, 2024

If it's IPS (pkg) saying that, it's probably sad that the things you're depending on are not delivered in a package themselves, so it cannot create an appropriate dependency. It's possible to have IPS just ignore certain files from a dependency resolution perspective, I believe.

@jclulow
Copy link

jclulow commented May 3, 2024

Looking at the manual:

Delivered SMF service manifests that include require_all dependencies result in dependencies on the packages that deliver the SMF manifests that provide those FMRIs.

If you look in that manual, I believe the pkg.depend.bypass-generate directive would allow you to just ignore those manifests.

It's possible, if the package is also supposed to work outside the switch zone, that the right thing to do is actually change them from being require_all dependencies to being something more relaxed about missing services. The manual page for smf(7) describes the depenency grouping types. If you look at the descriptions there it's possible that optional_all might be more appropriate? I'm not sure!

@karencfv
Copy link
Author

karencfv commented May 3, 2024

Thanks @jclulow! Looks like I was looking at the wrong build.sh file 😄 .github/buildomat/jobs/build.sh instead of pkg/build.sh 🤦‍♀️

If you look in that manual, I believe the pkg.depend.bypass-generate directive would allow you to just ignore those manifests.

hmmm, that's interesting! That could be a good workaround. I'll try it out.

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

Successfully merging this pull request may close these issues.

2 participants