Skip to content

Commit 9b5aa51

Browse files
Merge pull request #268 from Danil-Grigorev/fix-e2e-tests-cherry-pick
[release-0.2] Fix: e2e tests
2 parents 10f58f4 + caad9b4 commit 9b5aa51

File tree

7 files changed

+159
-53
lines changed

7 files changed

+159
-53
lines changed

.github/workflows/e2e.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
name: E2E tests
22
on:
3+
pull_request:
34
schedule:
45
- cron: '0 1 * * *'
56
workflow_dispatch:
@@ -8,6 +9,11 @@ jobs:
89
e2e-tests:
910
runs-on: ubuntu-latest
1011
steps:
12+
- name: Free Disk Space
13+
uses: jlumbroso/free-disk-space@main
14+
with:
15+
tool-cache: false
16+
docker-images: false
1117
- name: Checkout code
1218
uses: actions/checkout@v4
1319
with:
@@ -38,4 +44,4 @@ jobs:
3844
with:
3945
name: e2e-artifacts
4046
path: _artifacts
41-
if-no-files-found: ignore
47+
if-no-files-found: ignore

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ GOLANGCI_LINT_VER := v1.55.1
9999
GOLANGCI_LINT_BIN := golangci-lint
100100
GOLANGCI_LINT := $(abspath $(TOOLS_BIN_DIR)/$(GOLANGCI_LINT_BIN))
101101

102-
GINKGO_VER := v2.9.4
102+
GINKGO_VER := v2.14.0
103103
GINKGO_BIN := ginkgo
104104
GINKGO := $(abspath $(TOOLS_BIN_DIR)/$(GINKGO_BIN)-$(GINKGO_VER))
105105
GINKGO_PKG := github.com/onsi/ginkgo/v2/ginkgo

metadata.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ releaseSeries:
1111
contract: v1beta1
1212
- major: 0
1313
minor: 2
14-
contract: v1beta1
14+
contract: v1beta1

test/e2e/config/e2e_conf.yaml

Lines changed: 77 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,68 +5,97 @@ images:
55
loadBehavior: mustLoad
66
- name: ghcr.io/rancher-sandbox/cluster-api-provider-rke2-controlplane:dev
77
loadBehavior: mustLoad
8+
- name: quay.io/jetstack/cert-manager-cainjector:v1.13.2
9+
loadBehavior: tryLoad
10+
- name: quay.io/jetstack/cert-manager-webhook:v1.13.2
11+
loadBehavior: tryLoad
12+
- name: quay.io/jetstack/cert-manager-controller:v1.13.2
13+
loadBehavior: tryLoad
814

