SkillAgentSearch skills...

YAKKO

A single physical server KVM based simple/automatic installer for OpenShift clusters

Install / Use

/learn @ozchamo/YAKKO
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

YAKKO

[Y]et [A]nother [K]VM [K]onfigurator for [O]penShift

WHAT IS YAKKO?

The Short Explanation: YAKKO installs OpenShift on your server running RHEL/Fedora.

The Long Explanation: YAKKO is an "IPI-like" installer for Red Hat OpenShift (IPI = Installer Provisioned Infrastructure). What this means is that the installer also provisions everything! In this case, "everything" sits in one system, which is why there is no Red Hat provided installer for this non-enterpise situation. So, if you want to run up an OpenShift cluster with multiple nodes or why not, a Single Node Cluster ("SNO") and you have a big PC/small server with RHEL or Fedora, then YAKKO might be for you.

There are plenty of cookbooks out there and they require that you do a lot of manual work. YAKKO avoids it! If you are a Linux tinkerer with a penchant for the command line and all things Red Hat/Fedora, YAKKO might just be that new friend you were looking for to play with Kubernetes.


CURRENT VERSION: 9.20 (20260202.1541)

  • Added "infra adddisk" option - you can now add virtual disks (/dev/vdX) to a node (Particularly useful when hosting large languange models) See KB: https://access.redhat.com/solutions/4952011
  • Tested on RHEL 10, RHEL 10.1 and Fedora 43
  • Tested with OpenShift 4.20
  • Surface kubeconfig to YAKKO directory with read permissions (request fulfilled!)
  • Little bug fixes

And slightly earlier...

  • 9.12 - added support for using a proxy for everything (corporate needs usually)
  • Surface kubeconfig to YAKKO directory with read permissions (request fulfilled!)
  • 9.02 - added option 'ops -> changelogo' to pimp your OpenShift console your way!
  • Named it 9.0 because there is no guarantee it can be replaced in-place
  • Tested on RHEL 9.6, RHEL 10 and Fedora 42
  • Tested with OpenShift 4.18 and 4.19 (seems to work all the way to 4.2!)
  • Looking much more refined!
  • Revamped snapshots, you can take snapshots with active and inactive clusters, so not experimental anymore!
  • Added 'startonboot' to 'infra' options - which will enable start-up of the cluster on system boot
  • Updated SNO build process as a new stringent check came into place with 4.18.17 All single master clusters (SNO or one master + many workers now build with bootrstrap in place)
  • Improved the 'yakko ops emergency' feature - added a "reboot node" option
  • Added system info to the regular yakko report (system temperature and RAM available)
  • Added GPU report on 'yakko infra describehw'
  • General code improvement and cleanup:
    • Eliminated code for building clusters using the agent based installer (sorry)
    • Eliminated code that would have allowed Mirrored installs (was never used)
    • Deleted unused code blocks that had been commented out over time
  • A few bugs cleaned up here and there, right?

Some of the cool features that have been there a for a while

  • Eliminate the dependency on your physical network by isolating access just to the system that YAKKO is built upon (by using yakko infra changeaccess)
  • Adapt to changes in the IP address of the server (e.g. when changing wireless networks!)
  • Support for single node/single master clusters (SNOs) since OpenShift 4.10
  • Support for installing multiple clusters (but run one at a time!)
  • Support for resizing (master/worker) node RAM - on the go!
  • Setting up NFS shares for registry and for Namespace/Project storage on your server
  • Assigning NFS shares for registry and for Namespace/Project storage
  • Purging existing downloaded OpenShift images on disk
  • List services and files that are in use by a cluster
  • Running post-install tasks

What else is in the works?

  • Evaluating 'cloning' a cluster to another directory/disk. Two purposes, making a working copy of a working cluster and possibly transporting a cluster to another system

Cool facts

  • YAKKO has built more than 1000 clusters just in testing
  • The fastest build was 21 minutes - but that was in the days of fewer operators. This was on a 4-core PC...
  • On a well spec'd laptop, a 3+2 OCP 4.19 cluster can take under 31 minutes. Interestingly, SNOs using bootstrap in place can take about as long...
  • It is 7,000+ lines of code - but that makes it simple and portable. The build part is likely less than 5,000 lines
  • To this day, it can build clusters all the way back to OpenShift 4.2, though you may want to enable the local registry for that (4.1 was only supported on AWS.)
  • Resource allowing, it has run up a 3 master, 10 worker cluster!

INTRODUCTION

YAKKO was built around the concept of having ONE script/installer/manager that does it all, using the underlying operating system as the installation/operating platform and resource server/service. As a prime example, YAKKO depends on libvirt/KVM and so it will install and configure required packages on your server to build and run OpenShift VMs, just as it may be used as the DNS resource should you not have your own DNS. Because of this, YAKKO is a bit opinionated, but then again, it's not built for creating "production ready" clusters, and so it should suit most people with a passing need or interest in having an OpenShift cluster around (or... again!)

Why would you want to run your own (single-box) cluster, isn't that self defeating because there is no real resilience?

  • A full cluster at your disposal lets you test full cluster functionality
  • You can experiment with multiple node setups in an easy self-hosted lab fashion
  • You can easily setup different versions of OpenShift and examine features and compare behaviour
  • No public cloud bill... or bill shock!
  • You can test your more complex apps on multiple worker nodes 'for real'
  • You might be a fan of "self hosting"
  • OpenShift Pull Secrets from Red Hat have a lifetime of 60 days, so re-installing is kinda useful
  • You can mess with different clusters on the same server (BUT NOTE! Only one cluster running at a time!)
  • You can create cheap clusters for experimenting with Red Hat Advanced Cluster Manager (RHACM)
  • LEARN without fear or/of consequences!

In a nutshell, what does YAKKO do?

  • Sets up and installs any and all requirements/dependencies for you
  • Installs OpenShift in a configuration of your choice:
    • Single-node Cluster aka SNO
    • Single-master cluster (with multiple workers)
    • 3-master cluster ("compact cluster) with no worker nodes
    • 3-masters + N-Workers (full blown HA clusters)
    • Add worker nodes, on initial build or later
  • Builds automatically or in stages
  • Leverages the host as bastion / HAProxy / DNS / image/storage server
  • Simplifies the networking by using a KVM network behind NAT
  • Rolls back individual failed stages so that you can fix if necessary and then keep going or just delete everything you've done so far and start afresh. (Be careful - It's scary how quickly it does away with a happily running cluster!)
  • Adds and destroys worker and infra nodes easily to suit your use case
  • Lets you create additional clusters (not just one, BUT you can only run one at a time)
  • Overlays basic operational stuff - once you have the cluster up, it will hint you, using 'yakko [infra | ops]'
  • Deletes the entire operational cluster you've built, and unconfigure all the above
  • But don't worry - you can build again right? Automatically... (try 'yakko rebuildcluster' for this!)
  • All of this very tidily - if you stop (or delete) a cluster, it will retire all associated system services files
  • It is directory centric: each cluster resides in a different directory and perhaps different versions of YAKKO from other directories/clusters. Best practice is to always go to the directory of the cluster you want and run it from there.

WHAT YAKKO IS NOT

It is not a management tool for OpenShift. It has a small overlay of features to assist in the "automation" of getting things done that may otherwise be repetitive, but once your cluster is up, you can delete YAKKO for all you know, however, since it can do a few things post install (see "Day 2 Ops)" as well as allow you to delete all VMs and the configuration in your system, you should keep it.


REQUIREMENTS

A single PC/server with:

  • Access to the internet
  • RHEL/Fedora as the base installed operating system ("Server with GUI" is convenient, and then YAKKO gives you a working cluster)
  • Ports 80 and 443 available (to pass through to your applications in OpenShift)
  • OpenShift is RAM hungry, so your results may vary - the below are bare minimums:
    • 24GB+ RAM for a single node cluster (good luck though and note that your ability to run apps will be impaired, recommended is 32GB.
    • 48GB+ for multi-node clusters (3 master compact cluster)
    • 64GB+ for full-HA clusters (3 masters, 2 workers - more than 2 and you may need more memory)
  • 2.5GB of disk space for the install files (YAKKO will accumulate older OpenShift versions so keep an eye on the "images" directory within the directory where it resides)
  • SSD class storage with capacity as follows:
    • 120GB per node (masters or workers) - a typical 3+2 cluster would require 600GB, but as VMs are sparse, you can get away with less
    • you can tweak the disk sizes if you must - edit YAKKO and look for MASTERDISKSIZE and WORKERDISKSIZE OR use a template (see 'yakko buildfromtemplate')
    • the above are the published requirements, in reality ~80GB per node should be sufficient
  • For older versions of OpenShift, YAKKO will not adjust these values down. They are in tune with the latest version unless you change them or use a template

Nice to Haves

  • Linux skills - if you are even attempting at using this, you must have some already...
  • Project Cockpit is a good (though hungry) friend
  • Although YAKKO adds a dnsmasq facility, having your own DNS server that can handle wildcards can be useful for other systems in your lab. If you have this and your clsuter doesn't leave the network, you can always answer 'N' to 'Use YAKKO's DNS service or set USEYAKK

Related Skills

View on GitHub
GitHub Stars63
CategoryDevelopment
Updated1mo ago
Forks13

Languages

Shell

Security Score

95/100

Audited on Feb 2, 2026

No findings