94 lines
2.2 KiB
Markdown
94 lines
2.2 KiB
Markdown
# 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 `<ORGANIZATION>`, run:
|
|
```bash
|
|
./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** (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
|