Skip to content

Build the operator images

Managed databases and Kubernetes run on instances launched from operator images. A new cluster has the recipes for them, in the system project p-system, and none of the images. Build them when you want those services; the cluster works without them.

Recipe Builds For
db-postgres-15, -16, -17, -18 An AlmaLinux 10 image with that PostgreSQL major, from the PGDG repository Managed databases. Rebuilt weekly.
db-postgres-19 The same for the next major, a preview Managed databases. No schedule: build it by hand.
k8s-node-1-32 A Kubernetes 1.32 node image (containerd) Managed Kubernetes. Rebuilt weekly when its base changed.

Until you build one, readiness shows OperatorRecipeNeverBuilt (a warning), and the service launches nothing. It becomes blocking only for a service that is already in use.

  • A storage class exists.
  • An active AlmaLinux 10 image for x86_64 is visible to p-system. The recipes start from it. A recipe takes the image imported from the catalog’s own address if there is one, and otherwise the newest active image of the same OS distribution and architecture whose version is the catalog’s or a point release of it: 10 is met by 10 and 10.2. So Add base images (which records 10.2) works, and so does an AlmaLinux 10 image added any other way, such as uploaded with --os-distro almalinux --os-version 10. Global images are visible to every project.
  • The system project’s default subnet can reach the internet: each build launches a throwaway instance and installs packages on it.

Console: open the p-system project, Image Builder › Image Recipes. The operator recipes are listed with the others.

Terminal window
stratumctl image-recipes list --project p-system
stratumctl image-recipes build <recipe-id> --project p-system
stratumctl image-builds list --recipe <recipe-id> --project p-system
stratumctl image-builds get <build-id> --project p-system
stratumctl image-builds logs <build-id> --project p-system

See image-recipes and image-builds. One build runs per recipe at a time. A finished build’s image is shared with the service’s own project.

If a build fails, image-builds logs shows the step. The usual causes:

Reason Fix
A build is refused (400) saying the recipe needs an active image of OS distribution almalinux, version 10 and architecture amd64 Add or upload that image, then build again. An image that is not active, or whose OS, version or architecture differs, does not count.
agent did not answer within 15m The build subnet has no route to the platform: check its egress.
A package step fails The build subnet has no internet access.

Then verify the cluster.