Change stx-ceph-manager base image

The stx-ceph-manager image, which is used for rook-ceph,
was with ceph v14.2.2, which is the bare-metal version.
However, rook-ceph uses ceph v18.2.2.

Therefore, to maintain version compatibility, the base image
was updated to docker.io/openstackhelm/ceph-config-helper:
ubuntu_jammy_18.2.2-1-20240312 and all necessary adjustments
were made to the Dockerfile so that all STX packages could be
installed successfully.

Test Plan:
- PASS: Build stx-ceph-manager image
- PASS: Change the stx-ceph-manager deployment in
	the rook-ceph app to use this image
- PASS: Access the stx-ceph-manager pod and check
	the ceph version
- PASS: Check the pod logs to verify if there
	are any errors

Story: 2011066
Task: 50702

Depends-On: https://review.opendev.org/c/starlingx/utilities/+/924883
Depends-On: https://review.opendev.org/c/starlingx/app-rook-ceph/+/924884

Change-Id: I30371e7ed586f5b956668517bc1f9e5ed6b5cdce
Signed-off-by: Erickson Silva de Oliveira <Erickson.SilvadeOliveira@windriver.com>
This commit is contained in:
Erickson Silva de Oliveira 2024-07-30 11:30:57 -03:00
parent f639a33a9c
commit f21f6ef838

@ -1,21 +1,72 @@
ARG BASE
FROM ${BASE}
FROM ${BASE} AS stx-debian
RUN apt-get update -y && \
apt-get install -y \
python3-oslo.messaging \
python3-eventlet \
python3-fm-api \
fm-rest-api \
python3-cephclient \
python3-fmclient \
fm-common \
librados2 \
librbd1 \
ceph-common \
ceph-manager \
ceph-mon \
ceph-osd \
ceph-mgr
FROM docker.io/openstackhelm/ceph-config-helper:ubuntu_jammy_18.2.2-1-20240312
RUN mkdir -p /tmp/build
WORKDIR /tmp/build
# Copy the STX sources list from the $BASE image
COPY --from=stx-debian /etc/apt/sources.list.d/stx.list /etc/apt/sources.list.d/
RUN apt-get update -y
# Install python3.9
RUN apt-get install -y \
python3.9 \
libpython3.9 \
software-properties-common
RUN add-apt-repository ppa:deadsnakes/ppa -y
RUN apt-get install python3.9-distutils -y
RUN add-apt-repository --remove ppa:deadsnakes/ppa -y
# Install pip3.9
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
RUN python3.9 get-pip.py
# Install pip dependencies
RUN pip3.9 install greenlet yappi
# Install apt dependencies
RUN apt-get install -y \
python3-ldap=3.2.0-4ubuntu7.1 \
libpq5 libldap-2.4-2 \
python3-pyasn1 \
python3-pyasn1-modules
# Create fm user
RUN useradd -ms /bin/bash fm
# Change Python dependency version
RUN apt-get download fm-common
RUN dpkg-deb -x fm-common*.deb fm-common
RUN dpkg-deb --control fm-common*.deb fm-common/DEBIAN
RUN sed -i 's/<< 3.10/<< 3.11/g' fm-common/DEBIAN/control
RUN dpkg-deb -b fm-common
RUN dpkg -i fm-common.deb
# Install STX packages
RUN apt-get install -y \
fm-rest-api \
python3-fm-api \
python3-fmclient \
python3-cephclient \
ceph-manager
# Ensures that ceph-manager will run on python3.9
RUN sed -i 's/python3\.*[0-9]*/python3.9/g' /usr/bin/ceph-manager
# Suppress warning messages because the mgr restful module is configured with a self-signed certificate
ENV PYTHONWARNINGS="ignore:Unverified HTTPS request"
RUN sed -i '/import sys/a import os\nos.environ["CURL_CA_BUNDLE"] = ""' /usr/bin/ceph-manager
# Cleanup
RUN rm -rf /tmp/build
RUN rm -rf /var/lib/apt/lists/*
RUN rm -f /etc/apt/sources.list.d/stx.list
RUN apt-get clean
WORKDIR /
CMD ["bash"]