Skip to content

Commit 187c1a2

Browse files
committed
move fkas to e2e
1 parent 5a48311 commit 187c1a2

File tree

7 files changed

+94
-13
lines changed

7 files changed

+94
-13
lines changed

scripts/ci-e2e.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ source "${M3_DEV_ENV_PATH}/lib/releases.sh"
6767
source "${M3_DEV_ENV_PATH}/lib/ironic_basic_auth.sh"
6868
# shellcheck disable=SC1091,SC1090
6969
source "${M3_DEV_ENV_PATH}/lib/ironic_tls_setup.sh"
70-
# shellcheck disable=SC1091,SC1090
71-
source "/tmp/vars_cluster.sh"
7270

7371
# image for live iso testing
7472
export LIVE_ISO_IMAGE="https://artifactory.nordix.org/artifactory/metal3/images/iso/minimal_linux_live-v2.iso"

test/e2e/basic_integration_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"os"
55
"path/filepath"
66
"strings"
7+
"fmt"
78

89
. "github.com/onsi/ginkgo/v2"
910
. "github.com/onsi/gomega"
@@ -17,6 +18,20 @@ var _ = Describe("When testing basic cluster creation [basic]", Label("basic"),
1718

1819
// We need to override clusterctl apply log folder to avoid getting our credentials exposed.
1920
clusterctlLogFolder = filepath.Join(os.TempDir(), "clusters", bootstrapClusterProxy.GetName())
21+
FKASDeployLogFolder := filepath.Join(os.TempDir(), "fkas-deploy-logs", bootstrapClusterProxy.GetName())
22+
FKASKustomization := e2eConfig.GetVariable("FKAS_RELEASE_LATEST")
23+
By(fmt.Sprintf("Installing FKAS from kustomization %s on the bootsrap cluster", FKASKustomization))
24+
err := BuildAndApplyKustomization(ctx, &BuildAndApplyKustomizationInput{
25+
Kustomization: FKASKustomization,
26+
ClusterProxy: bootstrapClusterProxy,
27+
WaitForDeployment: true,
28+
WatchDeploymentLogs: true,
29+
LogPath: FKASDeployLogFolder,
30+
DeploymentName: "metal3-fake-api-server",
31+
DeploymentNamespace: "metal3",
32+
WaitIntervals: e2eConfig.GetIntervals("default", "wait-deployment"),
33+
})
34+
Expect(err).NotTo(HaveOccurred())
2035
})
2136

2237
It("Should create a workload cluster", func() {
@@ -27,6 +42,13 @@ var _ = Describe("When testing basic cluster creation [basic]", Label("basic"),
2742
})
2843

2944
AfterEach(func() {
45+
RemoveDeployment(ctx, func() RemoveDeploymentInput {
46+
return RemoveDeploymentInput{
47+
ManagementCluster: bootstrapClusterProxy,
48+
Namespace: "metal3",
49+
Name: "metal3-fake-api-server",
50+
}
51+
})
3052
DumpSpecResourcesAndCleanup(ctx, specName, bootstrapClusterProxy, artifactFolder, namespace, e2eConfig.GetIntervals, clusterName, clusterctlLogFolder, skipCleanup)
3153
})
3254
})

test/e2e/config/e2e_conf.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ variables:
212212
BMO_RELEASE_0.5: "data/bmo-deployment/overlays/release-0.5"
213213
BMO_RELEASE_0.6: "data/bmo-deployment/overlays/release-0.6"
214214
BMO_RELEASE_LATEST: "data/bmo-deployment/overlays/release-latest"
215-
215+
FKAS_RELEASE_LATEST: "data/fkas-deployment"
216+
216217
intervals:
217218
default/wait-controllers: ["10m", "10s"]
218219
default/wait-cluster: ["20m", "30s"] # The second time to check the availibility of the cluster should happen late, so kcp object has time to be created
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: metal3-fake-api-server
5+
namespace: metal3
6+
spec:
7+
replicas: 1
8+
selector:
9+
matchLabels:
10+
app: capim
11+
strategy:
12+
type: Recreate
13+
template:
14+
metadata:
15+
labels:
16+
app: capim
17+
spec:
18+
hostNetwork: true
19+
containers:
20+
- image: 192.168.111.1:5000/localimages/api-server
21+
imagePullPolicy: IfNotPresent
22+
env:
23+
- name: POD_IP
24+
valueFrom:
25+
fieldRef:
26+
fieldPath: status.podIP
27+
name: apiserver
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
resources:
2+
- deployment.yaml

test/e2e/data/infrastructure-metal3/cluster-template-centos-fake/secrets.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ metadata:
88
namespace: ${namespace}
99
type: kubernetes.io/tls
1010
data:
11-
tls.crt: ${caCertEncoded}
12-
tls.key: ${caKeyEncoded}
11+
tls.crt: ${CA_CERT_ENCODED}
12+
tls.key: ${CA_KEY_ENCODED}
1313
---
1414
apiVersion: v1
1515
kind: Secret
@@ -20,5 +20,5 @@ metadata:
2020
namespace: ${namespace}
2121
type: kubernetes.io/tls
2222
data:
23-
tls.crt: ${etcdCertEncoded}
24-
tls.key: ${etcdKeyEncoded}
23+
tls.crt: ${ETCD_CERT_ENCODED}
24+
tls.key: ${ETCD_KEY_ENCODED}

test/e2e/pivoting_based_feature_test.go

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"path/filepath"
77
"strings"
8+
"fmt"
89

