Skip to content

Commit

Permalink
[NOPR] suite: rpardini's vmtest proxyDHCP lab hard turn
Browse files Browse the repository at this point in the history
  • Loading branch information
rpardini committed Jul 21, 2024
1 parent 50b5d86 commit 29359ce
Showing 1 changed file with 42 additions and 188 deletions.
230 changes: 42 additions & 188 deletions tinkerbell/suite/values.yaml
Original file line number Diff line number Diff line change
@@ -1,23 +1,7 @@
# -- Overrides
# The values defined here override those in the individual charts. Some of them require tweaking
# before deployment as they are environment dependent; others are surfaced for convenience.
#
# See individual chart documentation for additional detail.

# 67 - smee dhcp, hostNetwork; NodePort? (my guess is this requires hostNetwork, NodePort (kube-proxy) won't suffice
# 69 - smee tftp, hostNetwork; NodePort? NodePort might or not suffice, no idea.
# 514 - smee syslog, hostNetwork; NodePort
# 7171 - smee http, should be directly exposed via hostNetwork (used for dhcp) anyway, but could be via NodePort or ingress too
# 50061 - hegel http. either NodePort or ingress
# 42113 - tink grpc. Either NodePort or ingress (special grpc_pass)

# Scenarios to test:
# simple bare k3s on bare vm (hostNetwork for everything, but maybe a few NodePorts needed for grpc and hegel)
# k3s clustered 2+ nodes: NodePorts for everything, can run a replica of everything on each node, only one dhcp will ever be used

hookImageServer:
enabled: true
nodeSelector: null
nodeSelector:
"kubernetes.io/hostname": "mekotronics-r58x-4g-lan1.fritz.box" # 192.168.66.174

nodePort:
hookImageServer:
Expand All @@ -31,9 +15,9 @@ nodePort:
port: 32013

smee:
additionalArgs: [ "--dhcp-mode=proxy" ] # DHCP proxy mode!
hostNetwork: true # no proxies, loadbalancers, or anything: it just runs as if directly on the k8s host.
logLevel: "debug"
# @TODO bug in smee chart, the values is under http: but the usage is not
trustedProxies: [ "0.0.0.0/0" ] # Trust _all_ proxies, insecure
imagePullPolicy: Always # I re-push it there sometimes
deployment:
Expand All @@ -56,198 +40,68 @@ showcase:

jobs:
enabled: true # false to completely skip generating jobs
nodeSelector: null # must match where hookImageServer runs
nodeSelector:
"kubernetes.io/hostname": "mekotronics-r58x-4g-lan1.fritz.box"

tinkerbell:
hostDirectory: "/opt/hook-jolly-roger" # This will be needed in smee one day as well, to serve DTB files over TFTP for u-boot
hostDirectory: "/opt/hook-r58x-4g" # This will be needed in smee one day as well, to serve DTB files over TFTP for u-boot
# These two should point to hookImageServer
hookURL: "http://192.168.99.2:32083"
imagesURL: "http://192.168.99.2:32083"
hookURL: "http://192.168.66.174:32083"
imagesURL: "http://192.168.66.174:32083"
# points to smee at :514
syslogHost: "192.168.99.2"
syslogHost: "192.168.66.174"
# tink's grpc nodeport
grpcAuthority: "192.168.99.2:32013"
grpcAuthority: "192.168.66.174:32013"
# Hegel nodeport
hegelURL: "http://192.168.99.2:32061"


hegelURL: "http://192.168.66.174:32061"


hardware:
common:
uefi: true
ipv4:
# @TODO: Use _your_ values here! Also in the ipv4.address of the devices!
gateway: "192.168.99.1" # Must be set, otherwise no internet access; can be overriden per-device
gateway: "192.168.66.1" # Must be set, otherwise no internet access; can be overriden per-device
netmask: "255.255.255.0"
dns: [ "192.168.66.1" ]
time_servers: [ "192.168.66.1" ]

devices:
#### Examples for use in Hook development environment.
#### There is a `bash build.sh build-run-qemu` command in Hook, that paired with
#### `export MAC=11:22:33:44:55:66 TINK_SERVER=x.y.z.y` can be used with the below "machines".
#### The MAC address is not really used by the qemu VM, but is passed via kernel cmdline.
"run-qemu-x86":
enabled: false
mac: "11:22:33:44:55:66"
"run-qemu-arm64":
enabled: false
mac: "11:22:33:44:55:77"


