Skip to content

Commit 3e82a91

Browse files
authored
Merge pull request #955 from threefoldtech/fix-k8s-module-test
fix k8s using module test
2 parents b67c938 + fb90e99 commit 3e82a91

File tree

5 files changed

+15
-17
lines changed

5 files changed

+15
-17
lines changed

integrationtests/k8s_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
// RequireNodesAreReady runs `kubectl get node` on the master node and requires that all nodes are ready
14-
func RequireNodesAreReady(t *testing.T, terraformOptions *terraform.Options, privateKey string) {
14+
func RequireNodesAreReady(t *testing.T, terraformOptions *terraform.Options, privateKey string, nodesNumber int) {
1515
t.Helper()
1616

1717
masterYggIP := terraform.Output(t, terraformOptions, "mr_ygg_ip")
@@ -21,9 +21,8 @@ func RequireNodesAreReady(t *testing.T, terraformOptions *terraform.Options, pri
2121

2222
output, err := RemoteRun("root", masterYggIP, "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml && kubectl get node", privateKey)
2323
output = strings.TrimSpace(output)
24-
require.Empty(t, err)
24+
require.NoError(t, err)
2525

26-
nodesNumber := 2
2726
numberOfReadyNodes := strings.Count(output, "Ready")
2827
require.True(t, numberOfReadyNodes == nodesNumber, "number of ready nodes is not equal to number of nodes only %d nodes are ready", numberOfReadyNodes)
2928
}
@@ -82,7 +81,7 @@ func TestK8s(t *testing.T) {
8281
require.True(t, ok)
8382

8483
// ssh to master node
85-
RequireNodesAreReady(t, terraformOptions, privateKey)
84+
RequireNodesAreReady(t, terraformOptions, privateKey, 2)
8685
})
8786

8887
t.Run("k8s_invalid_names", func(t *testing.T) {

integrationtests/k8s_using_module.go renamed to integrationtests/k8s_using_module_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ func TestModuleK8s(t *testing.T) {
2222
2323
*/
2424

25-
t.Skip("https://github.com/threefoldtech/terraform-provider-grid/issues/770")
26-
2725
publicKey, privateKey, err := GenerateSSHKeyPair()
2826
if err != nil {
2927
t.Fatalf("failed to generate ssh key pair: %s", err.Error())
@@ -41,13 +39,14 @@ func TestModuleK8s(t *testing.T) {
4139
FreeMRU: &freeMRU,
4240
FreeSRU: &freeSRU,
4341
TotalCRU: &freeCRU,
42+
FarmIDs: []uint64{1},
4443
}
4544

46-
nodes, err := deployer.FilterNodes(context.Background(), tfPlugin, f, []uint64{freeSRU}, []uint64{}, []uint64{}, 3)
47-
if err != nil || len(nodes) != 3 {
48-
t.Fatal("grid proxy could not find nodes with suitable resources")
49-
}
45+
nodes, err := deployer.FilterNodes(context.Background(), tfPlugin, f, []uint64{freeSRU}, []uint64{}, []uint64{})
5046
require.NoError(t, err)
47+
if len(nodes) < 3 {
48+
t.Skip("couldn't find enough nodes")
49+
}
5150

5251
masterNode := nodes[0].NodeID
5352
worker0Node := nodes[1].NodeID
@@ -57,7 +56,7 @@ func TestModuleK8s(t *testing.T) {
5756
TerraformDir: "./k8s_using_module",
5857
Vars: map[string]interface{}{
5958
"ssh": publicKey,
60-
"network_nodes": []int{12, masterNode},
59+
"network_nodes": []int{masterNode, worker0Node, worker1Node},
6160
"master": map[string]interface{}{
6261
"name": "mr",
6362
"node": masterNode,
@@ -101,7 +100,7 @@ func TestModuleK8s(t *testing.T) {
101100
require.NoError(t, err)
102101
defer terraform.Destroy(t, terraformOptions)
103102

104-
RequireNodesAreReady(t, terraformOptions, privateKey)
103+
RequireNodesAreReady(t, terraformOptions, privateKey, 2)
105104

106105
terraformOptions.Vars["workers"] = []map[string]interface{}{
107106
{
@@ -125,6 +124,7 @@ func TestModuleK8s(t *testing.T) {
125124
"planetary": true,
126125
},
127126
}
127+
128128
terraformOptions.Vars["disks"] = []map[string]interface{}{
129129
{
130130
"name": "mrdisk",
@@ -148,5 +148,5 @@ func TestModuleK8s(t *testing.T) {
148148
_, err = terraform.ApplyE(t, terraformOptions)
149149
require.NoError(t, err)
150150

151-
RequireNodesAreReady(t, terraformOptions, privateKey)
151+
RequireNodesAreReady(t, terraformOptions, privateKey, 3)
152152
}

integrationtests/remoterun.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ func RemoteRun(user string, addr string, cmd string, privateKey string) (string,
6565

6666
// GenerateSSHKeyPair creats the public and private key for the machine
6767
func GenerateSSHKeyPair() (string, string, error) {
68-
6968
rsaKey, err := rsa.GenerateKey(rand.Reader, 1024)
7069
if err != nil {
7170
return "", "", errors.Wrapf(err, "could not generate rsa key")

modules/k8s-module/validator/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ variable "names" {
22
type = list(any)
33
validation {
44
condition = length(var.names) == length(distinct(var.names))
5-
error_message = "Master and workers names ${var.names} must be distinct"
5+
error_message = "Master and workers names must be distinct"
66
}
77
}

modules/k8s-module/variables.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ variable "master" {
3030

3131
validation {
3232
condition = var.master.memory >= 1024
33-
error_message = "Memory must be at least 1GB not ${var.master.memory}MB"
33+
error_message = "Memory must be at least 1GB"
3434
}
3535
}
3636

@@ -50,7 +50,7 @@ variable "workers" {
5050
condition = ([
5151
for w in var.workers : true if w.memory >= 1024
5252
]) != length(var.workers)
53-
error_message = "Memory must be at least 1GB not ${var.master.memory}MB"
53+
error_message = "Memory must be at least 1GB"
5454
}
5555
}
5656

0 commit comments

Comments
 (0)