Skip to content

Commit 9934143

Browse files
authored
Patch Tinkerbell and Rufio to use a BMCLib forks with fixes for Idrac 10 (#5230)
IDRAC 10 had some breaking API changes that the gofish version that bmclib uses is incompatible with. Update BMCLib to a fork that has the GoFish fixes until the changes make it to upstream. Signed-off-by: Rahul <rahulbabu95@gmail.com>
1 parent 5399fa7 commit 9934143

10 files changed

Lines changed: 163 additions & 57 deletions
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
1a5047007264509274de1055bf2bb5c43ceaecfa11e535ecb737c2313adcff27 _output/bin/rufio/linux-amd64/manager
2-
489c10984053fb80be8d5e6e5e3932f380ca1c8261fa428ac9483997414254a5 _output/bin/rufio/linux-arm64/manager
1+
4872cf19447e942b335ba41d47da2c444c888c374f236f7013e3b3c2c7984aba _output/bin/rufio/linux-amd64/manager
2+
e4e4947f2dea6d6aa825bfed5e23a1f2f08920a94fac9db4aa55ac5c5cdbced9 _output/bin/rufio/linux-arm64/manager

projects/tinkerbell/rufio/patches/0001-Bump-bmclib-to-include-VirtualMedia-System-path-fall.patch

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
From f195ef9a40738a58bbdc1a9c6b621b008f556738 Mon Sep 17 00:00:00 2001
2+
From: Rahul Ganesh <rahulgab@amazon.com>
3+
Date: Thu, 5 Mar 2026 14:54:24 -0800
4+
Subject: [PATCH 1/1] fix: Replace bmclib with fork for iDRAC10 gofish
5+
compatibility
6+
7+
Point bmclib to a fork (github.com/rahulbabu95/bmclib) that includes
8+
gofish v0.20.1+ with iDRAC10 compatibility fixes from gofish PRs #510 and #511 The fork adapts bmclib to the new gofish
9+
API (schemas package restructure), mirroring bmc-toolbox/bmclib#432.
10+
11+
This is a temporary patch until upstream bmclib merges PR #432 and
12+
rufio bumps to a version that includes it.
13+
14+
Signed-off-by: Rahul Ganesh <rahulgab@amazon.com>
15+
---
16+
go.mod | 4 +++-
17+
go.sum | 8 ++++----
18+
2 files changed, 7 insertions(+), 5 deletions(-)
19+
20+
diff --git a/go.mod b/go.mod
21+
index fe4bd66..3847997 100644
22+
--- a/go.mod
23+
+++ b/go.mod
24+
@@ -63,7 +63,7 @@ require (
25+
github.com/prometheus/procfs v0.15.1 // indirect
26+
github.com/satori/go.uuid v1.2.0 // indirect
27+
github.com/spf13/pflag v1.0.5 // indirect
28+
- github.com/stmcginnis/gofish v0.20.0 // indirect
29+
+ github.com/stmcginnis/gofish v0.20.1-0.20260304143028-a1180d37929a // indirect
30+
github.com/x448/float16 v0.8.4 // indirect
31+
go.opentelemetry.io/otel v1.29.0 // indirect
32+
go.opentelemetry.io/otel/trace v1.29.0 // indirect
33+
@@ -90,3 +90,5 @@ require (
34+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
35+
sigs.k8s.io/yaml v1.4.0 // indirect
36+
)
37+
+
38+
+replace github.com/bmc-toolbox/bmclib/v2 => github.com/rahulbabu95/bmclib/v2 v2.0.0-20260305223154-9e7e55bda2fe
39+
diff --git a/go.sum b/go.sum
40+
index dcc50c0..f78f824 100644
41+
--- a/go.sum
42+
+++ b/go.sum
43+
@@ -8,8 +8,6 @@ github.com/VictorLowther/soap v0.0.0-20150314151524-8e36fca84b22 h1:a0MBqYm44o0N
44+
github.com/VictorLowther/soap v0.0.0-20150314151524-8e36fca84b22/go.mod h1:/B7V22rcz4860iDqstGvia/2+IYWXf3/JdQCVd/1D2A=
45+
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
46+
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
47+
-github.com/bmc-toolbox/bmclib/v2 v2.3.5-0.20251010091507-63cb571e5597 h1:V8lDpeWcQXhlarTtD5op6++v5Dh6wO4WTBXq8ugNuj4=
48+
-github.com/bmc-toolbox/bmclib/v2 v2.3.5-0.20251010091507-63cb571e5597/go.mod h1:2tYJD9JtY1tJxLHhslICrFOZhxE9O4gYMb1nJ5BKI5w=
49+
github.com/bmc-toolbox/common v0.0.0-20250112191656-b6de52e8303d h1:5c0jhS9jNLm1t3GVEESsWv+p6recFRLGW90zp8HDIDs=
50+
github.com/bmc-toolbox/common v0.0.0-20250112191656-b6de52e8303d/go.mod h1:Cdnkm+edb6C0pVkyCrwh3JTXAe0iUF9diDG/DztPI9I=
51+
github.com/bombsimon/logrusr/v2 v2.0.1 h1:1VgxVNQMCvjirZIYaT9JYn6sAVGVEcNtRE0y4mvaOAM=
52+
@@ -128,6 +126,8 @@ github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G
53+
github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
54+
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
55+
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
56+
+github.com/rahulbabu95/bmclib/v2 v2.0.0-20260305223154-9e7e55bda2fe h1:BncNiKUfitjTVnxh9uJbm/PaCLJp9SVJIQGtf8BWJxk=
57+
+github.com/rahulbabu95/bmclib/v2 v2.0.0-20260305223154-9e7e55bda2fe/go.mod h1:3yBq8jDHT1OVa/iiJ1GKLttDlJB0dzF9Z5IH2hbaKHU=
58+
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
59+
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
60+
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
61+
@@ -139,8 +139,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ
62+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
63+
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
64+
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
65+
-github.com/stmcginnis/gofish v0.20.0 h1:hH2V2Qe898F2wWT1loApnkDUrXXiLKqbSlMaH3Y1n08=
66+
-github.com/stmcginnis/gofish v0.20.0/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU=
67+
+github.com/stmcginnis/gofish v0.20.1-0.20260304143028-a1180d37929a h1:sgqQv6GMpYzDXI5O938qVzf22U2NT9n+ZwfGqFwj0fM=
68+
+github.com/stmcginnis/gofish v0.20.1-0.20260304143028-a1180d37929a/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU=
69+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
70+
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
71+
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
72+
--
73+
2.46.0
74+
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
b06f5a07486092230fae03c8266f6f6bcd6973481022b96017d758e22be13a5f _output/bin/tinkerbell/linux-amd64/tink-agent
2-
d5b259f0970457a6eeabbf634e33463df83679a211691847edd856c262756321 _output/bin/tinkerbell/linux-amd64/tinkerbell
3-
83567a628e14c3abf8722e8fd1dcfc9c84029fe1939ba200217504deb08a4446 _output/bin/tinkerbell/linux-arm64/tink-agent
4-
4110b1555209ab37d8bf537a09dacd6b591e27a9e736e9095e5e332c427ef3e0 _output/bin/tinkerbell/linux-arm64/tinkerbell
1+
0df73600bd4b67a955a1a0aa89d2c021bacc026396b09172abdb21ba8f2c0bee _output/bin/tinkerbell/linux-amd64/tink-agent
2+
4b4e6ce48ca6d2a797019a265e134536f33c3a6bdbd63095c4ad1c12ba6bd054 _output/bin/tinkerbell/linux-amd64/tinkerbell
3+
c84de42bfb517e1b266ab04dbbc4c332c14ac39a13a71acc0bf0681a9278c2bd _output/bin/tinkerbell/linux-arm64/tink-agent
4+
6cd2e8fa6cd7bed02465558a321d0f506f020e5012eb026dc44ff24b97e14405 _output/bin/tinkerbell/linux-arm64/tinkerbell

projects/tinkerbell/tinkerbell/patches/0001-Remove-secondstar-service.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From 331b068757b105adaeb02723072aa975efed3d77 Mon Sep 17 00:00:00 2001
22
From: Rahul Ganesh <rahulgab@amazon.com>
33
Date: Thu, 22 Jan 2026 16:46:18 -0800
4-
Subject: [PATCH 1/5] Remove secondstar service
4+
Subject: [PATCH 1/6] Remove secondstar service
55

66
EKS-A does not use the secondstar (SSH over serial) service. Remove it
77
to reduce binary size and dependencies.

projects/tinkerbell/tinkerbell/patches/0002-Auto-patch-reboot-action-to-success.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From b51df29bc299f114468043ed035e8139d205f777 Mon Sep 17 00:00:00 2001
22
From: rajeshvenkata <rajesh.venkat.p@gmail.com>
33
Date: Wed, 28 Jan 2026 00:00:00 +0000
4-
Subject: [PATCH 2/5] Auto-patch reboot action to success
4+
Subject: [PATCH 2/6] Auto-patch reboot action to success
55

66
During reboot actions, the tink-agent may be terminated before it can
77
report the action status back to the server, as the machine reboots

projects/tinkerbell/tinkerbell/patches/0003-Disable-nix-shell-and-cross-compile-for-ipxe-build.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From 715fb5b8bfbe4d76abed8e2c30ff01c43365eaae Mon Sep 17 00:00:00 2001
22
From: rajeshvenkata <rajesh.venkat.p@gmail.com>
33
Date: Fri, 30 Jan 2026 00:00:00 +0000
4-
Subject: [PATCH 3/5] Disable nix-shell and cross-compile for ipxe build
4+
Subject: [PATCH 3/6] Disable nix-shell and cross-compile for ipxe build
55

66
EKS-A builds iPXE natively on each architecture without nix-shell.
77
This patch:

projects/tinkerbell/tinkerbell/patches/0004-Enhance-iPXE-boot-script-with-retries-and-VLAN-suppo.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From e74827108bb2327ad2e89c0204323c471b154f03 Mon Sep 17 00:00:00 2001
22
From: rajeshvenkata <rajesh.venkat.p@gmail.com>
33
Date: Fri, 30 Jan 2026 00:00:00 +0000
4-
Subject: [PATCH 4/5] Enhance iPXE boot script with retries and VLAN support
4+
Subject: [PATCH 4/6] Enhance iPXE boot script with retries and VLAN support
55

66
This patch enhances the embedded iPXE boot script with:
77
- Better interface detection (check MAC before opening)

projects/tinkerbell/tinkerbell/patches/0005-Fix-ARM64-iPXE-build-and-bump-ipxe-commit.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
From fad91cc5702ab5f0368f977bff63bba114a996dd Mon Sep 17 00:00:00 2001
22
From: rajeshvenkata <rajesh.venkat.p@gmail.com>
33
Date: Fri, 30 Jan 2026 00:00:00 +0000
4-
Subject: [PATCH 5/5] Fix ARM64 iPXE build and bump ipxe commit
4+
Subject: [PATCH 5/6] Fix ARM64 iPXE build and bump ipxe commit
55

66
This patch:
77
- Bumps iPXE commit to 9d4a2ee for latest drivers and fixes
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
From 1c435d594dcc85a3e74c56858ffb224ecd6a3335 Mon Sep 17 00:00:00 2001
2+
From: Rahul Ganesh <rahulgab@amazon.com>
3+
Date: Thu, 5 Mar 2026 15:58:42 -0800
4+
Subject: [PATCH 6/6] fix: Replace bmclib with fork for iDRAC10 gofish
5+
compatibility
6+
7+
Point bmclib to a fork (github.com/rahulbabu95/bmclib) that includes
8+
gofish v0.20.1+ with iDRAC10 compatibility fixes from gofish PRs #510
9+
and #511, plus the VirtualMedia System path fallback from bmclib #433.
10+
The fork adapts bmclib to the new gofish API (schemas package
11+
restructure), mirroring bmc-toolbox/bmclib#432.
12+
13+
This is a temporary patch until upstream bmclib merges PR #432 and
14+
tinkerbell bumps to a version that includes it.
15+
16+
Signed-off-by: Rahul Ganesh <rahulgab@amazon.com>
17+
---
18+
go.mod | 3 ++-
19+
go.sum | 8 ++++----
20+
2 files changed, 6 insertions(+), 5 deletions(-)
21+
22+
diff --git a/go.mod b/go.mod
23+
index cd60a943..12a6409f 100644
24+
--- a/go.mod
25+
+++ b/go.mod
26+
@@ -214,7 +214,7 @@ require (
27+
github.com/soheilhy/cmux v0.1.5 // indirect
28+
github.com/spf13/cast v1.7.0 // indirect
29+
github.com/spf13/cobra v1.9.1 // indirect
30+
- github.com/stmcginnis/gofish v0.20.0 // indirect
31+
+ github.com/stmcginnis/gofish v0.20.1-0.20260304143028-a1180d37929a // indirect
32+
github.com/stoewer/go-strcase v1.3.0 // indirect
33+
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 // indirect
34+
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
35+
@@ -282,6 +282,7 @@ require (
36+
)
37+
38+
replace (
39+
+ github.com/bmc-toolbox/bmclib/v2 => github.com/rahulbabu95/bmclib/v2 v2.0.0-20260305223154-9e7e55bda2fe
40+
github.com/tinkerbell/tinkerbell/api => ./api
41+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0
42+
k8s.io/api => k8s.io/api v0.34.3
43+
diff --git a/go.sum b/go.sum
44+
index 56be1b85..2498c5a8 100644
45+
--- a/go.sum
46+
+++ b/go.sum
47+
@@ -49,8 +49,6 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
48+
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
49+
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
50+
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
51+
-github.com/bmc-toolbox/bmclib/v2 v2.3.5-0.20251010091507-63cb571e5597 h1:V8lDpeWcQXhlarTtD5op6++v5Dh6wO4WTBXq8ugNuj4=
52+
-github.com/bmc-toolbox/bmclib/v2 v2.3.5-0.20251010091507-63cb571e5597/go.mod h1:2tYJD9JtY1tJxLHhslICrFOZhxE9O4gYMb1nJ5BKI5w=
53+
github.com/bmc-toolbox/common v0.0.0-20250112191656-b6de52e8303d h1:5c0jhS9jNLm1t3GVEESsWv+p6recFRLGW90zp8HDIDs=
54+
github.com/bmc-toolbox/common v0.0.0-20250112191656-b6de52e8303d/go.mod h1:Cdnkm+edb6C0pVkyCrwh3JTXAe0iUF9diDG/DztPI9I=
55+
github.com/bombsimon/logrusr/v2 v2.0.1 h1:1VgxVNQMCvjirZIYaT9JYn6sAVGVEcNtRE0y4mvaOAM=
56+
@@ -433,6 +431,8 @@ github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8=
57+
github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII=
58+
github.com/quic-go/quic-go v0.57.0 h1:AsSSrrMs4qI/hLrKlTH/TGQeTMY0ib1pAOX7vA3AdqE=
59+
github.com/quic-go/quic-go v0.57.0/go.mod h1:ly4QBAjHA2VhdnxhojRsCUOeJwKYg+taDlos92xb1+s=
60+
+github.com/rahulbabu95/bmclib/v2 v2.0.0-20260305223154-9e7e55bda2fe h1:BncNiKUfitjTVnxh9uJbm/PaCLJp9SVJIQGtf8BWJxk=
61+
+github.com/rahulbabu95/bmclib/v2 v2.0.0-20260305223154-9e7e55bda2fe/go.mod h1:3yBq8jDHT1OVa/iiJ1GKLttDlJB0dzF9Z5IH2hbaKHU=
62+
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
63+
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
64+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
65+
@@ -458,8 +458,8 @@ github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wx
66+
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
67+
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
68+
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
69+
-github.com/stmcginnis/gofish v0.20.0 h1:hH2V2Qe898F2wWT1loApnkDUrXXiLKqbSlMaH3Y1n08=
70+
-github.com/stmcginnis/gofish v0.20.0/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU=
71+
+github.com/stmcginnis/gofish v0.20.1-0.20260304143028-a1180d37929a h1:sgqQv6GMpYzDXI5O938qVzf22U2NT9n+ZwfGqFwj0fM=
72+
+github.com/stmcginnis/gofish v0.20.1-0.20260304143028-a1180d37929a/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU=
73+
github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs=
74+
github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo=
75+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
76+
--
77+
2.34.1
78+

0 commit comments

Comments
 (0)