### Examples for virtual machines, ran outside of Hook's build system.
### Most virtualization software has support for PXE booting.
### You will need to have (bridging/etc) setup to get a proper IP address from a real Smee, etc.
"vm03": # For Armbian kernel Hook, and Ubuntu cloud image
enabled: false
arch: aarch64
mac: "52:54:00:01:03:03"
rootDisk: "/dev/vdb"
ipv4:
address: "192.168.99.41"

"vm04": # For default arm64 kernel Hook, and Ubuntu cloud image
enabled: false
arch: aarch64
mac: "52:54:00:01:03:04"
rootDisk: "/dev/vdb"
ipv4:
address: "192.168.99.41"

"vm08":
enabled: false
arch: x86_64
mac: "52:54:00:01:03:08"
rootDisk: "/dev/disk/by-id/virtio-root_disk_serial"
ipv4:
address: "192.168.99.59"
extraKernelCommandLine: "console=ttyS0"
#imageRef: "fatso-ubuntu-noble-local-amd64"
imageRef: "fatso-ubuntu-noble-baremetal-amd64"
hookRef: "default-hook-amd64"
userData: |
#include https://cloud-init.pardini.net/rpardini/oldskool-rpardini/master/base
#hookOverride:
# bootMode: kexec

"vm09":
enabled: false
arch: x86_64
mac: "52:54:00:01:03:09"
rootDisk: "/dev/disk/by-id/virtio-root_disk_serial"
ipv4:
address: "192.168.99.61"
extraKernelCommandLine: "console=ttyS0"
imageRef: "fatso-ubuntu-noble-baremetal-amd64" # "fatso-ubuntu-noble-local-amd64"
hookRef: "default-hook-amd64"
#hookOverride:
# bootMode: kexec


"thundercat":
enabled: false
arch: x86_64
#mac: "3c:18:a0:15:9a:9f" # thinkpad 100mbit/s?
#mac: "8c:ae:4c:dd:10:78" # 2.5gbit plugable
mac: "3c:18:a0:95:69:f7" # amazonbasics white usb3
rootDisk: "/dev/disk/by-id/ata-TS120GMTS420S_naa.57c3548212839d88" # which is sda
ipv4:
address: "192.168.99.70"
extraKernelCommandLine: "console=ttyUSB0,115200 console=tty0" #
#hookOverride:
# bootMode: kexec
userData: |
#include https://cloud-init.pardini.net/rpardini/oldskool-rpardini/master/base
#hookRef: "latest-lts-amd64"
hookRef: "default-hook-amd64"
#hookRef: "armbian-uefi-x86-edge" # "default-hook-amd64" # defined above
#hookRef: "peg-default-amd64" # "default-hook-amd64" # defined above
#hookRef: "pegk-default-amd64" # "default-hook-amd64" # defined above
#hookRef: "dev-pegk-default-amd64" # "default-hook-amd64" # defined above
#hookRef: "dev-default-hook-amd64" # "default-hook-amd64" # defined above

#imageRef: "fatso-el9-local-amd64"
#imageRef: "fatso-ubuntu-noble-local-amd64"
#imageRef: "fatso-rocky8-baremetal-amd64"
#imageRef: "fatso-rocky8-local-amd64"
#imageRef: "fatso-ubuntu-noble-baremetal-amd64"
imageRef: "fatso-ubuntu-noble-baremetal-amd64"


###
### Examples for actual bare-metal hardware, mostly arm64 SBCs.
###

# Khadas VIM3L and other meson64-based boards (u-boot)
"vim3l":
enabled: false
mac: "c8:63:14:71:2a:6d"
rootDisk: "/dev/mmcblk0"
ipv4:
address: "192.168.99.51"

