Skip to content

Commit 45158e2

Browse files
[tests] Run tests w/ requests and limits
Signed-off-by: Ahmad Murzahmatov <[email protected]>
1 parent 78b4d06 commit 45158e2

8 files changed

Lines changed: 174 additions & 75 deletions

File tree

‎hack/e2e-apps/clickhouse.bats‎

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
@test "Create DB ClickHouse" {
44
name='test'
5+
withResources='true'
6+
if [ "$withResources" == 'true' ]; then
7+
resources=$(cat <<EOF
8+
resources:
9+
requests:
10+
cpu: 500m
11+
memory: 768Mi
12+
limits:
13+
cpu: "1000m"
14+
memory: "1Gi"
15+
EOF
16+
)
17+
else
18+
resources=' resources: {}'
19+
fi
520
kubectl -n tenant-test get clickhouses.apps.cozystack.io $name ||
621
kubectl create -f- <<EOF
722
apiVersion: apps.cozystack.io/v1alpha1
@@ -28,15 +43,13 @@ spec:
2843
s3AccessKey: oobaiRus9pah8PhohL1ThaeTa4UVa7gu
2944
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
3045
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
31-
resources: {}
46+
$resources
3247
resourcesPreset: "nano"
3348
EOF
3449
sleep 5
35-
kubectl -n tenant-test wait hr clickhouse-$name --timeout=20s --for=condition=ready
36-
timeout 180 sh -ec "until kubectl -n tenant-test get svc chendpoint-clickhouse-$name -o jsonpath='{.spec.ports[*].port}' | grep -q '8123 9000'; do sleep 10; done"
37-
kubectl -n tenant-test wait statefulset.apps/chi-clickhouse-$name-clickhouse-0-0 --timeout=120s --for=jsonpath='{.status.replicas}'=1
38-
timeout 80 sh -ec "until kubectl -n tenant-test get endpoints chi-clickhouse-$name-clickhouse-0-0 -o jsonpath='{.subsets[*].addresses[*].ip}' | grep -q '[0-9]'; do sleep 10; done"
39-
timeout 100 sh -ec "until kubectl -n tenant-test get svc chi-clickhouse-$name-clickhouse-0-0 -o jsonpath='{.spec.ports[*].port}' | grep -q '9000 8123 9009'; do sleep 10; done"
40-
timeout 80 sh -ec "until kubectl -n tenant-test get sts chi-clickhouse-$name-clickhouse-0-1 ; do sleep 10; done"
41-
kubectl -n tenant-test wait statefulset.apps/chi-clickhouse-$name-clickhouse-0-1 --timeout=140s --for=jsonpath='{.status.replicas}'=1
42-
}
50+
kubectl -n tenant-test wait --timeout=40s hr clickhouse-$name --for=condition=ready
51+
kubectl -n tenant-test wait --timeout=130s clickhouses $name --for=condition=ready
52+
kubectl -n tenant-test wait --timeout=120s sts chi-clickhouse-$name-clickhouse-0-0 --for=jsonpath='{.status.replicas}'=1
53+
timeout 210 sh -ec "until kubectl -n tenant-test wait svc chendpoint-clickhouse-$name --for=jsonpath='{.spec.ports[0].port}'=8123; do sleep 10; done"
54+
kubectl -n tenant-test delete clickhouse.apps.cozystack.io $name
55+
}

