Skip to content

HackWeek 20: Uyuni SUSE Manager containerization project

Silvio Moioli edited this page Mar 20, 2021 · 22 revisions

Logistics

Objectives

  1. have a lot of fun!
  2. learn about container building (buildah)
  3. learn about container orchestration (podman with Docker Compose support, k3s)
  4. learn about containerized application deployment (helm)
  5. learn about roadblocks in delivering Uyuni as containers

Conventions

  • all development happens on the Uyuni containers branch/PR
  • all new files are to be added in the containers/ directory, for now
  • we use Dockerfiles (built with docker build or buildah), locally for now
  • we explicitly do not care about traditional clients at least for now

Current plans

  1. create a "fat" container with everything needed for a Proxy
  • start from https://github.com/SUSE/spacewalk/wiki/Proxy-container
  • find out which directories need to be mounted externally
    • surely: one for configuration/answer files/certs, one for the Squid cache (/var/cache/squid), one for logs
    • we need to see if there are others and why
    • for any directory we decide not to mount for a given reason, document it in the Dockerfile)
  • find out how it is best to specify configuration parameters (environment variables? answer files?)
  • pass the machine-id as parameter
  • add a startup (Python?) script. Figure out registration to the Server, activation of Proxy functionality (configure-proxy.sh), certs
  • ensure the Proxy works (manual test)
  • ensure the Proxy container can be killed and restarted. With the same mount points and parameters, it should come back to full functionality ("proto-HA")
  1. try to slim down the Proxy container
  • remove traditional stack processes/packages, if possible
  • split out a first component (eg. salt-broker) into another container. In parallel:
    • try orchestration with Podman
    • try orchestration with k3s/Helm
  • try to skip packaging for one of the packages (eg. salt-broker) - sources straight from git to image
  1. create a "fat" container with everything needed for a Server
  1. try to slim down the Server container
  • carve PostgreSQL out. Try Postgres-in-containers or outside of them
  • disable Cobbler. What needs to be done in order to make Cobbler "optional"?
  • disable or remove the traditional stack
  1. other research

What did we learn?

Ongoing Questions

Open Questions

  • does it make sense to send traceback emails? Specifically from the Proxy?
Clone this wiki locally