Skip to content

Commit 57d74d0

Browse files
feat(nodeadm): use cached kubelet version to reduce config time (#1991)
1 parent 140e281 commit 57d74d0

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

nodeadm/cmd/nodeadm/init/init.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package init
22

33
import (
44
"context"
5+
"time"
56

67
"github.com/aws/aws-sdk-go-v2/aws"
78
"github.com/aws/aws-sdk-go-v2/config"
@@ -46,6 +47,8 @@ func (c *initCmd) Flaggy() *flaggy.Subcommand {
4647
}
4748

4849
func (c *initCmd) Run(log *zap.Logger, opts *cli.GlobalOptions) error {
50+
start := time.Now()
51+
4952
log.Info("Checking user is root..")
5053
root, err := cli.IsRunningAsRoot()
5154
if err != nil {
@@ -139,6 +142,8 @@ func (c *initCmd) Run(log *zap.Logger, opts *cli.GlobalOptions) error {
139142
}
140143
}
141144

145+
log.Info("done!", zap.Duration("duration", time.Since(start)))
146+
142147
return nil
143148
}
144149

nodeadm/internal/kubelet/version.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package kubelet
22

33
import (
4+
"errors"
5+
"os"
46
"os/exec"
57
"regexp"
68
)
@@ -10,17 +12,19 @@ func GetKubeletVersion() (string, error) {
1012
if err != nil {
1113
return "", err
1214
}
13-
version := parseSemVer(*rawVersion)
15+
version := parseSemVer(string(rawVersion))
1416
return version, nil
1517
}
1618

17-
func GetKubeletVersionRaw() (*string, error) {
18-
output, err := exec.Command("kubelet", "--version").Output()
19-
if err != nil {
19+
const kubeletVersionFile = "/etc/eks/kubelet-version.txt"
20+
21+
func GetKubeletVersionRaw() ([]byte, error) {
22+
if _, err := os.Stat(kubeletVersionFile); errors.Is(err, os.ErrNotExist) {
23+
return exec.Command("kubelet", "--version").Output()
24+
} else if err != nil {
2025
return nil, err
2126
}
22-
rawVersion := string(output)
23-
return &rawVersion, nil
27+
return os.ReadFile(kubeletVersionFile)
2428
}
2529

2630
var semVerRegex = regexp.MustCompile(`v[0-9]+\.[0-9]+.[0-9]+`)

templates/al2023/provisioners/install-worker.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ done
187187

188188
sudo rm ./*.sha256
189189

190+
kubelet --version > "${WORKING_DIR}/kubelet-version.txt"
191+
sudo mv "${WORKING_DIR}/kubelet-version.txt" /etc/eks/kubelet-version.txt
192+
190193
################################################################################
191194
### ECR Credential Provider Binary #############################################
192195
################################################################################

0 commit comments

Comments
 (0)