Skip to content

Commit 0fcffcd

Browse files
committed
Add new OPENSTACKSDK_VERSION_OVERRIDE env to support installing a custom
openstacksdk version specifically if it and ENABLE_CLOUD is set. Mainly to allow downgrading the default rocky9 version 1.0.1 of openstack to a version before the 1.0.0 version, which broke floating IP assignment on our own installation.
1 parent 82d6ddb commit 0fcffcd

File tree

3 files changed

+33
-7
lines changed

3 files changed

+33
-7
lines changed

Dockerfile.centos7

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ ARG ENABLE_JUPYTER=True
114114
ARG ENABLE_CLOUD=False
115115
ARG CLOUD_ACCESS=cloud-access.yaml
116116
ARG CLOUD_JUMPHOST_KEY=cloud-jumphost-key
117+
ARG OPENSTACKSDK_VERSION_OVERRIDE=
117118
ARG ENABLE_MIGADMIN=False
118119
ARG ENABLE_GDP=False
119120
ARG ENABLE_TWOFACTOR=True
@@ -758,6 +759,7 @@ ARG WITH_PY3
758759
ARG MODERN_WSGIDAV
759760
ARG UPGRADE_PARAMIKO
760761
ARG ENABLE_CLOUD
762+
ARG OPENSTACKSDK_VERSION_OVERRIDE
761763
ARG TRAC_ADMIN_PATH
762764

763765
# NOTE: Switch back to root for system-wide pip install here
@@ -805,9 +807,16 @@ RUN if [ "${UPGRADE_PARAMIKO}" = "True" ]; then \
805807
# NOTE: openstacksdk-1.5 may have introduced typing conflicts here
806808
# NOTE: keystoneauth1-4.x introduced unresolvable 'pbr' deps on py2 here
807809
RUN if [ "${ENABLE_CLOUD}" = "True" ]; then \
808-
pip2 install PyYAML==3.13 'openstacksdk<1.5' 'keystoneauth1<4' 'python-openstackclient<5'; \
810+
pip2 install PyYAML==3.13 'openstacksdk<1.5' 'keystoneauth1<4' \
811+
'python-openstackclient<5'; \
812+
if [ -n "${OPENSTACKSDK_VERSION_OVERRIDE}" ]; then \
813+
pip2 install "openstacksdk==${OPENSTACKSDK_VERSION_OVERRIDE}" ; \
814+
fi; \
809815
if [ "${WITH_PY3}" = "True" ]; then \
810816
pip3 install PyYAML==3.13 'openstacksdk<1.5' 'python-openstackclient<6'; \
817+
if [ -n "${OPENSTACKSDK_VERSION_OVERRIDE}" ]; then \
818+
pip3 install "openstacksdk==${OPENSTACKSDK_VERSION_OVERRIDE}" ; \
819+
fi; \
811820
fi; \
812821
fi;
813822

@@ -1371,6 +1380,7 @@ RUN if [ "${ENABLE_CLOUD}" = "True" ]; then \
13711380
ln -s ../../state/secrets/${CLOUD_ACCESS} .config/openstack/clouds.yaml ; \
13721381
[ -n "${CLOUD_JUMPHOST_KEY}" ] || CLOUD_JUMPHOST_KEY="cloud-jumphost-key" ; \
13731382
ln -s ../state/secrets/${CLOUD_JUMPHOST_KEY} .ssh/${CLOUD_JUMPHOST_KEY} ; \
1383+
ln -s ../state/secrets/${CLOUD_JUMPHOST_KEY}.pub .ssh/${CLOUD_JUMPHOST_KEY}.pub ; \
13741384
fi;
13751385

13761386
# link relevant py trac ini into default location if no TRAC_INI_PATH is set here

Dockerfile.rocky8

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ ARG ENABLE_JUPYTER=True
114114
ARG ENABLE_CLOUD=False
115115
ARG CLOUD_ACCESS=cloud-access.yaml
116116
ARG CLOUD_JUMPHOST_KEY=cloud-jumphost-key
117+
ARG OPENSTACKSDK_VERSION_OVERRIDE=
117118
ARG ENABLE_MIGADMIN=False
118119
ARG ENABLE_GDP=False
119120
ARG ENABLE_TWOFACTOR=True
@@ -775,6 +776,7 @@ ARG WITH_PY3
775776
ARG MODERN_WSGIDAV
776777
ARG UPGRADE_PARAMIKO
777778
ARG ENABLE_CLOUD
779+
ARG OPENSTACKSDK_VERSION_OVERRIDE
778780
ARG TRAC_ADMIN_PATH
779781

