Skip to content

Commit 8b43697

Browse files
committed
docker/ci: add AlmaLinux 10
Add (dev) container for AlmaLinux 10. Also run the CI on AlmaLinux next to CentOS 9, 10 and AlmaLinux 9. Signed-off-by: Jean-Louis Dupond <jean-louis@dupond.be>
1 parent 1c9c173 commit 8b43697

File tree

10 files changed

+241
-8
lines changed

10 files changed

+241
-8
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"name": "VDSM Development - AlmaLinux 10",
3+
"dockerComposeFile": "../docker-compose.yml",
4+
"service": "vdsm-dev",
5+
"workspaceFolder": "/workspace",
6+
"containerEnv": {
7+
"DISTRO": "alma-10"
8+
},
9+
"features": {
10+
"ghcr.io/devcontainers/features/git:1": {}
11+
},
12+
"customizations": {
13+
"vscode": {
14+
"extensions": [
15+
"ms-python.python",
16+
"ms-python.pylint",
17+
"ms-python.black-formatter",
18+
"ms-vscode.makefile-tools",
19+
"redhat.vscode-yaml"
20+
],
21+
"settings": {
22+
"python.defaultInterpreterPath": "/venv/bin/python"
23+
}
24+
}
25+
},
26+
"mounts": [
27+
"source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached"
28+
],
29+
"postCreateCommand": ".devcontainer/setup.sh"
30+
}

.devcontainer/docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ services:
1414
volumes:
1515
vdsm-cache-alma-9:
1616
vdsm-cache-centos-9:
17+
vdsm-cache-alma-10:
1718
vdsm-cache-centos-10:

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
strategy:
1212
fail-fast: false
1313
matrix:
14-
distro: [centos-9, centos-10, alma-9]
14+
distro: [centos-9, centos-10, alma-9, alma-10]
1515
container: quay.io/ovirt/vdsm-test:${{ matrix.distro }}
1616
steps:
1717
- uses: ovirt/checkout-action@main
@@ -24,7 +24,7 @@ jobs:
2424
strategy:
2525
fail-fast: false
2626
matrix:
27-
distro: [centos-9, centos-10, alma-9]
27+
distro: [centos-9, centos-10, alma-9, alma-10]
2828
container:
2929
image: quay.io/ovirt/vdsm-test:${{ matrix.distro }}
3030
# Required to create loop devices.
@@ -44,7 +44,7 @@ jobs:
4444
strategy:
4545
fail-fast: false
4646
matrix:
47-
distro: [centos-9, centos-10, alma-9]
47+
distro: [centos-9, centos-10, alma-9, alma-10]
4848
container:
4949
image: quay.io/ovirt/vdsm-test:${{ matrix.distro }}
5050
# Required to create loop devices.
@@ -64,7 +64,7 @@ jobs:
6464
strategy:
6565
fail-fast: false
6666
matrix:
67-
distro: [centos-9, centos-10, alma-9]
67+
distro: [centos-9, centos-10, alma-9, alma-10]
6868
container:
6969
image: quay.io/ovirt/vdsm-test:${{ matrix.distro }}
7070
# Needed for many operations, i.e. creating bridges

.github/workflows/containers.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
uses: redhat-actions/push-to-registry@v2
3434
with:
3535
image: ovirt/vdsm-network-tests-${{ matrix.container }}
36-
tags: alma-9 centos-9 centos-10
36+
tags: alma-9 centos-9 alma-10 centos-10
3737
registry: ${{ env.IMAGE_REGISTRY }}
3838
username: ${{ secrets.QUAY_USERNAME }}
3939
password: ${{ secrets.QUAY_TOKEN }}
@@ -44,7 +44,7 @@ jobs:
4444
runs-on: ubuntu-latest
4545
strategy:
4646
matrix:
47-
distro: [ centos-9, centos-10, alma-9 ]
47+
distro: [ centos-9, centos-10, alma-9, alma-10 ]
4848
steps:
4949
- uses: ovirt/checkout-action@main
5050
- name: Install dependencies

.github/workflows/network.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
fail-fast: false
3131
matrix:
3232
type: [ unit, integration, functional ]
33-
tag: [ alma-9, centos-9, centos-10 ]
33+
tag: [ alma-9, centos-9, alma-10, centos-10 ]
3434
steps:
3535
- uses: ovirt/checkout-action@main
3636
- name: Install dependencies

doc/development.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ The easiest way to get started is using the provided dev container, which includ
1717
2. **Choose distribution** (optional): You can change the Linux distribution by modifying the `DISTRO` environment variable in `.devcontainer/devcontainer.json`:
1818
```json
1919
"containerEnv": {
20-
"DISTRO": "centos-9" // Options: centos-9, centos-10, alma-9
20+
"DISTRO": "centos-9" // Options: centos-9, centos-10, alma-9, alma-10
2121
}
2222
```
2323
3. **Open in container**: Use "Dev Containers: Open Folder in Container" from VS Code

