aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2026-06-08 04:50:34 +0000
committerGerrit Code Review <review@openstack.org>2026-06-08 04:50:34 +0000
commitbf4ee2deaa53c2dc585f3d270e036579350b1b52 (patch)
tree99fca645948d19216ea1f9ec55a5cc0477fc0678
parent9d8fd10d7888c8ef5a3b1bc0d32f600e9564e357 (diff)
parent118541d5b3de5290d64a1e137d7bfb59afd8db4e (diff)
downloadkolla-bf4ee2deaa53c2dc585f3d270e036579350b1b52.tar.gz
kolla-bf4ee2deaa53c2dc585f3d270e036579350b1b52.zip
Merge "Implement container image build for kerbside."
-rw-r--r--doc/source/support_matrix.rst9
-rw-r--r--docker/kerbside/kerbside-api/Dockerfile.j29
-rw-r--r--docker/kerbside/kerbside-api/extend_start.sh4
-rw-r--r--docker/kerbside/kerbside-base/Dockerfile.j238
-rw-r--r--docker/kerbside/kerbside-proxy/Dockerfile.j29
-rw-r--r--docker/kerbside/kerbside-proxy/extend_start.sh4
-rw-r--r--kolla/common/config.py1
-rw-r--r--kolla/common/sources.py4
-rw-r--r--kolla/common/users.py4
-rw-r--r--releasenotes/notes/add-kerbside-images-04d28d7e76e5bc1f.yaml9
10 files changed, 91 insertions, 0 deletions
diff --git a/doc/source/support_matrix.rst b/doc/source/support_matrix.rst
index 2cce5c99a..bec1aa0bd 100644
--- a/doc/source/support_matrix.rst
+++ b/doc/source/support_matrix.rst
@@ -106,3 +106,12 @@ Currently unbuildable images
For a list of currently unbuildable images please look into
``kolla/image/unbuildable.py`` file - ``UNBUILDABLE_IMAGES`` dictionary.
+
+SPICE limitations
+=================
+
+The new OpenStack Compute console type ``spice-direct`` requires that
+SPICE support be compiled into the qemu running the instance. Sadly,
+Red Hat chose to remove SPICE support from qemu in RHEL9, and Rocky
+Linux has followed along. You therefore _must_ run the Debian or Ubuntu
+container images if you wish to use the ``spice-direct`` console type.
diff --git a/docker/kerbside/kerbside-api/Dockerfile.j2 b/docker/kerbside/kerbside-api/Dockerfile.j2
new file mode 100644
index 000000000..4e5e1f7a1
--- /dev/null
+++ b/docker/kerbside/kerbside-api/Dockerfile.j2
@@ -0,0 +1,9 @@
+FROM {{ namespace }}/{{ image_prefix }}kerbside-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+{% endblock %}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 644 /usr/local/bin/kolla_extend_start
+
+USER kerbside
diff --git a/docker/kerbside/kerbside-api/extend_start.sh b/docker/kerbside/kerbside-api/extend_start.sh
new file mode 100644
index 000000000..92ef80a22
--- /dev/null
+++ b/docker/kerbside/kerbside-api/extend_start.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# Make the log directory
+mkdir -p /var/log/kolla/kerbside
diff --git a/docker/kerbside/kerbside-base/Dockerfile.j2 b/docker/kerbside/kerbside-base/Dockerfile.j2
new file mode 100644
index 000000000..d2e31ca0e
--- /dev/null
+++ b/docker/kerbside/kerbside-base/Dockerfile.j2
@@ -0,0 +1,38 @@
+FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+{% endblock %}
+
+{% block kerbside_base_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.configure_user(name='kerbside', groups='kerbside') }}
+
+{% if base_package_type == 'rpm' %}
+ {% set kerbside_packages = [
+ 'mariadb-devel',
+ 'pkgconfig'
+ ] %}
+{% elif base_package_type == 'deb' %}
+ {% set kerbside_packages = [
+ 'libmariadb-dev-compat',
+ 'pkg-config'
+ ] %}
+{% endif %}
+
+{{ macros.install_packages(kerbside_packages | customizable("packages")) }}
+
+{% set kerbside_pip_packages = [
+ '/kerbside'
+] %}
+
+ADD kerbside-base-archive /kerbside-source
+RUN ln -s kerbside-source/* kerbside \
+ && if [ "$(ls /plugins)" ]; then \
+ {{ macros.install_pip(kerbside_plugins_pip_packages) }}; \
+ fi \
+ && {{ macros.install_pip(kerbside_pip_packages | customizable("pip_packages"), false) }} \
+ && rm -f /etc/machine-id
+
+{% block kerbside_base_footer %}{% endblock %}
diff --git a/docker/kerbside/kerbside-proxy/Dockerfile.j2 b/docker/kerbside/kerbside-proxy/Dockerfile.j2
new file mode 100644
index 000000000..4e5e1f7a1
--- /dev/null
+++ b/docker/kerbside/kerbside-proxy/Dockerfile.j2
@@ -0,0 +1,9 @@
+FROM {{ namespace }}/{{ image_prefix }}kerbside-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+{% endblock %}
+
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN chmod 644 /usr/local/bin/kolla_extend_start
+
+USER kerbside
diff --git a/docker/kerbside/kerbside-proxy/extend_start.sh b/docker/kerbside/kerbside-proxy/extend_start.sh
new file mode 100644
index 000000000..92ef80a22
--- /dev/null
+++ b/docker/kerbside/kerbside-proxy/extend_start.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+# Make the log directory
+mkdir -p /var/log/kolla/kerbside
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 33938d5e2..c4ebcbf3b 100644
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -88,6 +88,7 @@ _PROFILE_OPTS = [
'designate',
'gnocchi',
'ironic',
+ 'kerbside',
'magnum',
'manila',
'masakari',
diff --git a/kolla/common/sources.py b/kolla/common/sources.py
index 97edec1b1..08c4a4639 100644
--- a/kolla/common/sources.py
+++ b/kolla/common/sources.py
@@ -152,6 +152,10 @@ SOURCES = {
'type': 'url',
'location': ('$tarballs_base/openstack/keystone/'
'keystone-${openstack_branch}.tar.gz')},
+ 'kerbside-base': {
+ 'type': 'git',
+ 'reference': 'develop',
+ 'location': ('https://github.com/shakenfist/kerbside')},
'kolla-toolbox': {
'type': 'url',
'location': ('$tarballs_base/openstack/requirements/'
diff --git a/kolla/common/users.py b/kolla/common/users.py
index cd0a66660..19ebde20f 100644
--- a/kolla/common/users.py
+++ b/kolla/common/users.py
@@ -350,4 +350,8 @@ USERS = {
'uid': 42494,
'gid': 42494,
},
+ 'kerbside-user': {
+ 'uid': 42495,
+ 'gid': 42495,
+ }
}
diff --git a/releasenotes/notes/add-kerbside-images-04d28d7e76e5bc1f.yaml b/releasenotes/notes/add-kerbside-images-04d28d7e76e5bc1f.yaml
new file mode 100644
index 000000000..78be07bb9
--- /dev/null
+++ b/releasenotes/notes/add-kerbside-images-04d28d7e76e5bc1f.yaml
@@ -0,0 +1,9 @@
+---
+features:
+ - |
+ This release adds images for Kerbside. Kerbside is a SPICE protocol
+ native proxy used to expose the new spice-direct console type provided
+ by Openstack Compute. This allows high fidelity virtual desktop
+ experiences without requiring transcoding of the console into HTML5
+ in Horizon, or allowing users direct access to the console ports on
+ your hypervisors.