Skip to content

Commit f48e318

Browse files
committed
ci: Add k8s conformance tests to Cilium CI/CD (#2348)
* ci: add k8s conformance * ci: remove kubetest2 k8se2e * chore: remove test comments * ci: add k8se2e to nightly pipeline
1 parent 2948cff commit f48e318

6 files changed

+76
-49
lines changed

.pipelines/cni/cilium/nightly-release-test.yml

+37
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,40 @@ stages:
5252
name: "cilium_nightly"
5353
testDropgz: ""
5454
clusterName: "ciliumnightly"
55+
56+
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml
57+
parameters:
58+
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION)
59+
clusterName: ciliumnightly-$(commitID)
60+
os: linux
61+
cni: cilium
62+
dependsOn: cilium_nightly
63+
datapath: true
64+
dns: true
65+
portforward: true
66+
service: true
67+
68+
- stage: delete
69+
displayName: Delete Clusters
70+
condition: always()
71+
dependsOn:
72+
- setup
73+
- cilium_nightly
74+
variables:
75+
commitID: $[ stagedependencies.setup.env.outputs['EnvironmentalVariables.commitID'] ]
76+
jobs:
77+
- job: delete
78+
displayName: Delete Cluster
79+
pool:
80+
name: "$(BUILD_POOL_NAME_DEFAULT)"
81+
strategy:
82+
matrix:
83+
cilium_nightly:
84+
name: cilium_overlay_nightly
85+
clusterName: ciliumnightly
86+
steps:
87+
- template: ../../templates/delete-cluster.yaml
88+
parameters:
89+
name: $(name)
90+
clusterName: $(clusterName)-$(commitID)
91+
region: $(LOCATION)

.pipelines/cni/k8s-e2e/k8s-e2e-job-template.yaml

+12-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ parameters:
33
os: ""
44
dependsOn: ""
55
sub: ""
6+
cni: cni
67

78

89
jobs:
@@ -63,7 +64,7 @@ jobs:
6364
os: ${{ parameters.os }}
6465
processes: 8
6566
attempts: 3
66-
- ${{ if eq(parameters.service, true) }}:
67+
- ${{ if and( eq(parameters.service, true), contains(parameters.cni, 'cni') ) }}:
6768
- template: ../k8s-e2e/k8s-e2e-step-template.yaml
6869
parameters:
6970
testName: Service Conformance
@@ -73,6 +74,16 @@ jobs:
7374
os: ${{ parameters.os }}
7475
processes: 8
7576
attempts: 3
77+
- ${{ if and( eq(parameters.service, true), contains(parameters.cni, 'cilium') ) }}:
78+
- template: ../k8s-e2e/k8s-e2e-step-template.yaml
79+
parameters:
80+
testName: Service Conformance|Cilium
81+
name: service
82+
ginkgoFocus: 'Services.*\[Conformance\].*'
83+
ginkgoSkip: 'should serve endpoints on same port and different protocols' # Cilium does not support this feature. For more info on test: https://github.com/kubernetes/kubernetes/blame/e602e9e03cd744c23dde9fee09396812dd7bdd93/test/conformance/testdata/conformance.yaml#L1780-L1788
84+
os: ${{ parameters.os }}
85+
processes: 8
86+
attempts: 3
7687
- ${{ if eq(parameters.hostport, true) }}:
7788
- template: ../k8s-e2e/k8s-e2e-step-template.yaml
7889
parameters:

.pipelines/singletenancy/cilium-overlay/cilium-overlay-e2e-job-template.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ parameters:
77
vmSize: ""
88
k8sVersion: ""
99
dependsOn: ""
10+
os: "linux"
1011

1112
stages:
1213
- stage: ${{ parameters.clusterName }}
@@ -56,3 +57,15 @@ stages:
5657
name: ${{ parameters.name }}
5758
testDropgz: ${{ parameters.testDropgz }}
5859
clusterName: ${{ parameters.clusterName }}-$(commitID)
60+
61+
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml
62+
parameters:
63+
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION)
64+
clusterName: ${{ parameters.clusterName }}-$(commitID)
65+
os: ${{ parameters.os }}
66+
cni: cilium
67+
dependsOn: ${{ parameters.name }}
68+
datapath: true
69+
dns: true
70+
portforward: true
71+
service: true

.pipelines/singletenancy/cilium-overlay/cilium-overlay-e2e-step-template.yaml

