mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 09:28:55 -04:00
Replace cloud-ess docker image with wolfi-ess (#114413)
* Replace cloud-ess docker image with wolfi-ess We just replaced the existing implementation of cloud-ess with what was wolfi-ess which is a wolfi based ess image. The cloud image itself will be removed in a future commit it was not used anywhere * Switch to test cloud docker image instead of default docker in packaging pr tests. This adds way more coverage than the default docker image which is also barely touched
This commit is contained in:
parent
2155f1bed5
commit
f1f5ee06a3
16 changed files with 61 additions and 135 deletions
|
@ -5,7 +5,7 @@ steps:
|
|||
steps:
|
||||
- label: "{{matrix.image}} / docker / packaging-tests-unix"
|
||||
key: "packaging-tests-unix-docker"
|
||||
command: ./.ci/scripts/packaging-test.sh destructiveDistroTest.docker
|
||||
command: ./.ci/scripts/packaging-test.sh destructiveDistroTest.docker-cloud-ess
|
||||
timeout_in_minutes: 300
|
||||
matrix:
|
||||
setup:
|
||||
|
|
|
@ -24,10 +24,6 @@ public enum DockerBase {
|
|||
// Base image with extras for Cloud
|
||||
CLOUD("ubuntu:20.04", "-cloud", "apt-get"),
|
||||
|
||||
// Based on CLOUD above, with more extras. We don't set a base image because
|
||||
// we programmatically extend from the Cloud image.
|
||||
CLOUD_ESS(null, "-cloud-ess", "apt-get"),
|
||||
|
||||
// Chainguard based wolfi image with latest jdk
|
||||
// This is usually updated via renovatebot
|
||||
// spotless:off
|
||||
|
@ -36,10 +32,9 @@ public enum DockerBase {
|
|||
"apk"
|
||||
),
|
||||
// spotless:on
|
||||
|
||||
// Based on WOLFI above, with more extras. We don't set a base image because
|
||||
// we programmatically extend from the Wolfi image.
|
||||
WOLFI_ESS(null, "-wolfi-ess", "apk");
|
||||
// we programmatically extend from the wolfi image.
|
||||
CLOUD_ESS(null, "-cloud-ess", "apk");
|
||||
|
||||
private final String image;
|
||||
private final String suffix;
|
||||
|
|
|
@ -181,9 +181,6 @@ public class InternalDistributionDownloadPlugin implements Plugin<Project> {
|
|||
if (distribution.getType() == InternalElasticsearchDistributionTypes.DOCKER_WOLFI) {
|
||||
return projectName + "wolfi-docker" + archString + "-export";
|
||||
}
|
||||
if (distribution.getType() == InternalElasticsearchDistributionTypes.DOCKER_WOLFI_ESS) {
|
||||
return projectName + "wolfi-ess-docker" + archString + "-export";
|
||||
}
|
||||
return projectName + distribution.getType().getName();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the "Elastic License
|
||||
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
|
||||
* Public License v 1"; you may not use this file except in compliance with, at
|
||||
* your election, the "Elastic License 2.0", the "GNU Affero General Public
|
||||
* License v3.0 only", or the "Server Side Public License, v 1".
|
||||
*/
|
||||
|
||||
package org.elasticsearch.gradle.internal.distribution;
|
||||
|
||||
import org.elasticsearch.gradle.ElasticsearchDistributionType;
|
||||
|
||||
public class DockerWolfiEssElasticsearchDistributionType implements ElasticsearchDistributionType {
|
||||
|
||||
DockerWolfiEssElasticsearchDistributionType() {}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "dockerWolfiEss";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDocker() {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -22,7 +22,6 @@ public class InternalElasticsearchDistributionTypes {
|
|||
public static ElasticsearchDistributionType DOCKER_CLOUD = new DockerCloudElasticsearchDistributionType();
|
||||
public static ElasticsearchDistributionType DOCKER_CLOUD_ESS = new DockerCloudEssElasticsearchDistributionType();
|
||||
public static ElasticsearchDistributionType DOCKER_WOLFI = new DockerWolfiElasticsearchDistributionType();
|
||||
public static ElasticsearchDistributionType DOCKER_WOLFI_ESS = new DockerWolfiEssElasticsearchDistributionType();
|
||||
|
||||
public static List<ElasticsearchDistributionType> ALL_INTERNAL = List.of(
|
||||
DEB,
|
||||
|
@ -32,7 +31,6 @@ public class InternalElasticsearchDistributionTypes {
|
|||
DOCKER_IRONBANK,
|
||||
DOCKER_CLOUD,
|
||||
DOCKER_CLOUD_ESS,
|
||||
DOCKER_WOLFI,
|
||||
DOCKER_WOLFI_ESS
|
||||
DOCKER_WOLFI
|
||||
);
|
||||
}
|
||||
|
|
|
@ -54,7 +54,6 @@ import static org.elasticsearch.gradle.internal.distribution.InternalElasticsear
|
|||
import static org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes.DOCKER_IRONBANK;
|
||||
import static org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes.DOCKER_UBI;
|
||||
import static org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes.DOCKER_WOLFI;
|
||||
import static org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes.DOCKER_WOLFI_ESS;
|
||||
import static org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes.RPM;
|
||||
|
||||
/**
|
||||
|
@ -153,7 +152,6 @@ public class DistroTestPlugin implements Plugin<Project> {
|
|||
lifecyleTasks.put(DOCKER_CLOUD, project.getTasks().register(taskPrefix + ".docker-cloud"));
|
||||
lifecyleTasks.put(DOCKER_CLOUD_ESS, project.getTasks().register(taskPrefix + ".docker-cloud-ess"));
|
||||
lifecyleTasks.put(DOCKER_WOLFI, project.getTasks().register(taskPrefix + ".docker-wolfi"));
|
||||
lifecyleTasks.put(DOCKER_WOLFI_ESS, project.getTasks().register(taskPrefix + ".docker-wolfi-ess"));
|
||||
lifecyleTasks.put(ARCHIVE, project.getTasks().register(taskPrefix + ".archives"));
|
||||
lifecyleTasks.put(DEB, project.getTasks().register(taskPrefix + ".packages"));
|
||||
lifecyleTasks.put(RPM, lifecyleTasks.get(DEB));
|
||||
|
|
|
@ -7,7 +7,7 @@ the [DockerBase] enum.
|
|||
* UBI - the same as the default image, but based upon [RedHat's UBI
|
||||
images][ubi], specifically their minimal flavour.
|
||||
* Wolfi - the same as the default image, but based upon [Wolfi](https://github.com/wolfi-dev)
|
||||
* Wolfi ESS - this directly extends the Wolfi image, and adds all ES plugins
|
||||
* Cloud ESS - this directly extends the Wolfi image, and adds all ES plugins
|
||||
that the ES build generates in an archive directory. It also sets an
|
||||
environment variable that points at this directory. This allows plugins to
|
||||
be installed from the archive instead of the internet, speeding up
|
||||
|
@ -23,7 +23,6 @@ the [DockerBase] enum.
|
|||
software (FOSS) and Commercial off-the-shelf (COTS). In practice, this is
|
||||
another UBI build, this time on the regular UBI image, with extra
|
||||
hardening. See below for more details.
|
||||
|
||||
* Cloud - this is mostly the same as the default image, with some notable differences:
|
||||
* `filebeat` and `metricbeat` are included
|
||||
* `wget` is included
|
||||
|
@ -31,12 +30,6 @@ the [DockerBase] enum.
|
|||
`/app/elasticsearch.sh`. In normal use this file would be bind-mounted
|
||||
in, but the image ships a stub version of this file so that the image
|
||||
can still be tested.
|
||||
* Cloud ESS - this directly extends the Cloud image, and adds all ES plugins
|
||||
that the ES build generates in an archive directory. It also sets an
|
||||
environment variable that points at this directory. This allows plugins to
|
||||
be installed from the archive instead of the internet, speeding up
|
||||
deployment times.
|
||||
|
||||
The long-term goal is for both Cloud images to be retired in favour of the
|
||||
default image.
|
||||
|
||||
|
|
|
@ -381,7 +381,7 @@ private static List<String> generateTags(DockerBase base, Architecture architect
|
|||
String image = "elasticsearch${base.suffix}"
|
||||
|
||||
String namespace = 'elasticsearch'
|
||||
if (base == DockerBase.CLOUD || base == DockerBase.CLOUD_ESS || base == DockerBase.WOLFI_ESS) {
|
||||
if (base == DockerBase.CLOUD || base == DockerBase.CLOUD_ESS) {
|
||||
namespace += '-ci'
|
||||
}
|
||||
|
||||
|
@ -446,7 +446,8 @@ void addBuildDockerImageTask(Architecture architecture, DockerBase base) {
|
|||
}
|
||||
}
|
||||
|
||||
void addBuildEssDockerImageTask(Architecture architecture, DockerBase dockerBase) {
|
||||
void addBuildEssDockerImageTask(Architecture architecture) {
|
||||
DockerBase dockerBase = DockerBase.CLOUD_ESS
|
||||
String arch = architecture == Architecture.AARCH64 ? '-aarch64' : ''
|
||||
String contextDir = "${project.buildDir}/docker-context/elasticsearch${dockerBase.suffix}-${VersionProperties.elasticsearch}-docker-build-context${arch}"
|
||||
|
||||
|
@ -460,7 +461,6 @@ void addBuildEssDockerImageTask(Architecture architecture, DockerBase dockerBase
|
|||
from configurations.allPlugins
|
||||
}
|
||||
|
||||
if (dockerBase == DockerBase.WOLFI_ESS) {
|
||||
// If we're performing a release build, but `build.id` hasn't been set, we can
|
||||
// infer that we're not at the Docker building stage of the build, and therefore
|
||||
// we should skip the beats part of the build.
|
||||
|
@ -473,9 +473,8 @@ void addBuildEssDockerImageTask(Architecture architecture, DockerBase dockerBase
|
|||
}
|
||||
// For some reason, the artifact name can differ depending on what repository we used.
|
||||
rename ~/((?:file|metric)beat)-.*\.tar\.gz$/, "\$1-${VersionProperties.elasticsearch}.tar.gz"
|
||||
}
|
||||
|
||||
String baseSuffix = dockerBase == DockerBase.CLOUD_ESS ? DockerBase.CLOUD.suffix : DockerBase.WOLFI.suffix
|
||||
String baseSuffix = DockerBase.WOLFI.suffix
|
||||
from(projectDir.resolve("src/docker/Dockerfile.ess")) {
|
||||
expand(
|
||||
[
|
||||
|
@ -493,7 +492,7 @@ void addBuildEssDockerImageTask(Architecture architecture, DockerBase dockerBase
|
|||
final TaskProvider<DockerBuildTask> buildDockerImageTask =
|
||||
tasks.register(taskName("build", architecture, dockerBase, "DockerImage"), DockerBuildTask) {
|
||||
|
||||
DockerBase base = dockerBase == DockerBase.CLOUD_ESS ? DockerBase.CLOUD : DockerBase.WOLFI
|
||||
DockerBase base = DockerBase.WOLFI
|
||||
|
||||
TaskProvider<DockerBuildTask> buildBaseTask = tasks.named(taskName("build", architecture, base, "DockerImage"))
|
||||
inputs.files(buildBaseTask)
|
||||
|
@ -519,7 +518,7 @@ void addBuildEssDockerImageTask(Architecture architecture, DockerBase dockerBase
|
|||
|
||||
for (final Architecture architecture : Architecture.values()) {
|
||||
for (final DockerBase base : DockerBase.values()) {
|
||||
if (base == DockerBase.CLOUD_ESS || base == DockerBase.WOLFI_ESS) {
|
||||
if (base == DockerBase.CLOUD_ESS) {
|
||||
continue
|
||||
}
|
||||
addBuildDockerContextTask(architecture, base)
|
||||
|
@ -527,8 +526,7 @@ for (final Architecture architecture : Architecture.values()) {
|
|||
addBuildDockerImageTask(architecture, base)
|
||||
}
|
||||
|
||||
addBuildEssDockerImageTask(architecture, DockerBase.CLOUD_ESS)
|
||||
addBuildEssDockerImageTask(architecture, DockerBase.WOLFI_ESS)
|
||||
addBuildEssDockerImageTask(architecture)
|
||||
}
|
||||
|
||||
def exportDockerImages = tasks.register("exportDockerImages")
|
||||
|
@ -564,8 +562,7 @@ subprojects { Project subProject ->
|
|||
(base == DockerBase.CLOUD ? 'cloud.tar' :
|
||||
(base == DockerBase.CLOUD_ESS ? 'cloud-ess.tar' :
|
||||
(base == DockerBase.WOLFI ? 'wolfi.tar' :
|
||||
(base == DockerBase.WOLFI_ESS ? 'wolfi-ess.tar' :
|
||||
'docker.tar')))))
|
||||
'docker.tar'))))
|
||||
final String artifactName = "elasticsearch${arch}${base.suffix}_test"
|
||||
|
||||
final String exportTaskName = taskName("export", architecture, base, 'DockerImage')
|
||||
|
|
|
@ -2,7 +2,6 @@ FROM ${base_image} AS builder
|
|||
|
||||
USER root
|
||||
|
||||
<% if (docker_base == "wolfi_ess") { %>
|
||||
# Add plugins infrastructure
|
||||
RUN mkdir -p /opt/plugins/archive
|
||||
RUN chmod -R 0555 /opt/plugins
|
||||
|
@ -21,7 +20,6 @@ USER root
|
|||
mkdir -p /opt/\$beat ; \\
|
||||
tar xf /tmp/\$beat-${version}.tar.gz -C /opt/\$beat --strip-components=1 ; \\
|
||||
done
|
||||
<% } %>
|
||||
|
||||
COPY plugins/*.zip /opt/plugins/archive/
|
||||
|
||||
|
@ -29,7 +27,6 @@ RUN chown 1000:1000 /opt/plugins/archive/*
|
|||
RUN chmod 0444 /opt/plugins/archive/*
|
||||
|
||||
FROM ${base_image}
|
||||
<% if (docker_base == "wolfi_ess") { %>
|
||||
USER root
|
||||
|
||||
RUN <%= retry.loop("apk", "export DEBIAN_FRONTEND=noninteractive && apk update && apk update && apk add --no-cache wget") %>
|
||||
|
@ -44,8 +41,4 @@ RUN mkdir /app && \\
|
|||
|
||||
COPY --from=builder --chown=0:0 /opt /opt
|
||||
USER 1000:0
|
||||
<% } else { %>
|
||||
COPY --from=builder /opt/plugins /opt/plugins
|
||||
<% } %>
|
||||
|
||||
ENV ES_PLUGIN_ARCHIVE_DIR /opt/plugins/archive
|
||||
|
|
|
@ -99,6 +99,7 @@ import static org.junit.Assume.assumeTrue;
|
|||
* <li>The default image with a custom, small base image</li>
|
||||
* <li>A UBI-based image</li>
|
||||
* <li>Another UBI image for Iron Bank</li>
|
||||
* <li>A WOLFI-based image</li>
|
||||
* <li>Images for Cloud</li>
|
||||
* </ul>
|
||||
*/
|
||||
|
@ -170,9 +171,7 @@ public class DockerTests extends PackagingTestCase {
|
|||
public void test020PluginsListWithNoPlugins() {
|
||||
assumeTrue(
|
||||
"Only applies to non-Cloud images",
|
||||
distribution.packaging != Packaging.DOCKER_CLOUD
|
||||
&& distribution().packaging != Packaging.DOCKER_CLOUD_ESS
|
||||
&& distribution().packaging != Packaging.DOCKER_WOLFI_ESS
|
||||
distribution.packaging != Packaging.DOCKER_CLOUD && distribution().packaging != Packaging.DOCKER_CLOUD_ESS
|
||||
);
|
||||
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
@ -203,15 +202,14 @@ public class DockerTests extends PackagingTestCase {
|
|||
* Checks that ESS images can install plugins from the local archive.
|
||||
*/
|
||||
public void test022InstallPluginsFromLocalArchive() {
|
||||
assumeTrue(
|
||||
"Only ESS images have a local archive",
|
||||
distribution().packaging == Packaging.DOCKER_CLOUD_ESS || distribution().packaging == Packaging.DOCKER_WOLFI_ESS
|
||||
);
|
||||
assumeTrue("Only ESS images have a local archive", distribution().packaging == Packaging.DOCKER_CLOUD_ESS);
|
||||
|
||||
final String plugin = "analysis-icu";
|
||||
final Installation.Executables bin = installation.executables();
|
||||
|
||||
listPluginArchive().forEach(System.out::println);
|
||||
assertThat("Expected " + plugin + " to not be installed", listPlugins(), not(hasItems(plugin)));
|
||||
assertThat("Expected " + plugin + " available in archive", listPluginArchive(), hasSize(16));
|
||||
|
||||
// Stuff the proxy settings with garbage, so any attempt to go out to the internet would fail
|
||||
sh.getEnv()
|
||||
|
@ -259,10 +257,7 @@ public class DockerTests extends PackagingTestCase {
|
|||
* Checks that ESS images can manage plugins from the local archive by deploying a plugins config file.
|
||||
*/
|
||||
public void test024InstallPluginFromArchiveUsingConfigFile() {
|
||||
assumeTrue(
|
||||
"Only ESS image has a plugin archive",
|
||||
distribution().packaging == Packaging.DOCKER_CLOUD_ESS || distribution().packaging == Packaging.DOCKER_WOLFI_ESS
|
||||
);
|
||||
assumeTrue("Only ESS image has a plugin archive", distribution().packaging == Packaging.DOCKER_CLOUD_ESS);
|
||||
|
||||
final String filename = "elasticsearch-plugins.yml";
|
||||
append(tempDir.resolve(filename), """
|
||||
|
@ -394,7 +389,7 @@ public class DockerTests extends PackagingTestCase {
|
|||
if (distribution.packaging == Packaging.DOCKER_UBI || distribution.packaging == Packaging.DOCKER_IRON_BANK) {
|
||||
// In these images, the `cacerts` file ought to be a symlink here
|
||||
assertThat(path, equalTo("/etc/pki/ca-trust/extracted/java/cacerts"));
|
||||
} else if (distribution.packaging == Packaging.DOCKER_WOLFI || distribution.packaging == Packaging.DOCKER_WOLFI_ESS) {
|
||||
} else if (distribution.packaging == Packaging.DOCKER_WOLFI || distribution.packaging == Packaging.DOCKER_CLOUD_ESS) {
|
||||
// In these images, the `cacerts` file ought to be a symlink here
|
||||
assertThat(path, equalTo("/etc/ssl/certs/java/cacerts"));
|
||||
} else {
|
||||
|
@ -1121,10 +1116,8 @@ public class DockerTests extends PackagingTestCase {
|
|||
*/
|
||||
public void test171AdditionalCliOptionsAreForwarded() throws Exception {
|
||||
assumeTrue(
|
||||
"Does not apply to Cloud and wolfi ess images, because they don't use the default entrypoint",
|
||||
distribution.packaging != Packaging.DOCKER_CLOUD
|
||||
&& distribution().packaging != Packaging.DOCKER_CLOUD_ESS
|
||||
&& distribution().packaging != Packaging.DOCKER_WOLFI_ESS
|
||||
"Does not apply to Cloud and Cloud ESS images, because they don't use the default entrypoint",
|
||||
distribution.packaging != Packaging.DOCKER_CLOUD && distribution().packaging != Packaging.DOCKER_CLOUD_ESS
|
||||
);
|
||||
|
||||
runContainer(distribution(), builder().runArgs("bin/elasticsearch", "-Ecluster.name=kimchy").envVar("ELASTIC_PASSWORD", PASSWORD));
|
||||
|
@ -1211,11 +1204,7 @@ public class DockerTests extends PackagingTestCase {
|
|||
* Check that the Cloud image contains the required Beats
|
||||
*/
|
||||
public void test400CloudImageBundlesBeats() {
|
||||
assumeTrue(
|
||||
distribution.packaging == Packaging.DOCKER_CLOUD
|
||||
|| distribution.packaging == Packaging.DOCKER_CLOUD_ESS
|
||||
|| distribution.packaging == Packaging.DOCKER_WOLFI_ESS
|
||||
);
|
||||
assumeTrue(distribution.packaging == Packaging.DOCKER_CLOUD || distribution.packaging == Packaging.DOCKER_CLOUD_ESS);
|
||||
|
||||
final List<String> contents = listContents("/opt");
|
||||
assertThat("Expected beats in /opt", contents, hasItems("filebeat", "metricbeat"));
|
||||
|
@ -1233,6 +1222,10 @@ public class DockerTests extends PackagingTestCase {
|
|||
return sh.run(bin.pluginTool + " list").stdout().lines().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<String> listPluginArchive() {
|
||||
return sh.run("ls -lh /opt/plugins/archive").stdout().lines().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that readiness listener works
|
||||
*/
|
||||
|
|
|
@ -436,7 +436,7 @@ public class KeystoreManagementTests extends PackagingTestCase {
|
|||
switch (distribution.packaging) {
|
||||
case TAR, ZIP -> assertThat(keystore, file(File, ARCHIVE_OWNER, ARCHIVE_OWNER, p660));
|
||||
case DEB, RPM -> assertThat(keystore, file(File, "root", "elasticsearch", p660));
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI, DOCKER_WOLFI_ESS -> assertThat(
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI -> assertThat(
|
||||
keystore,
|
||||
DockerFileMatcher.file(p660)
|
||||
);
|
||||
|
|
|
@ -245,7 +245,7 @@ public abstract class PackagingTestCase extends Assert {
|
|||
installation = Packages.installPackage(sh, distribution);
|
||||
Packages.verifyPackageInstallation(installation, distribution, sh);
|
||||
}
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI, DOCKER_WOLFI_ESS -> {
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI -> {
|
||||
installation = Docker.runContainer(distribution);
|
||||
Docker.verifyContainerInstallation(installation);
|
||||
}
|
||||
|
@ -338,7 +338,6 @@ public abstract class PackagingTestCase extends Assert {
|
|||
case DOCKER_CLOUD:
|
||||
case DOCKER_CLOUD_ESS:
|
||||
case DOCKER_WOLFI:
|
||||
case DOCKER_WOLFI_ESS:
|
||||
// nothing, "installing" docker image is running it
|
||||
return Shell.NO_OP;
|
||||
default:
|
||||
|
@ -362,7 +361,6 @@ public abstract class PackagingTestCase extends Assert {
|
|||
case DOCKER_CLOUD:
|
||||
case DOCKER_CLOUD_ESS:
|
||||
case DOCKER_WOLFI:
|
||||
case DOCKER_WOLFI_ESS:
|
||||
// nothing, "installing" docker image is running it
|
||||
break;
|
||||
default:
|
||||
|
@ -375,8 +373,7 @@ public abstract class PackagingTestCase extends Assert {
|
|||
switch (distribution.packaging) {
|
||||
case TAR, ZIP -> Archives.assertElasticsearchStarted(installation);
|
||||
case DEB, RPM -> Packages.assertElasticsearchStarted(sh, installation);
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI, DOCKER_WOLFI_ESS -> Docker
|
||||
.waitForElasticsearchToStart();
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI -> Docker.waitForElasticsearchToStart();
|
||||
default -> throw new IllegalStateException("Unknown Elasticsearch packaging type.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,8 +39,6 @@ public class Distribution {
|
|||
this.packaging = Packaging.DOCKER_CLOUD_ESS;
|
||||
} else if (filename.endsWith(".wolfi.tar")) {
|
||||
this.packaging = Packaging.DOCKER_WOLFI;
|
||||
} else if (filename.endsWith(".wolfi-ess.tar")) {
|
||||
this.packaging = Packaging.DOCKER_WOLFI_ESS;
|
||||
} else {
|
||||
int lastDot = filename.lastIndexOf('.');
|
||||
this.packaging = Packaging.valueOf(filename.substring(lastDot + 1).toUpperCase(Locale.ROOT));
|
||||
|
@ -65,7 +63,7 @@ public class Distribution {
|
|||
*/
|
||||
public boolean isDocker() {
|
||||
return switch (packaging) {
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI, DOCKER_WOLFI_ESS -> true;
|
||||
case DOCKER, DOCKER_UBI, DOCKER_IRON_BANK, DOCKER_CLOUD, DOCKER_CLOUD_ESS, DOCKER_WOLFI -> true;
|
||||
default -> false;
|
||||
};
|
||||
}
|
||||
|
@ -81,8 +79,7 @@ public class Distribution {
|
|||
DOCKER_IRON_BANK(".ironbank.tar", Platforms.isDocker()),
|
||||
DOCKER_CLOUD(".cloud.tar", Platforms.isDocker()),
|
||||
DOCKER_CLOUD_ESS(".cloud-ess.tar", Platforms.isDocker()),
|
||||
DOCKER_WOLFI(".wolfi.tar", Platforms.isDocker()),
|
||||
DOCKER_WOLFI_ESS(".wolfi-ess.tar", Platforms.isDocker());
|
||||
DOCKER_WOLFI(".wolfi.tar", Platforms.isDocker());
|
||||
|
||||
/** The extension of this distribution's file */
|
||||
public final String extension;
|
||||
|
|
|
@ -532,9 +532,7 @@ public class Docker {
|
|||
)
|
||||
);
|
||||
|
||||
if (es.distribution.packaging == Packaging.DOCKER_CLOUD
|
||||
|| es.distribution.packaging == Packaging.DOCKER_CLOUD_ESS
|
||||
|| es.distribution.packaging == Packaging.DOCKER_WOLFI_ESS) {
|
||||
if (es.distribution.packaging == Packaging.DOCKER_CLOUD || es.distribution.packaging == Packaging.DOCKER_CLOUD_ESS) {
|
||||
verifyCloudContainerInstallation(es);
|
||||
}
|
||||
}
|
||||
|
@ -543,7 +541,7 @@ public class Docker {
|
|||
final String pluginArchive = "/opt/plugins/archive";
|
||||
final List<String> plugins = listContents(pluginArchive);
|
||||
|
||||
if (es.distribution.packaging == Packaging.DOCKER_CLOUD_ESS || es.distribution.packaging == Packaging.DOCKER_WOLFI_ESS) {
|
||||
if (es.distribution.packaging == Packaging.DOCKER_CLOUD_ESS) {
|
||||
assertThat("ESS image should come with plugins in " + pluginArchive, plugins, not(empty()));
|
||||
|
||||
final List<String> repositoryPlugins = plugins.stream()
|
||||
|
|
|
@ -168,7 +168,6 @@ public class DockerRun {
|
|||
case DOCKER_CLOUD -> "-cloud";
|
||||
case DOCKER_CLOUD_ESS -> "-cloud-ess";
|
||||
case DOCKER_WOLFI -> "-wolfi";
|
||||
case DOCKER_WOLFI_ESS -> "-wolfi-ess";
|
||||
default -> throw new IllegalStateException("Unexpected distribution packaging type: " + distribution.packaging);
|
||||
};
|
||||
|
||||
|
|
|
@ -75,8 +75,6 @@ List projects = [
|
|||
'distribution:docker:ubi-docker-export',
|
||||
'distribution:docker:wolfi-docker-aarch64-export',
|
||||
'distribution:docker:wolfi-docker-export',
|
||||
'distribution:docker:wolfi-ess-docker-aarch64-export',
|
||||
'distribution:docker:wolfi-ess-docker-export',
|
||||
'distribution:packages:aarch64-deb',
|
||||
'distribution:packages:deb',
|
||||
'distribution:packages:aarch64-rpm',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue