Skip to content

Commit

Permalink
fix: properly generate maintenance config patches
Browse files Browse the repository at this point in the history
Accidentally hardcoded `8090` there 🤦

Fixes: #310

Signed-off-by: Artem Chernyshev <artem.chernyshev@talos-systems.com>
(cherry picked from commit fa21349)
  • Loading branch information
Unix4ever committed Jun 12, 2024
1 parent e32e50c commit a54cc0f
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ apiUrl: {{ .APIURL }}
---
apiVersion: v1alpha1
kind: EventSinkConfig
endpoint: '[fdae:41e4:649b:9303::1]:8090'
endpoint: '[fdae:41e4:649b:9303::1]:{{ .EventSinkPort }}'
---
apiVersion: v1alpha1
kind: KmsgLogConfig
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const MaintenanceConfigPatchPrefix = "950-maintenance-config-"
type MaintenanceConfigPatchController = qtransform.QController[*omni.MachineStatus, *omni.ConfigPatch]

// NewMaintenanceConfigPatchController initializes MaintenanceConfigPatchController.
func NewMaintenanceConfigPatchController() *MaintenanceConfigPatchController {
func NewMaintenanceConfigPatchController(eventSinkPort int) *MaintenanceConfigPatchController {
return qtransform.NewQController(
qtransform.Settings[*omni.MachineStatus, *omni.ConfigPatch]{
Name: "MaintenanceConfigPatchController",
Expand All @@ -62,7 +62,7 @@ func NewMaintenanceConfigPatchController() *MaintenanceConfigPatchController {
return err
}

return UpdateMaintenanceConfigPatch(configPatch, machineStatus, connectionParams)
return UpdateMaintenanceConfigPatch(configPatch, machineStatus, connectionParams, eventSinkPort)
},
},
qtransform.WithExtraMappedInput(
Expand All @@ -74,7 +74,7 @@ func NewMaintenanceConfigPatchController() *MaintenanceConfigPatchController {
}

// UpdateMaintenanceConfigPatch generates the siderolink connection config patch from the machine status and connection params.
func UpdateMaintenanceConfigPatch(configPatch *omni.ConfigPatch, machineStatus *omni.MachineStatus, connectionParams *siderolink.ConnectionParams) error {
func UpdateMaintenanceConfigPatch(configPatch *omni.ConfigPatch, machineStatus *omni.MachineStatus, connectionParams *siderolink.ConnectionParams, eventSinkPort int) error {
configPatch.Metadata().Labels().Set(omni.LabelSystemPatch, "")
configPatch.Metadata().Labels().Set(omni.LabelMachine, machineStatus.Metadata().ID())

Expand All @@ -91,9 +91,11 @@ func UpdateMaintenanceConfigPatch(configPatch *omni.ConfigPatch, machineStatus *
var buffer bytes.Buffer

if err = template.Execute(&buffer, struct {
APIURL string
APIURL string
EventSinkPort int
}{
APIURL: url,
APIURL: url,
EventSinkPort: eventSinkPort,
}); err != nil {
return err
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func (suite *MaintenanceConfigPatchSuite) TestReconcile() {
ctx, cancel := context.WithTimeout(suite.ctx, time.Second*5)
defer cancel()

suite.Require().NoError(suite.runtime.RegisterQController(omnictrl.NewMaintenanceConfigPatchController()))
suite.Require().NoError(suite.runtime.RegisterQController(omnictrl.NewMaintenanceConfigPatchController(9999)))

machineID := "test-machine"

Expand All @@ -55,7 +55,7 @@ apiUrl: grpc://127.0.0.1:8080?grpc_tunnel=false&jointoken=tttt
---
apiVersion: v1alpha1
kind: EventSinkConfig
endpoint: '[fdae:41e4:649b:9303::1]:8090'
endpoint: '[fdae:41e4:649b:9303::1]:9999'
---
apiVersion: v1alpha1
kind: KmsgLogConfig
Expand Down
2 changes: 1 addition & 1 deletion internal/backend/runtime/omni/migration/migration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1449,7 +1449,7 @@ func (suite *MigrationSuite) TestGenerateAllMaintenanceConfigs() {
runtime, err := runtime.NewRuntime(suite.state, suite.logger)
suite.Require().NoError(err)

suite.Require().NoError(runtime.RegisterQController(omnictrl.NewMaintenanceConfigPatchController()))
suite.Require().NoError(runtime.RegisterQController(omnictrl.NewMaintenanceConfigPatchController(8090)))
suite.Require().NoError(runtime.RegisterQController(omnictrl.NewClusterMachineConfigController(nil)))

runCtx, cancel := context.WithTimeout(ctx, time.Second)
Expand Down
5 changes: 3 additions & 2 deletions internal/backend/runtime/omni/migration/migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import (
omnictrl "github.com/siderolabs/omni/internal/backend/runtime/omni/controllers/omni"
"github.com/siderolabs/omni/internal/pkg/auth/role"
"github.com/siderolabs/omni/internal/pkg/auth/scope"
"github.com/siderolabs/omni/internal/pkg/config"
"github.com/siderolabs/omni/internal/pkg/image"
)

Expand Down Expand Up @@ -1203,8 +1204,8 @@ func generateAllMaintenanceConfigs(ctx context.Context, st state.State, _ *zap.L
configPatch := omni.NewConfigPatch(resources.DefaultNamespace, omnictrl.MaintenanceConfigPatchPrefix+machineStatus.Metadata().ID())

if err = createOrUpdate(ctx, st, configPatch, func(res *omni.ConfigPatch) error {
return omnictrl.UpdateMaintenanceConfigPatch(res, machineStatus, connectionParams)
}, omnictrl.NewMaintenanceConfigPatchController().Name()); err != nil {
return omnictrl.UpdateMaintenanceConfigPatch(res, machineStatus, connectionParams, config.Config.EventSinkPort)
}, omnictrl.NewMaintenanceConfigPatchController(0).Name()); err != nil {
return err
}

Expand Down
2 changes: 1 addition & 1 deletion internal/backend/runtime/omni/omni.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ func New(talosClientFactory *talos.ClientFactory, dnsService *dns.Service, workl
omnictrl.NewMachineExtensionsController(),
omnictrl.NewMachineSetStatusController(),
omnictrl.NewMachineSetEtcdAuditController(talosClientFactory, time.Minute),
omnictrl.NewMaintenanceConfigPatchController(),
omnictrl.NewMaintenanceConfigPatchController(config.Config.EventSinkPort),
omnictrl.NewRedactedClusterMachineConfigController(),
omnictrl.NewSchematicConfigurationController(imageFactoryClient),
omnictrl.NewSecretsController(storeFactory),
Expand Down

0 comments on commit a54cc0f

Please sign in to comment.