FROM ubuntu:18.04 AS download-packages-1804
RUN mkdir /opt/packages-1804 && cd /opt/packages-1804 && \
    apt-get update && \
    apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances iperf3 iperf fio nfs-utils | grep "^\w" | sort -u) || true && \
    rm -rf /var/lib/apt/lists/*

FROM ubuntu:20.04 AS download-packages-2004
RUN mkdir /opt/packages && cd /opt/packages && \
    apt-get update && \
    apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances iperf3 iperf fio nfs-utils | grep "^\w" | sort -u) || true && \
    rm -rf /var/lib/apt/lists/*

FROM mirantis.azurecr.io/openstack/heat:epoxy-noble-20251017061956

LABEL maintainer="qa-ps@mirantis.com"

ADD k8s/src/si-tests.tgz /opt/si-tests/
ADD k8s/src/mos-checker.tgz /opt/cfg-checker/
WORKDIR /opt

COPY --from=download-packages-2004 /opt/packages /opt/packages
COPY --from=download-packages-1804 /opt/packages-1804 /opt/packages-1804

RUN apt-get clean && apt-get update && \
    apt-get install -y make gcc g++ git libaio-dev libaio1 zlib1g-dev fio && \
    mkdir /opt/density && \
    rm -rf /var/lib/apt/lists/*

RUN export TZ="America/Chicago" && \
    ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \
    apt-get clean && apt-get update && \
    apt-get install -y python3-pip python3-venv vim git iperf3 iperf mtr htop iputils-ping traceroute tcpdump wget iproute2 curl screen qemu-utils jq && \
    rm -rf /var/lib/apt/lists/*

RUN apt-get update && \
    curl https://baltocdn.com/helm/signing.asc | apt-key add - && \
    apt-get install apt-transport-https --yes && \
    echo "deb https://baltocdn.com/helm/stable/debian/ all main" | tee /etc/apt/sources.list.d/helm-stable-debian.list && \
    apt-get update && \
    apt-get install -y helm && \
    rm -rf /var/lib/apt/lists/*

RUN pip3 install --no-cache-dir pyghmi tempestparser

RUN git clone https://gerrit.mcp.mirantis.com/mcp/cvp-configuration -b 25.2-epoxy /opt/res-files && \
    cd /opt/cfg-checker && \
    python3 -m venv .checkervenv && \
    . .checkervenv/bin/activate && \
    pip3 install --no-cache-dir -r requirements.txt && \
    python3 setup.py develop && \
    deactivate && \
    mkdir /opt/cmp-check && cd /opt/cmp-check && \
    cp /opt/res-files/scripts/prepare.sh ./ && \
    cp /opt/res-files/scripts/cmp_check.sh ./ && \
    cp /opt/res-files/cleanup.sh ./ && \
    rm -rf /opt/res-files/.git && \
    rm -rf /opt/cfg-checker/.git

RUN cd /opt/si-tests/ && \
    python3 -m venv .sivenv && \
    . .sivenv/bin/activate && \
    pip3 install --no-cache-dir -r si_tests/requirements.txt && \
    deactivate

RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" && \
    install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl && \
    rm kubectl

RUN git clone "https://gerrit.mcp.mirantis.com/mcp/mos-spt" /opt/mos-spt && \
    cd /opt/mos-spt && \
    python3 -m venv .venv && \
    . .venv/bin/activate && \
    pip3 install --no-cache-dir -r requirements.txt && \
    deactivate

ADD k8s/src/openstack-refapp.tgz /opt/density/openstack-refapp/

RUN cd /opt/density/openstack-refapp/ && \
    python3 -m venv .refapp-venv && \
    . .refapp-venv/bin/activate && \
    pip3 install --no-cache-dir -r requirements.txt && \
    deactivate && \
    cp /opt/res-files/scripts/prepare-refapp.sh /opt/density/openstack-refapp/ && \
    cp /opt/res-files/scripts/run-refapp-density.sh /opt/density/openstack-refapp/

RUN printf "LABELS:\n  IMAGE_TAG: 25.2-epoxy" > /dockerimage_metadata

ENTRYPOINT ["sleep infinite"]

