diff options
| -rw-r--r-- | doc/source/support_matrix.rst | 9 | ||||
| -rw-r--r-- | docker/kerbside/kerbside-api/Dockerfile.j2 | 9 | ||||
| -rw-r--r-- | docker/kerbside/kerbside-api/extend_start.sh | 4 | ||||
| -rw-r--r-- | docker/kerbside/kerbside-base/Dockerfile.j2 | 38 | ||||
| -rw-r--r-- | docker/kerbside/kerbside-proxy/Dockerfile.j2 | 9 | ||||
| -rw-r--r-- | docker/kerbside/kerbside-proxy/extend_start.sh | 4 | ||||
| -rw-r--r-- | kolla/common/config.py | 1 | ||||
| -rw-r--r-- | kolla/common/sources.py | 4 | ||||
| -rw-r--r-- | kolla/common/users.py | 4 | ||||
| -rw-r--r-- | releasenotes/notes/add-kerbside-images-04d28d7e76e5bc1f.yaml | 9 |
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. |
