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, k3s)
  4. 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

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, 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, 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
Clone this wiki locally