[SRU]: check_hostname requires server_hostname when using container_infra endpoint with HTTPS
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| Magnum |
Invalid
|
Undecided
|
Esmerlin Joel Mieses | ||
| Ubuntu Cloud Archive |
Fix Released
|
Undecided
|
Unassigned | ||
| Caracal |
New
|
Undecided
|
Unassigned | ||
| Dalmatian |
New
|
Undecided
|
Unassigned | ||
| Epoxy |
New
|
Undecided
|
Unassigned | ||
| python-magnumclient |
Fix Released
|
Undecided
|
Unassigned | ||
| python-magnumclient (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
| Noble |
Confirmed
|
Undecided
|
Unassigned | ||
| Plucky |
Confirmed
|
Undecided
|
Unassigned | ||
| Questing |
Fix Released
|
Undecided
|
Unassigned | ||
Bug Description
Note: Original description below
[Impact]
* On Jammy Caracal, when endpoints are configured with TLS, the Magnum UI does not display any information about deployed resources, although they are created and visible using the command-line client. The dashboard displays errors about connecting to the backend
* This bug is introduced by a patch (d/p/0001-
* This bug was fixed upstream in [2], which merged during the Epoxy cycle, and was backported to Dalmatian (but not upstream Caracal, since upstream Caracal doesn't have [1] and, therefore, isn't affected by this bug). However, Ubuntu's Dalmatian and Epoxy packages (both distro packages and UCA) don't have this fix.
* Therefore, the affected Ubuntu packages are the python-magnumclient shipped as on Noble, Oracular (EOL) and Plucky, and then for the Ubuntu Cloud Archive (UCA) the affected packages are python-magnumclient for Jammy Caracal, Noble Dalmatian, and Noble-Epoxy.
[1] https:/
[2] https:/
[Test Plan]
* Deploy Openstack by any method. I will use juju
* Deploy magnum services and setup relations
juju deploy magnum --channel=
juju relate magnum keystone
juju relate magnum vault
juju relate magnum:ampq rabbitmq-
juju relate magnum:shared-db magnum-
juju deploy magnum-dashboard --channel=
juju relate magnum-dashboard keystone
juju relate magnum-dashboard vault
juju relate magnum-dashboard openstack-dashboard
* Configure magnum
juju run magnum/0 domain-setup
* Open openstack dashboard, and go to the cluster management pane
* See error message and that there's observability of any magnum resources without the patch
* Upgrade to proposed, and see a properly populated dashboard
[What can go wrong]
* While this fixes an issue with SNI in TLS handshakes, in environments where SNI is not configured correctly or TLS certs are not distributed properly, this patch may break the environment and expose those issues.
=======
Original description:
Openstack: 2024.2
Ubuntu: 22.04
Deployment Tool: Kolla Ansible
Steps to reproduce:
From version 2024.2 of Magnum when using Horizon (navigate to Project->Container Infra->Cluster or Cluster Templates) "/api/container
Horizon error log:
error invoking apiclient
Traceback (most recent call last):
File "/var/lib/
data = function(self, request, *args, **kw)
File "/var/lib/
result = magnum.
File "/var/lib/
return magnumclient(
File "/var/lib/
return self._list(
File "/var/lib/
resp, body = self.api.
File "/var/lib/
resp, body_iter = self._http_
File "/var/lib/
conn.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
self.send(msg)
File "/usr/lib/
self.connect()
File "/var/lib/
self.sock = context.
File "/usr/lib/
return self.sslsocket_
File "/usr/lib/
raise ValueError(
ValueError: check_hostname requires server_hostname
Internal Server Error: /api/container_
After analysis the problem exists in python-magnumclient from version 4.6.0 (https:/
According to documentation when using check_hostname with CERT_REQUIRED you must also pass server_hostname to wrap_socket
(Python 3.12 doc reference: https:/
| description: | updated |
| Changed in magnum: | |
| status: | New → Confirmed |
| Changed in magnum: | |
| assignee: | nobody → Esmerlin Joel Mieses (symph0nic) |
| description: | updated |
| summary: |
- check_hostname requires server_hostname when using container_infra - endpoint with HTTPS (2024.2) + [SRU]: check_hostname requires server_hostname when using + container_infra endpoint with HTTPS |
| description: | updated |
| Changed in magnum: | |
| status: | Confirmed → Invalid |
| Changed in python-magnumclient: | |
| status: | New → Confirmed |
| Changed in python-magnumclient (Ubuntu Questing): | |
| status: | New → Fix Released |
| Changed in cloud-archive: | |
| status: | New → Fix Released |
| Changed in python-magnumclient (Ubuntu): | |
| status: | New → Fix Released |
| description: | updated |
| description: | updated |
| description: | updated |
| description: | updated |
| description: | updated |
I haven't had the chance to look at this yet. If you are able to fix this, can you send up a patch please?