Security updates
This PS updates Openstack modules to Caracal 2024.1, updates base ubuntu image to quay.io/airshipit, Helm to v3.15.2 and Kubectl to 1.32.0 Change-Id: I0c4f16443ae88e4cfbc54e23222eaf84264580b5
This commit is contained in:
parent
fef241da50
commit
e2b4199c4c
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
ARG DOCKER_REGISTRY=quay.io
|
||||
ARG CALICOCTL_IMAGE_PREFIX=calico/ctl
|
||||
ARG CALICOCTL_VERSION=v3.28.1
|
||||
@ -33,7 +33,7 @@ RUN set -xe \
|
||||
python3-pip \
|
||||
&& curl -s https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
&& pip3 install --no-cache-dir \
|
||||
oslo.rootwrap==7.0.1 \
|
||||
oslo.rootwrap==7.2.0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN PYTHON_LOCATION=$(pip3 show oslo.rootwrap|grep Location|awk '{print $2}') \
|
||||
|
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
ARG DOCKER_REGISTRY=quay.io
|
||||
ARG CALICOCTL_IMAGE_PREFIX=tigera/calicoctl
|
||||
ARG CALICOCTL_VERSION=v3.28.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
FROM ${FROM}
|
||||
|
||||
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
|
||||
@ -11,7 +11,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
|
||||
# Reef 18.2.2
|
||||
ARG CEPH_RELEASE=reef
|
||||
ARG CEPH_RELEASE_TAG=18.2.2-1~jammy
|
||||
ARG KUBE_VERSION=1.31.0
|
||||
ARG KUBE_VERSION=1.32.0
|
||||
|
||||
ARG CEPH_REPO=https://mirror.mirantis.com/acicd/ceph/debian-18.2.2.patch1/jammy/
|
||||
ARG CEPH_KEY=https://mirror.mirantis.com/acicd/ceph/debian-18.2.2.patch1/jammy/release.asc
|
||||
@ -51,7 +51,7 @@ RUN set -xe \
|
||||
orphan-sysvinit-scripts \
|
||||
&& curl -s https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
&& pip3 install --no-cache-dir \
|
||||
oslo.rootwrap==7.0.1 \
|
||||
oslo.rootwrap==7.2.0 \
|
||||
&& curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
|
||||
| tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
FROM ${FROM}
|
||||
|
||||
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
|
||||
@ -8,7 +8,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
|
||||
org.opencontainers.image.vendor='The Airship Authors' \
|
||||
org.opencontainers.image.licenses='Apache-2.0'
|
||||
|
||||
ARG KUBE_VERSION=1.31.0
|
||||
ARG KUBE_VERSION=1.32.0
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
@ -38,7 +38,7 @@ RUN set -xe \
|
||||
orphan-sysvinit-scripts \
|
||||
&& curl -s https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
&& pip3 install --no-cache-dir \
|
||||
oslo.rootwrap==7.0.1 \
|
||||
oslo.rootwrap==7.2.0 \
|
||||
&& curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
|
||||
| tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
FROM ${FROM}
|
||||
|
||||
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
|
||||
@ -9,7 +9,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
|
||||
org.opencontainers.image.licenses='Apache-2.0'
|
||||
|
||||
ARG ETCDCTL_VERSION=3.5.12
|
||||
ARG KUBE_VERSION=1.31.0
|
||||
ARG KUBE_VERSION=1.32.0
|
||||
|
||||
ENV GOOGLE_URL=https://storage.googleapis.com/etcd
|
||||
ENV GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
|
||||
@ -39,9 +39,9 @@ RUN set -xe \
|
||||
&& pip3 install --no-cache-dir \
|
||||
munch \
|
||||
simplejson \
|
||||
oslo.rootwrap==7.0.1 \
|
||||
python-openstackclient==6.2.0 \
|
||||
python-swiftclient==4.2.0 \
|
||||
oslo.rootwrap==7.2.0 \
|
||||
python-openstackclient==6.6.1 \
|
||||
python-swiftclient==4.5.0 \
|
||||
&& curl --silent -L "${DOWNLOAD_URL}/v${ETCDCTL_VERSION}/etcd-v${ETCDCTL_VERSION}-linux-amd64.tar.gz" \
|
||||
| tar -zC /usr/local/bin --strip-components=1 --wildcards -x "*/etcdctl" \
|
||||
&& curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
|
||||
|
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
FROM ${FROM}
|
||||
|
||||
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
|
||||
@ -8,7 +8,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
|
||||
org.opencontainers.image.vendor='The Airship Authors' \
|
||||
org.opencontainers.image.licenses='Apache-2.0'
|
||||
|
||||
ARG KUBE_VERSION=1.31.0
|
||||
ARG KUBE_VERSION=1.32.0
|
||||
ARG MARIADB_VERSION=10.6
|
||||
ARG PERCONA_TOOLKIT_VERSION=3.5.7
|
||||
|
||||
@ -45,9 +45,9 @@ RUN set -xe \
|
||||
&& pip3 install --no-cache-dir \
|
||||
munch \
|
||||
simplejson \
|
||||
oslo.rootwrap==7.0.1 \
|
||||
python-openstackclient==6.2.0 \
|
||||
python-swiftclient==4.2.0 \
|
||||
oslo.rootwrap==7.2.0 \
|
||||
python-openstackclient==6.6.1 \
|
||||
python-swiftclient==4.5.0 \
|
||||
&& sed -i 's/$PrivDropToUser syslog/$PrivDropToUser nobody/' /etc/rsyslog.conf \
|
||||
&& curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
|
||||
| tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
|
||||
|
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
FROM ${FROM}
|
||||
|
||||
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
|
||||
@ -27,15 +27,15 @@ RUN set -xe \
|
||||
&& pip3 install --no-cache-dir \
|
||||
munch \
|
||||
simplejson \
|
||||
oslo.rootwrap==7.0.1 \
|
||||
python-openstackclient==6.2.0 \
|
||||
python-glanceclient==4.3.0 \
|
||||
python-novaclient==18.3.0 \
|
||||
python-neutronclient==9.0.0 \
|
||||
python-cinderclient==9.3.0 \
|
||||
python-heatclient==3.2.0 \
|
||||
python-swiftclient==4.2.0 \
|
||||
osc-placement \
|
||||
oslo.rootwrap==7.2.0 \
|
||||
python-openstackclient==6.6.1 \
|
||||
python-swiftclient==4.5.0 \
|
||||
python-glanceclient==4.5.0 \
|
||||
python-novaclient==18.6.0 \
|
||||
python-neutronclient==11.2.0 \
|
||||
python-cinderclient==9.5.0 \
|
||||
python-heatclient==3.5.0 \
|
||||
osc-placement==4.3.0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN PYTHON_LOCATION=$(pip3 show oslo.rootwrap|grep Location|awk '{print $2}') \
|
||||
|
@ -1,4 +1,4 @@
|
||||
ARG FROM=docker.io/ubuntu:jammy
|
||||
ARG FROM=quay.io/airshipit/ubuntu:jammy
|
||||
FROM ${FROM}
|
||||
|
||||
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
|
||||
@ -8,7 +8,7 @@ LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc
|
||||
org.opencontainers.image.vendor='The Airship Authors' \
|
||||
org.opencontainers.image.licenses='Apache-2.0'
|
||||
|
||||
ARG KUBE_VERSION=1.31.0
|
||||
ARG KUBE_VERSION=1.32.0
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
@ -40,9 +40,9 @@ RUN set -xe \
|
||||
&& pip3 install --no-cache-dir \
|
||||
munch \
|
||||
simplejson \
|
||||
oslo.rootwrap==7.0.1 \
|
||||
python-openstackclient==6.2.0 \
|
||||
python-swiftclient==4.2.0 \
|
||||
oslo.rootwrap==7.2.0 \
|
||||
python-openstackclient==6.6.1 \
|
||||
python-swiftclient==4.5.0 \
|
||||
&& curl --silent -L https://dl.k8s.io/v${KUBE_VERSION}/kubernetes-client-linux-amd64.tar.gz \
|
||||
| tar -zC /usr/bin --strip-components=3 --wildcards -x "*/*/*/kubectl" \
|
||||
&& curl -o /tmp/rclone.deb https://downloads.rclone.org/rclone-current-linux-amd64.deb \
|
||||
|
@ -109,19 +109,17 @@ class UtilityContainerClient(object):
|
||||
raise KubeEnvVarException(kube_server_key)
|
||||
|
||||
if os.environ.get(region_key) is not None:
|
||||
conf.set_cluster(
|
||||
name=os.environ.get(region_key),
|
||||
server=server,
|
||||
insecure_skip_tls_verify=True)
|
||||
conf.set_cluster(name=os.environ.get(region_key),
|
||||
server=server,
|
||||
insecure_skip_tls_verify=True)
|
||||
else:
|
||||
raise KubeEnvVarException(region_key)
|
||||
username_key = 'OS_USERNAME'
|
||||
if os.environ.get(username_key) is not None:
|
||||
conf.set_context(
|
||||
name='context_uc',
|
||||
user=os.environ.get(username_key),
|
||||
namespace='utility',
|
||||
cluster=os.environ.get(region_key))
|
||||
conf.set_context(name='context_uc',
|
||||
user=os.environ.get(username_key),
|
||||
namespace='utility',
|
||||
cluster=os.environ.get(region_key))
|
||||
else:
|
||||
raise KubeEnvVarException(username_key)
|
||||
conf.use_context('context_uc')
|
||||
@ -158,8 +156,8 @@ class UtilityContainerClient(object):
|
||||
# Get the selectors from the deployment object returned.
|
||||
selector_dict = deployment[0].spec.selector.match_labels
|
||||
# Convert the selector dictionary to a string object.
|
||||
selectors = ', '.join(
|
||||
"{!s}={!s}".format(k, v) for (k, v) in selector_dict.items())
|
||||
selectors = ', '.join("{!s}={!s}".format(k, v)
|
||||
for (k, v) in selector_dict.items())
|
||||
return selectors
|
||||
else:
|
||||
raise KubeDeploymentNotFoundException(
|
||||
|
@ -36,17 +36,14 @@ class TestUtilityContainerClient(unittest.TestCase):
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_exec_cmd_output')
|
||||
def test_exec_cmd(self, mock_get_exec_cmd_output, mock_utility_container):
|
||||
v1_container_obj = Mock(
|
||||
spec=client.V1Container(
|
||||
name='ceph_utility', image='sha', image_pull_policy='Always'))
|
||||
v1_container_obj = Mock(spec=client.V1Container(
|
||||
name='ceph_utility', image='sha', image_pull_policy='Always'))
|
||||
v1_spec_obj = Mock(spec=client.V1PodSpec(containers=v1_container_obj))
|
||||
v1_meta_obj = Mock(
|
||||
spec=client.V1ObjectMeta(
|
||||
name='clcp-ceph-utility-5454794df8-xqwj5', labels='app=ceph'))
|
||||
v1_meta_obj = Mock(spec=client.V1ObjectMeta(
|
||||
name='clcp-ceph-utility-5454794df8-xqwj5', labels='app=ceph'))
|
||||
|
||||
v1_pod_obj = Mock(
|
||||
spec=client.V1Pod(
|
||||
api_version='v1', metadata=v1_meta_obj, spec=v1_spec_obj))
|
||||
v1_pod_obj = Mock(spec=client.V1Pod(
|
||||
api_version='v1', metadata=v1_meta_obj, spec=v1_spec_obj))
|
||||
mock_utility_container.return_value = v1_pod_obj
|
||||
mock_get_exec_cmd_output.return_value = "Health OK"
|
||||
|
||||
@ -58,9 +55,10 @@ class TestUtilityContainerClient(unittest.TestCase):
|
||||
self.assertIsInstance(response, str)
|
||||
self.assertEqual(response, mock_get_exec_cmd_output.return_value)
|
||||
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
def test_exec_cmd_no_utility_pods_returned(self, mock_list_pods):
|
||||
mock_list_pods.return_value = []
|
||||
utility_container_client = UtilityContainerClient()
|
||||
@ -68,9 +66,10 @@ class TestUtilityContainerClient(unittest.TestCase):
|
||||
utility_container_client.exec_cmd('clcp-utility',
|
||||
['utilscli', 'ceph', 'status'])
|
||||
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_deployment_selectors',
|
||||
side_effect=KubeDeploymentNotFoundException('utility'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_deployment_selectors',
|
||||
side_effect=KubeDeploymentNotFoundException('utility'))
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._corev1api_api_client')
|
||||
def test_exec_cmd_no_deployments_returned(self, deployment, api_client):
|
||||
@ -81,12 +80,14 @@ class TestUtilityContainerClient(unittest.TestCase):
|
||||
utility_container_client.exec_cmd('clcp-ceph-utility',
|
||||
['utilscli', 'ceph', 'status'])
|
||||
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_deployment_selectors',
|
||||
side_effect=KubeEnvVarException('utility'))
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._appsv1api_api_client',
|
||||
side_effect=KubeEnvVarException('KUBECONFIG'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_deployment_selectors',
|
||||
side_effect=KubeEnvVarException('utility'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._appsv1api_api_client',
|
||||
side_effect=KubeEnvVarException('KUBECONFIG'))
|
||||
def test_env_var_kubeconfig_not_set_raises_exception(
|
||||
self, deployment, api_client):
|
||||
deployment.return_value = []
|
||||
|
@ -21,6 +21,7 @@ from kube_utility_container.services.dataloader import \
|
||||
|
||||
|
||||
class TestBase(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.client = UtilityContainerClient()
|
||||
|
@ -23,6 +23,7 @@ from kube_utility_container.tests.utility.base import TestBase
|
||||
|
||||
|
||||
class TestCalicoUtilityContainer(TestBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.deployment_name = cls._get_deployment_name("calicoctl-utility")
|
||||
@ -88,9 +89,10 @@ class TestCalicoUtilityContainer(TestBase):
|
||||
f"is not having expected apparmor profile set")
|
||||
self.assertEqual(0, len(failures), failures)
|
||||
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
def test_exec_cmd_no_calicoctl_utility_pods_returned(self, mock_list_pods):
|
||||
mock_list_pods.return_value = []
|
||||
utility_container_client = UtilityContainerClient()
|
||||
|
@ -16,6 +16,7 @@ from kube_utility_container.tests.utility.base import TestBase
|
||||
|
||||
|
||||
class TestCephUtilityContainer(TestBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.deployment_name = cls._get_deployment_name("ceph-utility")
|
||||
|
@ -27,6 +27,7 @@ node = os.uname().nodename
|
||||
|
||||
|
||||
class TestComputeUtilityContainer(TestBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.deployment_name = cls._get_deployment_name("compute-utility")
|
||||
@ -105,9 +106,10 @@ class TestComputeUtilityContainer(TestBase):
|
||||
f"is not having expected apparmor profile set")
|
||||
self.assertEqual(0, len(failures), failures)
|
||||
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
def test_exec_cmd_no_compute_utility_pods_returned(self, mock_list_pods):
|
||||
mock_list_pods.return_value = []
|
||||
utility_container_client = UtilityContainerClient()
|
||||
|
@ -25,6 +25,7 @@ from kube_utility_container.tests.utility.base import TestBase
|
||||
|
||||
|
||||
class TestEtcdUtilityContainer(TestBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.deployment_name = cls._get_deployment_name("etcdctl-utility")
|
||||
@ -100,9 +101,10 @@ class TestEtcdUtilityContainer(TestBase):
|
||||
self.assertNotEqual(0, len(latest_pod_logs),
|
||||
"Not able to get the latest logs")
|
||||
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
def test_exec_cmd_no_etcdctl_utility_pods_returned(self, mock_list_pods):
|
||||
mock_list_pods.return_value = []
|
||||
utility_container_client = UtilityContainerClient()
|
||||
|
@ -17,6 +17,7 @@ from kube_utility_container.tests.utility.base import TestBase
|
||||
|
||||
|
||||
class TestMysqlclientUtilityContainer(TestBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.deployment_name = cls._get_deployment_name("mysqlclient-utility")
|
||||
|
@ -23,6 +23,7 @@ from kube_utility_container.tests.utility.base import TestBase
|
||||
|
||||
|
||||
class TestOpenstackUtilityContainer(TestBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.deployment_name = cls._get_deployment_name("openstack-utility")
|
||||
@ -88,9 +89,10 @@ class TestOpenstackUtilityContainer(TestBase):
|
||||
f"is not having expected apparmor profile set")
|
||||
self.assertEqual(0, len(failures), failures)
|
||||
|
||||
@patch('kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
@patch(
|
||||
'kube_utility_container.services.utility_container_client.'
|
||||
'UtilityContainerClient._get_utility_container',
|
||||
side_effect=KubePodNotFoundException('utility'))
|
||||
def test_exec_cmd_no_openstack_utility_pods_returned(self, mock_list_pods):
|
||||
mock_list_pods.return_value = []
|
||||
utility_container_client = UtilityContainerClient()
|
||||
|
@ -18,6 +18,7 @@ from kube_utility_container.tests.utility.base import TestBase
|
||||
|
||||
|
||||
class TestPostgresqlUtilityContainer(TestBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.deployment_name = cls._get_deployment_name("postgresql-utility")
|
||||
|
@ -16,12 +16,29 @@ urllib3
|
||||
# chardet>=3.0.2,<3.1.0
|
||||
# urllib3>=1.21.1,<=1.25
|
||||
|
||||
# Openstack Antelope 2023.1
|
||||
# https://releases.openstack.org/antelope/index.html
|
||||
# Openstack Caracal 2024.1
|
||||
# https://releases.openstack.org/caracal/index.html
|
||||
barbican==18.0.0
|
||||
|
||||
oslo.config==9.1.1
|
||||
oslo.context==5.1.1
|
||||
oslo.i18n==6.0.0
|
||||
oslo.log==5.2.0
|
||||
oslo.serialization==5.1.1
|
||||
oslo.utils==6.1.0
|
||||
python-barbicanclient==5.7.0
|
||||
python-keystoneclient==5.4.0
|
||||
|
||||
keystoneauth1==5.6.0
|
||||
keystonemiddleware==10.6.0
|
||||
|
||||
oslo.cache==3.7.0
|
||||
oslo.concurrency==6.0.0
|
||||
oslo.config==9.4.0
|
||||
oslo.context==5.5.0
|
||||
oslo.db==15.0.0
|
||||
oslo.i18n==6.3.0
|
||||
oslo.log==5.5.1
|
||||
oslo.messaging==14.7.2
|
||||
oslo.metrics==0.8.0
|
||||
oslo.middleware==6.1.0
|
||||
oslo.policy==4.3.0
|
||||
oslo.serialization==5.4.1
|
||||
oslo.service==3.4.1
|
||||
oslo.upgradecheck==2.3.0
|
||||
oslo.utils==7.1.0
|
||||
oslo.versionedobjects==3.3.0
|
||||
|
@ -1,41 +1,108 @@
|
||||
alembic==1.14.0
|
||||
amqp==5.3.1
|
||||
attrs==24.3.0
|
||||
autopage==0.5.2
|
||||
barbican==18.0.0
|
||||
bcrypt==4.2.1
|
||||
cachetools==5.5.0
|
||||
certifi==2024.8.30
|
||||
castellan==5.2.0
|
||||
certifi==2024.12.14
|
||||
cffi==1.17.1
|
||||
chardet==5.2.0
|
||||
charset-normalizer==3.3.2
|
||||
charset-normalizer==3.4.0
|
||||
cliff==4.8.0
|
||||
cmd2==2.5.8
|
||||
cryptography==44.0.0
|
||||
debtcollector==3.0.0
|
||||
durationpy==0.7
|
||||
google-auth==2.35.0
|
||||
decorator==5.1.1
|
||||
dnspython==2.7.0
|
||||
dogpile.cache==1.3.3
|
||||
durationpy==0.9
|
||||
eventlet==0.38.2
|
||||
fasteners==0.19
|
||||
futurist==3.0.0
|
||||
google-auth==2.37.0
|
||||
greenlet==3.1.1
|
||||
idna==3.10
|
||||
iso8601==2.1.0
|
||||
Jinja2==3.1.5
|
||||
jsonschema==4.23.0
|
||||
jsonschema-specifications==2024.10.1
|
||||
keystoneauth1==5.6.0
|
||||
keystonemiddleware==10.6.0
|
||||
kombu==5.4.2
|
||||
kubeconfig==1.1.1
|
||||
kubernetes==31.0.0
|
||||
ldap3==2.9.1
|
||||
logutils==0.3.5
|
||||
Mako==1.3.8
|
||||
MarkupSafe==3.0.2
|
||||
microversion-parse==2.0.0
|
||||
msgpack==1.1.0
|
||||
netaddr==1.3.0
|
||||
netifaces==0.11.0
|
||||
oauthlib==3.2.2
|
||||
oslo.config==9.1.1
|
||||
oslo.context==5.1.1
|
||||
oslo.i18n==6.0.0
|
||||
oslo.log==5.2.0
|
||||
oslo.serialization==5.1.1
|
||||
oslo.utils==6.1.0
|
||||
packaging==24.1
|
||||
os-service-types==1.7.0
|
||||
oslo.cache==3.7.0
|
||||
oslo.concurrency==6.0.0
|
||||
oslo.config==9.4.0
|
||||
oslo.context==5.5.0
|
||||
oslo.db==15.0.0
|
||||
oslo.i18n==6.3.0
|
||||
oslo.log==5.5.1
|
||||
oslo.messaging==14.7.2
|
||||
oslo.metrics==0.8.0
|
||||
oslo.middleware==6.1.0
|
||||
oslo.policy==4.3.0
|
||||
oslo.serialization==5.4.1
|
||||
oslo.service==3.4.1
|
||||
oslo.upgradecheck==2.3.0
|
||||
oslo.utils==7.1.0
|
||||
oslo.versionedobjects==3.3.0
|
||||
packaging==24.2
|
||||
Paste==3.10.1
|
||||
PasteDeploy==3.1.0
|
||||
pbr==6.1.0
|
||||
pecan==1.5.1
|
||||
pip==24.1
|
||||
prettytable==3.12.0
|
||||
prometheus_client==0.21.1
|
||||
pyasn1==0.6.1
|
||||
pyasn1_modules==0.4.1
|
||||
pyparsing==3.1.4
|
||||
pycadf==4.0.0
|
||||
pycparser==2.22
|
||||
PyJWT==2.10.1
|
||||
pyOpenSSL==24.3.0
|
||||
pyparsing==3.2.0
|
||||
pyperclip==1.9.0
|
||||
python-barbicanclient==5.7.0
|
||||
python-dateutil==2.9.0.post0
|
||||
python-keystoneclient==5.4.0
|
||||
pytz==2024.2
|
||||
PyYAML==6.0.2
|
||||
referencing==0.35.1
|
||||
repoze.lru==0.7
|
||||
requests==2.32.3
|
||||
requests-oauthlib==2.0.0
|
||||
rfc3986==2.0.0
|
||||
Routes==2.5.1
|
||||
rpds-py==0.22.3
|
||||
rsa==4.9
|
||||
setuptools==70.1.0
|
||||
six==1.16.0
|
||||
stevedore==5.3.0
|
||||
urllib3==2.2.3
|
||||
six==1.17.0
|
||||
SQLAlchemy==2.0.36
|
||||
statsd==4.0.1
|
||||
stevedore==5.4.0
|
||||
testresources==2.0.1
|
||||
testscenarios==0.5.0
|
||||
testtools==2.7.2
|
||||
typing_extensions==4.12.2
|
||||
tzdata==2024.2
|
||||
urllib3==2.3.0
|
||||
vine==5.1.0
|
||||
wcwidth==0.2.13
|
||||
WebOb==1.8.9
|
||||
websocket-client==1.8.0
|
||||
wheel==0.43.0
|
||||
wrapt==1.16.0
|
||||
wrapt==1.17.0
|
||||
yappi==1.6.10
|
||||
|
@ -4,22 +4,20 @@
|
||||
|
||||
# When modifying this file `tox -e freeze-testreq` must be run to regenerate the test-requirements-frozen.txt.
|
||||
|
||||
astroid==2.11.7
|
||||
astroid
|
||||
bandit==1.6.0
|
||||
|
||||
flake8==3.8.4
|
||||
hacking==4.1.0
|
||||
flake8
|
||||
hacking
|
||||
|
||||
|
||||
pylint==2.14.5
|
||||
pylint
|
||||
python-subunit==1.4.0 # Apache-2.0/BSD
|
||||
oslotest==3.7.0 # Apache-2.0
|
||||
stestr==3.2.1 # Apache-2.0
|
||||
testtools==2.5.0
|
||||
mock==5.0.2
|
||||
stestr
|
||||
mock
|
||||
nose==1.3.7
|
||||
yapf==0.24.0
|
||||
pytest >= 3.0
|
||||
pytest-cov==4.0.0
|
||||
yapf
|
||||
pytest
|
||||
pytest-cov
|
||||
chardet
|
||||
# chardet==3.0.4
|
@ -35,7 +35,7 @@
|
||||
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
|
||||
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
|
||||
PL_SITE: "{{ site | default('airskiff') }}"
|
||||
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz') }}"
|
||||
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz') }}"
|
||||
HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
|
||||
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
|
||||
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"
|
||||
|
@ -33,7 +33,7 @@
|
||||
FEATURE_GATES: "{{ osh_params.feature_gates | default('') }}"
|
||||
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
|
||||
PL_SITE: "{{ site | default('airskiff') }}"
|
||||
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz') }}"
|
||||
HELM_ARTIFACT_URL: "{{ HELM_ARTIFACT_URL | default('https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz') }}"
|
||||
HTK_COMMIT: "{{ HTK_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
|
||||
OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}"
|
||||
OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}"
|
||||
|
@ -17,7 +17,7 @@
|
||||
set -x
|
||||
|
||||
HELM=$1
|
||||
HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz"}
|
||||
HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz"}
|
||||
|
||||
|
||||
function install_helm_binary {
|
||||
|
Loading…
x
Reference in New Issue
Block a user