docker/Dockerfile.alma-10

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# SPDX-FileCopyrightText: Red Hat, Inc.
2+
# SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
FROM quay.io/almalinuxorg/almalinux:10
5+
6+
# Add runtime dependencies.
7+
RUN dnf install -y 'dnf-command(copr)' \
8+
&& dnf copr enable -y ovirt/ovirt-master-snapshot centos-stream-10 \
9+
&& dnf install -y ovirt-release-master \
10+
&& dnf install -y epel-release \
11+
&& dnf update -y \
12+
&& dnf install -y \
13+
autoconf \
14+
automake \
15+
createrepo_c \
16+
dnf-utils \
17+
dosfstools \
18+
e2fsprogs \
19+
gcc \
20+
gdb \
21+
git \
22+
iproute-tc \
23+
iscsi-initiator-utils \
24+
lshw \
25+
lsof \
26+
lvm2 \
27+
make \
28+
mom \
29+
NetworkManager \
30+
nmstate \
31+
nmstate-plugin-ovsdb \
32+
openssl \
33+
ovirt-imageio-client \
34+
psmisc \
35+
python3 \
36+
python3-augeas \
37+
python3-blivet \
38+
python3-cryptography \
39+
python3-dateutil \
40+
python3-dbus \
41+
python3-decorator \
42+
python3-devel \
43+
python3-dmidecode \
44+
python3-ioprocess \
45+
python3-libselinux \
46+
python3-libvirt \
47+
python3-magic \
48+
python3-pip \
49+
python3-requests \
50+
python3-rpm \
51+
python3-sanlock \
52+
python3-pyasyncore \
53+
python3-yaml \
54+
qemu-img \
55+
redhat-rpm-config \
56+
rpm-build \
57+
sanlock \
58+
sudo \
59+
systemd \
60+
systemd-udev \
61+
which \
62+
xfsprogs \
63+
xorriso \
64+
&& dnf clean all
65+
66+
# Create vdsm user with groups kvm,qemu,sanlock
67+
RUN useradd --system -m -u 36 -N -G 36,107,179 vdsm
68+
69+
# Add gdb python support.
70+
RUN debuginfo-install -y python3 \
71+
&& dnf clean all
72+
73+
# Add development packages
74+
COPY requirements.txt requirements.txt
75+
RUN python3 -m pip install --upgrade pip \
76+
&& python3 -m venv --system-site-packages /venv \
77+
&& /venv/bin/python3 -m pip install --requirement requirements.txt
78+
79+
# Add lvm configuration.
80+
COPY lvmlocal.conf /etc/lvm/
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# SPDX-FileCopyrightText: Red Hat, Inc.
2+
# SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
FROM quay.io/almalinuxorg/almalinux:10
5+
6+
# Add runtime dependencies.
7+
RUN dnf -y install dnf-plugins-core \
8+
&& \
9+
dnf copr enable -y ovirt/ovirt-master-snapshot centos-stream-10 \
10+
&& \
11+
dnf install -y ovirt-release-master \
12+
&& \
13+
dnf install -y epel-release \
14+
&& \
15+
dnf update -y \
16+
&& \
17+
# Without it the ovirt-openvswitch fails to install
18+
dnf install -y systemd \
19+
&& \
20+
dnf install -y \
21+
autoconf \
22+
automake \
23+
dnsmasq \
24+
git \
25+
make \
26+
python3 \
27+
python3-devel \
28+
python3-pip \
29+
python3-yaml \
30+
systemd \
31+
systemd-udev \
32+
# Install vdsm-network for its dependencies
33+
vdsm-network \
34+
&& \
35+
dnf remove -y --noautoremove vdsm-network \
36+
&& \
37+
dnf clean all
38+
39+
# Add pytest
40+
RUN python3 -m pip install --upgrade pip \
41+
&& \
42+
python3 -m pip install pytest
43+
44+
CMD ["/usr/sbin/init"]
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# SPDX-FileCopyrightText: Red Hat, Inc.
2+
# SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
FROM quay.io/almalinuxorg/almalinux:10
5+
6+
# Add runtime dependencies.
7+
RUN dnf -y install dnf-plugins-core \
8+
&& \
9+
dnf copr enable -y ovirt/ovirt-master-snapshot centos-stream-10 \
10+
&& \
11+
dnf install -y ovirt-release-master \
12+
&& \
13+
dnf install -y epel-release \
14+
&& \
15+
dnf update -y \
16+
&& \
17+
# Without it the ovirt-openvswitch fails to install
18+
# It seems that the el8s container has systemd installed by default
19+
dnf install -y systemd \
20+
&& \
21+
dnf install -y \
22+
autoconf \
23+
automake \
24+
dnsmasq \
25+
git \
26+
make \
27+
python3-devel \
28+
python3-pip \
29+
systemd \
30+
# Install vdsm-network for its dependencies
31+
vdsm-network \
32+
&& \
33+
dnf remove -y --noautoremove vdsm-network \
34+
&& \
35+
dnf clean all
36+
37+
# Add pytest
38+
RUN python3 -m pip install --upgrade pip \
39+
&& \
40+
python3 -m pip install pytest
41+
42+
CMD ["/usr/sbin/init"]
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# SPDX-FileCopyrightText: Red Hat, Inc.
2+
# SPDX-License-Identifier: GPL-2.0-or-later
3+
4+
FROM quay.io/almalinuxorg/almalinux:10
5+
6+
# Add runtime dependencies.
7+
RUN dnf -y install dnf-plugins-core \
8+
&& \
9+
dnf copr enable -y ovirt/ovirt-master-snapshot centos-stream-10 \
10+
&& \
11+
dnf install -y ovirt-release-master \
12+
&& \
13+
dnf install -y epel-release \
14+
&& \
15+
dnf update -y \
16+
&& \
17+
# el10s does not have modprobe installed by default
18+
dnf install -y kmod \
19+
&& \
20+
dnf install -y \
21+
iproute-tc \
22+
libnl3 \
23+
nmstate \
24+
python3-devel \
25+
python3-libnmstate \
26+
python3-pip \
27+
systemd \
28+
&& \
29+
dnf clean all
30+
31+
# Add pytest
32+
RUN python3 -m pip install --upgrade pip \
33+
&& \
34+
python3 -m pip install pytest
35+
36+
CMD ["/usr/sbin/init"]

0 commit comments

Comments
 (0)