Skip to content

Commit

Permalink
add e2e tests for multigroup testdata layout and rename sample
Browse files Browse the repository at this point in the history
We need to rename the name of the sample because of:

```shell
The Service "project-v4-multigroup-with-plugins-controller-manager-metrics-service" is invalid: metadata.name: Invalid value: "project-v4-multigroup-with-plugins-controller-manager-metrics-service": must be no more than 63 characters
```

Therefore, in this we are:
- Creating jobs to run the e2e tests for all testdata samples in parallel
- Renaming the sample project-v4-multigroup-with-plugins to project-v4-multigroup to generate manifests names that can be accepted in k8s
  • Loading branch information
camilamacedo86 committed Sep 11, 2024
1 parent faf4465 commit 835844d
Show file tree
Hide file tree
Showing 184 changed files with 251 additions and 249 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/test-e2e-samples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
run: |
make test-e2e
e2e-tests-project-v4-multigroup-with-plugins:
e2e-tests-project-v4-multigroup:
runs-on: ubuntu-latest
strategy:
fail-fast: true
Expand All @@ -126,16 +126,16 @@ jobs:
- name: Create kind cluster
run: kind create cluster

- name: Prepare project-v4-multigroup-with-plugins
- name: Prepare project-v4-multigroup
run: |
KUSTOMIZATION_FILE_PATH="testdata/project-v4-with-plugins/config/default/kustomization.yaml"
KUSTOMIZATION_FILE_PATH="testdata/project-v4-multigroup/config/default/kustomization.yaml"
sed -i '25s/^#//' $KUSTOMIZATION_FILE_PATH
sed -i '51s/^#//' $KUSTOMIZATION_FILE_PATH
sed -i '55,151s/^#//' $KUSTOMIZATION_FILE_PATH
cd testdata/project-v4-multigroup-with-plugins
cd testdata/project-v4-multigroup
go mod tidy
- name: Testing make test-e2e for project-v4-multigroup-with-plugins
working-directory: testdata/project-v4-multigroup-with-plugins/
- name: Testing make test-e2e for project-v4-multigroup
working-directory: testdata/project-v4-multigroup/
run: |
make test-e2e
4 changes: 3 additions & 1 deletion test/testdata/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,9 @@ function scaffold_test_project {
$kb edit --plugins=grafana.kubebuilder.io/v1-alpha
fi

make all
make build-installer
# To avoid conflicts
rm -f go.sum
go mod tidy
popd
Expand All @@ -89,5 +91,5 @@ function scaffold_test_project {
build_kb

scaffold_test_project project-v4 --plugins="go/v4"
scaffold_test_project project-v4-multigroup-with-plugins --plugins="go/v4"
scaffold_test_project project-v4-multigroup --plugins="go/v4"
scaffold_test_project project-v4-with-plugins --plugins="go/v4"
2 changes: 1 addition & 1 deletion test/testdata/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ build_kb

# Project version v4-alpha
test_project project-v4
test_project project-v4-multigroup-with-plugins
test_project project-v4-multigroup
test_project project-v4-with-plugins
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -120,10 +120,10 @@ PLATFORMS ?= linux/arm64,linux/amd64,linux/s390x,linux/ppc64le
docker-buildx: ## Build and push docker image for the manager for cross-platform support
# copy existing Dockerfile and insert --platform=${BUILDPLATFORM} into Dockerfile.cross, and preserve the original Dockerfile
sed -e '1 s/\(^FROM\)/FROM --platform=\$$\{BUILDPLATFORM\}/; t' -e ' 1,// s//FROM --platform=\$$\{BUILDPLATFORM\}/' Dockerfile > Dockerfile.cross
- $(CONTAINER_TOOL) buildx create --name project-v4-multigroup-with-plugins-builder
$(CONTAINER_TOOL) buildx use project-v4-multigroup-with-plugins-builder
- $(CONTAINER_TOOL) buildx create --name project-v4-multigroup-builder
$(CONTAINER_TOOL) buildx use project-v4-multigroup-builder
- $(CONTAINER_TOOL) buildx build --push --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile.cross .
- $(CONTAINER_TOOL) buildx rm project-v4-multigroup-with-plugins-builder
- $(CONTAINER_TOOL) buildx rm project-v4-multigroup-builder
rm Dockerfile.cross

.PHONY: build-installer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ plugins:
image: busybox:1.36.1
version: v1alpha1
grafana.kubebuilder.io/v1-alpha: {}
projectName: project-v4-multigroup-with-plugins
repo: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins
projectName: project-v4-multigroup
repo: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup
resources:
- api:
crdVersion: v1
Expand All @@ -35,7 +35,7 @@ resources:
domain: testproject.org
group: crew
kind: Captain
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/crew/v1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/crew/v1
version: v1
webhooks:
defaulting: true
Expand All @@ -48,7 +48,7 @@ resources:
domain: testproject.org
group: ship
kind: Frigate
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1beta1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1beta1
version: v1beta1
webhooks:
conversion: true
Expand All @@ -59,7 +59,7 @@ resources:
domain: testproject.org
group: ship
kind: Destroyer
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1
version: v1
webhooks:
defaulting: true
Expand All @@ -70,7 +70,7 @@ resources:
domain: testproject.org
group: ship
kind: Cruiser
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v2alpha1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v2alpha1
version: v2alpha1
webhooks:
validation: true
Expand All @@ -82,7 +82,7 @@ resources:
domain: testproject.org
group: sea-creatures
kind: Kraken
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta1
version: v1beta1
- api:
crdVersion: v1
Expand All @@ -91,7 +91,7 @@ resources:
domain: testproject.org
group: sea-creatures
kind: Leviathan
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta2
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta2
version: v1beta2
- api:
crdVersion: v1
Expand All @@ -100,7 +100,7 @@ resources:
domain: testproject.org
group: foo.policy
kind: HealthCheckPolicy
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo.policy/v1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo.policy/v1
version: v1
- controller: true
group: apps
Expand All @@ -114,7 +114,7 @@ resources:
domain: testproject.org
group: foo
kind: Bar
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo/v1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo/v1
version: v1
- api:
crdVersion: v1
Expand All @@ -123,7 +123,7 @@ resources:
domain: testproject.org
group: fiz
kind: Bar
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/fiz/v1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/fiz/v1
version: v1
- api:
crdVersion: v1
Expand All @@ -132,7 +132,7 @@ resources:
domain: testproject.org
group: example.com
kind: Memcached
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/example.com/v1alpha1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/example.com/v1alpha1
version: v1alpha1
webhooks:
validation: true
Expand All @@ -144,6 +144,6 @@ resources:
domain: testproject.org
group: example.com
kind: Busybox
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/example.com/v1alpha1
path: sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/example.com/v1alpha1
version: v1alpha1
version: "3"
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# project-v4-multigroup-with-plugins
# project-v4-multigroup
// TODO(user): Add simple overview of use/purpose

## Description
Expand All @@ -16,7 +16,7 @@
**Build and push your image to the location specified by `IMG`:**

```sh
make docker-build docker-push IMG=<some-registry>/project-v4-multigroup-with-plugins:tag
make docker-build docker-push IMG=<some-registry>/project-v4-multigroup:tag
```

**NOTE:** This image ought to be published in the personal registry you specified.
Expand All @@ -32,7 +32,7 @@ make install
**Deploy the Manager to the cluster with the image specified by `IMG`:**

```sh
make deploy IMG=<some-registry>/project-v4-multigroup-with-plugins:tag
make deploy IMG=<some-registry>/project-v4-multigroup:tag
```

> **NOTE**: If you encounter RBAC errors, you may need to grant yourself cluster-admin
Expand Down Expand Up @@ -73,7 +73,7 @@ Following are the steps to build the installer and distribute this project to us
1. Build the installer for the image built and published in the registry:

```sh
make build-installer IMG=<some-registry>/project-v4-multigroup-with-plugins:tag
make build-installer IMG=<some-registry>/project-v4-multigroup:tag
```

NOTE: The makefile target mentioned above generates an 'install.yaml'
Expand All @@ -86,7 +86,7 @@ its dependencies.
Users can just run kubectl apply -f <URL for YAML BUNDLE> to install the project, i.e.:

```sh
kubectl apply -f https://raw.githubusercontent.com/<org>/project-v4-multigroup-with-plugins/<tag or branch>/dist/install.yaml
kubectl apply -f https://raw.githubusercontent.com/<org>/project-v4-multigroup/<tag or branch>/dist/install.yaml
```

## Contributing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,24 @@ import (
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"

crewv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/crew/v1"
examplecomv1alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/example.com/v1alpha1"
fizv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/fiz/v1"
foopolicyv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo.policy/v1"
foov1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/foo/v1"
seacreaturesv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta1"
seacreaturesv1beta2 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/sea-creatures/v1beta2"
shipv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1"
shipv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v1beta1"
shipv2alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/api/ship/v2alpha1"
appscontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/apps"
crewcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/crew"
examplecomcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/example.com"
fizcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/fiz"
foocontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/foo"
foopolicycontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/foo.policy"
seacreaturescontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/sea-creatures"
shipcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup-with-plugins/internal/controller/ship"
crewv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/crew/v1"
examplecomv1alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/example.com/v1alpha1"
fizv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/fiz/v1"
foopolicyv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo.policy/v1"
foov1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/foo/v1"
seacreaturesv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta1"
seacreaturesv1beta2 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/sea-creatures/v1beta2"
shipv1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1"
shipv1beta1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v1beta1"
shipv2alpha1 "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/api/ship/v2alpha1"
appscontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/apps"
crewcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/crew"
examplecomcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/example.com"
fizcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/fiz"
foocontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/foo"
foopolicycontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/foo.policy"
seacreaturescontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/sea-creatures"
shipcontroller "sigs.k8s.io/kubebuilder/testdata/project-v4-multigroup/internal/controller/ship"
// +kubebuilder:scaffold:imports
)

Expand Down Expand Up @@ -151,7 +151,7 @@ func main() {
WebhookServer: webhookServer,
HealthProbeBindAddress: probeAddr,
LeaderElection: enableLeaderElection,
LeaderElectionID: "f0637429.testproject.org",
LeaderElectionID: "3e9f67a9.testproject.org",
// LeaderElectionReleaseOnCancel defines if the leader should step down voluntarily
// when the Manager ends. This requires the binary to immediately end when the
// Manager is stopped, otherwise, this setting is unsafe. Setting this significantly
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
labels:
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: selfsigned-issuer
namespace: system
Expand All @@ -19,8 +19,8 @@ metadata:
app.kubernetes.io/name: certificate
app.kubernetes.io/instance: serving-cert
app.kubernetes.io/component: certificate
app.kubernetes.io/created-by: project-v4-multigroup-with-plugins
app.kubernetes.io/part-of: project-v4-multigroup-with-plugins
app.kubernetes.io/created-by: project-v4-multigroup
app.kubernetes.io/part-of: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: serving-cert # this name should match the one appeared in kustomizeconfig.yaml
namespace: system
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Adds namespace to all resources.
namespace: project-v4-multigroup-with-plugins-system
namespace: project-v4-multigroup-system

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

# Labels to add to all resources and selectors.
#labels:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
name: controller-manager
namespace: system
labels:
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
spec:
template:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: Service
metadata:
labels:
control-plane: controller-manager
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: controller-manager-metrics-service
namespace: system
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
labels:
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: mutating-webhook-configuration
annotations:
Expand All @@ -17,8 +17,8 @@ metadata:
app.kubernetes.io/name: validatingwebhookconfiguration
app.kubernetes.io/instance: validating-webhook-configuration
app.kubernetes.io/component: webhook
app.kubernetes.io/created-by: project-v4-multigroup-with-plugins
app.kubernetes.io/part-of: project-v4-multigroup-with-plugins
app.kubernetes.io/created-by: project-v4-multigroup
app.kubernetes.io/part-of: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: validating-webhook-configuration
annotations:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: Namespace
metadata:
labels:
control-plane: controller-manager
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: system
---
Expand All @@ -14,7 +14,7 @@ metadata:
namespace: system
labels:
control-plane: controller-manager
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
spec:
selector:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: allow-metrics-traffic
namespace: system
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: allow-webhook-traffic
namespace: system
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ kind: ServiceMonitor
metadata:
labels:
control-plane: controller-manager
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: controller-manager-metrics-monitor
namespace: system
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/name: project-v4-multigroup-with-plugins
app.kubernetes.io/name: project-v4-multigroup
app.kubernetes.io/managed-by: kustomize
name: crew-captain-editor-role
rules:
Expand Down
Loading

0 comments on commit 835844d

Please sign in to comment.