Restored ubuntu_bionic image build

This PS restores image build for ubuntu_bionic and adds appropriate
gates to keep it tested by appropriate functional and integrational
tests.

Change-Id: I695fb42efff29aeda737f2b9c1eaeb84b95aa57c
This commit is contained in:
Sergiy Markin 2023-05-23 19:22:26 +00:00
parent 375abedb8a
commit a554b7a3a9
5 changed files with 155 additions and 26 deletions

View File

@ -35,7 +35,7 @@ export
images: build_drydock
# Run an image locally and exercise simple tests
run_images: run_drydock
run_images: build_drydock run_drydock
# Run tests
tests: pep8 security docs unit_tests test_baclient
@ -57,7 +57,7 @@ req_freeze:
tox -re freeze
# Run the drydock container and exercise simple tests
run_drydock: build_drydock
run_drydock:
tools/drydock_image_run.sh
# It seems CICD expects the target 'drydock' to

View File

@ -23,13 +23,18 @@ ENV container docker
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
# Copy direct dependency requirements only to build a dependency layer
RUN echo "deb ${UBUNTU_REPO} bionic main restricted universe multiverse" > /etc/apt/sources.list; \
echo "deb ${UBUNTU_REPO} bionic-security main restricted universe multiverse" >> /etc/apt/sources.list; \
echo "deb ${UBUNTU_REPO} bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list; \
cat /etc/apt/sources.list; \
echo "APT::Get::AllowUnauthenticated ${ALLOW_UNAUTHENTICATED};" >> /etc/apt/apt.conf.d/00-local-mirrors;
COPY ./bindep.txt /tmp/drydock/
WORKDIR /tmp/drydock
RUN apt update \
&& apt install -y --allow-downgrades \
python3 \
python3-dev \
python3-pip \
python3-venv \
python3-setuptools \
&& DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y tzdata \
&& pip3 install bindep \
&& bindep -f /tmp/drydock/bindep.txt --brief | xargs apt install -y
COPY ./tools/baclient_build.sh /tmp/drydock/
COPY ./go /tmp/drydock/go
@ -73,29 +78,36 @@ ENV PORT 9000
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
# Copy direct dependency requirements only to build a dependency layer
RUN echo "deb ${UBUNTU_REPO} bionic main restricted universe multiverse" > /etc/apt/sources.list; \
echo "deb ${UBUNTU_REPO} bionic-security main restricted universe multiverse" >> /etc/apt/sources.list; \
echo "deb ${UBUNTU_REPO} bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list; \
cat /etc/apt/sources.list; \
echo "APT::Get::AllowUnauthenticated ${ALLOW_UNAUTHENTICATED};" >> /etc/apt/apt.conf.d/00-local-mirrors;
COPY ./requirements-host.txt /tmp/drydock/
COPY ./hostdeps.sh /tmp/drydock
WORKDIR /tmp/drydock
RUN ./hostdeps.sh; \
rm -r /var/lib/apt/lists/*
RUN DEBIAN_FRONTEND=noninteractive \
apt update \
&& DEBIAN_FRONTEND=noninteractive \
apt install -y \
--allow-downgrades \
--no-install-recommends \
python3-dev \
python3-pip \
python3-setuptools \
pkg-config \
libvirt-dev \
libssl-dev \
libpq-dev \
gcc \
ssh\
curl \
netbase \
&& rm -r /var/lib/apt/lists/*
# Install LibYAML
ENV LD_LIBRARY_PATH=/usr/local/lib
COPY --from=baclient_builder /usr/local/lib /usr/local/lib
COPY --from=baclient_builder /usr/local/include/yaml.h /usr/local/include/yaml.h
COPY ./python/requirements-frozen.txt /tmp/drydock/
RUN pip3 install \
COPY ./python/requirements-frozen-bionic.txt /tmp/drydock/
RUN \
pip3 install --upgrade pip \
&& pip3 install \
--no-cache-dir \
-r /tmp/drydock/requirements-frozen.txt
-r /tmp/drydock/requirements-frozen-bionic.txt
COPY ./python /tmp/drydock/python
WORKDIR /tmp/drydock/python

View File

@ -95,6 +95,7 @@ RUN DEBIAN_FRONTEND=noninteractive \
pkg-config \
libvirt-dev \
libssl-dev \
libpq-dev \
gcc \
ssh\
curl \
@ -107,7 +108,9 @@ COPY --from=baclient_builder /usr/local/lib /usr/local/lib
COPY --from=baclient_builder /usr/local/include/yaml.h /usr/local/include/yaml.h
COPY ./python/requirements-frozen.txt /tmp/drydock/
RUN pip3 install \
RUN \
pip3 install --upgrade pip \
&& pip3 install \
--no-cache-dir \
-r /tmp/drydock/requirements-frozen.txt

View File

@ -0,0 +1,99 @@
alembic==1.7.7
amqp==5.1.1
attrs==22.2.0
bcrypt==4.0.1
Beaker==1.12.1
cached-property==1.5.2
cachetools==4.2.4
certifi==2023.5.7
cffi==1.15.1
charset-normalizer==2.0.12
click==8.0.4
cryptography==40.0.2
debtcollector==2.5.0
decorator==5.1.1
defusedxml==0.7.1
dnspython==2.2.1
dogpile.cache==1.2.1
eventlet==0.33.3
falcon==3.1.1
fasteners==0.18
fixtures==4.0.1
futurist==2.4.1
greenlet==2.0.2
idna==3.4
importlib-metadata==4.8.3
importlib-resources==5.4.0
iso8601==1.1.0
Jinja2==3.0.3
jsonpatch==1.32
jsonpath-rw==1.4.0
jsonpointer==2.3
jsonschema==3.2.0
keystoneauth1==5.1.2
keystonemiddleware==9.5.0
kombu==5.1.0
libvirt-python==9.3.0
Mako==1.1.6
MarkupSafe==2.0.1
msgpack==1.0.5
netaddr==0.8.0
netifaces==0.11.0
oauthlib==3.2.2
os-service-types==1.7.0
oslo.cache==2.11.0
oslo.concurrency==4.5.1
oslo.config==8.8.0
oslo.context==4.1.0
oslo.i18n==5.1.0
oslo.log==4.8.0
oslo.messaging==12.14.0
oslo.metrics==0.4.0
oslo.middleware==4.5.1
oslo.policy==3.12.1
oslo.serialization==4.3.0
oslo.service==2.8.0
oslo.utils==4.13.0
oslo.versionedobjects==2.6.0
packaging==21.3
Paste==3.5.3
PasteDeploy==2.1.1
pbr==5.11.1
pip==21.3.1
ply==3.11
prometheus-client==0.16.0
psycopg2-binary==2.9.6
PTable==0.9.2
pycadf==3.1.1
pycparser==2.21
pyghmi==1.5.61
pylibyaml==0.1.0
pymongo==4.1.1
pyparsing==3.0.9
pyrsistent==0.18.0
python-dateutil==2.8.2
python-keystoneclient==4.5.0
pytz==2023.3
PyYAML==6.0
redfish==3.1.9
repoze.lru==0.7
requests==2.27.1
requests-toolbelt==1.0.0
requests-unixsocket==0.3.0
rfc3986==1.5.0
Routes==2.5.1
setuptools==59.6.0
six==1.16.0
SQLAlchemy==1.3.20
statsd==4.0.1
stevedore==3.5.2
typing_extensions==4.1.1
ulid2==0.3.0
urllib3==1.26.16
uWSGI==2.0.21
vine==5.0.0
WebOb==1.8.7
wheel==0.37.1
wrapt==1.15.0
yappi==1.4.0
zipp==3.6.0

15
tox.ini
View File

@ -24,6 +24,21 @@ commands=
rm -f python/requirements-frozen.txt
sh -c "pip freeze --all | grep -vE 'drydock_provisioner|pyinotify|pkg-resources==0.0.0' > python/requirements-frozen.txt"
[testenv:freeze-bionic]
basepython=python3
recreate = True
allowlist_externals=
rm
sh
deps=
-r{toxinidir}/python/requirements-direct.txt
commands=
rm -f python/requirements-frozen-bionic.txt
sh -c "pip freeze --all | grep -vE 'drydock_provisioner|pyinotify|pkg-resources==0.0.0' > python/requirements-frozen-bionic.txt"
[testenv:yapf]
allowlist_externals=find
commands=