910
. "github.com/onsi/ginkgo/v2"
1011
. "github.com/onsi/gomega"
@@ -199,14 +200,20 @@ func createFakeTargetCluster(k8sVersion string) (framework.ClusterProxy, *cluste
199200
caCertEncoded:=b64.StdEncoding.EncodeToString(caCert)
200201
etcdKeyEncoded:=b64.StdEncoding.EncodeToString(etcdKey)
201202
etcdCertEncoded:=b64.StdEncoding.EncodeToString(etcdCert)
202-
cluster_endpoints, err :=http.Get("http://172.22.0.2:3333/register?resource=metal3/test72&caKey="+caKeyEncoded+"&caCert="+caCertEncoded+"&etcdKey="+etcdKeyEncoded+"&etcdCert="+etcdCertEncoded)
203+
os.Setenv("CA_KEY_ENCODED", caKeyEncoded)
204+
os.Setenv("CA_CERT_ENCODED", caCertEncoded)
205+
os.Setenv("ETCD_KEY_ENCODED", etcdKeyEncoded)
206+
os.Setenv("ETCD_CERT_ENCODED", etcdCertEncoded)
207+
cluster_endpoints, err :=http.Get("http://172.22.0.2:3333/register?resource=metal3/test1&caKey="+caKeyEncoded+"&caCert="+caCertEncoded+"&etcdKey="+etcdKeyEncoded+"&etcdCert="+etcdCertEncoded)
203208
check(err)
204209
defer cluster_endpoints.Body.Close()
205210
body, err := ioutil.ReadAll(cluster_endpoints.Body)
206211
check(err)
207212
var response Endpoint
208213
json.Unmarshal(body, &response)
209214
Logf("CLUSTER_APIENDPOINT_HOST %v CLUSTER_APIENDPOINT_PORT %v", response.Host, response.Port)
215+
os.Setenv("CLUSTER_APIENDPOINT_HOST", response.Host)
216+
os.Setenv("CLUSTER_APIENDPOINT_PORT", fmt.Sprintf("%v",response.Port))
210217
return createTargetCluster(k8sVersion)
211218

212219
}
@@ -236,21 +243,45 @@ func createTargetCluster(k8sVersion string) (framework.ClusterProxy, *clusterctl
236243
// get bmh
237244
// get m3m
238245
// waiting machine
239-
By("Waiting for all Machines to be provisioning")
246+
By("Waiting for one Machine to be provisioning")
240247
WaitForNumMachinesInState(ctx, clusterv1.MachinePhaseProvisioning, WaitForNumInput{
241248
Client: bootstrapClusterProxy.GetClient(),
242249
Options: []client.ListOption{client.InNamespace(namespace)},
243-
Replicas: 2,
250+
Replicas: 1,
244251
Intervals: e2eConfig.GetIntervals(specName, "wait-machine-remediation"),
245252
})
246253

254+
247255
metal3Machines := infrav1.Metal3MachineList{}
256+
metal3Machines_updated := ""
248257
bootstrapClusterProxy.GetClient().List(ctx, &metal3Machines, []client.ListOption{client.InNamespace(namespace)}...)
249258
for _, m3machine := range metal3Machines.Items {
250-
providerID:="metal3://metal3/"+Metal3MachineToBmhName(m3machine)+"/"+m3machine.GetName()
251-
machine, _ := Metal3MachineToMachineName(m3machine)
252-
resp, err :=http.Get("http://172.22.0.2:3333/updateNode?resource=metal3/test1&nodeName="+machine+"&providerID="+providerID)
259+
if (m3machine.GetAnnotations()["metal3.io/BareMetalHost"] != ""){
260+
providerID:="metal3://metal3/"+Metal3MachineToBmhName(m3machine)+"/"+m3machine.GetName()
261+
machine, _ := Metal3MachineToMachineName(m3machine)
262+
Logf("http://172.22.0.2:3333/updateNode?resource=metal3/test1&nodeName="+machine+"&providerID="+providerID)
263+
resp, err :=http.Get("http://172.22.0.2:3333/updateNode?resource=metal3/test1&nodeName="+machine+"&providerID="+providerID)
264+
metal3Machines_updated= m3machine.GetName()
253265
Logf("resp : %v err: %v", resp, err)
266+
}
267+
268+
}
269+
By("Waiting for the other Machine to be provisioning")
270+
WaitForNumMachinesInState(ctx, clusterv1.MachinePhaseProvisioning, WaitForNumInput{
271+
Client: bootstrapClusterProxy.GetClient(),
272+
Options: []client.ListOption{client.InNamespace(namespace)},
273+
Replicas: 2,
274+
Intervals: e2eConfig.GetIntervals(specName, "wait-machine-remediation"),
275+
})
276+
for _, m3machine := range metal3Machines.Items {
277+
if (m3machine.GetName() != metal3Machines_updated){
278+
providerID:="metal3://metal3/"+Metal3MachineToBmhName(m3machine)+"/"+m3machine.GetName()
279+
machine, _ := Metal3MachineToMachineName(m3machine)
280+
Logf("http://172.22.0.2:3333/updateNode?resource=metal3/test1&nodeName="+machine+"&providerID="+providerID)
281+
resp, err :=http.Get("http://172.22.0.2:3333/updateNode?resource=metal3/test1&nodeName="+machine+"&providerID="+providerID)
282+
Logf("resp : %v err: %v", resp, err)
283+
}
284+
254285
}
255286
},
256287
WaitForClusterIntervals: e2eConfig.GetIntervals(specName, "wait-cluster"),

0 commit comments

Comments
 (0)