diff --git a/pkg/node/node.go b/pkg/node/node.go index 83c6cb2..1701059 100644 --- a/pkg/node/node.go +++ b/pkg/node/node.go @@ -121,7 +121,7 @@ func reservedCPU(instanceType *string) string { } } if reserved == 0.0 { - reserved = 60.0 + return "" } return fmt.Sprintf("%.0fm", reserved) } @@ -147,7 +147,7 @@ func reservedMemory(instanceType *string) string { } } if reserved == 0.0 { - reserved = 960.0 + return "" } return fmt.Sprintf("%.0fMi", reserved) } diff --git a/pkg/node/node_test.go b/pkg/node/node_test.go index 4f63f5d..f02cd77 100644 --- a/pkg/node/node_test.go +++ b/pkg/node/node_test.go @@ -261,7 +261,7 @@ func TestReservedCPU(t *testing.T) { { instanceType: "unexpected.instance", - expected: "60m", + expected: "", }, } @@ -332,7 +332,7 @@ func TestMemory(t *testing.T) { { instanceType: "unexpected.instance", - expected: "960Mi", + expected: "", }, } diff --git a/pkg/system/system_test.go b/pkg/system/system_test.go index b4c38f0..be7567c 100644 --- a/pkg/system/system_test.go +++ b/pkg/system/system_test.go @@ -33,7 +33,7 @@ func TestConfigure(t *testing.T) { hn := &FakeHostname{} init := &FakeInit{} - i := instance("10.6.28.199", "ip-10-6-28-199.us-west-2.compute.internal", 18) + i := instance("10.6.28.199", "ip-10-6-28-199.us-west-2.compute.internal", 18, "60m", "960Mi") c := cluster( "aws-om-cluster", "https://74770F6B05F7A8FB0F02CFB5F7AF530C.yl4.us-west-2.eks.amazonaws.com", @@ -143,7 +143,29 @@ Environment='KUBELET_KUBE_RESERVED=--kube-reserved=cpu=60m,memory=960Mi' } } -func instance(ip, dnsName string, maxPods int) *node.Node { +func TestConfigureNoReserved(t *testing.T) { + fs := &FakeFileSystem{} + hn := &FakeHostname{} + init := &FakeInit{} + + i := instance("10.6.28.199", "ip-10-6-28-199.us-west-2.compute.internal", 18, "", "") + c := cluster( + "aws-om-cluster", + "https://74770F6B05F7A8FB0F02CFB5F7AF530C.yl4.us-west-2.eks.amazonaws.com", + "dGhpc2lzdGhlY2VydGRhdGE=", + ) + system := System{Filesystem: fs, Hostname: hn, Init: init} + err := system.Configure(i, c) + + if err != nil { + t.Errorf("unexpected error %v", err) + } + + expected := `[Service]` + fs.Check(t, "/etc/systemd/system/kubelet.service.d/30-kube-reserved.conf", expected, 0640) +} + +func instance(ip, dnsName string, maxPods int, reservedCPU, reservedMemory string) *node.Node { return &node.Node{ Instance: &ec2.Instance{ PrivateIpAddress: &ip, @@ -152,8 +174,8 @@ func instance(ip, dnsName string, maxPods int) *node.Node { MaxPods: maxPods, ClusterDNS: "172.20.0.10", Region: "us-east-1", - ReservedCPU: "60m", - ReservedMemory: "960Mi", + ReservedCPU: reservedCPU, + ReservedMemory: reservedMemory, } } diff --git a/pkg/system/templates/etc/systemd/system/kubelet.service.d/30-kube-reserved.conf b/pkg/system/templates/etc/systemd/system/kubelet.service.d/30-kube-reserved.conf index 49ad2eb..59f75c6 100644 --- a/pkg/system/templates/etc/systemd/system/kubelet.service.d/30-kube-reserved.conf +++ b/pkg/system/templates/etc/systemd/system/kubelet.service.d/30-kube-reserved.conf @@ -1,2 +1,4 @@ [Service] +{{- if and .Node.ReservedCPU .Node.ReservedMemory }} Environment='KUBELET_KUBE_RESERVED=--kube-reserved=cpu={{.Node.ReservedCPU}},memory={{.Node.ReservedMemory}}' +{{ end -}}