diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java b/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java index 9d2e6a7a2a024..07f88151a5154 100644 --- a/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java +++ b/build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java @@ -24,6 +24,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -45,6 +46,8 @@ public abstract class RunTask extends DefaultTestClustersTask { private Boolean apmServerEnabled = false; + private List plugins = List.of(); + private Boolean preserveData = false; private Path dataDir = null; @@ -101,6 +104,22 @@ public void setApmServerEnabled(Boolean apmServerEnabled) { this.apmServerEnabled = apmServerEnabled; } + @Option(option = "with-plugins", description = "Run distribution with plugins installed") + public void setPlugins(String plugins) { + this.plugins = Arrays.asList(plugins.split(",")); + for (var cluster : getClusters()) { + for (String plugin : this.plugins) { + cluster.plugin(":plugins:" + plugin); + } + dependsOn(cluster.getPluginAndModuleConfigurations()); + } + } + + @Input + public List getPlugins() { + return plugins; + } + @Option(option = "data-dir", description = "Override the base data directory used by the testcluster") public void setDataDir(String dataDirStr) { dataDir = Paths.get(dataDirStr).toAbsolutePath();