blob: f3b6d1ea9b1d7d2b3aeb83d1ba68ba857bbe103e [file] [log] [blame]
Mateusz Zalega43e21072021-10-08 18:05:29 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
2load("//metropolis/node/build:def.bzl", "node_initramfs")
3load("//metropolis/node/build/genosrelease:defs.bzl", "os_release")
4load("//metropolis/node/build:efi.bzl", "efi_unified_kernel_image")
5
6go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +02007 name = "installer_lib",
Serge Bazanskif71fe922023-03-22 01:10:37 +01008 srcs = [
9 "log.go",
10 "main.go",
11 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010012 importpath = "source.monogon.dev/metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020013 visibility = ["//visibility:private"],
14 deps = [
Lorenz Brund13c1c62022-03-30 19:58:58 +020015 "//metropolis/node/build/mkimage/osimage",
16 "//metropolis/pkg/efivarfs",
17 "//metropolis/pkg/sysfs",
18 "@org_golang_x_sys//unix",
Mateusz Zalega43e21072021-10-08 18:05:29 +020019 ],
20)
21
22go_binary(
23 name = "installer",
Lorenz Brund13c1c62022-03-30 19:58:58 +020024 embed = [":installer_lib"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020025 visibility = ["//visibility:private"],
26)
27
28node_initramfs(
29 name = "initramfs",
30 files = {
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010031 "//metropolis/installer": "/init",
Mateusz Zalega43e21072021-10-08 18:05:29 +020032 },
Serge Bazanskia3938142022-04-04 17:04:47 +020033 fsspecs = [
34 "//metropolis/node/build:earlydev.fsspec",
35 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010036 visibility = ["//metropolis/installer/test:__pkg__"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020037)
38
39os_release(
40 name = "installer-release-info",
41 os_id = "metropolis-installer",
42 os_name = "Metropolis Installer",
43 stamp_var = "STABLE_METROPOLIS_version",
44)
45
46efi_unified_kernel_image(
47 name = "kernel",
Lorenz Brun0e057fe2022-01-13 16:19:10 +010048 cmdline = "console=ttyS0,115200 console=tty0 quiet",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010049 initrd = [
50 "//metropolis/node:ucode",
51 ":initramfs",
52 ],
Mateusz Zalega43e21072021-10-08 18:05:29 +020053 kernel = "//third_party/linux",
54 os_release = ":installer-release-info",
55 visibility = ["//visibility:public"],
56)