-24
Original file line numberDiff line numberDiff line change
@@ -67,20 +67,6 @@ steps:
6767
name: "installCiliumCLI"
6868
displayName: "Install Cilium CLI"
6969
70-
- script: |
71-
echo "install kubetest2 and gsutils"
72-
go get github.com/onsi/ginkgo/ginkgo
73-
go get github.com/onsi/gomega/...
74-
go install github.com/onsi/ginkgo/ginkgo@latest
75-
go install sigs.k8s.io/kubetest2@latest
76-
go install sigs.k8s.io/kubetest2/kubetest2-noop@latest
77-
go install sigs.k8s.io/kubetest2/kubetest2-tester-ginkgo@latest
78-
wget https://storage.googleapis.com/pub/gsutil.tar.gz
79-
tar xfz gsutil.tar.gz
80-
sudo mv gsutil /usr/local/bin
81-
name: "installKubetest"
82-
displayName: "Set up Conformance Tests"
83-
8470
- script: |
8571
echo "Start Azilium E2E Tests on Overlay Cluster"
8672
echo "deploy ip-masq-agent for overlay"
@@ -131,16 +117,6 @@ steps:
131117
name: "CiliumStatus"
132118
displayName: "Cilium Status"
133119
134-
- script: |
135-
echo "Run Service Conformance E2E"
136-
export PATH=${PATH}:/usr/local/bin/gsutil
137-
KUBECONFIG=~/.kube/config kubetest2 noop \
138-
--test ginkgo -- \
139-
--focus-regex "Services.*\[Conformance\].*" \
140-
--skip-regex "should serve endpoints on same port and different protocols" # Cilium does not support this feature. For more info on test: https://github.com/kubernetes/kubernetes/blame/e602e9e03cd744c23dde9fee09396812dd7bdd93/test/conformance/testdata/conformance.yaml#L1780-L1788
141-
name: "servicesConformance"
142-
displayName: "Run Services Conformance Tests"
143-
144120
- script: |
145121
echo "Run Cilium Connectivity Tests"
146122
cilium status

.pipelines/singletenancy/cilium/cilium-e2e-job-template.yaml

+14
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ parameters:
77
vmSize: ""
88
k8sVersion: ""
99
dependsOn: ""
10+
os: "linux"
1011

1112
stages:
1213
- stage: ${{ parameters.clusterName }}
@@ -60,3 +61,16 @@ stages:
6061
name: ${{ parameters.name }}
6162
testDropgz: ${{ parameters.testDropgz }}
6263
clusterName: ${{ parameters.clusterName }}-$(commitID)
64+
65+
- template: ../../cni/k8s-e2e/k8s-e2e-job-template.yaml
66+
parameters:
67+
sub: $(BUILD_VALIDATIONS_SERVICE_CONNECTION)
68+
clusterName: ${{ parameters.clusterName }}-$(commitID)
69+
os: ${{ parameters.os }}
70+
cni: cilium
71+
dependsOn: ${{ parameters.name }}
72+
datapath: true
73+
dns: true
74+
portforward: true
75+
service: true
76+

.pipelines/singletenancy/cilium/cilium-e2e-step-template.yaml

-24
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,6 @@ steps:
6464
name: "installCiliumCLI"
6565
displayName: "Install Cilium CLI"
6666
67-
- script: |
68-
echo "install kubetest2 and gsutils"
69-
go get github.com/onsi/ginkgo/ginkgo
70-
go get github.com/onsi/gomega/...
71-
go install github.com/onsi/ginkgo/ginkgo@latest
72-
go install sigs.k8s.io/kubetest2@latest
73-
go install sigs.k8s.io/kubetest2/kubetest2-noop@latest
74-
go install sigs.k8s.io/kubetest2/kubetest2-tester-ginkgo@latest
75-
wget https://storage.googleapis.com/pub/gsutil.tar.gz
76-
tar xfz gsutil.tar.gz
77-
sudo mv gsutil /usr/local/bin
78-
name: "installKubetest"
79-
displayName: "Set up Conformance Tests"
80-
8167
- script: |
8268
echo "Start Azilium E2E Tests"
8369
kubectl get po -owide -A
@@ -115,16 +101,6 @@ steps:
115101
name: "CiliumStatus"
116102
displayName: "Cilium Status"
117103
118-
- script: |
119-
echo "Run Service Conformance E2E"
120-
export PATH=${PATH}:/usr/local/bin/gsutil
121-
KUBECONFIG=~/.kube/config kubetest2 noop \
122-
--test ginkgo -- \
123-
--focus-regex "Services.*\[Conformance\].*" \
124-
--skip-regex "should serve endpoints on same port and different protocols" # Cilium does not support this feature. For more info on test: https://github.com/kubernetes/kubernetes/blame/e602e9e03cd744c23dde9fee09396812dd7bdd93/test/conformance/testdata/conformance.yaml#L1780-L1788
125-
name: "servicesConformance"
126-
displayName: "Run Services Conformance Tests"
127-
128104
- script: |
129105
echo "Run Cilium Connectivity Tests"
130106
cilium status

0 commit comments

Comments
 (0)