Skip to content

Commit 0dcb3a2

Browse files
authored
Merge pull request #4154 from camilamacedo86/enhance-ci
🌱 ci: add e2e tests for multigroup testdata layout and rename sample
2 parents 29a22d1 + 3352876 commit 0dcb3a2

File tree

184 files changed

+318
-254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

184 files changed

+318
-254
lines changed

.github/workflows/test-e2e-samples.yml

Lines changed: 73 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1-
name: Testing E2E Sample
1+
name: E2E Testdata Sample
22

33
on:
44
push:
5-
paths-ignore:
6-
- '**/*.md'
5+
paths:
6+
- 'testdata/**'
7+
- '.github/workflows/test-e2e-samples.yml'
78
pull_request:
8-
paths-ignore:
9-
- '**/*.md'
9+
paths:
10+
- 'testdata/**'
11+
- '.github/workflows/test-e2e-samples.yml'
1012

1113
jobs:
12-
e2e-tests:
14+
e2e-tests-project-v4:
1315
runs-on: ubuntu-latest
14-
# Pull requests from the same repository won't trigger this checks as they were already triggered by the push
16+
strategy:
17+
fail-fast: true
1518
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
1619
steps:
1720
- name: Checkout repository
@@ -48,8 +51,28 @@ jobs:
4851
run: |
4952
make test-e2e
5053
51-
- name: Teardown kind cluster
52-
run: kind delete cluster
54+
e2e-tests-project-v4-with-plugins:
55+
runs-on: ubuntu-latest
56+
strategy:
57+
fail-fast: true
58+
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
59+
steps:
60+
- name: Checkout repository
61+
uses: actions/checkout@v4
62+
63+
- name: Setup Go
64+
uses: actions/setup-go@v5
65+
with:
66+
go-version: '~1.22'
67+
68+
- name: Install the latest version of kind
69+
run: |
70+
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
71+
chmod +x ./kind
72+
sudo mv ./kind /usr/local/bin/kind
73+
74+
- name: Verify kind installation
75+
run: kind version
5376

5477
- name: Create kind cluster
5578
run: kind create cluster
@@ -62,7 +85,6 @@ jobs:
6285
# Uncomment only ValidatingWebhookConfiguration
6386
# from cert-manager replaces
6487
sed -i '55,70s/^#//' $KUSTOMIZATION_FILE_PATH
65-
sed -i '55,70s/^#//' $KUSTOMIZATION_FILE_PATH
6688
sed -i '79,101s/^#//' $KUSTOMIZATION_FILE_PATH
6789
sed -i '110,151s/^#//' $KUSTOMIZATION_FILE_PATH
6890
# Comment the injection for MutatingWebhookConfiguration
@@ -74,6 +96,46 @@ jobs:
7496
go mod tidy
7597
7698
- name: Testing make test-e2e for project-v4-with-plugins
77-
working-directory: testdata/project-v4-with-plugins
99+
working-directory: testdata/project-v4-with-plugins/
78100
run: |
79101
make test-e2e
102+
103+
e2e-tests-project-v4-multigroup:
104+
runs-on: ubuntu-latest
105+
strategy:
106+
fail-fast: true
107+
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
108+
steps:
109+
- name: Checkout repository
110+
uses: actions/checkout@v4
111+
112+
- name: Setup Go
113+
uses: actions/setup-go@v5
114+
with:
115+
go-version: '~1.22'
116+
117+
- name: Install the latest version of kind
118+
run: |
119+
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
120+
chmod +x ./kind
121+
sudo mv ./kind /usr/local/bin/kind
122+
123+
- name: Verify kind installation
124+
run: kind version
125+
126+
- name: Create kind cluster
127+
run: kind create cluster
128+
129+
- name: Prepare project-v4-multigroup
130+
run: |
131+
KUSTOMIZATION_FILE_PATH="testdata/project-v4-multigroup/config/default/kustomization.yaml"
132+
sed -i '25s/^#//' $KUSTOMIZATION_FILE_PATH
133+
sed -i '51s/^#//' $KUSTOMIZATION_FILE_PATH
134+
sed -i '55,151s/^#//' $KUSTOMIZATION_FILE_PATH
135+
cd testdata/project-v4-multigroup
136+
go mod tidy
137+
138+
- name: Testing make test-e2e for project-v4-multigroup
139+
working-directory: testdata/project-v4-multigroup/
140+
run: |
141+
make test-e2e

