From 4a787b6642d4582aebbf348ddffb749e1bd609bf Mon Sep 17 00:00:00 2001 From: Derek Nola Date: Wed, 21 Feb 2024 10:22:03 -0800 Subject: [PATCH] Restore original order of agent startup functions Signed-off-by: Derek Nola --- pkg/agent/run.go | 25 +++++++++++++++++++------ pkg/daemons/agent/agent.go | 22 ---------------------- 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/pkg/agent/run.go b/pkg/agent/run.go index c72266f15f..3c712a327c 100644 --- a/pkg/agent/run.go +++ b/pkg/agent/run.go @@ -13,6 +13,7 @@ import ( systemd "github.com/coreos/go-systemd/daemon" "github.com/k3s-io/k3s/pkg/agent/config" + "github.com/k3s-io/k3s/pkg/agent/containerd" "github.com/k3s-io/k3s/pkg/agent/flannel" "github.com/k3s-io/k3s/pkg/agent/netpol" "github.com/k3s-io/k3s/pkg/agent/proxy" @@ -129,13 +130,18 @@ func run(ctx context.Context, cfg cmds.Agent, proxy proxy.Proxy) error { } } - notifySocket := os.Getenv("NOTIFY_SOCKET") - os.Unsetenv("NOTIFY_SOCKET") - - if err := setupTunnelAndRunAgent(ctx, nodeConfig, cfg, proxy); err != nil { - return err + if nodeConfig.Docker { + if err := executor.Docker(ctx, nodeConfig); err != nil { + return err + } + } else if nodeConfig.ContainerRuntimeEndpoint == "" { + if err := containerd.SetupContainerdConfig(nodeConfig); err != nil { + return err + } + if err := executor.Containerd(ctx, nodeConfig); err != nil { + return err + } } - // the agent runtime is ready to host workloads when containerd is up and the airgap // images have finished loading, as that portion of startup may block for an arbitrary // amount of time depending on how long it takes to import whatever the user has placed @@ -144,6 +150,13 @@ func run(ctx context.Context, cfg cmds.Agent, proxy proxy.Proxy) error { close(cfg.AgentReady) } + notifySocket := os.Getenv("NOTIFY_SOCKET") + os.Unsetenv("NOTIFY_SOCKET") + + if err := setupTunnelAndRunAgent(ctx, nodeConfig, cfg, proxy); err != nil { + return err + } + if err := util.WaitForAPIServerReady(ctx, nodeConfig.AgentConfig.KubeConfigKubelet, util.DefaultAPIServerReadyTimeout); err != nil { return errors.Wrap(err, "failed to wait for apiserver ready") } diff --git a/pkg/daemons/agent/agent.go b/pkg/daemons/agent/agent.go index 2ed3b97b12..69d32d00b3 100644 --- a/pkg/daemons/agent/agent.go +++ b/pkg/daemons/agent/agent.go @@ -7,7 +7,6 @@ import ( "time" "github.com/k3s-io/k3s/pkg/agent/config" - "github.com/k3s-io/k3s/pkg/agent/containerd" "github.com/k3s-io/k3s/pkg/agent/proxy" daemonconfig "github.com/k3s-io/k3s/pkg/daemons/config" "github.com/k3s-io/k3s/pkg/daemons/executor" @@ -23,16 +22,6 @@ func Agent(ctx context.Context, nodeConfig *daemonconfig.Node, proxy proxy.Proxy logs.InitLogs() defer logs.FlushLogs() - if nodeConfig.Docker { - if err := startDocker(ctx, nodeConfig); err != nil { - return err - } - } else if nodeConfig.ContainerRuntimeEndpoint == "" { - if err := startContainerd(ctx, nodeConfig); err != nil { - return err - } - } - if err := startKubelet(ctx, &nodeConfig.AgentConfig); err != nil { return err } @@ -64,17 +53,6 @@ func startKubelet(ctx context.Context, cfg *daemonconfig.Agent) error { return executor.Kubelet(ctx, args) } -func startContainerd(ctx context.Context, cfg *daemonconfig.Node) error { - if err := containerd.SetupContainerdConfig(cfg); err != nil { - return err - } - return executor.Containerd(ctx, cfg) -} - -func startDocker(ctx context.Context, cfg *daemonconfig.Node) error { - return executor.Docker(ctx, cfg) -} - // ImageCredProvAvailable checks to see if the kubelet image credential provider bin dir and config // files exist and are of the correct types. This is exported so that it may be used by downstream projects. func ImageCredProvAvailable(cfg *daemonconfig.Agent) bool {