4
4
"fmt"
5
5
"os"
6
6
7
- "github.com/containerd/containerd/platforms "
7
+ "github.com/docker/cli/cli/command "
8
8
log "github.com/sirupsen/logrus"
9
9
"github.com/spf13/cobra"
10
10
cmdutil "k8s.io/kubectl/pkg/cmd/util"
@@ -90,25 +90,15 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
90
90
return err
91
91
}
92
92
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
-
103
93
err = daemon .StartupDaemon (cmd .Context ())
104
94
if err != nil {
105
95
return err
106
96
}
107
97
if transferImage {
108
98
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
112
102
}
113
103
return pkgssh .SshJumpAndSetEnv (cmd .Context (), sshConf , cmd .Flags (), false )
114
104
},
@@ -124,8 +114,8 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
124
114
defer func () {
125
115
for _ , function := range options .GetRollbackFuncList () {
126
116
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 ())
129
119
}
130
120
}
131
121
}
@@ -135,8 +125,12 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
135
125
return err
136
126
}
137
127
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 )
140
134
},
141
135
}
142
136
cmd .Flags ().SortFlags = false
@@ -149,26 +143,12 @@ func CmdDev(f cmdutil.Factory) *cobra.Command {
149
143
150
144
// diy docker options
151
145
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
155
151
handler .AddExtraRoute (cmd .Flags (), & options .ExtraRouteInfo )
156
152
pkgssh .AddSshFlags (cmd .Flags (), sshConf )
157
153
return cmd
158
154
}
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
- }
0 commit comments