780782
# NOTE: Switch back to root for system-wide pip install here
@@ -826,8 +828,14 @@ RUN if [ "${UPGRADE_PARAMIKO}" = "True" ]; then \
826828
RUN if [ "${ENABLE_CLOUD}" = "True" ]; then \
827829
pip2 install PyYAML==3.12 'openstacksdk<2' 'python-cinderclient<6' \
828830
'python-openstackclient<5'; \
831+
if [ -n "${OPENSTACKSDK_VERSION_OVERRIDE}" ]; then \
832+
pip2 install "openstacksdk==${OPENSTACKSDK_VERSION_OVERRIDE}" ; \
833+
fi; \
829834
if [ "${WITH_PY3}" = "True" ]; then \
830835
pip3 install PyYAML==3.12 'openstacksdk<1.5' 'python-openstackclient<6'; \
836+
if [ -n "${OPENSTACKSDK_VERSION_OVERRIDE}" ]; then \
837+
pip3 install "openstacksdk==${OPENSTACKSDK_VERSION_OVERRIDE}" ; \
838+
fi; \
831839
fi; \
832840
fi;
833841

@@ -1391,6 +1399,7 @@ RUN if [ "${ENABLE_CLOUD}" = "True" ]; then \
13911399
ln -s ../../state/secrets/${CLOUD_ACCESS} .config/openstack/clouds.yaml ; \
13921400
[ -n "${CLOUD_JUMPHOST_KEY}" ] || CLOUD_JUMPHOST_KEY="cloud-jumphost-key" ; \
13931401
ln -s ../state/secrets/${CLOUD_JUMPHOST_KEY} .ssh/${CLOUD_JUMPHOST_KEY} ; \
1402+
ln -s ../state/secrets/${CLOUD_JUMPHOST_KEY}.pub .ssh/${CLOUD_JUMPHOST_KEY}.pub ; \
13941403
fi;
13951404

13961405
# link relevant py trac ini into default location if no TRAC_INI_PATH is set here

Dockerfile.rocky9

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ ARG ENABLE_JUPYTER=True
115115
ARG ENABLE_CLOUD=False
116116
ARG CLOUD_ACCESS=cloud-access.yaml
117117
ARG CLOUD_JUMPHOST_KEY=cloud-jumphost-key
118+
ARG OPENSTACKSDK_VERSION_OVERRIDE=
118119
ARG ENABLE_MIGADMIN=False
119120
ARG ENABLE_GDP=False
120121
ARG ENABLE_TWOFACTOR=True
@@ -732,6 +733,7 @@ ARG WITH_PY3
732733
ARG MODERN_WSGIDAV
733734
ARG UPGRADE_PARAMIKO
734735
ARG ENABLE_CLOUD
736+
ARG OPENSTACKSDK_VERSION_OVERRIDE
735737
ARG TRAC_ADMIN_PATH
736738

737739
# NOTE: Switch back to root for system-wide pip install here
@@ -761,12 +763,16 @@ RUN if [ "${UPGRADE_PARAMIKO}" = "True" ]; then \
761763
fi; \
762764
fi;
763765

764-
# NOTE: openstackclient is available in dnf here
765-
#RUN if [ "${ENABLE_CLOUD}" = "True" ]; then \
766-
# if [ "${WITH_PY3}" = "True" ]; then \
767-
# pip3 install python-openstackclient; \
768-
# fi; \
769-
# fi;
766+
# NOTE: openstackclient is available in dnf here, but sdk may be requested
767+
# e.g. to work around version 1.0.0 breaking floating IP assignment
768+
RUN if [ "${ENABLE_CLOUD}" = "True" ]; then \
769+
#if [ "${WITH_PY3}" = "True" ]; then \
770+
# pip3 install python-openstackclient; \
771+
#fi; \
772+
if [ -n "${OPENSTACKSDK_VERSION_OVERRIDE}" ]; then \
773+
pip3 install "openstacksdk==${OPENSTACKSDK_VERSION_OVERRIDE}" ; \
774+
fi; \
775+
fi;
770776

771777
# OpenID support in python (python-openid2 for py3) - use alternative from dnf
772778
#RUN pip3 install python-openid2;
@@ -1269,6 +1275,7 @@ RUN if [ "${ENABLE_CLOUD}" = "True" ]; then \
12691275
ln -s ../../state/secrets/${CLOUD_ACCESS} .config/openstack/clouds.yaml ; \
12701276
[ -n "${CLOUD_JUMPHOST_KEY}" ] || CLOUD_JUMPHOST_KEY="cloud-jumphost-key" ; \
12711277
ln -s ../state/secrets/${CLOUD_JUMPHOST_KEY} .ssh/${CLOUD_JUMPHOST_KEY} ; \
1278+
ln -s ../state/secrets/${CLOUD_JUMPHOST_KEY}.pub .ssh/${CLOUD_JUMPHOST_KEY}.pub ; \
12721279
fi;
12731280

12741281
# link relevant py trac ini into default location if no TRAC_INI_PATH is set here

0 commit comments

Comments
 (0)