‎hack/e2e-apps/kafka.bats‎

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
@test "Create Kafka" {
44
name='test'
5+
withResources='true'
6+
if [ "$withResources" == 'true' ]; then
7+
resources=$(cat <<EOF
8+
resources:
9+
requests:
10+
cpu: 500m
11+
memory: 768Mi
12+
limits:
13+
cpu: "1000m"
14+
memory: "1Gi"
15+
EOF
16+
)
17+
else
18+
resources='resources: {}'
19+
fi
20+
kubectl -n tenant-test get kafkas.apps.cozystack.io $name ||
521
kubectl create -f- <<EOF
622
apiVersion: apps.cozystack.io/v1alpha1
723
kind: Kafka
@@ -14,13 +30,13 @@ spec:
1430
size: 10Gi
1531
replicas: 2
1632
storageClass: ""
17-
resources: {}
33+
$resources
1834
resourcesPreset: "nano"
1935
zookeeper:
2036
size: 5Gi
2137
replicas: 2
2238
storageClass: ""
23-
resources:
39+
$resources
2440
resourcesPreset: "nano"
2541
topics:
2642
- name: testResults
@@ -38,14 +54,9 @@ spec:
3854
replicas: 2
3955
EOF
4056
sleep 5
41-
kubectl -n tenant-test wait hr kafka-$name --timeout=30s --for=condition=ready
42-
kubectl wait kafkas -n tenant-test test --timeout=60s --for=condition=ready
43-
timeout 60 sh -ec "until kubectl -n tenant-test get pvc data-kafka-$name-zookeeper-0; do sleep 10; done"
44-
kubectl -n tenant-test wait pvc data-kafka-$name-zookeeper-0 --timeout=50s --for=jsonpath='{.status.phase}'=Bound
45-
timeout 40 sh -ec "until kubectl -n tenant-test get svc kafka-$name-zookeeper-client -o jsonpath='{.spec.ports[0].port}' | grep -q '2181'; do sleep 10; done"
46-
timeout 40 sh -ec "until kubectl -n tenant-test get svc kafka-$name-zookeeper-nodes -o jsonpath='{.spec.ports[*].port}' | grep -q '2181 2888 3888'; do sleep 10; done"
47-
timeout 80 sh -ec "until kubectl -n tenant-test get endpoints kafka-$name-zookeeper-nodes -o jsonpath='{.subsets[*].addresses[0].ip}' | grep -q '[0-9]'; do sleep 10; done"
57+
kubectl -n tenant-test wait --timeout=30s hr kafka-$name --for=condition=ready
58+
kubectl -n tenant-test wait --timeout=1m kafkas $name --for=condition=ready
59+
kubectl -n tenant-test wait --timeout=50s pvc data-kafka-$name-zookeeper-0 --for=jsonpath='{.status.phase}'=Bound
60+
kubectl -n tenant-test wait --timeout=40s svc kafka-$name-zookeeper-client --for=jsonpath='{.spec.ports[0].port}'=2181
4861
kubectl -n tenant-test delete kafka.apps.cozystack.io $name
49-
kubectl -n tenant-test delete pvc data-kafka-$name-zookeeper-0
50-
kubectl -n tenant-test delete pvc data-kafka-$name-zookeeper-1
51-
}
62+
}

‎hack/e2e-apps/kubernetes.bats‎

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
#!/usr/bin/env bats
22

33
@test "Create a tenant Kubernetes control plane" {
4-
kubectl -n tenant-test get kuberneteses.apps.cozystack.io test ||
4+
name='test'
5+
kubectl -n tenant-test get kuberneteses.apps.cozystack.io $name ||
56
kubectl create -f - <<EOF
67
apiVersion: apps.cozystack.io/v1alpha1
78
kind: Kubernetes
89
metadata:
9-
name: test
10+
name: $name
1011
namespace: tenant-test
1112
spec:
1213
addons:
@@ -62,12 +63,12 @@ spec:
6263
- ingress-nginx
6364
storageClass: replicated
6465
EOF
65-
kubectl wait namespace tenant-test --timeout=20s --for=jsonpath='{.status.phase}'=Active
66-
timeout 10 sh -ec 'until kubectl get kamajicontrolplane -n tenant-test kubernetes-test; do sleep 1; done'
67-
kubectl wait --for=condition=TenantControlPlaneCreated kamajicontrolplane -n tenant-test kubernetes-test --timeout=4m
68-
kubectl wait tcp -n tenant-test kubernetes-test --timeout=2m --for=jsonpath='{.status.kubernetesResources.version.status}'=Ready
69-
kubectl wait deploy --timeout=4m --for=condition=available -n tenant-test kubernetes-test kubernetes-test-cluster-autoscaler kubernetes-test-kccm kubernetes-test-kcsi-controller
70-
kubectl wait machinedeployment kubernetes-test-md0 -n tenant-test --timeout=1m --for=jsonpath='{.status.replicas}'=2
71-
kubectl wait machinedeployment kubernetes-test-md0 -n tenant-test --timeout=10m --for=jsonpath='{.status.v1beta2.readyReplicas}'=2
72-
kubectl -n tenant-test delete kuberneteses.apps.cozystack.io test
73-
}
66+
kubectl -n tenant-test wait --timeout=20s --for=jsonpath='{.status.phase}'=Active
67+
kubectl -n tenant-test wait --timeout=10s kamajicontrolplane kubernetes-$name --for=condition=Ready
68+
kubectl -n tenant-test wait --timeout=4m --for=condition=TenantControlPlaneCreated kamajicontrolplane kubernetes-$name
69+
kubectl -n tenant-test wait --timeout=210s tcp kubernetes-$name --for=jsonpath='{.status.kubernetesResources.version.status}'=Ready
70+
kubectl -n tenant-test wait --timeout=4m deploy --for=condition=available kubernetes-$name kubernetes-$name-cluster-autoscaler kubernetes-$name-kccm kubernetes-$name-kcsi-controller
71+
kubectl -n tenant-test wait --timeout=1m machinedeployment kubernetes-$name-md0 --for=jsonpath='{.status.replicas}'=2
72+
kubectl -n tenant-test wait --timeout=10m machinedeployment kubernetes-$name-md0 --for=jsonpath='{.status.v1beta2.readyReplicas}'=2
73+
kubectl -n tenant-test delete kuberneteses.apps.cozystack.io $name
74+
}

