Skip to content

Commit 6640f87

Browse files
committed
test: add Kustomize test case for multiple helm charts with different version
Signed-off-by: Ardika Bagus <[email protected]>
1 parent 790dbf0 commit 6640f87

File tree

5 files changed

+124
-7
lines changed

5 files changed

+124
-7
lines changed

api/krusty/helmchartinflationgenerator_test.go

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,6 +567,123 @@ metadata:
567567
`)
568568
}
569569

570+
// Reference: https://github.com/kubernetes-sigs/kustomize/issues/5163
571+
func TestHelmChartInflationGeneratorForMultipleChartsDifferentVersion(t *testing.T) {
572+
th := kusttest_test.MakeEnhancedHarnessWithTmpRoot(t)
573+
defer th.Reset()
574+
if err := th.ErrIfNoHelm(); err != nil {
575+
t.Skip("skipping: " + err.Error())
576+
}
577+
578+
copyValuesFilesTestChartsIntoHarness(t, th)
579+
580+
th.WriteK(th.GetRoot(), `
581+
namespace: default
582+
helmCharts:
583+
- name: test-chart
584+
releaseName: test
585+
version: 1.0.0
586+
skipTests: true
587+
- name: minecraft
588+
repo: https://itzg.github.io/minecraft-server-charts
589+
version: 3.1.3
590+
releaseName: test-1
591+
- name: minecraft
592+
repo: https://itzg.github.io/minecraft-server-charts
593+
version: 3.1.4
594+
releaseName: test-2
595+
`)
596+
597+
m := th.Run(th.GetRoot(), th.MakeOptionsPluginsEnabled())
598+
th.AssertActualEqualsExpected(m, `
599+
apiVersion: apps/v1
600+
kind: Deployment
601+
metadata:
602+
labels:
603+
chart: test-1.0.0
604+
name: my-deploy
605+
namespace: default
606+
spec:
607+
replicas: 1
608+
selector:
609+
matchLabels:
610+
app: test
611+
template:
612+
spec:
613+
containers:
614+
- image: test-image:v1.0.0
615+
imagePullPolicy: Always
616+
---
617+
apiVersion: v1
618+
data:
619+
rcon-password: Q0hBTkdFTUUh
620+
kind: Secret
621+
metadata:
622+
labels:
623+
app: test-1-minecraft
624+
chart: minecraft-3.1.3
625+
heritage: Helm
626+
release: test-1
627+
name: test-1-minecraft
628+
namespace: default
629+
type: Opaque
630+
---
631+
apiVersion: v1
632+
kind: Service
633+
metadata:
634+
labels:
635+
app: test-1-minecraft
636+
chart: minecraft-3.1.3
637+
heritage: Helm
638+
release: test-1
639+
name: test-1-minecraft
640+
namespace: default
641+
spec:
642+
ports:
643+
- name: minecraft
644+
port: 25565
645+
protocol: TCP
646+
targetPort: minecraft
647+
selector:
648+
app: test-1-minecraft
649+
type: ClusterIP
650+
---
651+
apiVersion: v1
652+
data:
653+
rcon-password: Q0hBTkdFTUUh
654+
kind: Secret
655+
metadata:
656+
labels:
657+
app: test-2-minecraft
658+
chart: minecraft-3.1.4
659+
heritage: Helm
660+
release: test-2
661+
name: test-2-minecraft
662+
namespace: default
663+
type: Opaque
664+
---
665+
apiVersion: v1
666+
kind: Service
667+
metadata:
668+
labels:
669+
app: test-2-minecraft
670+
chart: minecraft-3.1.4
671+
heritage: Helm
672+
release: test-2
673+
name: test-2-minecraft
674+
namespace: default
675+
spec:
676+
ports:
677+
- name: minecraft
678+
port: 25565
679+
protocol: TCP
680+
targetPort: minecraft
681+
selector:
682+
app: test-2-minecraft
683+
type: ClusterIP
684+
`)
685+
}
686+
570687
func copyValuesFilesTestChartsIntoHarness(t *testing.T, th *kusttest_test.HarnessEnhanced) {
571688
t.Helper()
572689

plugin/builtin/helmchartinflationgenerator/HelmChartInflationGenerator_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -786,22 +786,22 @@ func TestHelmChartInflationGeneratorUsingVersionWithoutRepo(t *testing.T) {
786786
apiVersion: builtin
787787
kind: HelmChartInflationGenerator
788788
metadata:
789-
name: foo-chart
790-
name: foo-chart
789+
name: test-chart
790+
name: test-chart
791791
version: 1.0.0
792-
releaseName: foo-chart
792+
releaseName: test
793793
chartHome: ./charts
794794
`)
795795

796796
cm, err := rm.Resources()[0].GetFieldValue("metadata.name")
797797
assert.NoError(t, err)
798798
assert.Equal(t, "bar", cm)
799799

800-
chartDir := filepath.Join(th.GetRoot(), "charts/foo-chart")
800+
chartDir := filepath.Join(th.GetRoot(), "charts/test-chart")
801801
assert.True(t, th.GetFSys().Exists(chartDir))
802802

803803
chartYamlContent, err := th.GetFSys().ReadFile(filepath.Join(chartDir, "Chart.yaml"))
804804
assert.NoError(t, err)
805-
assert.Contains(t, string(chartYamlContent), "name: foo-chart")
805+
assert.Contains(t, string(chartYamlContent), "name: test-chart")
806806
assert.Contains(t, string(chartYamlContent), "version: 1.0.0")
807807
}

plugin/builtin/helmchartinflationgenerator/testdata/charts/foo-chart/Chart.yaml renamed to plugin/builtin/helmchartinflationgenerator/testdata/charts/test-chart/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
2-
name: foo-chart
3-
description: A Helm chart for Kubernetes
2+
name: test-chart
3+
description: A simple test helm chart.
44

55
# A chart can be either an 'application' or a 'library' chart.
66
#

0 commit comments

Comments
 (0)