Skip to content

propolis-server API types can have different definitions depending on feature flags #264

@gjcolombo

Description

@gjcolombo

#231 makes the InstanceSpec type and its components part of the propolis-server API. Some of InstanceSpec's components are conditionally compiled based on the value of the falcon feature flag, so enabling/disabling the flag changes propolis-server's OpenAPI specification. This can create some friction when working with types generated from the OpenAPI spec (if the spec's falcon configuration differs from the builder's configuration). When fixed, #227 will create a similar problem for PCI bridges.

We can eliminate this toil in a couple of ways:

  1. Create/maintain separate OpenAPI descriptions to be used when the falcon feature is enabled (or when other features are enabled/disabled)
  2. Maintain a single definition of the InstanceSpec types, but make propolis-server recognize and honor the Falcon-only elements only when the feature is enabled (and similarly honor other options only when their corresponding features are enabled)

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiRelated to the API.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions