Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
70f0baf
add rhel9 agents variants
BraisVQ Dec 26, 2025
ce2e711
set version for botocore
BraisVQ Dec 26, 2025
9581419
increase Ephemeral storage
BraisVQ Dec 26, 2025
f56c1d3
increase Ephemeral storage
BraisVQ Dec 26, 2025
bbe340e
use uv instead of pip, ensuring retrocompatibility
BraisVQ Dec 26, 2025
20f4d7b
cleanup
BraisVQ Dec 26, 2025
35fd44c
fix installation
BraisVQ Dec 26, 2025
158378d
fix installation path
BraisVQ Dec 26, 2025
22ced17
fix python packages installation
BraisVQ Dec 26, 2025
26e71a7
fix installation
BraisVQ Dec 26, 2025
0e48af9
remove machine ID generation from NodeJS Dockerfiles
BraisVQ Dec 26, 2025
7463649
remove isl from rust in ubi9 as it is bundled in gcc
BraisVQ Dec 26, 2025
4c64acb
remove GConf2 from package installation in NodeJS Dockerfiles
BraisVQ Dec 26, 2025
97ab00d
change python installation to use uv
BraisVQ Dec 26, 2025
f3e7d33
update Dockerfile.ubi9 to use --allowerasing for package installations
BraisVQ Dec 26, 2025
9297577
fix
BraisVQ Dec 26, 2025
db05959
update Dockerfiles to set PIP_CERT environment variable for SSL certi…
BraisVQ Dec 26, 2025
034e301
fix Dockerfile.ubi9 to correct pip install command syntax
BraisVQ Dec 26, 2025
19c7fd4
fix
BraisVQ Dec 26, 2025
2715f25
change frm nexusurl to nexusHost
BraisVQ Dec 26, 2025
4388ae6
test
BraisVQ Dec 26, 2025
81d5c33
update Dockerfile.ubi9 to remove unused PIP_EXTRA_INDEX_URL and ensur…
BraisVQ Dec 26, 2025
f4093c9
refactor Dockerfile.ubi9 to create a custom pip wrapper script for be…
BraisVQ Dec 27, 2025
b5a1fcf
update Dockerfile.ubi9 to configure pip with custom index and trusted…
BraisVQ Dec 27, 2025
e000083
fix formatting in Dockerfile.ubi9 for pip configuration commands
BraisVQ Dec 27, 2025
edd229d
update Dockerfile.ubi9 to configure pip with default index and truste…
BraisVQ Dec 27, 2025
807662a
update bc.yml to rename NEXUS_URL parameter to NEXUS_HOST for consist…
BraisVQ Dec 27, 2025
3eb452c
update Dockerfile.ubi9 to allow pre-release versions for pip installa…
BraisVQ Dec 27, 2025
2b789b7
update Dockerfile.ubi9 to define nexusUrl argument based on nexusHost
BraisVQ Dec 27, 2025
5569c70
changelog
BraisVQ Dec 27, 2025
d5ad22d
update Dockerfile.ubi9 to define PIP_INDEX_URL and PIP_CERT for impro…
BraisVQ Dec 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Unreleased

### Added
- Added rhel9 dockerfiles for all jenkins agents ([#1140](https://github.com/opendevstack/ods-quickstarters/pull/1140))

### Changed

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ ODS_NAMESPACE := $(shell grep ODS_NAMESPACE $(CURDIR)/../ods-configuration/ods-c
install-jenkins-agent: install-jenkins-agent-golang install-jenkins-agent-jdk install-jenkins-agent-nodejs install-jenkins-agent-python install-jenkins-agent-scala install-jenkins-agent-terraform-2306 install-jenkins-agent-terraform-2408 install-jenkins-agent-rust
.PHONY: install-jenkins-agent

.## Update OpenShift resources related Jenkins agent resources.
## Update OpenShift resources related Jenkins agent resources.
apply-jenkins-agent-build: apply-jenkins-agent-golang-build apply-jenkins-agent-jdk-build apply-jenkins-agent-nodejs18-build apply-jenkins-agent-nodejs20-build apply-jenkins-agent-nodejs22-build apply-jenkins-agent-nodejs24-build apply-jenkins-agent-python-build apply-jenkins-agent-scala-build apply-jenkins-agent-terraform-build-2306 apply-jenkins-agent-terraform-build-2408 apply-jenkins-agent-rust-build
.PHONY: apply-jenkins-agent-build

Expand Down
27 changes: 27 additions & 0 deletions common/jenkins-agents/golang/docker/Dockerfile.ubi9
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest

ARG goDistributionUrl
ARG golangciVersion

RUN yum install -y gcc gcc-c++

RUN cd /tmp && \
curl -LfSso /tmp/go.tar.gz $goDistributionUrl && \
tar -C /usr/local -xzf go.tar.gz && \
rm -f /tmp/go.tar.gz && \
cd - && \
mkdir /go && \
/usr/local/go/bin/go version

ENV PATH $PATH:/usr/local/go/bin
ENV GOBIN /usr/local/bin

COPY install-golangci-lint.sh /tmp/install-golangci-lint.sh
RUN /tmp/install-golangci-lint.sh -b /usr/local/bin $golangciVersion && \
rm -f /tmp/install-golangci-lint.sh

RUN go install github.com/jstemmer/go-junit-report/[email protected]

RUN mkdir -p /home/jenkins/go && chmod -R g+w /home/jenkins

WORKDIR /go
6 changes: 3 additions & 3 deletions common/jenkins-agents/golang/ocp-config/bc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ parameters:
- name: ODS_GIT_REF
required: true
- name: JENKINS_AGENT_DOCKERFILE_PATH
value: Dockerfile.ubi8
value: Dockerfile.ubi9
description: Dockerfile variant to use
- name: GO_DISTRIBUTION_URL
value: https://go.dev/dl/go1.23.0.linux-amd64.tar.gz
Expand All @@ -41,11 +41,11 @@ objects:
limits:
cpu: "1"
memory: "2Gi"
ephemeral-storage: "8Gi"
ephemeral-storage: "16Gi"
requests:
cpu: "200m"
memory: "1Gi"
ephemeral-storage: "5Gi"
ephemeral-storage: "10Gi"
runPolicy: Serial
source:
contextDir: common/jenkins-agents/golang/docker
Expand Down
85 changes: 85 additions & 0 deletions common/jenkins-agents/jdk/docker/Dockerfile.ubi9
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest

# Labels consumed by Red Hat build service
LABEL com.redhat.component="jenkins-agent-jdk-rhel9-container" \
name="openshift4/jenkins-agent-jdk-rhel9" \
architecture="x86_64" \
io.k8s.display-name="Jenkins Agent JDK" \
io.k8s.description="The jenkins agent jdk image has java 11, 17 and 21 installed on top of the jenkins agent base image." \
io.openshift.tags="openshift,jenkins,agent,jdk" \
maintainer="[email protected]"

ARG nexusUrl
ARG nexusUsername
ARG nexusPassword

ENV LANG=en_US.UTF-8 \
LC_ALL=en_US.UTF-8

# Container support is now integrated in Java 11, the +UseCGroupMemoryLimitForHeap option has been pruned
ENV JAVA_TOOL_OPTIONS="-XX:+UnlockExperimentalVMOptions -Dsun.zip.disableMemoryMapping=true"

# Workaround we use when running behind proxy
# Basically we put the proxy certificate in certs folder
# COPY certs/* /etc/pki/ca-trust/source/anchors/
# RUN update-ca-trust force-enable && update-ca-trust extract

# Install Java devel 11, 17 21 and binutils
# Note: use java scripts are executed to test the scripts but also use-j11.sh in called 3nd place to set is as default version
RUN yum install -y java-11-openjdk-devel java-17-openjdk-devel java-21-openjdk-devel binutils && \
yum clean all -y && \
rm -rf /var/cache/yum

# Copy and use java scripts.
COPY use-j*.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/use-j*.sh && \
chmod ugo+s /usr/local/bin/use-j*.sh && \
sh -c 'chmod ugo+s $(which alternatives)' && \
ls -la /usr/local/bin/use-j*.sh && \
echo "--- STARTS JDK 11/17/21 TESTS ---" && \
use-j11.sh && \
use-j21.sh && \
use-j17.sh && \
echo "--- ENDS JDK 11/17/21 TESTS ---"

# Set maven (nexus+proxy) and gradle (proxy) settings
ENV MAVEN_OPTS="-Duser.home=$HOME" \
GRADLE_USER_HOME=/home/jenkins/.gradle
# TODO: Remove MAVEN_OPTS env once cri-o pushes the $HOME variable in /etc/passwd
ADD .m2/settings.xml $HOME/.m2/
COPY set_maven_proxy.sh /tmp/set_maven_proxy.sh
COPY set_gradle_proxy.sh /tmp/set_gradle_proxy.sh
RUN mkdir -p $GRADLE_USER_HOME && \
chmod +x /tmp/set_gradle_proxy.sh && \
/tmp/set_gradle_proxy.sh && \
mkdir -p $HOME/.m2 && \
chmod +x /tmp/set_maven_proxy.sh && \
mv $HOME/.m2/settings.xml $HOME/.m2/settings.xml.orig && \
/tmp/set_maven_proxy.sh && \
xpr=$(cat /tmp/mvn_proxy) && \
xpr="${xpr//\//\\/}" && \
xpr="${xpr//|/\\|}" && \
cat $HOME/.m2/settings.xml.orig | sed -e "s|<proxies>|<proxies>$xpr|g" > $HOME/.m2/settings.xml && \
sed -i "s/__NEXUS_USER/$nexusUsername/gi" $HOME/.m2/settings.xml && \
sed -i "s/__NEXUS_PW/$nexusPassword/gi" $HOME/.m2/settings.xml && \
sed -i "s|__NEXUS_URL|$nexusUrl|gi" $HOME/.m2/settings.xml && \
cat $HOME/.m2/settings.xml

RUN chown -R 1001:0 $HOME && \
chmod -R g+rwX $HOME && \
chmod -c 666 /etc/pki/ca-trust/extracted/java/cacerts && \
ls -la /etc/pki/ca-trust/extracted/java/cacerts

# temporary java version switch bugfix
USER root
RUN chgrp -R 0 /var/lib/alternatives && \
chmod -R g=u /var/lib/alternatives && \
chgrp -R 0 /etc/alternatives && \
chmod -R g=u /etc/alternatives && \
chmod -R u+w /usr/bin && \
chgrp -R 0 /usr/bin && \
chmod -R g=u /usr/bin && \
chgrp -R 0 /usr/share/man && \
chmod -R g=u /usr/share/man

USER 1001
6 changes: 3 additions & 3 deletions common/jenkins-agents/jdk/ocp-config/bc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ parameters:
- name: ODS_GIT_REF
required: true
- name: JENKINS_AGENT_DOCKERFILE_PATH
value: Dockerfile.ubi8
value: Dockerfile.ubi9
description: Dockerfile variant to use
objects:
- apiVersion: build.openshift.io/v1
Expand All @@ -41,11 +41,11 @@ objects:
limits:
cpu: "1"
memory: "2Gi"
ephemeral-storage: "8Gi"
ephemeral-storage: "16Gi"
requests:
cpu: "200m"
memory: "1Gi"
ephemeral-storage: "5Gi"
ephemeral-storage: "10Gi"
runPolicy: Serial
source:
contextDir: common/jenkins-agents/jdk/docker
Expand Down
6 changes: 3 additions & 3 deletions common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest

# Labels consumed by Red Hat build service
LABEL com.redhat.component="jenkins-agent-nodejs-18-rhel7-container" \
name="openshift4/jenkins-agent-nodejs-18-rhel7" \
LABEL com.redhat.component="jenkins-agent-nodejs-rhel8-container" \
name="openshift4/jenkins-agent-nodejs-rhel8" \
architecture="x86_64" \
io.k8s.display-name="Jenkins Agent Nodejs" \
io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \
Expand Down Expand Up @@ -39,7 +39,7 @@ RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERS
# Install Cypress dependencies
# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements
COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo
COPY yum.repos.d/almalinux.repo /etc/yum.repos.d/almalinux.repo
COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo
COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo
RUN yum repolist \
&& yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib \
Expand Down
60 changes: 60 additions & 0 deletions common/jenkins-agents/nodejs18/docker/Dockerfile.ubi9
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest

# Labels consumed by Red Hat build service
LABEL com.redhat.component="jenkins-agent-nodejs-rhel9-container" \
name="openshift4/jenkins-agent-nodejs-rhel9" \
architecture="x86_64" \
io.k8s.display-name="Jenkins Agent Nodejs" \
io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \
io.openshift.tags="openshift,jenkins,agent,nodejs" \
maintainer="[email protected]"

ARG nexusUrl
ARG nexusAuth

ENV NODEJS_VERSION=18 \
YARN_VERSION=1.22.18 \
NPM_CONFIG_PREFIX=$HOME/.npm-global \
NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \
PATH=$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/node_modules/.bin/:$HOME/.npm-global/bin/:$PATH \
LANG=en_US.UTF-8 \
LC_ALL=en_US.UTF-8

COPY contrib/bin/configure-agent /usr/local/bin/configure-agent

# Install NodeJS
RUN INSTALL_PKGS="nodejs nodejs-nodemon make gcc-c++" && \
curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \
yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
yum clean all -y

# Install Yarn
# https://classic.yarnpkg.com/en/docs/install
RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION

# Install Cypress dependencies
# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements
COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo
COPY yum.repos.d/almalinux9.repo /etc/yum.repos.d/almalinux9.repo
COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo
RUN yum repolist \
&& yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel nss libXScrnSaver alsa-lib \
&& yum install -y --enablerepo google-chrome google-chrome-stable \
&& yum install -y --enablerepo edge microsoft-edge-stable \
&& yum clean all -y

RUN npm config set registry=$nexusUrl/repository/npmjs/ && \
npm config set //${nexusUrl#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) && \
npm config set [email protected] && \
npm config set strict-ssl=true && \
yarn config set registry $nexusUrl/repository/npmjs/ -g && \
echo node version: $(node --version) && \
echo npm version: $(npm --version) && \
echo npx version: $(npx --version) && \
echo yarn version: $(yarn --version)

RUN chown -R 1001:0 $HOME && \
chmod -R g+rwX $HOME

USER 1001
13 changes: 13 additions & 0 deletions common/jenkins-agents/nodejs18/docker/yum.repos.d/almalinux9.repo
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[almalinux-baseos]
name=AlmaLinux-9-BaseOS
baseurl=https://repo.almalinux.org/almalinux/9/BaseOS/x86_64/os/
enabled=1
gpgcheck=1
gpgkey=https://repo.almalinux.org/almalinux/9/BaseOS/x86_64/os/RPM-GPG-KEY-AlmaLinux-9

[almalinux-appstream]
name=AlmaLinux-9-AppStream
baseurl=https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/
enabled=1
gpgcheck=1
gpgkey=https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/RPM-GPG-KEY-AlmaLinux-9
6 changes: 3 additions & 3 deletions common/jenkins-agents/nodejs18/ocp-config/bc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ parameters:
- name: ODS_GIT_REF
required: true
- name: JENKINS_AGENT_DOCKERFILE_PATH
value: Dockerfile.ubi8
value: Dockerfile.ubi9
description: Dockerfile variant to use
objects:
- apiVersion: build.openshift.io/v1
Expand All @@ -39,11 +39,11 @@ objects:
limits:
cpu: "1"
memory: "3Gi"
ephemeral-storage: "20Gi"
ephemeral-storage: "30Gi"
requests:
cpu: "200m"
memory: "2Gi"
ephemeral-storage: "15Gi"
ephemeral-storage: "20Gi"
runPolicy: Serial
source:
contextDir: common/jenkins-agents/nodejs18/docker
Expand Down
6 changes: 3 additions & 3 deletions common/jenkins-agents/nodejs20/docker/Dockerfile.ubi8
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest

# Labels consumed by Red Hat build service
LABEL com.redhat.component="jenkins-agent-nodejs-20-rhel7-container" \
name="openshift4/jenkins-agent-nodejs-20-rhel7" \
LABEL com.redhat.component="jenkins-agent-nodejs-rhel8-container" \
name="openshift4/jenkins-agent-nodejs-rhel8" \
architecture="x86_64" \
io.k8s.display-name="Jenkins Agent Nodejs" \
io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \
Expand Down Expand Up @@ -39,7 +39,7 @@ RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERS
# Install Cypress dependencies
# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements
COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo
COPY yum.repos.d/almalinux.repo /etc/yum.repos.d/almalinux.repo
COPY yum.repos.d/almalinux8.repo /etc/yum.repos.d/almalinux8.repo
COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo
RUN yum repolist \
&& yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib \
Expand Down
60 changes: 60 additions & 0 deletions common/jenkins-agents/nodejs20/docker/Dockerfile.ubi9
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest

# Labels consumed by Red Hat build service
LABEL com.redhat.component="jenkins-agent-nodejs-rhel9-container" \
name="openshift4/jenkins-agent-nodejs-rhel9" \
architecture="x86_64" \
io.k8s.display-name="Jenkins Agent Nodejs" \
io.k8s.description="The jenkins agent nodejs image has the nodejs tools on top of the jenkins agent base image." \
io.openshift.tags="openshift,jenkins,agent,nodejs" \
maintainer="[email protected]"

ARG nexusUrl
ARG nexusAuth

ENV NODEJS_VERSION=20 \
YARN_VERSION=1.22.19 \
NPM_CONFIG_PREFIX=$HOME/.npm-global \
NPM_CONFIG_CAFILE=/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem \
PATH=$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$HOME/node_modules/.bin/:$HOME/.npm-global/bin/:$PATH \
LANG=en_US.UTF-8 \
LC_ALL=en_US.UTF-8

COPY contrib/bin/configure-agent /usr/local/bin/configure-agent

# Install NodeJS
RUN INSTALL_PKGS="nodejs nodejs-nodemon make gcc-c++" && \
curl -fsSL https://rpm.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \
yum install -y --setopt=tsflags=nodocs --disableplugin=subscription-manager $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
yum clean all -y

# Install Yarn
# https://classic.yarnpkg.com/en/docs/install
RUN curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION

# Install Cypress dependencies
# https://docs.cypress.io/guides/getting-started/installing-cypress.html#System-requirements
COPY yum.repos.d/google-chrome.repo /etc/yum.repos.d/google-chrome.repo
COPY yum.repos.d/almalinux9.repo /etc/yum.repos.d/almalinux9.repo
COPY yum.repos.d/microsoft-edge.repo /etc/yum.repos.d/microsoft-edge.repo
RUN yum repolist \
&& yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel nss libXScrnSaver alsa-lib \
&& yum install -y --enablerepo google-chrome google-chrome-stable \
&& yum install -y --enablerepo edge microsoft-edge-stable \
&& yum clean all -y

RUN npm config set registry=$nexusUrl/repository/npmjs/ && \
npm config set //${nexusUrl#*://}/repository/npmjs/:_auth=$(echo -n $nexusAuth | base64) && \
npm config set [email protected] && \
npm config set strict-ssl=true && \
yarn config set registry $nexusUrl/repository/npmjs/ -g && \
echo node version: $(node --version) && \
echo npm version: $(npm --version) && \
echo npx version: $(npx --version) && \
echo yarn version: $(yarn --version)

RUN chown -R 1001:0 $HOME && \
chmod -R g+rwX $HOME

USER 1001
13 changes: 13 additions & 0 deletions common/jenkins-agents/nodejs20/docker/yum.repos.d/almalinux9.repo
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[almalinux-baseos]
name=AlmaLinux-9-BaseOS
baseurl=https://repo.almalinux.org/almalinux/9/BaseOS/x86_64/os/
enabled=1
gpgcheck=1
gpgkey=https://repo.almalinux.org/almalinux/9/BaseOS/x86_64/os/RPM-GPG-KEY-AlmaLinux-9

[almalinux-appstream]
name=AlmaLinux-9-AppStream
baseurl=https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/
enabled=1
gpgcheck=1
gpgkey=https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/RPM-GPG-KEY-AlmaLinux-9
Loading