Updated overlay flags

New flags: `wwctl <node|profile> <add|set> [--runtime-overlays|--system-overlays]`.

Previous flags retained hidden for backwards-compatibility.

- Closes: #1495

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2025-02-10 15:47:33 -07:00
parent b3d07f2889
commit f71483035b
8 changed files with 52 additions and 3 deletions

View File

@@ -8,3 +8,19 @@ func AddContainer(cmd *cobra.Command, dest *string) {
cmd.Flags().StringVarP(dest, "container", "C", "", "Set image name (backwards-compatibility)")
cmd.Flags().Lookup("container").Hidden = true
}
func AddWwinit(cmd *cobra.Command, dest *[]string) {
cmd.Flags().StringSliceVar(dest, "wwinit", []string{}, "Set the system overlay")
cmd.Flags().Lookup("wwinit").Hidden = true
if err := cmd.Flags().MarkDeprecated("wwinit", "use --system-overlays instead"); err != nil {
panic(err)
}
}
func AddRuntime(cmd *cobra.Command, dest *[]string) {
cmd.Flags().StringSliceVar(dest, "runtime", []string{}, "Set the runtime overlay")
cmd.Flags().Lookup("runtime").Hidden = true
if err := cmd.Flags().MarkDeprecated("runtime", "use --runtime-overlays instead"); err != nil {
panic(err)
}
}

View File

@@ -30,6 +30,8 @@ func GetCommand() *cobra.Command {
vars.nodeConf.CreateFlags(baseCmd)
vars.nodeAdd.CreateAddFlags(baseCmd)
flags.AddContainer(baseCmd, &(vars.nodeConf.Profile.ImageName))
flags.AddWwinit(baseCmd, &(vars.nodeConf.SystemOverlay))
flags.AddRuntime(baseCmd, &(vars.nodeConf.RuntimeOverlay))
// register the command line completions
if err := baseCmd.RegisterFlagCompletionFunc("image", completions.Images); err != nil { // no limit
panic(err)
@@ -37,9 +39,15 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("system-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err)
}

View File

@@ -34,6 +34,8 @@ func GetCommand() *cobra.Command {
vars.nodeAdd.CreateAddFlags(baseCmd)
vars.nodeDel.CreateDelFlags(baseCmd)
flags.AddContainer(baseCmd, &(vars.nodeConf.Profile.ImageName))
flags.AddWwinit(baseCmd, &(vars.nodeConf.SystemOverlay))
flags.AddRuntime(baseCmd, &(vars.nodeConf.RuntimeOverlay))
baseCmd.PersistentFlags().BoolVarP(&vars.setNodeAll, "all", "a", false, "Set all nodes")
baseCmd.PersistentFlags().BoolVarP(&vars.setYes, "yes", "y", false, "Set 'yes' to all questions asked")
baseCmd.PersistentFlags().BoolVarP(&vars.setForce, "force", "f", false, "Force configuration (even on error)")
@@ -44,9 +46,15 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("system-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err)
}

View File

@@ -28,6 +28,8 @@ func GetCommand() *cobra.Command {
vars.profileConf.CreateFlags(baseCmd)
vars.profileAdd.CreateAddFlags(baseCmd)
flags.AddContainer(baseCmd, &(vars.profileConf.ImageName))
flags.AddWwinit(baseCmd, &(vars.profileConf.SystemOverlay))
flags.AddRuntime(baseCmd, &(vars.profileConf.RuntimeOverlay))
// register the command line completions
if err := baseCmd.RegisterFlagCompletionFunc("image", completions.Images); err != nil { // no limit
panic(err)
@@ -35,9 +37,15 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("system-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err)
}

View File

@@ -40,6 +40,8 @@ func GetCommand() *cobra.Command {
vars.profileDel.CreateDelFlags(baseCmd)
vars.profileAdd.CreateAddFlags(baseCmd)
flags.AddContainer(baseCmd, &(vars.profileConf.ImageName))
flags.AddWwinit(baseCmd, &(vars.profileConf.SystemOverlay))
flags.AddRuntime(baseCmd, &(vars.profileConf.RuntimeOverlay))
baseCmd.PersistentFlags().BoolVarP(&vars.setYes, "yes", "y", false, "Set 'yes' to all questions asked")
// register the command line completions
if err := baseCmd.RegisterFlagCompletionFunc("image", completions.Images); err != nil { // no limit
@@ -48,9 +50,15 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("system-overlays", completions.OverlayList); err != nil {
panic(err)
}
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err)
}