# image-forge ## alt images To build `alt` images, run: ```bash ./build.py -o alt ``` ## k8s images To build `k8s` images for branch `p10` and push to repository `test_k8s`, run: ```bash ./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 ``, run: ```bash ./build.py -i alt/distroless-false --overwrite-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** (OPTIONAL) template to apply when construction the tag, `version` string variable is available in the template ### examples #### org/k8s/flannel-cni-plugin ```yaml is_versioned: true version_template: v{{ version.rsplit('.', 1) | first }}-flannel{{ version.rsplit('.', 1) | last }} source_packages: - cni-plugin-flannel ``` ```bash ./build.py -i k8s/flannel-cni-plugin ``` #### org/k8s/kube-apiserver ```yaml is_versioned: true version_template: v{{ version }} source_packages: - kubernetes{{ version }} ``` ```bash ./build.py -b sisyphus -i k8s/kube-apiserver --package-version '{"k8s/kube-apiserver": "1.31"}' ``` #### org/k8s/pause ```yaml is_versioned: true source_packages: - kubernetes-pause ``` ```bash ./build.py -i k8s/pause ``` ## Dependencies On x86_64 machine using p10 branch you need: - `python3-module-tomli` - `python3-module-jinja2` - `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