‎hack/e2e-apps/mysql.bats‎

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
@test "Create DB MySQL" {
44
name='test'
5+
withResources='true'
6+
if [ "$withResources" == 'true' ]; then
7+
resources=$(cat <<EOF
8+
resources:
9+
requests:
10+
cpu: 3000m
11+
memory: 3Gi
12+
limits:
13+
cpu: "4000m"
14+
memory: "4Gi"
15+
EOF
16+
)
17+
else
18+
resources=' resources: {}'
19+
fi
520
kubectl -n tenant-test get mysqls.apps.cozystack.io $name ||
621
kubectl create -f- <<EOF
722
apiVersion: apps.cozystack.io/v1alpha1
@@ -32,16 +47,15 @@ spec:
3247
s3AccessKey: oobaiRus9pah8PhohL1ThaeTa4UVa7gu
3348
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
3449
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
35-
resources: {}
50+
$resources
3651
resourcesPreset: "nano"
3752
EOF
38-
sleep 5
39-
kubectl -n tenant-test wait hr mysql-$name --timeout=30s --for=condition=ready
40-
timeout 80 sh -ec "until kubectl -n tenant-test get svc mysql-$name -o jsonpath='{.spec.ports[0].port}' | grep -q '3306'; do sleep 10; done"
41-
timeout 80 sh -ec "until kubectl -n tenant-test get endpoints mysql-$name -o jsonpath='{.subsets[*].addresses[*].ip}' | grep -q '[0-9]'; do sleep 10; done"
42-
kubectl -n tenant-test wait statefulset.apps/mysql-$name --timeout=110s --for=jsonpath='{.status.replicas}'=2
43-
timeout 80 sh -ec "until kubectl -n tenant-test get svc mysql-$name-metrics -o jsonpath='{.spec.ports[0].port}' | grep -q '9104'; do sleep 10; done"
44-
timeout 40 sh -ec "until kubectl -n tenant-test get endpoints mysql-$name-metrics -o jsonpath='{.subsets[*].addresses[*].ip}' | grep -q '[0-9]'; do sleep 10; done"
45-
kubectl -n tenant-test wait deployment.apps/mysql-$name-metrics --timeout=90s --for=jsonpath='{.status.replicas}'=1
53+
sleep 10
54+
kubectl -n tenant-test wait --timeout=30s hr mysql-$name --for=condition=ready
55+
kubectl -n tenant-test wait --timeout=130s mysqls $name --for=condition=ready
56+
kubectl -n tenant-test wait --timeout=110s sts mysql-$name --for=jsonpath='{.status.replicas}'=2
57+
sleep 60
58+
kubectl -n tenant-test wait --timeout=60s deploy mysql-$name-metrics --for=jsonpath='{.status.replicas}'=1
59+
kubectl -n tenant-test wait --timeout=100s svc mysql-$name --for=jsonpath='{.spec.ports[0].port}'=3306
4660
kubectl -n tenant-test delete mysqls.apps.cozystack.io $name
4761
}

