Skip to content

Commit

Permalink
Keychains parsing was parsing the wrong variable (#440)
Browse files Browse the repository at this point in the history
Signed-off-by: Joao Pereira <joaod@vmware.com>

Signed-off-by: Joao Pereira <joaod@vmware.com>
  • Loading branch information
joaopapereira authored Sep 29, 2022
1 parent 006d04d commit 85daa94
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pkg/imgpkg/cmd/registry_flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func (r *RegistryFlags) AsRegistryOpts() registry.Opts {
if found {
if len(keychains) > 0 {
if strings.Contains(keychains, ",") {
for _, keychainName := range strings.Split(r.ActiveKeychains, ",") {
for _, keychainName := range strings.Split(keychains, ",") {
opts.ActiveKeychains = append(opts.ActiveKeychains, auth.IAASKeychain(strings.TrimSpace(keychainName)))
}
} else {
Expand Down
26 changes: 26 additions & 0 deletions test/e2e/auth_error_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,29 @@ func TestAuthErr(t *testing.T) {
require.Error(t, err)
assert.Contains(t, errOut, "incorrect username or password")
}

func TestKeychainErrors(t *testing.T) {
env := helpers.BuildEnv(t)
imgpkg := helpers.Imgpkg{T: t, ImgpkgPath: env.ImgpkgPath}
t.Run("when providing multiple keychains the failure", func(t *testing.T) {

var stderrBs bytes.Buffer
_, err := imgpkg.RunWithOpts([]string{
"pull", "-i", "some-image", "-o", "something",
}, helpers.RunOpts{AllowError: true, EnvVars: []string{"IMGPKG_ACTIVE_KEYCHAINS=gke,aks"}, StderrWriter: &stderrBs})

require.Error(t, err)
require.Contains(t, stderrBs.String(), "UNAUTHORIZED: authentication required")
})

t.Run("keychain provider name is unknown", func(t *testing.T) {

var stderrBs bytes.Buffer
_, err := imgpkg.RunWithOpts([]string{
"pull", "-i", "some-image", "-o", "something",
}, helpers.RunOpts{AllowError: true, EnvVars: []string{"IMGPKG_ACTIVE_KEYCHAINS=gke,random-name"}, StderrWriter: &stderrBs})

require.Error(t, err)
require.Contains(t, stderrBs.String(), "Unable to load keychain for random-name, available keychains [aks, ecr, gke, github]")
})
}

0 comments on commit 85daa94

Please sign in to comment.