defenseunicorns / uds-cli

GNU Affero General Public License v3.0
26 stars 11 forks source link

Support producing different bundle artifacts from single bundle yaml #945

Open jacobbmay opened 1 month ago

jacobbmay commented 1 month ago

Is your feature request related to a problem? Please describe

If a delivery engineer has to support multiple deployment environments (ie RKE2 and eks-d) with the same application stack, there can be differences between each environment that require different dependencies to be included in the bundle. To support this currently, it requires maintaining separate bundle.yaml files for each environment that are almost identical except for a few line differences.

An example is needing to deploy a csi-snapshot chart in eks-d that isn't needed in RKE2 because it includes one by default. Currently supporting both environments requires maintaining two separate bundle.yaml files that only have 2 lines that are different between them to enable an optional component needed for eks-d that isn't needed for RKE2.

Describe the solution you'd like

I would like the ability to exclude packages and/or optional zarf components in a bundle.yaml at build time so that a single bundle.yaml file can be used to generate similar bundle artifacts.

Not sure the best way to implement this, but a possible solution could be similar to zarf flavors. A bundle could optionally have multiple flavors defined and packages and/or optional components can be marked as part of a specific flavor. The uds create command could then have a flavor flag to specify which version of the bundle you want to build. Will definitely defer to the team on specific implementation, just throwing out thoughts so far as a user.