@@ -20,7 +20,9 @@ import (
2020 "github.com/siderolabs/talos/internal/app/machined/pkg/controllers/ctest"
2121 netctrl "github.com/siderolabs/talos/internal/app/machined/pkg/controllers/network"
2222 "github.com/siderolabs/talos/pkg/machinery/config/container"
23+ networkcfg "github.com/siderolabs/talos/pkg/machinery/config/types/network"
2324 "github.com/siderolabs/talos/pkg/machinery/config/types/v1alpha1"
25+ "github.com/siderolabs/talos/pkg/machinery/nethelpers"
2426 "github.com/siderolabs/talos/pkg/machinery/resources/cluster"
2527 "github.com/siderolabs/talos/pkg/machinery/resources/config"
2628 "github.com/siderolabs/talos/pkg/machinery/resources/network"
@@ -100,7 +102,7 @@ func (suite *HostnameConfigSuite) TestCmdline() {
100102 }, rtestutils .WithNamespace (network .ConfigNamespaceName ))
101103}
102104
103- func (suite * HostnameConfigSuite ) TestMachineConfiguration () {
105+ func (suite * HostnameConfigSuite ) TestLegacyMachineConfiguration () {
104106 suite .Require ().NoError (suite .Runtime ().RegisterController (& netctrl.HostnameConfigController {}))
105107
106108 u , err := url .Parse ("https://foo:6443" )
@@ -146,6 +148,58 @@ func (suite *HostnameConfigSuite) TestMachineConfiguration() {
146148 ctest .AssertNoResource [* network.HostnameSpec ](suite , "configuration/hostname" , rtestutils .WithNamespace (network .ConfigNamespaceName ))
147149}
148150
151+ func (suite * HostnameConfigSuite ) TestMachineConfigurationStaticHostname () {
152+ suite .Require ().NoError (suite .Runtime ().RegisterController (& netctrl.HostnameConfigController {}))
153+
154+ hostnameCfg := networkcfg .NewHostnameConfigV1Alpha1 ()
155+ hostnameCfg .ConfigAuto = pointer .To (nethelpers .AutoHostnameKindOff )
156+ hostnameCfg .ConfigHostname = "my-hostname"
157+
158+ ctr , err := container .New (hostnameCfg )
159+ suite .Require ().NoError (err )
160+
161+ cfg := config .NewMachineConfig (ctr )
162+ suite .Create (cfg )
163+
164+ ctest .AssertResource (
165+ suite , "configuration/hostname" , func (r * network.HostnameSpec , asrt * assert.Assertions ) {
166+ asrt .Equal ("my-hostname" , r .TypedSpec ().Hostname )
167+ asrt .Equal ("" , r .TypedSpec ().Domainname )
168+ asrt .Equal (network .ConfigMachineConfiguration , r .TypedSpec ().ConfigLayer )
169+ }, rtestutils .WithNamespace (network .ConfigNamespaceName ),
170+ )
171+
172+ ctest .AssertNoResource [* network.HostnameSpec ](suite , "default/hostname" , rtestutils .WithNamespace (network .ConfigNamespaceName ))
173+
174+ suite .Destroy (cfg )
175+
176+ ctest .AssertNoResource [* network.HostnameSpec ](suite , "configuration/hostname" , rtestutils .WithNamespace (network .ConfigNamespaceName ))
177+ ctest .AssertNoResource [* network.HostnameSpec ](suite , "default/hostname" , rtestutils .WithNamespace (network .ConfigNamespaceName ))
178+ }
179+
180+ func (suite * HostnameConfigSuite ) TestMachineConfigurationDefaultStable () {
181+ suite .Require ().NoError (suite .Runtime ().RegisterController (& netctrl.HostnameConfigController {}))
182+
183+ hostnameCfg := networkcfg .NewHostnameConfigV1Alpha1 ()
184+ hostnameCfg .ConfigAuto = pointer .To (nethelpers .AutoHostnameKindStable )
185+
186+ ctr , err := container .New (hostnameCfg )
187+ suite .Require ().NoError (err )
188+
189+ id := cluster .NewIdentity (cluster .NamespaceName , cluster .LocalIdentity )
190+ id .TypedSpec ().NodeID = "fGdOI05hVrx3YMagLo0Bwxa2Nm9BAswWm8XLeEj0aS4"
191+ suite .Create (id )
192+
193+ cfg := config .NewMachineConfig (ctr )
194+ suite .Create (cfg )
195+
196+ ctest .AssertResource (suite , "default/hostname" , func (r * network.HostnameSpec , asrt * assert.Assertions ) {
197+ asrt .Equal ("talos-hwz-sw5" , r .TypedSpec ().Hostname )
198+ asrt .Equal ("" , r .TypedSpec ().Domainname )
199+ asrt .Equal (network .ConfigDefault , r .TypedSpec ().ConfigLayer )
200+ }, rtestutils .WithNamespace (network .ConfigNamespaceName ))
201+ }
202+
149203func TestHostnameConfigSuite (t * testing.T ) {
150204 t .Parallel ()
151205
0 commit comments