Skip to content

Commit abe1bca

Browse files
authored
Merge pull request #426 from kubenetworks/refactor/cmd-dev-use-exec-command-insead-of-library
refactor: dev mode use exec command instead of library
2 parents 11a89d8 + 07cfb8b commit abe1bca

15 files changed

+460
-1635
lines changed

cmd/kubevpn/cmds/dev.go

+17-37
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"fmt"
55
"os"
66

7-
"github.com/containerd/containerd/platforms"
7+
"github.com/docker/cli/cli/command"
88
log "github.com/sirupsen/logrus"
99
"github.com/spf13/cobra"
1010
cmdutil "k8s.io/kubectl/pkg/cmd/util"
@@ -90,25 +90,15 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
9090
return err
9191
}
9292
util.InitLoggerForClient(config.Debug)
93-
94-
if p := options.RunOptions.Platform; p != "" {
95-
if _, err = platforms.Parse(p); err != nil {
96-
return fmt.Errorf("error parsing specified platform: %v", err)
97-
}
98-
}
99-
if err = validatePullOpt(options.RunOptions.Pull); err != nil {
100-
return err
101-
}
102-
10393
err = daemon.StartupDaemon(cmd.Context())
10494
if err != nil {
10595
return err
10696
}
10797
if transferImage {
10898
err = regctl.TransferImageWithRegctl(cmd.Context(), config.OriginImage, config.Image)
109-
if err != nil {
110-
return err
111-
}
99+
}
100+
if err != nil {
101+
return err
112102
}
113103
return pkgssh.SshJumpAndSetEnv(cmd.Context(), sshConf, cmd.Flags(), false)
114104
},
@@ -124,8 +114,8 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
124114
defer func() {
125115
for _, function := range options.GetRollbackFuncList() {
126116
if function != nil {
127-
if er := function(); er != nil {
128-
log.Errorf("Rollback failed, error: %s", er.Error())
117+
if err := function(); err != nil {
118+
log.Errorf("Rollback failed, error: %s", err.Error())
129119
}
130120
}
131121
}
@@ -135,8 +125,12 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
135125
return err
136126
}
137127

138-
err := options.Main(cmd.Context(), sshConf, cmd.Flags(), transferImage, imagePullSecretName)
139-
return err
128+
conf, hostConfig, err := dev.Parse(cmd.Flags(), options.ContainerOptions)
129+
if err != nil {
130+
return err
131+
}
132+
133+
return options.Main(cmd.Context(), sshConf, conf, hostConfig, imagePullSecretName)
140134
},
141135
}
142136
cmd.Flags().SortFlags = false
@@ -149,26 +143,12 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
149143

150144
// diy docker options
151145
cmd.Flags().StringVar(&options.DevImage, "dev-image", "", "Use to startup docker container, Default is pod image")
152-
// origin docker options
153-
dev.AddDockerFlags(options, cmd.Flags())
154-
146+
// -- origin docker options -- start
147+
options.ContainerOptions = dev.AddFlags(cmd.Flags())
148+
cmd.Flags().StringVar(&options.RunOptions.Pull, "pull", dev.PullImageMissing, `Pull image before running ("`+dev.PullImageAlways+`"|"`+dev.PullImageMissing+`"|"`+dev.PullImageNever+`")`)
149+
command.AddPlatformFlag(cmd.Flags(), &options.RunOptions.Platform)
150+
// -- origin docker options -- end
155151
handler.AddExtraRoute(cmd.Flags(), &options.ExtraRouteInfo)
156152
pkgssh.AddSshFlags(cmd.Flags(), sshConf)
157153
return cmd
158154
}
159-
160-
func validatePullOpt(val string) error {
161-
switch val {
162-
case dev.PullImageAlways, dev.PullImageMissing, dev.PullImageNever, "":
163-
// valid option, but nothing to do yet
164-
return nil
165-
default:
166-
return fmt.Errorf(
167-
"invalid pull option: '%s': must be one of %q, %q or %q",
168-
val,
169-
dev.PullImageAlways,
170-
dev.PullImageMissing,
171-
dev.PullImageNever,
172-
)
173-
}
174-
}

pkg/dev/LICENSE

-191
This file was deleted.

0 commit comments

Comments
 (0)