OCI images builder
  • Python 91.6%
  • Shell 8.4%
Find a file
Alexander Stepchenko 7bba9475c3 fix(cert-manager-webhook): change ENTRYPOINT
The binary in ALT Linux repos was rename from webhook to cm-webhook
in version 1.19.3-alt1.
Reflect this change according to current package version in each repo.
2026-03-10 18:18:01 +03:00
.gitea/workflows feat(.gitea/workflows): introduce k8s 1.35 for p11 2026-02-05 10:57:58 +03:00
org fix(cert-manager-webhook): change ENTRYPOINT 2026-03-10 18:18:01 +03:00
.gitignore Initial commit 2022-06-13 00:21:48 +03:00
build.py fix(build.py): don't use the same quotes in f-strings 2025-10-16 14:32:23 +03:00
distroless-example.toml Add distoless example 2023-02-16 03:27:07 +03:00
images-info.toml feat: add bldr 2026-03-10 12:35:54 +03:00
LICENSE Update LICENSE 2023-02-16 03:27:07 +03:00
README.md feat(k8s/etcd): add etcd image for kubernetes 2025-05-12 13:44:30 +03:00
tags.toml feat: update k8s/trivy-node-collector 2024-09-26 13:09:46 +03:00
tasks.toml chore: update tasks.toml 2023-07-18 14:32:29 +03:00

image-forge

alt images

To build alt images, run:

./build.py -o alt

k8s images

To build k8s images for branch p10 and push to repository test_k8s, run:

./build.py -o k8s -b p10 --overwrite-organization test_k8s --tasks tasks.json --tags tags.json

distroless-images

create

To create distroless image copy one of existing org/alt/distroless-* images. Or create directory and copy distroless-example.toml to it, rename file to distroless.toml and edit.

build

For example if created image alt/distroless-false and you want to push to the organization <ORGANIZATION>, run:

./build.py -i alt/distroless-false --overwrite-organization <ORGANIZATION>

If you push to the users repository, then organiztion is your username.

info.yaml format

  • is_versioned: bool (REQUIRED)

    Whether to use package version as a tag for this image

  • source_packages: list of strings (REQUIRED)

    List of source packages (src.rpm) this image depends on. If contains jinja2 template syntax, --package-version CLI option must be specified.

  • version_template: string or list of strings (OPTIONAL)

    Template to apply when construction the tag, version string variable is available in the template. If version_template is a list of strings, then the image wiil be tagged with every string in the list.

examples

org/k8s/flannel-cni-plugin

is_versioned: true
version_template: v{{ version.rsplit('.', 1) | first  }}-flannel{{ version.rsplit('.', 1) | last }}
source_packages:
  - cni-plugin-flannel
./build.py -i k8s/flannel-cni-plugin

org/k8s/kube-apiserver

is_versioned: true
version_template: v{{ version }}
source_packages:
  - kubernetes{{ version }}
./build.py -b sisyphus -i k8s/kube-apiserver --package-version '{"k8s/kube-apiserver": "1.31"}'

org/k8s/pause

is_versioned: true
source_packages:
  - kubernetes-pause
./build.py -i k8s/pause

org/k8s/etcd

is_versioned: true
version_template:
  - "v{{ version }}"
  - "{{ version }}"
  - "{{ version }}-0"
source_packages:
  - etcd-for-kubernetes{{ version }}
./build.py -b sisyphus -i k8s/etcd --package-version '{"k8s/etcd": "1.32"}'

Dependencies

On x86_64 machine using p10 branch you need:

  • python3-module-tomli
  • python3-module-jinja2
  • python3-module-yaml
  • python3-module-requests
  • qemu-user-static-binfmt-aarch64 to build for arm64 architecture
  • qemu-user-static-binfmt-arm to build for arm architecture
  • qemu-user-static-binfmt-ppc to build for ppc64le architecture