[ci] Add Alma Linux 9 to matrix in packaging and platform jobs (#118331)

SmbTestContainer base image upgraded from Ubuntu 16.04 to 24.04 to avoid
 hanging Python module compilation when installing samba package.
 Installing SMB had to be moved from container building to starting because
 SYS_ADMIN capability is required.
This commit is contained in:
Mariusz Józala 2024-12-12 12:13:58 +01:00 committed by GitHub
parent a975927320
commit a0f64d2c9d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 29 additions and 7 deletions

View file

@ -18,6 +18,7 @@ steps:
- rhel-8
- rhel-9
- almalinux-8
- almalinux-9
agents:
provider: gcp
image: family/elasticsearch-{{matrix.image}}

View file

@ -19,6 +19,7 @@ steps:
- rhel-8
- rhel-9
- almalinux-8
- almalinux-9
agents:
provider: gcp
image: family/elasticsearch-{{matrix.image}}

View file

@ -18,6 +18,7 @@ steps:
- rhel-8
- rhel-9
- almalinux-8
- almalinux-9
agents:
provider: gcp
image: family/elasticsearch-{{matrix.image}}

View file

@ -21,6 +21,7 @@ steps:
- rhel-8
- rhel-9
- almalinux-8
- almalinux-9
PACKAGING_TASK:
- docker
- docker-cloud-ess

View file

@ -2,6 +2,8 @@ apply plugin: 'elasticsearch.java'
apply plugin: 'elasticsearch.cache-test-fixtures'
dependencies {
implementation "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}"
api project(':test:fixtures:testcontainer-utils')
api "junit:junit:${versions.junit}"
api "org.testcontainers:testcontainers:${versions.testcontainer}"

View file

@ -7,12 +7,18 @@
package org.elasticsearch.test.fixtures.smb;
import com.github.dockerjava.api.model.Capability;
import org.elasticsearch.test.fixtures.testcontainers.DockerEnvironmentAwareTestContainer;
import org.testcontainers.containers.wait.strategy.Wait;
import org.testcontainers.containers.wait.strategy.WaitAllStrategy;
import org.testcontainers.images.builder.ImageFromDockerfile;
import java.time.Duration;
public final class SmbTestContainer extends DockerEnvironmentAwareTestContainer {
private static final String DOCKER_BASE_IMAGE = "ubuntu:16.04";
private static final String DOCKER_BASE_IMAGE = "ubuntu:24.04";
public static final int AD_LDAP_PORT = 636;
public static final int AD_LDAP_GC_PORT = 3269;
@ -20,15 +26,15 @@ public final class SmbTestContainer extends DockerEnvironmentAwareTestContainer
super(
new ImageFromDockerfile("es-smb-fixture").withDockerfileFromBuilder(
builder -> builder.from(DOCKER_BASE_IMAGE)
.run("apt-get update -qqy && apt-get install -qqy samba ldap-utils")
.env("TZ", "Etc/UTC")
.run("DEBIAN_FRONTEND=noninteractive apt-get update -qqy && apt-get install -qqy tzdata winbind samba ldap-utils")
.copy("fixture/provision/installsmb.sh", "/fixture/provision/installsmb.sh")
.copy("fixture/certs/ca.key", "/fixture/certs/ca.key")
.copy("fixture/certs/ca.pem", "/fixture/certs/ca.pem")
.copy("fixture/certs/cert.pem", "/fixture/certs/cert.pem")
.copy("fixture/certs/key.pem", "/fixture/certs/key.pem")
.run("chmod +x /fixture/provision/installsmb.sh")
.run("/fixture/provision/installsmb.sh")
.cmd("service samba-ad-dc restart && sleep infinity")
.cmd("/fixture/provision/installsmb.sh && service samba-ad-dc restart && echo Samba started && sleep infinity")
.build()
)
.withFileFromClasspath("fixture/provision/installsmb.sh", "/smb/provision/installsmb.sh")
@ -37,10 +43,20 @@ public final class SmbTestContainer extends DockerEnvironmentAwareTestContainer
.withFileFromClasspath("fixture/certs/cert.pem", "/smb/certs/cert.pem")
.withFileFromClasspath("fixture/certs/key.pem", "/smb/certs/key.pem")
);
// addExposedPort(389);
// addExposedPort(3268);
addExposedPort(AD_LDAP_PORT);
addExposedPort(AD_LDAP_GC_PORT);
setWaitStrategy(
new WaitAllStrategy().withStartupTimeout(Duration.ofSeconds(120))
.withStrategy(Wait.forLogMessage(".*Samba started.*", 1))
.withStrategy(Wait.forListeningPort())
);
getCreateContainerCmdModifiers().add(createContainerCmd -> {
createContainerCmd.getHostConfig().withCapAdd(Capability.SYS_ADMIN);
return createContainerCmd;
});
}
public String getAdLdapUrl() {

View file

@ -21,7 +21,7 @@ cat $SSL_DIR/ca.pem >> /etc/ssl/certs/ca-certificates.crt
mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=AD.TEST.ELASTICSEARCH.COM --domain=ADES --adminpass=Passw0rd --use-ntvfs
samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=AD.TEST.ELASTICSEARCH.COM --domain=ADES --adminpass=Passw0rd
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf