Merge pull request #3838 from monopole/helmNamespace

A last-mile helm example, with namespace and prefix
This commit is contained in:
Kubernetes Prow Robot
2021-05-03 11:02:08 -07:00
committed by GitHub

View File

@@ -81,3 +81,156 @@ helmCharts:
m := th.Run(th.GetRoot(), th.MakeOptionsPluginsEnabled())
th.AssertActualEqualsExpected(m, expectedHelm)
}
// Last mile helm - show how kustomize puts helm charts into different
// namespaces with different customizations.
func TestHelmChartProdVsDev(t *testing.T) {
th := kusttest_test.MakeEnhancedHarnessWithTmpRoot(t)
defer th.Reset()
if err := th.ErrIfNoHelm(); err != nil {
t.Skip("skipping: " + err.Error())
}
dirBase := th.MkDir("base")
dirProd := th.MkDir("prod")
dirDev := th.MkDir("dev")
dirBoth := th.MkDir("both")
th.WriteK(dirBase, `
helmCharts:
- name: minecraft
repo: https://itzg.github.io/minecraft-server-charts
version: 3.1.3
releaseName: test
`)
th.WriteK(dirProd, `
namespace: prod
namePrefix: myProd-
resources:
- ../base
`)
th.WriteK(dirDev, `
namespace: dev
namePrefix: myDev-
resources:
- ../base
`)
th.WriteK(dirBoth, `
resources:
- ../dev
- ../prod
`)
// Base unchanged
m := th.Run(dirBase, th.MakeOptionsPluginsEnabled())
th.AssertActualEqualsExpected(m, expectedHelm)
// Prod has a "prod" namespace and a prefix.
m = th.Run(dirProd, th.MakeOptionsPluginsEnabled())
th.AssertActualEqualsExpected(m, `
apiVersion: v1
data:
rcon-password: Q0hBTkdFTUUh
kind: Secret
metadata:
labels:
app: test-minecraft
chart: minecraft-3.1.3
heritage: Helm
release: test
name: myProd-test-minecraft
namespace: prod
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
labels:
app: test-minecraft
chart: minecraft-3.1.3
heritage: Helm
release: test
name: myProd-test-minecraft
namespace: prod
spec:
ports:
- name: minecraft
port: 25565
protocol: TCP
targetPort: minecraft
selector:
app: test-minecraft
type: ClusterIP
`)
// Both has two namespaces.
m = th.Run(dirBoth, th.MakeOptionsPluginsEnabled())
th.AssertActualEqualsExpected(m, `
apiVersion: v1
data:
rcon-password: Q0hBTkdFTUUh
kind: Secret
metadata:
labels:
app: test-minecraft
chart: minecraft-3.1.3
heritage: Helm
release: test
name: myDev-test-minecraft
namespace: dev
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
labels:
app: test-minecraft
chart: minecraft-3.1.3
heritage: Helm
release: test
name: myDev-test-minecraft
namespace: dev
spec:
ports:
- name: minecraft
port: 25565
protocol: TCP
targetPort: minecraft
selector:
app: test-minecraft
type: ClusterIP
---
apiVersion: v1
data:
rcon-password: Q0hBTkdFTUUh
kind: Secret
metadata:
labels:
app: test-minecraft
chart: minecraft-3.1.3
heritage: Helm
release: test
name: myProd-test-minecraft
namespace: prod
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
labels:
app: test-minecraft
chart: minecraft-3.1.3
heritage: Helm
release: test
name: myProd-test-minecraft
namespace: prod
spec:
ports:
- name: minecraft
port: 25565
protocol: TCP
targetPort: minecraft
selector:
app: test-minecraft
type: ClusterIP
`)
}