@@ -56,6 +56,11 @@ var pullImageCommand = cli.Command{
56
56
Value : "" ,
57
57
Usage : "Use `USERNAME[:PASSWORD]` for accessing the registry" ,
58
58
},
59
+ cli.StringFlag {
60
+ Name : "auth" ,
61
+ Value : "" ,
62
+ Usage : "Use `AUTH_STRING` for accessing the registry. AUTH_STRING is a base64 encoded 'USERNAME[:PASSWORD]'" ,
63
+ },
59
64
cli.StringFlag {
60
65
Name : "pod-config" ,
61
66
Value : "" ,
@@ -73,17 +78,12 @@ var pullImageCommand = cli.Command{
73
78
return err
74
79
}
75
80
76
- var auth * pb.AuthConfig
77
- if context .IsSet ("creds" ) {
78
- var err error
79
- auth , err = getAuth (context .String ("creds" ))
80
- if err != nil {
81
- return err
82
- }
81
+ auth , err := getAuth (context .String ("creds" ), context .String ("auth" ))
82
+ if err != nil {
83
+ return err
83
84
}
84
85
var sandbox * pb.PodSandboxConfig
85
86
if context .IsSet ("pod-config" ) {
86
- var err error
87
87
sandbox , err = loadPodSandboxConfig (context .String ("pod-config" ))
88
88
if err != nil {
89
89
return fmt .Errorf ("load podSandboxConfig failed: %v" , err )
@@ -327,15 +327,26 @@ func parseCreds(creds string) (string, string, error) {
327
327
return up [0 ], up [1 ], nil
328
328
}
329
329
330
- func getAuth (creds string ) (* pb.AuthConfig , error ) {
331
- username , password , err := parseCreds (creds )
332
- if err != nil {
333
- return nil , err
330
+ func getAuth (creds string , auth string ) (* pb.AuthConfig , error ) {
331
+ if creds != "" && auth != "" {
332
+ return nil , errors .New ("both `--creds` and `--auth` are specified" )
333
+ }
334
+ if creds != "" {
335
+ username , password , err := parseCreds (creds )
336
+ if err != nil {
337
+ return nil , err
338
+ }
339
+ return & pb.AuthConfig {
340
+ Username : username ,
341
+ Password : password ,
342
+ }, nil
343
+ }
344
+ if auth != "" {
345
+ return & pb.AuthConfig {
346
+ Auth : auth ,
347
+ }, nil
334
348
}
335
- return & pb.AuthConfig {
336
- Username : username ,
337
- Password : password ,
338
- }, nil
349
+ return nil , nil
339
350
}
340
351
341
352
// Ideally repo tag should always be image:tag.
0 commit comments