1- From 4152179a9a69f150f2999d061a23025602480f23 Mon Sep 17 00:00:00 2001
1+ From 20c946a20213274de3bed4422672e72c7cfdbbe6 Mon Sep 17 00:00:00 2001
22From: Rahul Ganesh <rahulgab@amazon.com>
33Date: Thu, 22 Jan 2026 16:46:18 -0800
4- Subject: [PATCH 1/3 ] Remove secondstar service
4+ Subject: [PATCH 1/5 ] Remove secondstar service
55
66EKS-A does not use the secondstar (SSH over serial) service. Remove it
77to reduce binary size and dependencies.
@@ -11,14 +11,12 @@ it for machine metadata.
1111
1212Signed-off-by: Rahul Ganesh <rahulgab@amazon.com>
1313---
14- cmd/tinkerbell/cmd.go | 50 ++----------------------
15- cmd/tinkerbell/flag/global.go | 7 ----
16- cmd/tinkerbell/flag/secondstar.go | 64 -------------------------------
17- 3 files changed, 3 insertions(+), 118 deletions(-)
18- delete mode 100644 cmd/tinkerbell/flag/secondstar.go
14+ cmd/tinkerbell/cmd.go | 48 ++---------------------------------
15+ cmd/tinkerbell/flag/global.go | 7 -----
16+ 2 files changed, 2 insertions(+), 53 deletions(-)
1917
2018diff --git a/cmd/tinkerbell/cmd.go b/cmd/tinkerbell/cmd.go
21- index 565187ec..686c2e24 100644
19+ index 4b7d3a6a..c9dc0452 100644
2220--- a/cmd/tinkerbell/cmd.go
2321+++ b/cmd/tinkerbell/cmd.go
2422@@ -23,7 +23,6 @@ import (
@@ -29,23 +27,23 @@ index 565187ec..686c2e24 100644
2927 "github.com/tinkerbell/tinkerbell/smee"
3028 "github.com/tinkerbell/tinkerbell/tink/controller"
3129 "github.com/tinkerbell/tinkerbell/tink/server"
32- @@ -36 ,7 +35 ,6 @@ import (
30+ @@ -37 ,7 +36 ,6 @@ import (
3331 const (
3432 defaultRufioMetricsPort = 8082
3533 defaultRufioProbePort = 8083
3634- defaultSecondStarPort = 2222
3735 defaultSmeeHTTPPort = 7171
3836 defaultSmeeHTTPSPort = 7272
3937 defaultTinkControllerMetricsPort = 8080
40- @@ -61 ,7 +59 ,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
38+ @@ -63 ,7 +61 ,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
4139 EnableTinkServer: true,
4240 EnableTinkController: true,
4341 EnableRufio: true,
4442- EnableSecondStar: true,
43+ EnableUI: true,
4544 EnableCRDMigrations: true,
4645 EmbeddedGlobalConfig: flag.EmbeddedGlobalConfig{
47- EnableKubeAPIServer: (embeddedApiserverExecute != nil),
48- @@ -113,14 +110,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
46+ @@ -116,14 +113,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
4947 Config: rufio.NewConfig(rufioOpts...),
5048 }
5149
@@ -57,34 +55,34 @@ index 565187ec..686c2e24 100644
5755- },
5856- }
5957-
60- // order here determines the help output.
61- top := ff.NewFlagSet("smee - DHCP and iPXE service")
62- if embeddedFlagSet != nil {
63- @@ -131,14 +120,12 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
58+ uiOpts := []ui.Option{
59+ ui.WithURLPrefix("/"),
60+ ui.WithBindPort(defaultUIPort),
61+ @@ -142,7 +131,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
6462 tfs := ff.NewFlagSet("tink server - Workflow service").SetParent(hfs)
6563 cfs := ff.NewFlagSet("tink controller - Workflow controller").SetParent(tfs)
6664 rfs := ff.NewFlagSet("rufio - BMC controller").SetParent(cfs)
6765- ssfs := ff.NewFlagSet("secondstar - SSH over serial service").SetParent(rfs)
68- - gfs := ff.NewFlagSet("globals ").SetParent(ssfs)
69- + gfs := ff.NewFlagSet("globals").SetParent(rfs )
66+ uifs := ff.NewFlagSet("ui - UI service ").SetParent(ssfs)
67+ gfs := ff.NewFlagSet("globals").SetParent(uifs )
7068 flag.RegisterSmeeFlags(&flag.Set{FlagSet: sfs}, s)
71- flag.RegisterTootlesFlags(&flag.Set{FlagSet: hfs}, h)
69+ @@ -150,7 +138,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
7270 flag.RegisterTinkServerFlags(&flag.Set{FlagSet: tfs}, ts)
7371 flag.RegisterTinkControllerFlags(&flag.Set{FlagSet: cfs}, tc)
7472 flag.RegisterRufioFlags(&flag.Set{FlagSet: rfs}, rc)
7573- flag.RegisterSecondStarFlags(&flag.Set{FlagSet: ssfs}, ssc)
74+ flag.RegisterUIFlags(&flag.Set{FlagSet: uifs}, uic)
7675 flag.RegisterGlobal(&flag.Set{FlagSet: gfs}, globals)
7776 if embeddedApiserverExecute != nil && embeddedFlagSet != nil {
78- // This way the embedded flags only show up when the embedded services have been compiled in.
79- @@ -170,7 +157,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
77+ @@ -183,7 +170,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
8078 "tinkServerEnabled", globals.EnableTinkServer,
8179 "tinkControllerEnabled", globals.EnableTinkController,
8280 "rufioEnabled", globals.EnableRufio,
8381- "secondStarEnabled", globals.EnableSecondStar,
82+ "uiEnabled", globals.EnableUI,
8483 "publicIP", globals.PublicIP,
8584 "embeddedKubeAPIServer", globals.EmbeddedGlobalConfig.EnableKubeAPIServer,
86- "embeddedEtcd", globals.EmbeddedGlobalConfig.EnableETCD,
87- @@ -224,14 +210,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
85+ @@ -238,14 +224,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
8886 rc.Config.ProbeAddr = netip.AddrPortFrom(globals.BindAddr, rc.Config.ProbeAddr.Port())
8987 }
9088
@@ -96,10 +94,10 @@ index 565187ec..686c2e24 100644
9694- ssc.Config.BindAddr = globals.BindAddr
9795- }
9896-
99- g, ctx := errgroup.WithContext(ctx)
100- // Etcd server
101- g.Go(func() error {
102- @@ -294 ,7 +272 ,7 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
97+ // UI
98+ uic.Convert(globals.BindAddr, globals.TLS.CertFile, globals.TLS.KeyFile)
99+
100+ @@ -311 ,7 +289 ,7 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
103101 cliLog.Info("CRD migrations completed")
104102 }
105103
@@ -108,15 +106,15 @@ index 565187ec..686c2e24 100644
108106 if err != nil {
109107 return fmt.Errorf("failed to create kube backend: %w", err)
110108 }
111- @@ -307 ,7 +285 ,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
109+ @@ -324 ,7 +302 ,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
112110 tc.Config.Client = b.ClientConfig
113111 tc.Config.DynamicClient = b
114112 rc.Config.Client = b.ClientConfig
115113- ssc.Config.Backend = b
116114 case "file":
117115 b, err := newFileBackend(ctx, log, globals.BackendFilePath)
118116 if err != nil {
119- @@ -401 ,19 +378 ,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
117+ @@ -418 ,19 +395 ,6 @@ func Execute(ctx context.Context, cancel context.CancelFunc, args []string) erro
120118 return nil
121119 })
122120
@@ -127,22 +125,25 @@ index 565187ec..686c2e24 100644
127125- return nil
128126- }
129127- ll := ternary((ssc.LogLevel != 0), ssc.LogLevel, globals.LogLevel)
130- - if err := ssc.Config.Start(ctx, defaultLogger( ll).WithName("secondstar")); err != nil {
128+ - if err := ssc.Config.Start(ctx, getLogger(ssc.NoLog, ll).WithName("secondstar")); err != nil {
131129- return fmt.Errorf("failed to start secondstar service: %w", err)
132130- }
133131- return nil
134132- })
135133-
136- if err := g.Wait(); err != nil && !errors.Is(err, context.Canceled) {
137- return err
138- }
139- @@ -445,13 +409,10 @@ func numEnabled(globals *flag.GlobalConfig) int {
134+ // UI
135+ g.Go(func() error {
136+ if !globals.EnableUI {
137+ @@ -475,16 +439,13 @@ func numEnabled(globals *flag.GlobalConfig) int {
140138 if globals.EnableRufio {
141139 n++
142140 }
143141- if globals.EnableSecondStar {
144142- n++
145143- }
144+ if globals.EnableUI {
145+ n++
146+ }
146147 return n
147148 }
148149
@@ -151,7 +152,7 @@ index 565187ec..686c2e24 100644
151152 idxs := make(map[kube.IndexType]kube.Index, 0)
152153
153154 if smeeEnabled {
154- @@ -467 ,11 +428 ,6 @@ func enabledIndexes(smeeEnabled, tootlesEnabled, tinkServerEnabled, secondStarEn
155+ @@ -500 ,11 +461 ,6 @@ func enabledIndexes(smeeEnabled, tootlesEnabled, tinkServerEnabled, secondStarEn
155156 idxs[k] = v
156157 }
157158 }
@@ -164,26 +165,26 @@ index 565187ec..686c2e24 100644
164165 return idxs
165166 }
166167diff --git a/cmd/tinkerbell/flag/global.go b/cmd/tinkerbell/flag/global.go
167- index 9b14383a..6ea5a506 100644
168+ index 30fba8ec..ce112939 100644
168169--- a/cmd/tinkerbell/flag/global.go
169170+++ b/cmd/tinkerbell/flag/global.go
170171@@ -23,7 +23,6 @@ type GlobalConfig struct {
171172 EnableTinkServer bool
172173 EnableTinkController bool
173174 EnableRufio bool
174175- EnableSecondStar bool
176+ EnableUI bool
175177 EnableCRDMigrations bool
176178 EmbeddedGlobalConfig EmbeddedGlobalConfig
177- BackendKubeOptions BackendKubeOptions
178- @@ -58,7 +57,6 @@ func RegisterGlobal(fs *Set, gc *GlobalConfig) {
179+ @@ -59,7 +58,6 @@ func RegisterGlobal(fs *Set, gc *GlobalConfig) {
179180 fs.Register(EnableTinkServer, ffval.NewValueDefault(&gc.EnableTinkServer, gc.EnableTinkServer))
180181 fs.Register(EnableTinkController, ffval.NewValueDefault(&gc.EnableTinkController, gc.EnableTinkController))
181182 fs.Register(EnableRufioController, ffval.NewValueDefault(&gc.EnableRufio, gc.EnableRufio))
182183- fs.Register(EnableSecondStar, ffval.NewValueDefault(&gc.EnableSecondStar, gc.EnableSecondStar))
184+ fs.Register(EnableUI, ffval.NewValueDefault(&gc.EnableUI, gc.EnableUI))
183185 fs.Register(EnableCRDMigrations, ffval.NewValueDefault(&gc.EnableCRDMigrations, gc.EnableCRDMigrations))
184186 fs.Register(LogLevelConfig, ffval.NewValueDefault(&gc.LogLevel, gc.LogLevel))
185- fs.Register(OTELEndpoint, ffval.NewValueDefault(&gc.OTELEndpoint, gc.OTELEndpoint))
186- @@ -160,11 +158,6 @@ var EnableRufioController = Config{
187+ @@ -162,11 +160,6 @@ var EnableRufioController = Config{
187188 Usage: "enable Rufio Controller service",
188189 }
189190
@@ -192,79 +193,9 @@ index 9b14383a..6ea5a506 100644
192193- Usage: "enable SecondStar service",
193194- }
194195-
195- var EnableKubeAPIServer = Config{
196- Name: "enable-embedded-kube-apiserver",
197- Usage: "enables the embedded kube-apiserver",
198- diff --git a/cmd/tinkerbell/flag/secondstar.go b/cmd/tinkerbell/flag/secondstar.go
199- deleted file mode 100644
200- index 4b0faecf..00000000
201- --- a/cmd/tinkerbell/flag/secondstar.go
202- +++ /dev/null
203- @@ -1,64 +0,0 @@
204- - package flag
205- -
206- - import (
207- - "github.com/peterbourgon/ff/v4/ffval"
208- - "github.com/tinkerbell/tinkerbell/pkg/backend/kube"
209- - "github.com/tinkerbell/tinkerbell/secondstar"
210- - )
211- -
212- - type SecondStarConfig struct {
213- - Config *secondstar.Config
214- - HostKeyPath string
215- - LogLevel int
216- - }
217- -
218- - var KubeIndexesSecondStar = map[kube.IndexType]kube.Index{
219- - kube.IndexTypeHardwareName: kube.Indexes[kube.IndexTypeHardwareName],
220- - kube.IndexTypeMachineName: kube.Indexes[kube.IndexTypeMachineName],
221- - }
222- -
223- - func RegisterSecondStarFlags(fs *Set, ssc *SecondStarConfig) {
224- - fs.Register(SecondStarPort, ffval.NewValueDefault(&ssc.Config.SSHPort, ssc.Config.SSHPort))
225- - fs.Register(SecondStarHostKey, ffval.NewValueDefault(&ssc.HostKeyPath, ssc.HostKeyPath))
226- - fs.Register(SecondStarIPMIToolPath, ffval.NewValueDefault(&ssc.Config.IPMITOOLPath, ssc.Config.IPMITOOLPath))
227- - fs.Register(SecondStarIdleTimeout, ffval.NewValueDefault(&ssc.Config.IdleTimeout, ssc.Config.IdleTimeout))
228- - fs.Register(SecondStarLogLevel, ffval.NewValueDefault(&ssc.LogLevel, ssc.LogLevel))
229- - }
230- -
231- - var SecondStarPort = Config{
232- - Name: "secondstar-port",
233- - Usage: "Port to listen on for SecondStar",
234- - }
235- -
236- - var SecondStarHostKey = Config{
237- - Name: "secondstar-host-key",
238- - Usage: "Path to the host key file for SecondStar",
239- - }
240- -
241- - var SecondStarIPMIToolPath = Config{
242- - Name: "secondstar-ipmitool-path",
243- - Usage: "Path to the ipmitool binary",
244- - }
245- -
246- - var SecondStarIdleTimeout = Config{
247- - Name: "secondstar-idle-timeout",
248- - Usage: "Idle timeout for SecondStar",
249- - }
250- -
251- - var SecondStarLogLevel = Config{
252- - Name: "secondstar-log-level",
253- - Usage: "the higher the number the more verbose, level 0 inherits the global log level",
254- - }
255- -
256- - func (ssc *SecondStarConfig) Convert() error {
257- - // convert the host key path to an SSH Signer
258- - if ssc.HostKeyPath == "" {
259- - return nil
260- - }
261- - s, err := secondstar.HostKeyFrom(ssc.HostKeyPath)
262- - if err != nil {
263- - return err
264- - }
265- - ssc.Config.HostKey = s
266- - return nil
267- - }
196+ var EnableUI = Config{
197+ Name: "enable-ui",
198+ Usage: "enable UI service",
268199- -
269- 2.46 .0
200+ 2.49 .0
270201
0 commit comments