Skip to content

Commit

Permalink
fix: overwrite kernel args from --extra-agent-kernel-args
Browse files Browse the repository at this point in the history
This allows to override default options (e.g. `console=ttyS0`) with
provided values. Make sure that full value is given for each option, as
any default values for the option are dropped if specified in
`--extra-agent-kernel-args`, e.g.
`--extra-agent-kernel-args=console=ttyS1`.

Fixes siderolabs#251

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
  • Loading branch information
smira committed Dec 14, 2020
1 parent 71872d0 commit 51f488f
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions app/metal-controller-manager/internal/ipxe/ipxe_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import (
"sigs.k8s.io/cluster-api/util/patch"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/talos-systems/go-procfs/procfs"

infrav1 "github.com/talos-systems/sidero/app/cluster-api-provider-sidero/api/v1alpha3"
metalv1alpha1 "github.com/talos-systems/sidero/app/metal-controller-manager/api/v1alpha1"
"github.com/talos-systems/sidero/app/metal-controller-manager/internal/server"
Expand Down Expand Up @@ -289,15 +291,21 @@ func newAgentEnvironment() *metalv1alpha1.Environment {
fmt.Sprintf("%s=%s:%s", constants.AgentEndpointArg, apiEndpoint, server.Port),
}

args = append(args, extraAgentKernelArgs...)
cmdline := procfs.NewCmdline(strings.Join(args, " "))
extra := procfs.NewCmdline(strings.Join(extraAgentKernelArgs, " "))

// override defaults with extra kernel agent params
for _, p := range extra.Parameters {
cmdline.Set(p.Key(), p)
}

env := &metalv1alpha1.Environment{
ObjectMeta: metav1.ObjectMeta{
Name: "agent",
},
Spec: metalv1alpha1.EnvironmentSpec{
Kernel: metalv1alpha1.Kernel{
Args: args,
Args: cmdline.Strings(),
},
},
}
Expand Down

0 comments on commit 51f488f

Please sign in to comment.