network create: add warning for deprecated macvlan flag

The macvlan driver is not deprecated, only the --macvlan flag is.
Remove the flag from the man page since it is deprecated and add a
warning to podman network create if it is used.

[NO TESTS NEEDED]

Fixes #11400

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger
2021-09-02 09:25:36 +02:00
parent 4207d959a6
commit 3d02cfb5e0
2 changed files with 10 additions and 9 deletions

View File

@ -11,6 +11,7 @@ import (
"github.com/containers/podman/v3/libpod/define" "github.com/containers/podman/v3/libpod/define"
"github.com/containers/podman/v3/pkg/domain/entities" "github.com/containers/podman/v3/pkg/domain/entities"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
@ -56,7 +57,8 @@ func networkCreateFlags(cmd *cobra.Command) {
macvlanFlagName := "macvlan" macvlanFlagName := "macvlan"
flags.StringVar(&networkCreateOptions.MacVLAN, macvlanFlagName, "", "create a Macvlan connection based on this device") flags.StringVar(&networkCreateOptions.MacVLAN, macvlanFlagName, "", "create a Macvlan connection based on this device")
_ = cmd.RegisterFlagCompletionFunc(macvlanFlagName, completion.AutocompleteNone) // This option is deprecated
flags.MarkHidden(macvlanFlagName)
labelFlagName := "label" labelFlagName := "label"
flags.StringArrayVar(&labels, labelFlagName, nil, "set metadata on a network") flags.StringArrayVar(&labels, labelFlagName, nil, "set metadata on a network")
@ -100,6 +102,11 @@ func networkCreate(cmd *cobra.Command, args []string) error {
if err != nil { if err != nil {
return errors.Wrapf(err, "unable to process options") return errors.Wrapf(err, "unable to process options")
} }
if networkCreateOptions.MacVLAN != "" {
logrus.Warn("The --macvlan option is deprecated, use `--driver macvlan --opt parent=<device>` instead")
}
response, err := registry.ContainerEngine().NetworkCreate(registry.Context(), name, networkCreateOptions) response, err := registry.ContainerEngine().NetworkCreate(registry.Context(), name, networkCreateOptions)
if err != nil { if err != nil {
return err return err

View File

@ -25,7 +25,8 @@ resolution.
#### **--driver**, **-d** #### **--driver**, **-d**
Driver to manage the network (default "bridge"). Currently only `bridge` is supported. Driver to manage the network. Currently `bridge` and `macvlan` is supported. Defaults to `bridge`.
As rootless the `macvlan` driver has no access to the host network interfaces because rootless networking requires a separate network namespace.
#### **--opt**=*option*, **-o** #### **--opt**=*option*, **-o**
@ -54,13 +55,6 @@ must be used with a *subnet* option.
Set metadata for a network (e.g., --label mykey=value). Set metadata for a network (e.g., --label mykey=value).
#### **--macvlan**
*This option is being deprecated*
Create a *Macvlan* based connection rather than a classic bridge. You must pass an interface name from the host for the
Macvlan connection.
#### **--subnet** #### **--subnet**
The subnet in CIDR notation. The subnet in CIDR notation.