Skip to content

Commit

Permalink
fix(controller): Correct bug for repository ref without default key. F…
Browse files Browse the repository at this point in the history
…ixes argoproj#5646 (argoproj#5660)

Signed-off-by: Alex Collins <[email protected]>
  • Loading branch information
alexec committed Apr 16, 2021
1 parent 5a39722 commit f6be569
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
5 changes: 3 additions & 2 deletions workflow/artifactrepositories/artifactrepositories.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package artifactrepositories
import (
"context"
"fmt"
"strings"

log "github.com/sirupsen/logrus"
v1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -52,7 +53,7 @@ func (s *artifactRepositories) Resolve(ctx context.Context, ref *wfv1.ArtifactRe
}
for _, r := range refs {
resolvedRef, _, err := s.get(ctx, r)
if apierr.IsNotFound(err) {
if err != nil && (apierr.IsNotFound(err) || strings.Contains(err.Error(), "config map missing key")) {
continue
}
if err != nil {
Expand All @@ -61,7 +62,7 @@ func (s *artifactRepositories) Resolve(ctx context.Context, ref *wfv1.ArtifactRe
log.WithField("artifactRepositoryRef", r).Info("resolved artifact repository")
return resolvedRef, nil
}
return nil, fmt.Errorf("failed to find any artifact repository - should never happen")
return nil, fmt.Errorf(`failed to find any artifact repository for artifact repository ref "%v"`, ref)
}

func (s *artifactRepositories) Get(ctx context.Context, ref *wfv1.ArtifactRepositoryRefStatus) (*config.ArtifactRepository, error) {
Expand Down
16 changes: 16 additions & 0 deletions workflow/artifactrepositories/artifactrepositories_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,22 @@ func TestArtifactRepositories(t *testing.T) {
err = k.CoreV1().ConfigMaps("my-wf-ns").Delete(ctx, "artifact-repositories", metav1.DeleteOptions{})
assert.NoError(t, err)
})
t.Run("DefaultWithNamespace", func(t *testing.T) {
ctx := context.Background()
_, err := k.CoreV1().ConfigMaps("my-wf-ns").Create(ctx, &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: "artifact-repositories",
},
}, metav1.CreateOptions{})
assert.NoError(t, err)

ref, err := i.Resolve(ctx, nil, "my-wf-ns")
if assert.NoError(t, err) {
assert.Equal(t, wfv1.DefaultArtifactRepositoryRefStatus, ref)
}
err = k.CoreV1().ConfigMaps("my-wf-ns").Delete(ctx, "artifact-repositories", metav1.DeleteOptions{})
assert.NoError(t, err)
})
t.Run("Default", func(t *testing.T) {
ctx := context.Background()
ref, err := i.Resolve(ctx, nil, "my-wf-ns")
Expand Down

0 comments on commit f6be569

Please sign in to comment.