Skip to content

Conversation

@dancrossnyc
Copy link
Contributor

Extend the existing Baseboard type to incorporate Cosmo, and introduce a new OxideSled enum to represent different Oxide sled types so that a) we can differentiate between different kinds of sled, and b) parameterize omicron code with constant data specific to a sled type.

Also, identify places where we call the is_gimlet method, and instead call that, is_oxide_sled (none of these are actually specific to Gimlets in particular).

Find places where we use symbolic constants named Gimlet that should be Sled; if these bleed into config files, set up Serde aliases to accommodate a change.

Make it is that, if we set skip_timesync in a config file, we propagate that to RSS config as well.

With these changes, we have successfully used the gimlet-standalone to boot the control plane on a Cosmo. (Yes, the config name is somewhat ironic, and should be addressed at some point.)

@dancrossnyc
Copy link
Contributor Author

Note: this needs more testing, but I wanted to open a PR to at least get some feedback.

@dancrossnyc dancrossnyc force-pushed the oscosmo branch 3 times, most recently from 15be16f to c0e08ea Compare September 10, 2025 16:08
Copy link
Member

@hawkw hawkw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Handful of minor nits, but no major concerns overall!

@dancrossnyc dancrossnyc force-pushed the oscosmo branch 3 times, most recently from 42fd065 to daac156 Compare September 11, 2025 16:16
@jmpesp
Copy link
Contributor

jmpesp commented Sep 15, 2025

Make it is that, if we set skip_timesync in a config file, we propagate that to RSS config as well.

I'm curious what scenario you ran into that needed this? I'd imagine someone setting RSS config would intend for that value to overwrite what's in any existing sled config.

@dancrossnyc
Copy link
Contributor Author

Make it is that, if we set skip_timesync in a config file, we propagate that to RSS config as well.

I'm curious what scenario you ran into that needed this? I'd imagine someone setting RSS config would intend for that value to overwrite what's in any existing sled config.

Truthfully, I think it's kind of the wrong solution. The issue, however, was that RSS was not honoring skip_timesync because at the point where RSS is started, the global (perhaps not the right nomenclature; non-RSS?) config is not available.

It came up briefly at the CHM that having an independently configurable skip_timesync for RSS is probably not awesome, however; suppose it's set for RSS but not globally, what does that mean? Etc.

@dancrossnyc dancrossnyc force-pushed the oscosmo branch 7 times, most recently from 1826466 to ecf92c2 Compare September 18, 2025 15:35
Extend the implementation of the existing `Baseboard` type to
incorporate Cosmo, and introduce a new `OxideSled` enum to
represent different Oxide sled types so that a) we can
differentiate between different kinds of sled, and b)
parameterize omicron code with constant data specific to a sled
type.

Also, identify places where we call the `is_gimlet` method, and
instead call that, `is_oxide_sled` (none of these are actually
specific to Gimlets in particular).

Find places where we use symbolic constants named `Gimlet` that
should be `Sled`; if these bleed into config files, set up
Serde aliases to accommodate a change.

Make it is that, if we set `skip_timesync` in a config file, we
propagate that to RSS startup.

With these changes, we have successfully used the `gimlet-standalone`
to boot the control plane on a Cosmo.  (Yes, the config name is
somewhat ironic, and should be addressed at some point.)
@dancrossnyc
Copy link
Contributor Author

The test failure here was a timeout: I suspect it's unrelated to this change, and I'm going to try and rerun just that test.

@dancrossnyc dancrossnyc merged commit c3ea904 into main Sep 18, 2025
16 checks passed
@dancrossnyc dancrossnyc deleted the oscosmo branch September 18, 2025 20:48
charliepark pushed a commit that referenced this pull request Sep 19, 2025
Extend the existing `Baseboard` type to incorporate Cosmo, and introduce
a new `OxideSled` enum to represent different Oxide sled types so that
a) we can differentiate between different kinds of sled, and b)
parameterize omicron code with constant data specific to a sled type.

Also, identify places where we call the `is_gimlet` method, and instead
call that, `is_oxide_sled` (none of these are actually specific to
Gimlets in particular).

Find places where we use symbolic constants named `Gimlet` that should
be `Sled`; if these bleed into config files, set up Serde aliases to
accommodate a change.

Make it is that, if we set `skip_timesync` in a config file, we
propagate that to RSS config as well.

With these changes, we have successfully used the `gimlet-standalone` to
boot the control plane on a Cosmo. (Yes, the config name is somewhat
ironic, and should be addressed at some point.)
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.

7 participants