2017-12-04 06:30:39 -05:00
package stack
import (
"github.com/docker/cli/cli"
"github.com/docker/cli/cli/command"
2018-06-26 08:07:26 -04:00
"github.com/docker/cli/cli/command/stack/loader"
2017-12-04 06:30:39 -05:00
"github.com/docker/cli/cli/command/stack/options"
"github.com/docker/cli/cli/command/stack/swarm"
2018-06-26 08:07:26 -04:00
composetypes "github.com/docker/cli/cli/compose/types"
2017-12-04 06:30:39 -05:00
"github.com/spf13/cobra"
2018-06-26 08:07:26 -04:00
"github.com/spf13/pflag"
2017-12-04 06:30:39 -05:00
)
2022-02-22 07:46:35 -05:00
func newDeployCommand ( dockerCli command . Cli ) * cobra . Command {
2017-12-04 06:30:39 -05:00
var opts options . Deploy
cmd := & cobra . Command {
Use : "deploy [OPTIONS] STACK" ,
Aliases : [ ] string { "up" } ,
Short : "Deploy a new stack or update an existing stack" ,
Args : cli . ExactArgs ( 1 ) ,
RunE : func ( cmd * cobra . Command , args [ ] string ) error {
opts . Namespace = args [ 0 ]
2018-06-26 08:07:26 -04:00
if err := validateStackName ( opts . Namespace ) ; err != nil {
return err
}
config , err := loader . LoadComposefile ( dockerCli , opts )
if err != nil {
return err
}
cli/command/stack: deprecate now obsolete wrappers
These wrappers were added to abstract stack deploy to k8s and swarm. Now
that support for deploying to k8s was removed, we can remove these wrappers.
This deprecates:
- RunDeploy()
- RunPs()
- RunRemove()
- GetServices()
This also addresses some linting failers, due to these functions having
unused arguments:
cli/command/stack/deploy.go:51:39: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func RunDeploy(dockerCli command.Cli, flags *pflag.FlagSet, config *composetypes.Config, opts options.Deploy) error {
^
cli/command/stack/ps.go:42:35: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func RunPs(dockerCli command.Cli, flags *pflag.FlagSet, opts options.PS) error {
^
cli/command/stack/remove.go:35:39: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func RunRemove(dockerCli command.Cli, flags *pflag.FlagSet, opts options.Remove) error {
^
cli/command/stack/list.go:37:14: unused-parameter: parameter 'cmd' seems to be unused, consider removing or renaming it as _ (revive)
func RunList(cmd *cobra.Command, dockerCli command.Cli, opts options.List) error {
^
cli/command/stack/services.go:56:41: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func GetServices(dockerCli command.Cli, flags *pflag.FlagSet, opts options.Services) ([]swarmtypes.Service, error) {
^
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit f08252c10a16beac0ad40348118a96fa6b447f19)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-03-29 09:42:17 -04:00
return swarm . RunDeploy ( dockerCli , opts , config )
2017-12-04 06:30:39 -05:00
} ,
2022-03-30 09:27:25 -04:00
ValidArgsFunction : func ( cmd * cobra . Command , args [ ] string , toComplete string ) ( [ ] string , cobra . ShellCompDirective ) {
return completeNames ( dockerCli ) ( cmd , args , toComplete )
} ,
2017-12-04 06:30:39 -05:00
}
flags := cmd . Flags ( )
2018-07-19 08:55:48 -04:00
flags . StringSliceVarP ( & opts . Composefiles , "compose-file" , "c" , [ ] string { } , ` Path to a Compose file, or "-" to read from stdin ` )
2017-12-04 06:30:39 -05:00
flags . SetAnnotation ( "compose-file" , "version" , [ ] string { "1.25" } )
flags . BoolVar ( & opts . SendRegistryAuth , "with-registry-auth" , false , "Send registry authentication details to Swarm agents" )
flags . BoolVar ( & opts . Prune , "prune" , false , "Prune services that are no longer referenced" )
flags . SetAnnotation ( "prune" , "version" , [ ] string { "1.27" } )
flags . StringVar ( & opts . ResolveImage , "resolve-image" , swarm . ResolveImageAlways ,
2023-01-03 05:12:24 -05:00
` Query the registry to resolve image digest and supported platforms (" ` + swarm . ResolveImageAlways + ` ", " ` + swarm . ResolveImageChanged + ` ", " ` + swarm . ResolveImageNever + ` ") ` )
2017-12-04 06:30:39 -05:00
flags . SetAnnotation ( "resolve-image" , "version" , [ ] string { "1.30" } )
return cmd
}
2018-06-26 08:07:26 -04:00
cli/command/stack: deprecate now obsolete wrappers
These wrappers were added to abstract stack deploy to k8s and swarm. Now
that support for deploying to k8s was removed, we can remove these wrappers.
This deprecates:
- RunDeploy()
- RunPs()
- RunRemove()
- GetServices()
This also addresses some linting failers, due to these functions having
unused arguments:
cli/command/stack/deploy.go:51:39: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func RunDeploy(dockerCli command.Cli, flags *pflag.FlagSet, config *composetypes.Config, opts options.Deploy) error {
^
cli/command/stack/ps.go:42:35: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func RunPs(dockerCli command.Cli, flags *pflag.FlagSet, opts options.PS) error {
^
cli/command/stack/remove.go:35:39: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func RunRemove(dockerCli command.Cli, flags *pflag.FlagSet, opts options.Remove) error {
^
cli/command/stack/list.go:37:14: unused-parameter: parameter 'cmd' seems to be unused, consider removing or renaming it as _ (revive)
func RunList(cmd *cobra.Command, dockerCli command.Cli, opts options.List) error {
^
cli/command/stack/services.go:56:41: unused-parameter: parameter 'flags' seems to be unused, consider removing or renaming it as _ (revive)
func GetServices(dockerCli command.Cli, flags *pflag.FlagSet, opts options.Services) ([]swarmtypes.Service, error) {
^
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit f08252c10a16beac0ad40348118a96fa6b447f19)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-03-29 09:42:17 -04:00
// RunDeploy performs a stack deploy against the specified swarm cluster.
//
// Deprecated: use [swarm.RunDeploy] instead.
func RunDeploy ( dockerCli command . Cli , _ * pflag . FlagSet , config * composetypes . Config , opts options . Deploy ) error {
2021-06-16 03:08:42 -04:00
return swarm . RunDeploy ( dockerCli , opts , config )
2018-06-26 08:07:26 -04:00
}