test/testdata/generate.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ function scaffold_test_project {
8080
$kb edit --plugins=grafana.kubebuilder.io/v1-alpha
8181
fi
8282

83+
make all
8384
make build-installer
85+
# To avoid conflicts
8486
rm -f go.sum
8587
go mod tidy
8688
popd
@@ -89,5 +91,5 @@ function scaffold_test_project {
8991
build_kb
9092

9193
scaffold_test_project project-v4 --plugins="go/v4"
92-
scaffold_test_project project-v4-multigroup-with-plugins --plugins="go/v4"
94+
scaffold_test_project project-v4-multigroup --plugins="go/v4"
9395
scaffold_test_project project-v4-with-plugins --plugins="go/v4"

test/testdata/test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@ build_kb
3232

3333
# Project version v4-alpha
3434
test_project project-v4
35-
test_project project-v4-multigroup-with-plugins
35+
test_project project-v4-multigroup
3636
test_project project-v4-with-plugins

testdata/project-v4-multigroup-with-plugins/Makefile renamed to testdata/project-v4-multigroup/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,10 @@ PLATFORMS ?= linux/arm64,linux/amd64,linux/s390x,linux/ppc64le
120120
docker-buildx: ## Build and push docker image for the manager for cross-platform support
121121
# copy existing Dockerfile and insert --platform=${BUILDPLATFORM} into Dockerfile.cross, and preserve the original Dockerfile
122122
sed -e '1 s/\(^FROM\)/FROM --platform=\$$\{BUILDPLATFORM\}/; t' -e ' 1,// s//FROM --platform=\$$\{BUILDPLATFORM\}/' Dockerfile > Dockerfile.cross
123-
- $(CONTAINER_TOOL) buildx create --name project-v4-multigroup-with-plugins-builder
124-
$(CONTAINER_TOOL) buildx use project-v4-multigroup-with-plugins-builder
123+
- $(CONTAINER_TOOL) buildx create --name project-v4-multigroup-builder
124+
$(CONTAINER_TOOL) buildx use project-v4-multigroup-builder
125125
- $(CONTAINER_TOOL) buildx build --push --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile.cross .
126-
- $(CONTAINER_TOOL) buildx rm project-v4-multigroup-with-plugins-builder
126+
- $(CONTAINER_TOOL) buildx rm project-v4-multigroup-builder
127127
rm Dockerfile.cross
128128

129129
.PHONY: build-installer

testdata/project-v4-multigroup-with-plugins/PROJECT renamed to testdata/project-v4-multigroup/PROJECT

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ plugins:
2525
image: busybox:1.36.1
2626
version: v1alpha1
2727
grafana.kubebuilder.io/v1-alpha: {}
28-
projectName: project-v4-multigroup-with-plugins
29-
repo: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins
28+
projectName: project-v4-multigroup
29+
repo: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup
3030
resources:
3131
- api:
3232
crdVersion: v1
@@ -35,7 +35,7 @@ resources:
3535
domain: testproject.org
3636
group: crew
3737
kind: Captain
38-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/crew/v1
38+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/crew/v1
3939
version: v1
4040
webhooks:
4141
defaulting: true
@@ -48,7 +48,7 @@ resources:
4848
domain: testproject.org
4949
group: ship
5050
kind: Frigate
51-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1beta1
51+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1beta1
5252
version: v1beta1
5353
webhooks:
5454
conversion: true
@@ -59,7 +59,7 @@ resources:
5959
domain: testproject.org
6060
group: ship
6161
kind: Destroyer
62-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1
62+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1
6363
version: v1
6464
webhooks:
6565
defaulting: true
@@ -70,7 +70,7 @@ resources:
7070
domain: testproject.org
7171
group: ship
7272
kind: Cruiser
73-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v2alpha1
73+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v2alpha1
7474
version: v2alpha1
7575
webhooks:
7676
validation: true
@@ -82,7 +82,7 @@ resources:
8282
domain: testproject.org
8383
group: sea-creatures
8484
kind: Kraken
85-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta1
85+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta1
8686
version: v1beta1
8787
- api:
8888
crdVersion: v1
@@ -91,7 +91,7 @@ resources:
9191
domain: testproject.org
9292
group: sea-creatures
9393
kind: Leviathan
94-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta2
94+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta2
9595
version: v1beta2
9696
- api:
9797
crdVersion: v1
@@ -100,7 +100,7 @@ resources:
100100
domain: testproject.org
101101
group: foo.policy
102102
kind: HealthCheckPolicy
103-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo.policy/v1
103+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo.policy/v1
104104
version: v1
105105
- controller: true
106106
group: apps
@@ -114,7 +114,7 @@ resources:
114114
domain: testproject.org
115115
group: foo
116116
kind: Bar
117-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo/v1
117+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo/v1
118118
version: v1
119119
- api:
120120
crdVersion: v1
@@ -123,7 +123,7 @@ resources:
123123
domain: testproject.org
124124
group: fiz
125125
kind: Bar
126-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/fiz/v1
126+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/fiz/v1
127127
version: v1
128128
- api:
129129
crdVersion: v1
@@ -132,7 +132,7 @@ resources:
132132
domain: testproject.org
133133
group: example.com
134134
kind: Memcached
135-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/example.com/v1alpha1
135+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/example.com/v1alpha1
136136
version: v1alpha1
137137
webhooks:
138138
validation: true
@@ -144,6 +144,6 @@ resources:
144144
domain: testproject.org
145145
group: example.com
146146
kind: Busybox
147-
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/example.com/v1alpha1
147+
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/example.com/v1alpha1
148148
version: v1alpha1
149149
version: "3"

testdata/project-v4-multigroup-with-plugins/README.md renamed to testdata/project-v4-multigroup/README.md

Lines changed: 5 additions & 5 deletions

testdata/project-v4-multigroup-with-plugins/cmd/main.go renamed to testdata/project-v4-multigroup/cmd/main.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,24 @@ import (
3535
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3636
"sigs.k8s.io/controller-runtime/pkg/webhook"
3737

38-
crewv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/crew/v1"
39-
examplecomv1alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/example.com/v1alpha1"
40-
fizv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/fiz/v1"
41-
foopolicyv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo.policy/v1"
42-
foov1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo/v1"
43-
seacreaturesv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta1"
44-
seacreaturesv1beta2 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta2"
45-
shipv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1"
46-
shipv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1beta1"
47-
shipv2alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v2alpha1"
48-
appscontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/apps"
49-
crewcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/crew"
50-
examplecomcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/example.com"
51-
fizcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/fiz"
52-
foocontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/foo"
53-
foopolicycontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/foo.policy"
54-
seacreaturescontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/sea-creatures"
55-
shipcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/ship"
38+
crewv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/crew/v1"
39+
examplecomv1alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/example.com/v1alpha1"
40+
fizv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/fiz/v1"
41+
foopolicyv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo.policy/v1"
42+
foov1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo/v1"
43+
seacreaturesv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta1"
44+
seacreaturesv1beta2 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta2"
45+
shipv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1"
46+
shipv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1beta1"
47+
shipv2alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v2alpha1"
48+
appscontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/apps"
49+
crewcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/crew"
50+
examplecomcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/example.com"
51+
fizcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/fiz"
52+
foocontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/foo"
53+
foopolicycontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/foo.policy"
54+
seacreaturescontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/sea-creatures"
55+
shipcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/ship"
5656
// +kubebuilder:scaffold:imports
5757
)
5858

@@ -151,7 +151,7 @@ func main() {
151151
WebhookServer: webhookServer,
152152
HealthProbeBindAddress: probeAddr,
153153
LeaderElection: enableLeaderElection,
154-
LeaderElectionID: "f0637429.testproject.org",
154+
LeaderElectionID: "3e9f67a9.testproject.org",
155155
// LeaderElectionReleaseOnCancel defines if the leader should step down voluntarily
156156
// when the Manager ends. This requires the binary to immediately end when the
157157
// Manager is stopped, otherwise, this setting is unsafe. Setting this significantly

testdata/project-v4-multigroup-with-plugins/config/certmanager/certificate.yaml renamed to testdata/project-v4-multigroup/config/certmanager/certificate.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ apiVersion: cert-manager.io/v1
55
kind: Issuer
66
metadata:
77
labels:
8-
app.kubernetes.io/name: project-v4-multigroup-with-plugins
8+
app.kubernetes.io/name: project-v4-multigroup
99
app.kubernetes.io/managed-by: kustomize
1010
name: selfsigned-issuer
1111
namespace: system
@@ -19,8 +19,8 @@ metadata:
1919
app.kubernetes.io/name: certificate
2020
app.kubernetes.io/instance: serving-cert
2121
app.kubernetes.io/component: certificate
22-
app.kubernetes.io/created-by: project-v4-multigroup-with-plugins
23-
app.kubernetes.io/part-of: project-v4-multigroup-with-plugins
22+
app.kubernetes.io/created-by: project-v4-multigroup
23+
app.kubernetes.io/part-of: project-v4-multigroup
2424
app.kubernetes.io/managed-by: kustomize
2525
name: serving-cert # this name should match the one appeared in kustomizeconfig.yaml
2626
namespace: system

testdata/project-v4-multigroup-with-plugins/config/default/kustomization.yaml renamed to testdata/project-v4-multigroup/config/default/kustomization.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Adds namespace to all resources.
2-
namespace: project-v4-multigroup-with-plugins-system
2+
namespace: project-v4-multigroup-system
33

44
# Value of this field is prepended to the
55
# names of all resources, e.g. a deployment named
66
# "wordpress" becomes "alices-wordpress".
77
# Note that it should also match with the prefix (text before '-') of the namespace
88
# field above.
9-
namePrefix: project-v4-multigroup-with-plugins-
9+
namePrefix: project-v4-multigroup-
1010

1111
# Labels to add to all resources and selectors.
1212
#labels:

testdata/project-v4-multigroup-with-plugins/config/default/manager_webhook_patch.yaml renamed to testdata/project-v4-multigroup/config/default/manager_webhook_patch.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ metadata:
44
name: controller-manager
55
namespace: system
66
labels:
7-
app.kubernetes.io/name: project-v4-multigroup-with-plugins
7+
app.kubernetes.io/name: project-v4-multigroup
88
app.kubernetes.io/managed-by: kustomize
99
spec:
1010
template:

0 commit comments

Comments
 (0)