915
providers:
1016
- name: cluster-api
1117
type: CoreProvider
1218
versions:
13-
- name: v1.3.0
14-
value: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.3.0/core-components.yaml
15-
type: url
16-
contract: v1beta1
17-
files:
18-
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
19-
replacements:
20-
- old: "imagePullPolicy: Always"
21-
new: "imagePullPolicy: IfNotPresent"
22-
- old: "--leader-elect"
23-
new: "--leader-elect=false"
19+
- name: "v1.6.0"
20+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.6.0/core-components.yaml"
21+
type: "url"
22+
contract: v1beta1
23+
files:
24+
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
25+
replacements:
26+
- old: "imagePullPolicy: Always"
27+
new: "imagePullPolicy: IfNotPresent"
28+
- old: "--leader-elect"
29+
new: "--leader-elect=false"
2430
- name: docker
2531
type: InfrastructureProvider
2632
versions:
27-
- name: v1.3.3
28-
value: "https://github.com/belgaied2/cluster-api/releases/download/v1.3.3-cabpr-fix/infrastructure-components.yaml" # NOTE: this uses the docker form for the time being
29-
type: url
30-
files:
31-
- sourcePath: "../data/infrastructure/cluster-template-docker.yaml"
32-
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
33-
replacements:
34-
- old: "imagePullPolicy: Always"
35-
new: "imagePullPolicy: IfNotPresent"
36-
- old: "--leader-elect"
37-
new: "--leader-elect=false"
38-
- old: --metrics-addr=127.0.0.1:8080
39-
new: --metrics-addr=:8080
40-
contract: v1beta1
41-
33+
- name: "v1.6.0"
34+
value: "https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.6.0/infrastructure-components-development.yaml"
35+
type: "url"
36+
contract: v1beta1
37+
files:
38+
- sourcePath: "../data/infrastructure/cluster-template-docker.yaml"
39+
- sourcePath: "../data/shared/v1beta1/metadata.yaml"
40+
replacements:
41+
- old: "imagePullPolicy: Always"
42+
new: "imagePullPolicy: IfNotPresent"
43+
- old: "--leader-elect"
44+
new: "--leader-elect=false"
45+
- old: --metrics-addr=127.0.0.1:8080
46+
new: --metrics-addr=:8080
4247
- name: rke2-control-plane
4348
type: ControlPlaneProvider
4449
versions:
45-
- name: v0.1.99
46-
value: "../../../controlplane/config/default"
47-
contract: v1beta1
48-
files:
49-
- sourcePath: "../../../metadata.yaml"
50-
targetName: "metadata.yaml"
51-
replacements:
52-
- old: "imagePullPolicy: Always"
53-
new: "imagePullPolicy: IfNotPresent"
54-
- old: "--leader-elect"
55-
new: "--leader-elect=false"
50+
- name: "v0.2.3"
51+
value: "https://github.com/rancher-sandbox/cluster-api-provider-rke2/releases/download/v0.2.3/control-plane-components.yaml"
52+
type: "url"
53+
contract: v1beta1
54+
files:
55+
- sourcePath: "../../../metadata.yaml"
56+
targetName: "metadata.yaml"
57+
replacements:
58+
- old: "imagePullPolicy: Always"
59+
new: "imagePullPolicy: IfNotPresent"
60+
- old: "--leader-elect"
61+
new: "--leader-elect=false"
62+
- name: v0.2.99
63+
value: "../../../controlplane/config/default"
64+
contract: v1beta1
65+
files:
66+
- sourcePath: "../../../metadata.yaml"
67+
targetName: "metadata.yaml"
68+
replacements:
69+
- old: "imagePullPolicy: Always"
70+
new: "imagePullPolicy: IfNotPresent"
71+
- old: "--leader-elect"
72+
new: "--leader-elect=false"
5673
- name: rke2-bootstrap
5774
type: BootstrapProvider
5875
versions:
59-
- name: v0.1.99
60-
value: ../../../bootstrap/config/default
61-
contract: v1beta1
62-
files:
63-
- sourcePath: "../../../metadata.yaml"
64-
targetName: "metadata.yaml"
65-
replacements:
66-
- old: "imagePullPolicy: Always"
67-
new: "imagePullPolicy: IfNotPresent"
68-
- old: "--leader-elect"
69-
new: "--leader-elect=false"
76+
- name: "v0.2.3"
77+
value: "https://github.com/rancher-sandbox/cluster-api-provider-rke2/releases/download/v0.2.3/bootstrap-components.yaml"
78+
type: "url"
79+
contract: v1beta1
80+
files:
81+
- sourcePath: "../../../metadata.yaml"
82+
targetName: "metadata.yaml"
83+
replacements:
84+
- old: "imagePullPolicy: Always"
85+
new: "imagePullPolicy: IfNotPresent"
86+
- old: "--leader-elect"
87+
new: "--leader-elect=false"
88+
- name: v0.2.99
89+
value: ../../../bootstrap/config/default
90+
contract: v1beta1
91+
files:
92+
- sourcePath: "../../../metadata.yaml"
93+
targetName: "metadata.yaml"
94+
replacements:
95+
- old: "imagePullPolicy: Always"
96+
new: "imagePullPolicy: IfNotPresent"
97+
- old: "--leader-elect"
98+
new: "--leader-elect=false"
7099

71100
variables:
72101
KUBERNETES_VERSION_MANAGEMENT: "v1.28.0"

