blob: fcfc049f892ede251c64ccc23ca54fe0a3842591 [file] [log] [blame]
Serge Bazanski140bddc2020-06-05 21:01:19 +02001load("//core/build:def.bzl", "smalltown_initramfs")
2
3smalltown_initramfs(
Serge Bazanski731d00a2020-02-03 19:08:07 +01004 name = "initramfs",
Serge Bazanski140bddc2020-06-05 21:01:19 +02005 extra_dirs = [
6 "/kubernetes/conf/flexvolume-plugins",
7 "/containerd/run",
Serge Bazanski731d00a2020-02-03 19:08:07 +01008 ],
Serge Bazanski140bddc2020-06-05 21:01:19 +02009 files = {
10 "//core/cmd/init": "/init",
11 "//third_party/xfsprogs:mkfs.xfs": "/bin/mkfs.xfs",
12
13 # CA Certificate bundle & os-release
14 "@cacerts//file": "/etc/ssl/cert.pem",
15 ":os-release-info": "/etc/os-release",
16
17 # Hyperkube
18 "//core/cmd/kube": "/kubernetes/bin/kube",
19
20 # runsc/gVisor
21 "@com_github_google_gvisor//runsc": "/containerd/bin/runsc",
22 "@com_github_google_gvisor_containerd_shim//cmd/containerd-shim-runsc-v1": "/containerd/bin/containerd-shim-runsc-v1",
23
24 # Containerd
25 "@com_github_containerd_containerd//cmd/containerd": "/containerd/bin/containerd",
26
27 # Containerd config files
28 "//core/internal/containerd:runsc.toml": "/containerd/conf/runsc.toml",
29 "//core/internal/containerd:config.toml": "/containerd/conf/config.toml",
30 "//core/internal/containerd:loopback.json": "/containerd/conf/cni/99-loopback.conf",
31 "//core/internal/containerd:ptp.json": "/containerd/conf/cni/10-ptp.conf",
32
33 # CNI Plugins
34 "@com_github_containernetworking_plugins//plugins/main/loopback": "/containerd/bin/cni/loopback",
35 "@com_github_containernetworking_plugins//plugins/main/ptp": "/containerd/bin/cni/ptp",
36 "@com_github_containernetworking_plugins//plugins/ipam/host-local": "/containerd/bin/cni/host-local",
Serge Bazanskic3ae7582020-06-08 17:15:26 +020037
38 # Cilium binaries
39 "@com_github_cilium_cilium//cilium": "/cilium/bin/cilium",
40 "@com_github_cilium_cilium//daemon": "/cilium/bin/daemon",
41 "@com_github_cilium_cilium//operator": "/cilium/bin/operator",
Serge Bazanski140bddc2020-06-05 21:01:19 +020042 },
Serge Bazanski731d00a2020-02-03 19:08:07 +010043)
44
45genrule(
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020046 name = "image",
47 srcs = [
Serge Bazanski731d00a2020-02-03 19:08:07 +010048 "//third_party/linux:bzImage",
49 ":initramfs",
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020050 ],
51 outs = [
52 "smalltown.img",
53 ],
54 cmd = """
Serge Bazanskidcb3a562020-02-03 13:44:44 +010055 $(location //core/cmd/mkimage) \
Serge Bazanski731d00a2020-02-03 19:08:07 +010056 -efi $(location //third_party/linux:bzImage) \
57 -initramfs $(location :initramfs) \
Leopold Schabel65493072019-11-06 13:40:44 +000058 -out $@
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020059 """,
Lorenz Brun0bcaaee2019-11-06 12:42:39 +010060 tools = [
Serge Bazanskidcb3a562020-02-03 13:44:44 +010061 "//core/cmd/mkimage",
Lorenz Brun0bcaaee2019-11-06 12:42:39 +010062 ],
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020063 visibility = ["//visibility:public"],
64)
65
66genrule(
67 name = "swtpm_data",
68 outs = [
69 "tpm/tpm2-00.permall",
70 "tpm/signkey.pem",
71 "tpm/issuercert.pem",
72 ],
73 cmd = """
74 mkdir -p tpm/ca
75
76 cat <<EOF > tpm/swtpm.conf
77create_certs_tool= /usr/share/swtpm/swtpm-localca
78create_certs_tool_config = tpm/swtpm-localca.conf
79create_certs_tool_options = /etc/swtpm-localca.options
80EOF
81
82 cat <<EOF > tpm/swtpm-localca.conf
83statedir = tpm/ca
84signingkey = tpm/ca/signkey.pem
85issuercert = tpm/ca/issuercert.pem
86certserial = tpm/ca/certserial
87EOF
88
89 swtpm_setup \
90 --tpmstate tpm \
91 --create-ek-cert \
92 --create-platform-cert \
93 --allow-signing \
94 --tpm2 \
95 --display \
96 --pcr-banks sha1,sha256,sha384,sha512 \
97 --config tpm/swtpm.conf
98
99 cp tpm/tpm2-00.permall $(location tpm/tpm2-00.permall)
100 cp tpm/ca/issuercert.pem $(location tpm/issuercert.pem)
101 cp tpm/ca/signkey.pem $(location tpm/signkey.pem)
102 """,
103 visibility = ["//visibility:public"],
104)
Lorenz Brun878f5f92020-05-12 16:15:39 +0200105
106load("//core/build/genosrelease:defs.bzl", "os_release")
107
108os_release(
109 name = "os-release-info",
110 os_id = "smalltown",
111 os_name = "Smalltown",
112 stamp_var = "STABLE_SIGNOS_version",
113)