-
Notifications
You must be signed in to change notification settings - Fork 37
Add kiosk page #503
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add kiosk page #503
Changes from 11 commits
2de51a7
756f11a
2708f13
9a03b9a
1b703eb
3276a5c
9d004fc
c5735ab
b488c89
f5a53ea
75639df
f0429fd
be2ee58
feeb3a7
3306009
0d75927
d81aca4
657d016
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,288 @@ | ||||||
[#component-kiosk] | ||||||
= Building Kiosks with SUSE Edge | ||||||
:experimental: | ||||||
|
||||||
ifdef::env-github[] | ||||||
:imagesdir: ../images/ | ||||||
:tip-caption: :bulb: | ||||||
:note-caption: :information_source: | ||||||
:important-caption: :heavy_exclamation_mark: | ||||||
:caution-caption: :fire: | ||||||
:warning-caption: :warning: | ||||||
endif::[] | ||||||
|
||||||
|
||||||
Many times workloads running in edge environments need to have a way for users to interact with them through a graphical interface. To enable these workloads in SUSE Edge, we provide a set of containers and a helm chart to run your graphical applications within K3s or RKE2. | ||||||
|
||||||
Running your kiosk (or other HID) applications this way allows for more explicit security boundaries along with allowing for a wider range of languages/frameworks when building your app. | ||||||
|
||||||
In this guide, we will demonstrate how to manage these workloads in a secure, scalable, and maintainable way. | ||||||
|
||||||
== Architecture | ||||||
|
||||||
image::kiosk-architecture.png[] | ||||||
|
||||||
The Kubernetes Pod contains the three containers (X11, PulseAudio, and the workload itself) | ||||||
|
||||||
The workload communicates with both the X11 and PulseAudio containers through a unix socket that's created in EmptyDir to allow communication between containers. They also use an EmptyDir to share the Xauthority token. | ||||||
|
||||||
Both the PulseAudio and X11 containers use udev to communicate with the hardware. (That's a slight oversimplification...) | ||||||
|
||||||
== Prerequisites | ||||||
|
||||||
To run this, you will need a system with: | ||||||
- SLE Micro 5.5+ | ||||||
agracey marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
- Either K3s or RKE2 1.29+ | ||||||
agracey marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
agracey marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
- Helm installed (if not using EIB or Fleet) | ||||||
- A display attached (when running in a VM, make sure to use a virtual display instead of the "console" output) | ||||||
|
||||||
== Deployment | ||||||
|
||||||
The preferred way to deploy on Kubernetes is through the helm chart. | ||||||
|
The preferred way to deploy on Kubernetes is through the helm chart. | |
The preferred way to deploy the kiosk solution on Kubernetes is through the helm chart. |
agracey marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
agracey marked this conversation as resolved.
Show resolved
Hide resolved
agracey marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we have a table with some small explanation on what they do and/or the versions we tested?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like that's a lot of detail that would just cause confusion. Maybe what would be better is to just have an example Dockerfile?
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how? can we have a link to the SLES docs on how to do it for example?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how? can we have a link to the SLES docs on how to do it for example?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It turns out this is hardware dependent :(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how? can we have a link to the SLES docs on how to do it for example?
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doing both of these will show a blank screen with a flashing cursor in the top-left corner. To show something on screen between the GRUB splash screen, you could use `plymouth` or just `cat` a raw framebuffer file to `/dev/fb0`. (Check out https://github.com/zqb-all/convertfb for a tool on converting images to the right format) | |
Doing both of these will show a blank screen with a flashing cursor in the top-left corner. To show something on screen between the GRUB splash screen, you could use `plymouth` or just `cat` a raw framebuffer file to `/dev/fb0`. (Check out https://github.com/zqb-all/convertfb for a tool on converting images to the right format). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To disallow closing the application or otherwise tampering with the kiosk, it can be useful to remap or turn off certain keys. This can be done using (xmodmap)[https://linux.die.net/man/1/xmodmap] | |
To disallow closing the application or otherwise tampering with the kiosk, it can be useful to remap or turn off certain keys. This can be done using (xmodmap)[https://linux.die.net/man/1/xmodmap]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how? :D Also, what about firewalld and/or selinux?
Uh oh!
There was an error while loading. Please reload this page.