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.
Before you build
Section titled “Before you build”- A storage class exists.
- An active AlmaLinux 10 image for
x86_64is visible top-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:10is met by10and10.2. So Add base images (which records10.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.
stratumctl image-recipes list --project p-systemstratumctl image-recipes build <recipe-id> --project p-systemstratumctl image-builds list --recipe <recipe-id> --project p-systemstratumctl image-builds get <build-id> --project p-systemstratumctl image-builds logs <build-id> --project p-systemSee 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.
