Kubernetes Custom Omi Generation
OMI
Select omi you want to use. (we only test and verify with ubuntu omi)
Clone
Please clone projet image-builder in $HOME
git clone https://github.com/kubernetes-sigs/image-builder.git
New Omi
Please create $HOME/image-builder/images/capi/packer/outscale/ubuntu-2204.json and replace UBUNTU_OMI with the name for you omi and remove $HOME/image-builder/images/capi/packer/outscale/ubuntu-2004.json
{
"build_name": "ubuntu-2204",
"distribution": "ubuntu",
"distribution_release": "ubuntu",
"distribution_version": "2204",
"image_name": "UBUNTU_OMI"
}
Makefile
Replace in Makefile ($HOME/image-builder/images/capi/Makefile) osc-ubuntu-2004 by osc-ubuntu-2204.
Select the version
The kubernetes packages repository change.
You can also override other values from kubernetes.json.
Before k8s 1.26
Please set the version you want (Replace 1.22.1 with the kubernetes version you want) in $HOME/image-builder/images/capi/overwrite-k8s.json
{
"build_timestamp": "nightly",
"kubernetes_deb_gpg_key": "https://packages.cloud.google.com/apt/doc/apt-key.gpg",
"kubernetes_deb_repo": "\"https://apt.kubernetes.io/ kubernetes-xenial\"",
"kubernetes_deb_version": "1.22.1-00",
"kubernetes_rpm_gpg_key": "\"https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg\"",
"kubernetes_rpm_repo": "https://packages.cloud.google.com/yum/repos/kubernetes-el7-{{user `kubernetes_rpm_repo_arch`}}",
"kubernetes_rpm_version": "1.22.1",
"kubernetes_semver": "v1.22.1-0",
"kubernetes_series": "v1.22"
}
After k8s 1.26
Please set the version you want (Replace 1.22.1 with the kubernetes version you want) in $HOME/image-builder/images/capi/overwrite-k8s.json
{
"build_timestamp": "nightly",
"kubernetes_deb_version": "1.22.1-1.1",
"kubernetes_rpm_version": "1.22.1",
"kubernetes_semver": "v1.22.1",
"kubernetes_series": "v1.22"
}
Download dependencies
cd $HOME/image-builder/images/capi
make deps-osc
Build image
Add packer group, and curent user to packer group
sudo groupadd -r packer && sudo useradd -m -s /bin/bash -r -g packer packer
Set permision for capi:
cp -rf $HOME/image-builder/images/capi /tmp
sudo chown -R packer:packer /tmp/capi
sudo chmod -R 777 /tmp/capi
Execute packer:
sudo runuser -l packer -c "export LANG=C.UTF-8; export LC_ALL=C.UTF-8; export PACKER_LOG=1; export PATH=$HOME/.local/bin/:/tmp/capi/.local/bin:$PATH; export OSC_ACCESS_KEY=${OSC_ACCESS_KEY}; export OSC_SECRET_KEY=${OSC_SECRET_KEY}; export OSC_REGION=${OSC_REGION}; export OSC_ACCOUNT_ID=${OSC_ACCOUNT_ID}; cd /tmp/capi; PACKER_VAR_FILES=overwrite-k8s.json make build-osc-all"