Implement modifications for engine.#Pull, engine.#Push, docker.#Push, docker.#Pull

Signed-off-by: guillaume <guillaume.derouville@gmail.com>
This commit is contained in:
guillaume
2022-01-31 16:22:19 +01:00
parent 1a98c572b8
commit ac30274d96
6 changed files with 49 additions and 63 deletions

View File

@@ -6,7 +6,6 @@ import (
)
type authValue struct {
Target string
Username string
Secret *plancontext.Secret
}
@@ -14,41 +13,23 @@ type authValue struct {
// Decodes an auth field value
//
// Cue format:
// auth: [...{
// target: string
// auth: {
// username: string
// secret: string | #Secret
// }]
func decodeAuthValue(pctx *plancontext.Context, v *compiler.Value) ([]*authValue, error) {
vals, err := v.List()
// }
func decodeAuthValue(pctx *plancontext.Context, v *compiler.Value) (*authValue, error) {
authVal := authValue{}
username, err := v.Lookup("username").String()
if err != nil {
return nil, err
}
authVal.Username = username
authVals := []*authValue{}
for _, val := range vals {
authVal := authValue{}
target, err := val.Lookup("target").String()
if err != nil {
return nil, err
}
authVal.Target = target
username, err := val.Lookup("username").String()
if err != nil {
return nil, err
}
authVal.Username = username
secret, err := pctx.Secrets.FromValue(val.Lookup("secret"))
if err != nil {
return nil, err
}
authVal.Secret = secret
authVals = append(authVals, &authVal)
secret, err := pctx.Secrets.FromValue(v.Lookup("secret"))
if err != nil {
return nil, err
}
authVal.Secret = secret
return authVals, nil
return &authVal, nil
}

View File

@@ -28,13 +28,18 @@ func (c *pullTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.
}
// Read auth info
auth, err := decodeAuthValue(pctx, v.Lookup("auth"))
if err != nil {
return nil, err
}
for _, a := range auth {
s.AddCredentials(a.Target, a.Username, a.Secret.PlainText())
lg.Debug().Str("target", a.Target).Msg("add target credentials")
if auth := v.Lookup("auth"); auth.Exists() {
a, err := decodeAuthValue(pctx, auth)
if err != nil {
return nil, err
}
// Extract registry target from source
target, err := solver.ParseAuthHost(rawRef)
if err != nil {
return nil, err
}
s.AddCredentials(target, a.Username, a.Secret.PlainText())
lg.Debug().Str("target", target).Msg("add target credentials")
}
ref, err := reference.ParseNormalizedNamed(rawRef)

View File

@@ -36,13 +36,19 @@ func (c *pushTask) Run(ctx context.Context, pctx *plancontext.Context, s solver.
dest = reference.TagNameOnly(dest)
// Read auth info
auth, err := decodeAuthValue(pctx, v.Lookup("auth"))
if err != nil {
return nil, err
}
for _, a := range auth {
s.AddCredentials(a.Target, a.Username, a.Secret.PlainText())
lg.Debug().Str("target", a.Target).Msg("add target credentials")
if auth := v.Lookup("auth"); auth.Exists() {
// Read auth info
a, err := decodeAuthValue(pctx, auth)
if err != nil {
return nil, err
}
// Extract registry target from dest
target, err := solver.ParseAuthHost(rawDest)
if err != nil {
return nil, err
}
s.AddCredentials(target, a.Username, a.Secret.PlainText())
lg.Debug().Str("target", target).Msg("add target credentials")
}
// Get input state