‎hack/e2e-apps/postgres.bats‎

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
@test "Create DB PostgreSQL" {
44
name='test'
5+
withResources='true'
6+
if [ "$withResources" == 'true' ]; then
7+
resources=$(cat <<EOF
8+
resources:
9+
requests:
10+
cpu: 500m
11+
memory: 768Mi
12+
limits:
13+
cpu: "1000m"
14+
memory: "1Gi"
15+
EOF
16+
)
17+
else
18+
resources=' resources: {}'
19+
fi
520
kubectl -n tenant-test get postgreses.apps.cozystack.io $name ||
621
kubectl create -f - <<EOF
722
apiVersion: apps.cozystack.io/v1alpha1
@@ -37,19 +52,14 @@ spec:
3752
s3AccessKey: oobaiRus9pah8PhohL1ThaeTa4UVa7gu
3853
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog
3954
resticPassword: ChaXoveekoh6eigh4siesheeda2quai0
40-
resources: {}
55+
$resources
4156
resourcesPreset: "nano"
4257
EOF
4358
sleep 5
44-
kubectl -n tenant-test wait hr postgres-$name --timeout=100s --for=condition=ready
45-
kubectl -n tenant-test wait job.batch postgres-$name-init-job --timeout=50s --for=condition=Complete
46-
timeout 40 sh -ec "until kubectl -n tenant-test get svc postgres-$name-r -o jsonpath='{.spec.ports[0].port}' | grep -q '5432'; do sleep 10; done"
47-
timeout 40 sh -ec "until kubectl -n tenant-test get svc postgres-$name-ro -o jsonpath='{.spec.ports[0].port}' | grep -q '5432'; do sleep 10; done"
48-
timeout 40 sh -ec "until kubectl -n tenant-test get svc postgres-$name-rw -o jsonpath='{.spec.ports[0].port}' | grep -q '5432'; do sleep 10; done"
49-
timeout 120 sh -ec "until kubectl -n tenant-test get endpoints postgres-$name-r -o jsonpath='{.subsets[*].addresses[*].ip}' | grep -q '[0-9]'; do sleep 10; done"
50-
# for some reason it takes longer for the read-only endpoint to be ready
51-
#timeout 120 sh -ec "until kubectl -n tenant-test get endpoints postgres-$name-ro -o jsonpath='{.subsets[*].addresses[*].ip}' | grep -q '[0-9]'; do sleep 10; done"
52-
timeout 120 sh -ec "until kubectl -n tenant-test get endpoints postgres-$name-rw -o jsonpath='{.subsets[*].addresses[*].ip}' | grep -q '[0-9]'; do sleep 10; done"
59+
kubectl -n tenant-test wait --timeout=200s hr postgres-$name --for=condition=ready
60+
kubectl -n tenant-test wait --timeout=130s postgreses $name --for=condition=ready
61+
kubectl -n tenant-test wait --timeout=50s job.batch postgres-$name-init-job --for=condition=Complete
62+
kubectl -n tenant-test wait --timeout=40s svc postgres-$name-r --for=jsonpath='{.spec.ports[0].port}'=5432
5363
kubectl -n tenant-test delete postgreses.apps.cozystack.io $name
5464
kubectl -n tenant-test delete job.batch/postgres-$name-init-job
55-
}
65+
}

‎hack/e2e-apps/redis.bats‎

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22

