aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-01-28qemu: update the bios parameter and set the image value directlyHEADmaindevShulhan
2026-01-28all: set the resolv.conf symlinked to systemd stub-resolv.confShulhan
The default resolv.conf is empty. This cause program that depends on resolv.conf for name resolution will fail. As a test, we create small Go program "cmd/golookup" that can lookup IP address of host name using pure Go resolver (using/etc/resolv.conf).
2026-01-27sys: update pacman mirrorlist to 2026-01-05Shulhan
2025-12-26all: update READMEShulhan
Remove list of choices that are not applicable again on the latest build script. Mention list of Linux Guest Environment packages that we install on the image, including the link to its AUR repository. Update the steps and sample commands for "Build your own image" to use gcloud instead of gsutil.
2025-12-26all: remove pacman-init service and ops-agent config.yamlShulhan
The original pacman-init.service usage is to populate the pacman keyrings. Since we install archlinux-keyring package at pacstrap, we did not need to do it anymore. On ops-agent, the latest package released that include the same config.yaml.
2025-12-26all: create the images under project name kilabitShulhan
We are currently cleaning up my GCP account, so we unify some projects into one. The arch-builder now moved under kilabit project.
2025-12-25all: remove dependency on gce repositoryShulhan
Since around 13 December 2025, the gce repository return an error 403, error: failed retrieving file 'gce.db' from storage.googleapis.com : The requested URL returned error: 403 We then build google-compute-engine and google-guest-agent and host it under build.kilabit.info repository using the latest releases [1][2]. For google-compute-engine we use version 20251014.00-1. For google-guest-agent we use version 20251223.00-1. [1]: https://build.kilabit.info/karajo/app/#job_aur_google-compute-engine [2]: https://build.kilabit.info/karajo/app/#job_aur_google-guest-agent
2025-12-25all: add task to build image testable with qemuShulhan
An image that build for qemu will have user "arch" with predefined SSH keys, so user can access the guest from host either using SSH key or password.
2025-12-24all: importing build.kilabit.info key on pacman-init.serviceShulhan
The "pacman-key --init" does not needs to be run anymore since it will be handled by "archlinux-keyring-wkd-sync.timer".
2025-12-24all: manage network with systemd-networkShulhan
This remove dhclient and add polkit as dependencies for systemd-hostnamed.
2025-11-16all: remove command that remove initramfs fallbackShulhan
Recent build return the following error, 2025-11-15 02:01:28 UTC job: gcp-image-arch: rm: cannot remove '/boot/initramfs-linux-fallback.img': No such file or directory 2025-11-15 02:01:28 UTC job: gcp-image-arch: Error: `rm /boot/initramfs-linux-fallback.img` exited with status 1 2025-11-15 02:01:28 UTC job: gcp-image-arch: Error: `arch-chroot -- "$mount_dir" /bin/bash -s <<-'EOS' set -eEuo pipefail trap 'echo "Error: \`$BASH_COMMAND\` exited with status $?"' ERR
2024-04-20all: replace "gsutil" commands with "gcloud storage"Shulhan
Currently the gsutil command hang (does not show any progress) when executed on build.kilabit.info.
2023-09-16Makefile: add task to preview md files in local using ciigoShulhan
2023-09-16README: add link to view latest imagesShulhan
The link to view latest image is https://build.kilabit.info/compute-archlinux-image-builder/current-images.txt
2023-09-14gcloud-image-test: add command to test OS LoginShulhan
The OS login require enable-oslogin=TRUE and optionally enable-oslogin-2fa=TRUE.
2023-09-14all: install google-compute-engine-osloginShulhan
This changes require reorder the repository, by moving build.kilabit.info on top of gce, because the gce provides old version os oslogin, while build.kilabit.info provides the latest one, 20230831.00 [1]. [1] https://build.kilabit.info/karajo/app/#job_aur_google-compute-engine-oslogin
2023-09-12all: define the project name when executing gcloudShulhan
In environment where user have multiple projects, there is a possibility that running gcloud command, even after we set gcloud config configurations activate <config> will run not in the project arch-builder but in other project.
2023-09-12all: fix permission warnings during installing boot loaderShulhan
The following warnings are logged when running bootctl, ! Mount point '/boot' which backs the random seed file is world accessible, which is a security hole! ! ! Random seed file '/boot/loader/.#bootctlrandom-seedd8660b2d2ae5697a' is world accessible, which is a security hole! ! The fix is by mounting the /boot with options "uid=0,gid=0,fmask=0077,dmask=0077".
2023-09-12all: set default ops-agent syslog from systemd_journaldShulhan
Systemd journald in ArchLinux does not forward the log to syslog anymore. This fix empty instance log in Cloud Logs Explorer.
2023-09-12all: add make file to simplify building and deploying imagesShulhan
The make file create the image, set the host::image value in awwan.env for deployment later by awwan, deploy and create images in Cloud Images, and remove old images.
2023-07-15gcloud-image-cleanup: add option "--no-run-if-empty" when running xargsShulhan
Without this option, if the input is empty, the command will fail.
2023-07-15all: change the machine-type from f1-micro to e2-micro for testing imageShulhan
Using f1-micro or g1-small on asia-southeast1 always return ZONE_RESOURCE_POOL_EXHAUSTED now.
2023-07-08sys/etc: update pacman.conf and mirrorlistShulhan
The pacman.conf changes based on pacman version 6.0.2-7 where community repository removed from list. The mirrorlist updated to pacman-mirrorlist version 20230628-1.
2023-04-27all: update README to reference image project and git repositoryShulhan
2023-04-27all: update the current-images.txt with our own latest imagesShulhan
2023-04-27all: update the gcloud project and the host imageShulhan
2023-02-17sys/etc: set default pacman.conf to VerbosePkgListsShulhan
Using this option give better list of the installed and the next version of packages.
2023-02-11Merge remote-tracking branch 'upstream/master'Shulhan
This merge the upstream repository to our fork with some changes in naming of boot dev and uuid. # Conflicts: # README.md # build-arch-gce6
2023-02-11all: set the image deprecated in 30d, obsolete in 37d, and deleted in 44dShulhan
This changes the state of image but the image still need to be deleted manually.
2023-02-11all: add script to delete all images except the last fiveShulhan
2023-02-11all: use worldwide pacman mirrorlistShulhan
We have an issue where the image build on local and the generated mirrorlist is located in India (or Pakistan?). This cause our package installation/update really slow when creating a VM in Singapore region. Since we did not know who or where the image to be used, the safe configuration should be to use the worldwide one.
2023-02-11all: use predefined files to configure systemd-repartShulhan
2023-02-11all: install prebuild ops-agent binaryShulhan
This ops-agent is prebuild package from AUR [1]. [1] https://build.kilabit.info
2022-09-10Adds latest built image.1.0Lorenzo Castelli
2022-09-10Turns the VFAT boot label uppercase, according to VFAT best practices.Lorenzo Castelli
2022-09-10Merge pull request #48 from skbeh/masterLorenzo Castelli
Replace GRUB with systemd-boot
2022-09-10Replace GRUB with systemd-bootAviana Cruz
Replace GRUB with systemd-boot to make the setup simpler. Close #47 Signed-off-by: Aviana Cruz <gwencroft@proton.me>
2022-08-05all: add awwan scripts to deploy and test imageShulhan
The gcloud-image-publish.aww is the script to publish the recently build image to gcloud and create new image. The gcloud-image-test.aww is the script to test the new image by creating new compute engine. The gcloud-test-image-official.aww is the script to test the official public image from Google. The gcloud-test-tail.aww is the script to get the serial log from test image in compute engine.
2022-07-30all: add shell script to test the image using qemuShulhan
Testing using qemu require adding "block" hooks to mkinitcpio.conf.
2022-07-30all: install common admin and remote toolsShulhan
The common admin and remote tools are vim-minimal, tmux, mosh, rsync, and unzip.
2022-07-25all: use the host mirrorlist, gnupg, and db caches from hostShulhan
This is to speeding up the bootstrap.
2022-07-25all: change default locale to en_GB.UTF-8Shulhan
Because the rest of the world use metrics instead of imperial system.
2022-07-25all: use predefined pacman.confShulhan
The pacman.conf file is rarely updated, so we add the gce repository directly into file and use it during pacstrap and to replace the target root.
2022-07-25all: use predefined files to configure mkinitcpioShulhan
Using this method simplify maintenance on the build script and give flexibility to custom image builder. While at it, we add "udev autodetect block filesystems keyboard" into the HOOKS to allow testing the image using qemu and "fsck" to allow system run disk check on boot.
2022-07-25all: populate pacman-init.service from fileShulhan
2022-07-25all: use drop-ins replacement for configuring ssh serverShulhan
Using this method give more flexibility to user that need to build image with custom SSH server configuration.
2022-07-25all: use drop-ins replacement to configure journaldShulhan
Like timesyncd, overwrite the journald configuration by adding drop-ins configuration under /etc/systemd/journald.conf.d/.
2022-07-25all: use predefined files to setting up localeShulhan
This simplify updating and maintaining custom locale for user that does not want to use en_US.
2022-07-25all: use drop-ins replacement to overwrite NTP configurationShulhan
Per manual page timesyncd.conf(5) [1]: Initially, the main configuration file in /etc/systemd/ contains commented out entries showing the defaults as a guide to the administrator. ... Using drop-ins for local configuration is recommended over modifications to the main configuration file. The reason why the filename is 00- describe below It is recommended to prefix all filenames in those subdirectories with a two-digit number and a dash, to simplify the ordering of the files. Another reason is to prevent the system being littered with /etc/systemd/timesyncd.conf.pacnew files when systemd updated. [1] https://man.archlinux.org/man/timesyncd.conf.5
2022-07-25all: speeding up running pacstrap by using package cache on hostShulhan
Passing -c on pacstrap allow the bootstrap process to use the current package cache on host. Without using this flag, each build will re-downloads all packages again from the Internet.