"t95z":
enabled: false
arch: aarch64
mac: "ea:da:5c:76:8d:09"
rootDisk: "/dev/sda" # USB Disk plugged in
ipv4:
address: "192.168.99.27"
userData: |
#include https://cloud-init.pardini.net/rpardini/oldskool-rpardini/master/base
"odroidhc4":
enabled: false
arch: aarch64
mac: "00:1e:06:49:15:91"
rootDisk: "/dev/sda" # SATA Disk plugged in
ipv4:
address: "192.168.99.28"
userData: |
#include https://cloud-init.pardini.net/rpardini/oldskool-rpardini/master/base
# RockPro64 and other rockchip64-based boards (u-boot)
"rockpro64":
enabled: false
mac: "2a:36:cb:a2:ae:b8"
#rootDisk: "/dev/mmcblk2" # mmcblk2 is the eMMC, mmcblk1 is the SD card
rootDisk: "/dev/disk/by-id/mmc-AJTD4R_0x0b05e84d" # much safer to use this style
ipv4:
address: "192.168.99.52"

"orangepi3b":
enabled: false
mac: "b6:a7:96:d5:f1:84"
rootDisk: "/dev/sda" # usb disk # "/dev/disk/by-id/wwn-0x3001237923792379" # /dev/mmcblk0 is the eMMC
ipv4:
address: "192.168.99.53"

"odroidm1":
enabled: true
arch: aarch64
mac: "fe:9b:e6:5c:7d:15"
rootDisk: "/dev/disk/by-id/nvme-WDC_WDS100T2B0C-00PXH0_21411V443507"
ipv4:
address: "192.168.99.124"
# userData is just standard cloud-init, thus supports #cloud-config and #include etc.
# Attention: if ever ran, this gives rpardini root access to your machine. Use your own scripts;
address: "192.168.66.124"
hookRef: "armbian-rockchip64-edge"
imageRef: "armbian-rpardini-odroidm1-edge-k8s" # defined above
#imageRef: "armbian-rpardini-odroidm1-edge-uboot" # defined above
extraKernelCommandLine: "console=ttyS2,1500000"
userData: |
#include https://cloud-init.pardini.net/rpardini/oldskool-rpardini/master/odroidm1_cloud_k8s_tinkerbell
#include https://cloud-init.pardini.net/rpardini/oldskool-rpardini/master/odroidm1_tinkerbell
# Raspberry Pi 4B (bcm2711), using edk2 UEFI firmware on an SD card, and an external NVMe-USB disk
"rpi4b":
provision:
images:
"armbian-rpardini-odroidm1-edge-k8s":
enabled: false
mac: "dc:a6:32:ec:8b:49"
rootDisk: "/dev/disk/by-id/wwn-0x3001237923792379" # a specific USB disk, by-id.
ipv4:
address: "192.168.99.54"
userData: |
#include https://cloud-init.pardini.net/rpardini/oldskool-rpardini/master/base
arch: "aarch64"
downloadURL: "https://github.com/armsurvivors/armbian-release/releases/download/24.07.21-armsurvivors-359/Armbian-unofficial_24.07.21-armsurvivors-359_Odroidm1_bookworm_edge_6.9.10-metadata-cloud-k8s-1.30.img.xz"
image: "Armbian-unofficial_24.07.21-armsurvivors-359_Odroidm1_bookworm_edge_6.9.10-metadata-cloud-k8s-1.30.img"
conversion: "xz-qcow2-to-img-nogz"
doGrowPart: false # Armbian does it itself when booted
doUserAndSshSetup: false # Armbian does it itself when booted
doFixResolvConf: true
doInjectHegelCloudInit: true
rootfsPartitionNumber: "1" # rootfs is the one and only

"mekotronics-r58x-pro-via-usb":
"armbian-rpardini-odroidm1-edge-uboot":
enabled: false
mac: "3c:18:a0:15:9a:9f" # 3C18A0159A9F
ipv4:
address: "192.168.99.55"
rootDisk: "/dev/disk/by-id/nvme-WD_Blue_SN570_1TB_231421807346" # Gooo!


arch: "aarch64"
downloadURL: "https://github.com/armsurvivors/armbian-release/releases/download/24.07.21-armsurvivors-358/Armbian-unofficial_24.07.21-armsurvivors-358_Odroidm1_bookworm_edge_6.9.10.img.xz"
image: "Armbian-unofficial_24.07.21-armsurvivors-358_Odroidm1_bookworm_edge_6.9.10.img.gz"
conversion: "xz-to-gz"
doGrowPart: false # Armbian does it itself when booted
doUserAndSshSetup: false # Armbian does it itself when booted
doFixResolvConf: true
rootfsPartitionNumber: "1"

0 comments on commit 29359ce

Please sign in to comment.