33
@test "Create Redis" {
44
name='test'
5+
withResources='true'
6+
if [ "$withResources" == 'true' ]; then
7+
resources=$(cat <<EOF
8+
resources:
9+
requests:
10+
cpu: 500m
11+
memory: 768Mi
12+
limits:
13+
cpu: "1000m"
14+
memory: "1Gi"
15+
EOF
16+
)
17+
else
18+
resources='resources: {}'
19+
fi
20+
kubectl -n tenant-test get redis.apps.cozystack.io $name ||
521
kubectl create -f- <<EOF
622
apiVersion: apps.cozystack.io/v1alpha1
723
kind: Redis
@@ -14,13 +30,15 @@ spec:
1430
replicas: 2
1531
storageClass: ""
1632
authEnabled: true
17-
resources: {}
33+
$resources
1834
resourcesPreset: "nano"
1935
EOF
2036
sleep 5
21-
kubectl -n tenant-test wait hr redis-$name --timeout=20s --for=condition=ready
22-
kubectl -n tenant-test wait pvc redisfailover-persistent-data-rfr-redis-$name-0 --timeout=50s --for=jsonpath='{.status.phase}'=Bound
23-
kubectl -n tenant-test wait deploy rfs-redis-$name --timeout=90s --for=condition=available
24-
kubectl -n tenant-test wait sts rfr-redis-$name --timeout=90s --for=jsonpath='{.status.replicas}'=2
37+
kubectl -n tenant-test wait --timeout=20s hr redis-$name --for=condition=ready
38+
kubectl -n tenant-test wait --timeout=130s redis.apps.cozystack.io $name --for=condition=ready
39+
kubectl -n tenant-test wait --timeout=50s pvc redisfailover-persistent-data-rfr-redis-$name-0 --for=jsonpath='{.status.phase}'=Bound
40+
kubectl -n tenant-test wait --timeout=90s sts rfr-redis-$name --for=jsonpath='{.status.replicas}'=2
41+
sleep 45
42+
kubectl -n tenant-test wait --timeout=45s deploy rfs-redis-$name --for=condition=available
2543
kubectl -n tenant-test delete redis.apps.cozystack.io $name
26-
}
44+
}

‎hack/e2e-apps/virtualmachine.bats‎

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
@test "Create a Virtual Machine" {
44
name='test'
5+
withResources='true'
6+
if [ "$withResources" == 'true' ]; then
7+
resources=$(cat <<EOF
8+
resources:
9+
requests:
10+
cpu: 500m
11+
memory: 768Mi
12+
limits:
13+
cpu: "1000m"
14+
memory: "1Gi"
15+
EOF
16+
)
17+
else
18+
resources='resources: {}'
19+
fi
520
kubectl -n tenant-test get virtualmachines.apps.cozystack.io $name ||
621
kubectl create -f - <<EOF
722
apiVersion: apps.cozystack.io/v1alpha1
@@ -21,16 +36,15 @@ spec:
2136
storage: 5Gi
2237
storageClass: replicated
2338
gpus: []
24-
resources:
25-
cpu: ""
26-
memory: ""
39+
$resources
2740
sshKeys:
2841
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPht0dPk5qQ+54g1hSX7A6AUxXJW5T6n/3d7Ga2F8gTF
2942
test@test
3043
cloudInit: |
3144
#cloud-config
3245
users:
3346
- name: test
47+
plain_text_passwd: 'test'
3448
shell: /bin/bash
3549
sudo: ['ALL=(ALL) NOPASSWD: ALL']
3650
groups: sudo
@@ -39,10 +53,11 @@ spec:
3953
cloudInitSeed: ""
4054
EOF
4155
sleep 5
42-
kubectl -n tenant-test wait hr virtual-machine-$name --timeout=10s --for=condition=ready
43-
kubectl -n tenant-test wait dv virtual-machine-$name --timeout=150s --for=condition=ready
44-
kubectl -n tenant-test wait pvc virtual-machine-$name --timeout=100s --for=jsonpath='{.status.phase}'=Bound
45-
kubectl -n tenant-test wait vm virtual-machine-$name --timeout=100s --for=condition=ready
46-
timeout 120 sh -ec "until kubectl -n tenant-test get vmi virtual-machine-$name -o jsonpath='{.status.interfaces[0].ipAddress}' | grep -q '[0-9]'; do sleep 10; done"
56+
kubectl -n tenant-test wait --timeout=10s hr virtual-machine-$name --for=condition=ready
57+
kubectl -n tenant-test wait --timeout=130s virtualmachines $name --for=condition=ready
58+
kubectl -n tenant-test wait --timeout=130s pvc virtual-machine-$name --for=jsonpath='{.status.phase}'=Bound
59+
kubectl -n tenant-test wait --timeout=150s dv virtual-machine-$name --for=condition=ready
60+
kubectl -n tenant-test wait --timeout=100s vm virtual-machine-$name --for=condition=ready
61+
kubectl -n tenant-test wait --timeout=150s vmi virtual-machine-$name --for=jsonpath='{status.phase}'=Running
4762
kubectl -n tenant-test delete virtualmachines.apps.cozystack.io $name
48-
}
63+
}

0 commit comments

Comments
 (0)