Skip to content

Commit e0636e0

Browse files
tomaszmichalakdajudge
authored andcommitted
#264 Support for passing values as file in Helm
1 parent bb4367a commit e0636e0

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

src/main/java/com/dajudge/kindcontainer/helm/InstallFluent.java

+12-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ public class InstallFluent<P> {
1717
private final P parent;
1818
private String namespace;
1919
private boolean createNamespace;
20-
private Map<String, String> params = new HashMap<>();
20+
private final Map<String, String> params = new HashMap<>();
21+
22+
private final List<String> values = new ArrayList<>();
2123

2224
public InstallFluent(final ExecInContainer c, final P parent) {
2325
this.c = c;
@@ -29,6 +31,11 @@ public InstallFluent<P> set(final String key, final String value) {
2931
return this;
3032
}
3133

34+
public InstallFluent<P> values(final String path) {
35+
values.add(path);
36+
return this;
37+
}
38+
3239
public InstallFluent<P> namespace(final String namespace) {
3340
this.namespace = namespace;
3441
return this;
@@ -53,10 +60,11 @@ public P run(final String releaseName, final String chart) throws IOException, I
5360
if (createNamespace) {
5461
cmdline.add("--create-namespace");
5562
}
56-
params.forEach((k, v) -> {
57-
cmdline.addAll(asList("--set", String.format("%s=%s", k, v)));
58-
});
63+
params.forEach((k, v) -> cmdline.addAll(asList("--set", String.format("%s=%s", k, v))));
5964
cmdline.addAll(asList(releaseName, chart));
65+
values.forEach(v -> {
66+
cmdline.addAll(asList("-f", v));
67+
});
6068
c.safeExecInContainer(cmdline.toArray(new String[]{}));
6169
return parent;
6270
} finally {

src/test/java/com/dajudge/kindcontainer/Helm3Test.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.junit.jupiter.api.TestFactory;
66

77
import java.util.stream.Stream;
8+
import org.testcontainers.utility.MountableFile;
89

910
import static com.dajudge.kindcontainer.util.ContainerVersionHelpers.allContainers;
1011
import static com.dajudge.kindcontainer.util.ContainerVersionHelpers.runWithK8s;
@@ -20,18 +21,20 @@ public Stream<DynamicTest> can_install_something() {
2021

2122
private void assertCanInstallSomething(final KubernetesTestPackage<? extends KubernetesContainer<?>> testPkg) {
2223
runWithK8s(configureContainer(testPkg.newContainer()), k8s -> runWithClient(k8s, client -> {
23-
assertFalse(client.apps().deployments().inNamespace("kubernetes-replicator").list().getItems().isEmpty());
24+
assertFalse(client.apps().deployments().inNamespace("hello").list().getItems().isEmpty());
2425
}));
2526
}
2627

2728
private KubernetesContainer<?> configureContainer(KubernetesContainer<?> container) {
2829
return container.withHelm3(helm -> {
29-
helm.repo.add.run("mittwald", "https://helm.mittwald.de");
30+
helm.copyFileToContainer(MountableFile.forClasspathResource("hello-values.yaml"), "/apps/values.yaml");
31+
helm.repo.add.run("examples", "https://helm.github.io/examples");
3032
helm.repo.update.run();
3133
helm.install
32-
.namespace("kubernetes-replicator")
34+
.namespace("hello")
3335
.createNamespace()
34-
.run("kubernetes-replicator", "mittwald/kubernetes-replicator");
36+
.values("/apps/values.yaml")
37+
.run("hello", "examples/hello-world");
3538
});
3639
}
3740
}

src/test/resources/hello-values.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
replicaCount: 2

0 commit comments

Comments
 (0)