add dockercfg secret types

This commit is contained in:
deads2k
2015-05-06 10:09:18 -04:00
parent d404a17f0a
commit be0f2d2930
9 changed files with 158 additions and 7 deletions

View File

@@ -147,17 +147,17 @@ func readDockerConfigFileFromBytes(contents []byte) (cfg DockerConfig, err error
return
}
// dockerConfigEntryWithAuth is used solely for deserializing the Auth field
// DockerConfigEntryWithAuth is used solely for deserializing the Auth field
// into a dockerConfigEntry during JSON deserialization.
type dockerConfigEntryWithAuth struct {
Username string
Password string
Email string
Auth string
type DockerConfigEntryWithAuth struct {
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Email string `json:"email,omitempty"`
Auth string `json:"auth,omitempty"`
}
func (ident *DockerConfigEntry) UnmarshalJSON(data []byte) error {
var tmp dockerConfigEntryWithAuth
var tmp DockerConfigEntryWithAuth
err := json.Unmarshal(data, &tmp)
if err != nil {
return err
@@ -194,3 +194,16 @@ func decodeDockerConfigFieldAuth(field string) (username, password string, err e
return
}
func (ident DockerConfigEntry) ConvertToDockerConfigCompatible() DockerConfigEntryWithAuth {
ret := DockerConfigEntryWithAuth{ident.Username, ident.Password, ident.Email, ""}
ret.Auth = encodeDockerConfigFieldAuth(ident.Username, ident.Password)
return ret
}
func encodeDockerConfigFieldAuth(username, password string) string {
fieldValue := username + ":" + password
return base64.StdEncoding.EncodeToString([]byte(fieldValue))
}