summaryrefslogtreecommitdiff
path: root/pkg/argocd/git_test.go
diff options
context:
space:
mode:
authornoah <noah@hackedu.io>2021-10-21 21:34:05 +1300
committerGitHub <noreply@github.com>2021-10-21 10:34:05 +0200
commit4b130437536e3e321b4ad1ca9dc725f771f3d697 (patch)
tree3196cff76463904e24564d1da2a97a5367c10902 /pkg/argocd/git_test.go
parent89b10c14b5015b644f6d909cce067001220033e6 (diff)
fix: use kyaml to preserve kustomization (#274)
* fix: use kyaml to preserve kustomization fixes #250 fixes #268 fixes #247 * chore: linter error * fix: tests and linting * go mod tidy
Diffstat (limited to 'pkg/argocd/git_test.go')
-rw-r--r--pkg/argocd/git_test.go83
1 files changed, 74 insertions, 9 deletions
diff --git a/pkg/argocd/git_test.go b/pkg/argocd/git_test.go
index 5a60d57..92731d5 100644
--- a/pkg/argocd/git_test.go
+++ b/pkg/argocd/git_test.go
@@ -9,9 +9,11 @@ import (
"github.com/argoproj-labs/argocd-image-updater/pkg/image"
"github.com/argoproj-labs/argocd-image-updater/pkg/tag"
+ "sigs.k8s.io/kustomize/api/types"
+ kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
+
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
"github.com/stretchr/testify/assert"
- image2 "sigs.k8s.io/kustomize/pkg/image"
)
func Test_TemplateCommitMessage(t *testing.T) {
@@ -44,36 +46,36 @@ func Test_parseImageOverride(t *testing.T) {
cases := []struct {
name string
override v1alpha1.KustomizeImage
- expected image2.Image
+ expected types.Image
}{
- {"tag update", "ghcr.io:1234/foo/foo:123", image2.Image{
+ {"tag update", "ghcr.io:1234/foo/foo:123", types.Image{
Name: "ghcr.io:1234/foo/foo",
NewTag: "123",
}},
- {"image update", "ghcr.io:1234/foo/foo=ghcr.io:1234/bar", image2.Image{
+ {"image update", "ghcr.io:1234/foo/foo=ghcr.io:1234/bar", types.Image{
Name: "ghcr.io:1234/foo/foo",
NewName: "ghcr.io:1234/bar",
}},
- {"update everything", "ghcr.io:1234/foo/foo=1234.foo.com:9876/bar:123", image2.Image{
+ {"update everything", "ghcr.io:1234/foo/foo=1234.foo.com:9876/bar:123", types.Image{
Name: "ghcr.io:1234/foo/foo",
NewName: "1234.foo.com:9876/bar",
NewTag: "123",
}},
- {"change registry and tag", "ghcr.io:1234/foo/foo=1234.dkr.ecr.us-east-1.amazonaws.com/bar:123", image2.Image{
+ {"change registry and tag", "ghcr.io:1234/foo/foo=1234.dkr.ecr.us-east-1.amazonaws.com/bar:123", types.Image{
Name: "ghcr.io:1234/foo/foo",
NewName: "1234.dkr.ecr.us-east-1.amazonaws.com/bar",
NewTag: "123",
}},
- {"change only registry", "0001.dkr.ecr.us-east-1.amazonaws.com/bar=1234.dkr.ecr.us-east-1.amazonaws.com/bar", image2.Image{
+ {"change only registry", "0001.dkr.ecr.us-east-1.amazonaws.com/bar=1234.dkr.ecr.us-east-1.amazonaws.com/bar", types.Image{
Name: "0001.dkr.ecr.us-east-1.amazonaws.com/bar",
NewName: "1234.dkr.ecr.us-east-1.amazonaws.com/bar",
}},
- {"change image and set digest", "foo=acme/app@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", image2.Image{
+ {"change image and set digest", "foo=acme/app@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", types.Image{
Name: "foo",
NewName: "acme/app",
Digest: "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
}},
- {"set digest", "acme/app@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", image2.Image{
+ {"set digest", "acme/app@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", types.Image{
Name: "acme/app",
Digest: "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
}},
@@ -86,3 +88,66 @@ func Test_parseImageOverride(t *testing.T) {
}
}
+
+func Test_imagesFilter(t *testing.T) {
+ for _, tt := range []struct {
+ name string
+ images v1alpha1.KustomizeImages
+ expected string
+ }{
+ {name: "simple", images: v1alpha1.KustomizeImages{"foo"}, expected: `
+images:
+- name: foo
+`},
+ {name: "tagged", images: v1alpha1.KustomizeImages{"foo:bar"}, expected: `
+images:
+- name: foo
+ newTag: bar
+`},
+ {name: "rename", images: v1alpha1.KustomizeImages{"baz=foo:bar"}, expected: `
+images:
+- name: baz
+ newName: foo
+ newTag: bar
+`},
+ {name: "digest", images: v1alpha1.KustomizeImages{"baz=foo@sha12345"}, expected: `
+images:
+- name: baz
+ newName: foo
+ digest: sha12345
+`},
+ {name: "digest simple", images: v1alpha1.KustomizeImages{"foo@sha12345"}, expected: `
+images:
+- name: foo
+ digest: sha12345
+`},
+ {name: "all", images: v1alpha1.KustomizeImages{
+ "foo",
+ "foo=bar", // merges with above
+ "baz@sha12345",
+ "bar:123",
+ "foo=bar:123", // merges and overwrites the first two
+ }, expected: `
+images:
+- name: foo
+ newName: bar
+ newTag: "123"
+- name: baz
+ digest: sha12345
+- name: bar
+ newTag: "123"
+`},
+ } {
+ t.Run(tt.name, func(t *testing.T) {
+ filter, err := imagesFilter(tt.images)
+ assert.NoError(t, err)
+
+ node := kyaml.NewRNode(&kyaml.Node{Kind: kyaml.DocumentNode, Content: []*kyaml.Node{
+ kyaml.NewMapRNode(nil).YNode(),
+ }})
+ node, err = filter.Filter(node)
+ assert.NoError(t, err)
+ assert.YAMLEq(t, tt.expected, node.MustString())
+ })
+ }
+}