diff --git a/cmd/podman/farm/build.go b/cmd/podman/farm/build.go index 7ecb75baf1..197e299566 100644 --- a/cmd/podman/farm/build.go +++ b/cmd/podman/farm/build.go @@ -19,6 +19,7 @@ type buildOptions struct { buildOptions common.BuildFlagsWrapper local bool platforms []string + farm string } var ( @@ -55,6 +56,16 @@ func init() { buildCommand.PersistentFlags().StringSliceVar(&buildOpts.platforms, platformsFlag, nil, "Build only on farm nodes that match the given platforms") common.DefineBuildFlags(buildCommand, &buildOpts.buildOptions, true) + + podmanConfig := registry.PodmanConfig() + + farmFlagName := "farm" + // If remote, don't read the client's containers.conf file + defaultFarm := "" + if !registry.IsRemote() { + defaultFarm = podmanConfig.ContainersConfDefaultsRO.Farms.Default + } + flags.StringVar(&buildOpts.farm, farmFlagName, defaultFarm, "Farm to use for builds") } func build(cmd *cobra.Command, args []string) error { @@ -98,8 +109,8 @@ func build(cmd *cobra.Command, args []string) error { } defaultFarm := cfg.Farms.Default - if farmCmd.Flags().Changed("farm") { - f, err := farmCmd.Flags().GetString("farm") + if cmd.Flags().Changed("farm") { + f, err := cmd.Flags().GetString("farm") if err != nil { return err } diff --git a/cmd/podman/farm/farm.go b/cmd/podman/farm/farm.go index c27ac2237c..de4903c6a5 100644 --- a/cmd/podman/farm/farm.go +++ b/cmd/podman/farm/farm.go @@ -16,27 +16,9 @@ var ( } ) -var ( - // Temporary struct to hold cli values. - farmOpts = struct { - Farm string - }{} -) - func init() { registry.Commands = append(registry.Commands, registry.CliCommand{ Command: farmCmd, }) farmCmd.Hidden = true - - flags := farmCmd.Flags() - podmanConfig := registry.PodmanConfig() - - farmFlagName := "farm" - // If remote, don't read the client's containers.conf file - defaultFarm := "" - if !registry.IsRemote() { - defaultFarm = podmanConfig.ContainersConfDefaultsRO.Farms.Default - } - flags.StringVarP(&farmOpts.Farm, farmFlagName, "f", defaultFarm, "Farm to use for builds") } diff --git a/docs/source/markdown/options/farm.md b/docs/source/markdown/options/farm.md new file mode 100644 index 0000000000..8ba605d0f7 --- /dev/null +++ b/docs/source/markdown/options/farm.md @@ -0,0 +1,7 @@ +####> This option file is used in: +####> podman farm build +####> If file is edited, make sure the changes +####> are applicable to all of those. +#### **--farm** + +This option specifies the name of the farm to be used in the build process. diff --git a/docs/source/markdown/podman-farm-build.1.md.in b/docs/source/markdown/podman-farm-build.1.md.in index 14ef252c89..36624f6ecc 100644 --- a/docs/source/markdown/podman-farm-build.1.md.in +++ b/docs/source/markdown/podman-farm-build.1.md.in @@ -89,6 +89,10 @@ It does not affect _/etc/resolv.conf_ in the final image. @@option env.image +@@option farm + +This option specifies the name of the farm to be used in the build process. + @@option file @@option force-rm @@ -214,9 +218,9 @@ Build only on farm nodes that match the given platforms. ``` $ podman farm build --local -t name -f /path/to/containerfile . -$ podman farm --farm build myfarm -t name . +$ podman farm build --farm myfarm -t name . -$ podman farm --farm myfarm build --cleanup -t name . +$ podman farm build --farm myfarm --cleanup -t name . $ podman farm build --platforms arm64,amd64 --cleanup -t name . ``` diff --git a/test/farm/001-farm.bats b/test/farm/001-farm.bats index afddbd09ef..73c47f5ba2 100644 --- a/test/farm/001-farm.bats +++ b/test/farm/001-farm.bats @@ -17,7 +17,7 @@ load helpers.bash empty_farm="empty-farm" # create an empty farm run_podman farm create $empty_farm - run_podman farm --farm $empty_farm build -t $iname $PODMAN_TMPDIR + run_podman farm build --farm $empty_farm -t $iname $PODMAN_TMPDIR assert "$output" =~ "Local builder ready" # get the system architecture