Video Recording of openSUSE Conference session which introduced the project

Core Project

MicroOS (and it's Kubernetes focused sister, Kubic) is an exciting distribution that takes much of the cool stuff we're doing in Tumbleweed, adds solutions to the problems of updating a running system, and is becoming the perfect base system for running containers.

But in openSUSE, running server stuff is only half the fun.

Why should servers be the only platform enjoying automatic, atomic, "auto-rollbackable" system updates?

Surely desktop users want to be lazy like server admins also?

Can the tools and approaches implemented in MicroOS help create the desktop distribution of the future?

Let's find out!

This Project will try to build, test, and introduce to the world the 'openSUSE MicroOS Desktop', a desktop focused variant of MicroOS based on Tumbleweed.

Sub Projects (Hackweek 18/19)

BPF powered Tor networking for flatpaks

A BPF program which can we attached to flatpaks (via CGROUP_BPF, "cgroup/skb" section) which will redirect all the egress traffic from the given flatpak to Tor network. Such a program should be trivial to write, but it will be a good alternative for running whole virtualized systems like Tails or Whonix.

openSUSE Flatpaks

in the similar way Fedora is doing that - flatpaks based on OCI images. Those OCI images could be build with kiwi. That approach gives us benefits from flatpak, but at the same time we avoid bundling libraries in each flatpak image, instead we reuse our packaging and good model of handling dependencies globally for all the software.

Hackweek 20

During Hackweek 20 (March 22-26 2021) I'm going to be working again on getting MicroOS Desktop polished and ready for primetime use.

For those interested in joining this Hackweek, I'd recommend watching the following videos to catch up with the Project's current status

Richard talking about MicroOS Generally and the Desktop current status at FOSDEM 2021

Dario talking about how he uses MicroOS Desktop already as his daily driver

Most of the Hackweek will be addressing the problems with the current builds and inventing solutions for the current main sticking points of getting MicroOS's config 'perfect' out of the box, such as configuring Flatpak with Flathub and installing some Flatpaks by default.

People can join the kubic@lists.opensuse.org mailing list to discuss issues asynchronously

We will also be on #microos-desktop on irc.freenode.org to talk to us via chat

And we'll also be on video chat on meet.opensuse.org/MicroOSDesktop as often as we can. Specific 'open hours' may be announced on the MicroOS Twitter Account

Hackweek 20 Results

After Hackweek 20 the GNOME variant of the MicroOS Desktop finally achieved [BETA] status, meaning its now feature complete and ready for most people to use, with the caveat of a small possibility of bugs/issues which will be fixed quickly.

More details can be found on this slide deck

Looking for hackers with the skills:

opensuse tumbleweed gnome flatpak kiwi obs distribution

This project is part of:

Hack Week 18 Hack Week 19 Hack Week 20 Hack Week 21

Activity

  • almost 2 years ago: PeterMaris12 joined this project.
  • almost 2 years ago: PeterMaris12 liked this project.
  • almost 2 years ago: JonathanKang liked this project.
  • about 3 years ago: mrohde joined this project.
  • about 3 years ago: lpalovsky liked this project.
  • about 3 years ago: markgharvey liked this project.
  • about 3 years ago: bakano liked this project.
  • about 3 years ago: bakano disliked this project.
  • about 3 years ago: bakano liked this project.
  • about 3 years ago: bdekany liked this project.
  • about 3 years ago: jblainchristen liked this project.
  • about 3 years ago: hsehic joined this project.
  • about 3 years ago: acho liked this project.
  • about 3 years ago: michals liked this project.
  • about 3 years ago: radolin liked this project.
  • about 3 years ago: yfjiang liked this project.
  • about 3 years ago: salisburyk liked this project.
  • about 3 years ago: franjsco liked this project.
  • about 3 years ago: sydsb liked this project.
  • about 3 years ago: sydsb joined this project.
  • about 3 years ago: hbarnes joined this project.
  • about 3 years ago: RBrownSUSE liked this project.
  • almost 4 years ago: aitvaras liked this project.
  • about 4 years ago: vinzv liked this project.
  • about 4 years ago: vinzv joined this project.
  • All Activity

    Comments

    • mrostecki
      about 4 years ago by mrostecki | Reply

      I would like to join that project and propose two "subprojects" I would like to work on:

      • A BPF program which can we attached to flatpaks (via CGROUP_BPF, "cgroup/skb" section) which will redirect all the egress traffic from the given flatpak to Tor network. Such a program should be trivial to write, but it will be a good alternative for running whole virtualized systems like Tails or Whonix.
      • openSUSE flatpaks - in the similar way Fedora is doing that - flatpaks based on OCI images. Those OCI images could be build with kiwi. That approach gives us benefits from flatpak, but at the same time we avoid bundling libraries in each flatpak image, instead we reuse our packaging and good model of handling dependencies globally for all the software.

      • RBrownSUSE
        about 4 years ago by RBrownSUSE | Reply

        +1 to both to me..lets do this! :)

      • mrostecki
        about 4 years ago by mrostecki | Reply

        The main job here will be catching egress packets from the given cgroup and redirecting them to localhost:9050 or to whatever port the SOCKS proxy of Tor is listening to.

    • dfaggioli
      about 4 years ago by dfaggioli | Reply

      I was wondering, how does one do development, in an environment like this. I mean, the classic dev cycle of a good old (say, for instance) C project where even just to build test it (perhaps with your changes), you'd need to install a bunch of libfoo-devel, libbar-devel, libfoo-bar-devel, etc., which I don't think one wants to install on the "main OS" and, e.g., have to reboot each time that building with a new dependency is necessary. Libvirt, QEMU, Xen could be examples, arbitrarily chosen just because they're the ones I deal with sort of on a daily basis, but I think there may well be others.

      My wild guess would be that a "toolbox like" [1] approach could work? That is, having a simple way to spin up a container inside which one can build his project? Dependencies, one would install them inside the container manually, or we can allow for stashing a (or more) "dockerfile(s)" somewhere, that can then be fine-tuned and reused...

      If this makes any sort of sense, I would like to join the project with the aim of testing such a workflow, give feedback about it and, hopefully, improve it.

      I feel like adding that I have very few experience with MicroOS/Kubic, as well as with containers in general. And although learning new things is indeed the purpose of Hackweek, I'm not sure how far I'll be able to get.

      Anyway, let me know what you think. :-)

      • fcrozat
        about 4 years ago by fcrozat | Reply

        you mean https://kubic.opensuse.org/blog/2019-10-22-toolbox/ ? ;)

        • dfaggioli
          about 4 years ago by dfaggioli | Reply

          I definitely do mean that! I actually meant to put that very link in my comment... see the "[1]" I have there?

          But then I guess I forgot :-) Thanks

      • mrostecki
        about 4 years ago by mrostecki | Reply

        That's an interesting problem to solve and I was also thinking about it, but didn't come up with any solution.

        But yes, working on something "toolbox like" based on podman and container images sounds like a good approach to me.

        • fcrozat
          about 4 years ago by fcrozat | Reply

          This would have also the good approach of developers being able to use either MicroOS Desktop or Fedora Silverblue in the same way, without the need to learn something new for our solution.

          • dfaggioli
            about 4 years ago by dfaggioli | Reply

            Yep, indeed. Basically, this: "Toolbox: using Silverblue for development - Debarshi Ray - Flock 2019" ( https://www.youtube.com/watch?v=BGXs0W6NRBM )

        • dfaggioli
          about 4 years ago by dfaggioli | Reply

          Ok. So I guess I'm actually joining, I will look into how toolbox actually works and see if I can come up with something similar (but different! :-D)

          • mrostecki
            about 4 years ago by mrostecki | Reply

            Can't we actually use toolbox and contribute to it if you are not going to find any big disadvantages of that project? It's under "containers" organization on Github - https://github.com/containers/toolbox, so IMO we shouldn't consider it to be a "Red Hat project" - SUSE contributes to various github.com/containers projects too. It seems to use podman and it doesn't seem to depend on (rpm-)ostree, so it should work on openSUSE just fine.

            • dfaggioli
              about 4 years ago by dfaggioli | Reply

              Sure, I'm fine trying that and see if I can make it work for us. Definitely

          • mrostecki
            about 4 years ago by mrostecki | Reply

            Maybe we could start contribution with having the openSUSE image in images/ directory ;)

          • mrostecki
            about 4 years ago by mrostecki | Reply

            On the other hand, seems like there is a huge rewrite in Go pending https://github.com/containers/toolbox/pull/318

            • RBrownSUSE
              about 4 years ago by RBrownSUSE | Reply

              Our toolbox we already have is already better than most other distros toolboxes..it does everything I'd ever want (except one thing..which I will fix one day) but hey if others want to look at it I dont object :)

    • RBrownSUSE
      about 4 years ago by RBrownSUSE | Reply

      Hi all - anyone working on this project, I'm hanging out in #microos-desktop on irc.freenode.org now - we should use that to coordinate/chat :)

    • RBrownSUSE
      about 4 years ago by RBrownSUSE | Reply

      Current Steps In Progress at Time of Writing:

      • Submit new skelcd-control-MicroOS to YaST>Factory
      • Submit new microos-patterns to Factory
      • Ensure product builds media with new patterns-microos-[gnome|kde]-desktop patterns

      At this point MicroOS ISO's should have both a KDE and GNOME system role in 'Alpha' status

      Steps that must be accomplished to reach 'Beta'

      • Some openQA testing
      • Basic working functionality like logging in, application installation, etc

      Steps to remove the ugly 'Alpha' or 'Beta' flag from the installation

      • openQA testing for boot, login, application installation and some apps running
      • No unexpected reboots/sensible rebootmgr configuration
      • Notification to the user when a reboot is required

      • RBrownSUSE
        about 4 years ago by RBrownSUSE | Reply

        Steps to remove the ugly 'Alpha' or 'Beta' flag from the installation

        • Both KDE and GNOME should have an optimised package list from the hacked together examples right now

      • RBrownSUSE
        about 4 years ago by RBrownSUSE | Reply

        Current Steps In Progress at Time of Writing:

        • Submit new skelcd-control-MicroOS to YaST>Factory
        • Submit new microos-patterns to Factory
        • Ensure product builds media with new patterns-microos-[gnome|kde]-desktop patterns

        https://build.opensuse.org/request/show/773663 https://build.opensuse.org/request/show/773664 https://build.opensuse.org/request/show/773665

        Above is all otw to Factory, to be staged and adjusted there

    • Cbran
      about 4 years ago by Cbran | Reply

      Could someone show me around this?

    • dfaggioli
      about 4 years ago by dfaggioli | Reply

      Update from me: - we're discussing (in opensuse-kubic@opensuse.org) whether/how to change our toolbox image in order for it to fulfill the requirements of https://github.com/containers/toolbox - Thorsted has pushed some of those changes to devel:kubic:containers (see: https://build.opensuse.org/package/rdiff/devel:kubic:containers/opensuse-toolbox-image?linkrev=base&rev=7 ) - I've worked on making our toolbox a little bit more comfortable to use for development: https://github.com/dfaggioli/microos-toolbox/tree/user-mode https://github.com/kubic-project/microos-toolbox/pull/2

    • dfaggioli
      about 4 years ago by dfaggioli | Reply

      [Sorry for posting this twice, but the previous comment I wrote is barely readable! :-/]

      Update from me:

    • RBrownSUSE
      about 3 years ago by RBrownSUSE | Reply

      Hackweek 20 went well, briefest summary is currently on twitter, and will be included in the Lightning talks on Friday

      https://twitter.com/sysrich/status/1375443718132613120

    Similar Projects

    Investigate zypper/openSUSE repository refresh optimisations by dirkmueller

    [comment]: # (Please use the project descriptio...


    Basic calendar interface for upcoming openSUSE meetings by lkocman

    [comment]: # (Please use the project descriptio...


    Apple Silicon openSUSE spin by vgrinco

    Project Description

    The folks at [Asahi lin...


    Containerized home mirror by lkocman

    I'm running a simple home mirror, but I managed...


    Update Haskell ecosystem in Tumbleweed to GHC-9.6.x by psimons

    [comment]: # (Please use the project descriptio...


    Avahi Integration and Network Connection by vojha

    Avahi Integration and Network Connection

    ...


    Tumbleweed on Mars-CM (RISC-V board) by ph03nix

    RISC-V is awesome, Tumbleweed is awesome, choco...


    Update Haskell ecosystem in Tumbleweed to GHC-9.6.x by psimons

    [comment]: # (Please use the project descriptio...


    Tumbleweed support for Raspberry Pi 4 with Quad SATA HAT by jbaier_cz

    [comment]: # (Please use the project descriptio...


    Parental controls on Tumbleweed/Aeon by fcrozat

    [comment]: # (Please use the project descriptio...


    GNOME Love by dgarcia

    [comment]: # (Please use the project descriptio...


    Adapt Bootstrap code in OBS to support theming by enavarro_suse

    Project Description

    After the release of ...


    Elixir LiveView clone of Etherpad (running on ALP) by socon

    Project Description

    Etherpad (etherpad.org)...


    Support for OVA build in OBS and better support for vmdk disks in kiwi by gmoro

    Project Description

    Implement support for O...


    Reduce the amount of TODOs for RuboCop in OBS by enavarro_suse

    Project Description

    The OBS project has a...


    Improve database_cleaner.rb script in OBS by enavarro_suse

    Project Description

    There is some code to...