test/e2e/data/infrastructure/cluster-template-docker.yaml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,66 @@
1+
apiVersion: v1
2+
data:
3+
value: |-
4+
# generated by kind
5+
global
6+
log /dev/log local0
7+
log /dev/log local1 notice
8+
daemon
9+
# limit memory usage to approximately 18 MB
10+
# (see https://github.com/kubernetes-sigs/kind/pull/3115)
11+
maxconn 100000
12+
13+
resolvers docker
14+
nameserver dns 127.0.0.11:53
15+
16+
defaults
17+
log global
18+
mode tcp
19+
option dontlognull
20+
# TODO: tune these
21+
timeout connect 5000
22+
timeout client 50000
23+
timeout server 50000
24+
# allow to boot despite dns don't resolve backends
25+
default-server init-addr none
26+
27+
frontend stats
28+
bind *:8404
29+
stats enable
30+
stats uri /
31+
stats refresh 10s
32+
33+
frontend control-plane
34+
bind *:{{ .FrontendControlPlanePort }}
35+
{{ if .IPv6 -}}
36+
bind :::{{ .FrontendControlPlanePort }};
37+
{{- end }}
38+
default_backend kube-apiservers
39+
40+
backend kube-apiservers
41+
option httpchk GET /healthz
42+
http-check expect status 401
43+
# TODO: we should be verifying (!)
44+
{{range $server, $address := .BackendServers}}
45+
server {{ $server }} {{ JoinHostPort $address $.BackendControlPlanePort }} check check-ssl verify none resolvers docker resolve-prefer {{ if $.IPv6 -}} ipv6 {{- else -}} ipv4 {{- end }}
46+
{{- end}}
47+
48+
frontend rke2-join
49+
bind *:9345
50+
{{ if .IPv6 -}}
51+
bind :::9345;
52+
{{- end }}
53+
default_backend rke2-servers
54+
55+
backend rke2-servers
56+
option httpchk GET /v1-rke2/readyz
57+
http-check expect status 403
58+
{{range $server, $address := .BackendServers}}
59+
server {{ $server }} {{ $address }}:9345 check check-ssl verify none
60+
{{- end}}
61+
kind: ConfigMap
62+
metadata:
63+
name: ${CLUSTER_NAME}-lb-config
164
---
265
apiVersion: cluster.x-k8s.io/v1beta1
366
kind: Cluster
@@ -25,6 +88,10 @@ apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
2588
kind: DockerCluster
2689
metadata:
2790
name: ${CLUSTER_NAME}
91+
spec:
92+
loadBalancer:
93+
customHAProxyConfigTemplateRef:
94+
name: ${CLUSTER_NAME}-lb-config
2895
---
2996
apiVersion: controlplane.cluster.x-k8s.io/v1alpha1
3097
kind: RKE2ControlPlane
@@ -36,6 +103,10 @@ spec:
36103
version: ${KUBERNETES_VERSION}+rke2r1
37104
nodeAnnotations:
38105
test: "true"
106+
serverConfig:
107+
disableComponents:
108+
kubernetesComponents:
109+
- cloudController
39110
infrastructureRef:
40111
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
41112
kind: DockerMachineTemplate

test/e2e/data/shared/v1beta1/metadata.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3
22
kind: Metadata
33
releaseSeries:
44
- major: 1
5-
minor: 3
5+
minor: 6
66
contract: v1beta1

test/e2e/e2e_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ var _ = Describe("Workload cluster creation", func() {
221221
Namespace: namespace.Name,
222222
ClusterName: clusterName,
223223
KubernetesVersion: e2eConfig.GetVariable(KubernetesVersion),
224-
ControlPlaneMachineCount: pointer.Int64Ptr(1),
224+
ControlPlaneMachineCount: pointer.Int64Ptr(3), //TODO: change this back to 1 when scaling is supported
225225
WorkerMachineCount: pointer.Int64Ptr(1),
226226
},
227227
WaitForClusterIntervals: e2eConfig.GetIntervals(specName, "wait-cluster"),

0 commit comments

Comments
 (0)