Drop KUBECTL_ENABLE_CMD_SHADOW featgure gat entirely

https://kep.k8s.io/3638 has been promoted to stable back in 1.32 so now
is the right time to drop this feature gate entirely.

Signed-off-by: Maciej Szulik <soltysh@gmail.com>

Kubernetes-commit: d1b5f268b48eda4bb8acdeef52407c27add9e076
This commit is contained in:
Maciej Szulik 2025-05-08 14:05:19 +02:00 committed by Kubernetes Publisher
parent 105c831190
commit 90ee929b88
2 changed files with 15 additions and 18 deletions

View File

@ -143,25 +143,23 @@ func NewDefaultKubectlCommandWithArgs(o KubectlOptions) *cobra.Command {
} }
} }
} else if err == nil { } else if err == nil {
if !cmdutil.CmdPluginAsSubcommand.IsDisabled() { // Command exists(e.g. kubectl create), but it is not certain that
// Command exists(e.g. kubectl create), but it is not certain that // subcommand also exists (e.g. kubectl create networkpolicy)
// subcommand also exists (e.g. kubectl create networkpolicy) // we also have to eliminate kubectl create -f
// we also have to eliminate kubectl create -f if IsSubcommandPluginAllowed(foundCmd.Name()) && len(foundArgs) >= 1 && !strings.HasPrefix(foundArgs[0], "-") {
if IsSubcommandPluginAllowed(foundCmd.Name()) && len(foundArgs) >= 1 && !strings.HasPrefix(foundArgs[0], "-") { subcommand := foundArgs[0]
subcommand := foundArgs[0] builtinSubcmdExist := false
builtinSubcmdExist := false for _, subcmd := range foundCmd.Commands() {
for _, subcmd := range foundCmd.Commands() { if subcmd.Name() == subcommand {
if subcmd.Name() == subcommand { builtinSubcmdExist = true
builtinSubcmdExist = true break
break
}
} }
}
if !builtinSubcmdExist { if !builtinSubcmdExist {
if err := HandlePluginCommand(o.PluginHandler, cmdPathPieces, len(cmdPathPieces)-len(foundArgs)+1); err != nil { if err := HandlePluginCommand(o.PluginHandler, cmdPathPieces, len(cmdPathPieces)-len(foundArgs)+1); err != nil {
fmt.Fprintf(o.IOStreams.ErrOut, "Error: %v\n", err) fmt.Fprintf(o.IOStreams.ErrOut, "Error: %v\n", err)
os.Exit(1) os.Exit(1)
}
} }
} }
} }

View File

@ -426,7 +426,6 @@ type FeatureGate string
const ( const (
ApplySet FeatureGate = "KUBECTL_APPLYSET" ApplySet FeatureGate = "KUBECTL_APPLYSET"
CmdPluginAsSubcommand FeatureGate = "KUBECTL_ENABLE_CMD_SHADOW"
OpenAPIV3Patch FeatureGate = "KUBECTL_OPENAPIV3_PATCH" OpenAPIV3Patch FeatureGate = "KUBECTL_OPENAPIV3_PATCH"
RemoteCommandWebsockets FeatureGate = "KUBECTL_REMOTE_COMMAND_WEBSOCKETS" RemoteCommandWebsockets FeatureGate = "KUBECTL_REMOTE_COMMAND_WEBSOCKETS"
PortForwardWebsockets FeatureGate = "KUBECTL_PORT_FORWARD_WEBSOCKETS" PortForwardWebsockets FeatureGate = "KUBECTL_PORT_FORWARD_WEBSOCKETS"