...
1# Copyright 2023 The cert-manager Authors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15.PHONY: generate-crds-test-e2e
16## Generate end-to-end test CRD manifests.
17## @category [shared] Generate/ Verify
18generate-crds-test-e2e: | $(NEEDS_CONTROLLER-GEN) $(NEEDS_YQ)
19 $(CONTROLLER-GEN) crd \
20 paths=./examples/simple/api/... \
21 output:crd:artifacts:config=./examples/simple/deploy/crds
22
23shared_generate_targets += generate-crds-test-e2e
24
25.PHONY: e2e-setup-cert-manager
26e2e-setup-cert-manager: | kind-cluster $(NEEDS_HELM) $(NEEDS_KUBECTL)
27 $(HELM) upgrade \
28 --install \
29 --create-namespace \
30 --wait \
31 --version $(quay.io/jetstack/cert-manager-controller.TAG) \
32 --namespace cert-manager \
33 --repo https://charts.jetstack.io \
34 --set installCRDs=true \
35 --set image.repository=$(quay.io/jetstack/cert-manager-controller.REPO) \
36 --set image.tag=$(quay.io/jetstack/cert-manager-controller.TAG) \
37 --set image.pullPolicy=Never \
38 --set cainjector.image.repository=$(quay.io/jetstack/cert-manager-cainjector.REPO) \
39 --set cainjector.image.tag=$(quay.io/jetstack/cert-manager-cainjector.TAG) \
40 --set cainjector.image.pullPolicy=Never \
41 --set webhook.image.repository=$(quay.io/jetstack/cert-manager-webhook.REPO) \
42 --set webhook.image.tag=$(quay.io/jetstack/cert-manager-webhook.TAG) \
43 --set webhook.image.pullPolicy=Never \
44 --set startupapicheck.image.repository=$(quay.io/jetstack/cert-manager-startupapicheck.REPO) \
45 --set startupapicheck.image.tag=$(quay.io/jetstack/cert-manager-startupapicheck.TAG) \
46 --set startupapicheck.image.pullPolicy=Never \
47 cert-manager cert-manager >/dev/null
48
49 $(KUBECTL) -n cert-manager apply -f ./make/config/cert-manager/approve.yaml
50
51$(bin_dir)/scratch/yaml/kustomization.yaml: FORCE | $(NEEDS_KUSTOMIZE)
52 rm -rf $(bin_dir)/scratch/yaml
53 mkdir -p $(bin_dir)/scratch/yaml
54
55 cd $(bin_dir)/scratch/yaml; \
56 $(KUSTOMIZE) create \
57 --namespace "my-namespace" \
58 --nameprefix "simple-issuer-" \
59 --resources ../../../examples/simple/deploy/static/
60
61 cd $(bin_dir)/scratch/yaml; \
62 $(KUSTOMIZE) edit set image "controller:latest=$(oci_manager_image_name_development):$(oci_manager_image_tag)"
63
64.PHONY: e2e-setup-simple-issuer
65e2e-setup-simple-issuer: | oci-load-manager $(bin_dir)/scratch/yaml/kustomization.yaml kind-cluster $(NEEDS_KUBECTL)
66 $(KUBECTL) apply -f examples/simple/deploy/crds
67 $(KUBECTL) apply -f examples/simple/deploy/rbac
68 $(KUBECTL) apply -k $(bin_dir)/scratch/yaml/
69
70test-e2e-deps: e2e-setup-cert-manager
71test-e2e-deps: e2e-setup-simple-issuer
72
73.PHONY: test-e2e
74## Smoke end-to-end tests
75## @category Testing
76test-e2e: test-e2e-deps | kind-cluster $(NEEDS_GOTESTSUM) $(ARTIFACTS)
77 $(eval abs_artifacts := $(abspath $(ARTIFACTS)))
78
79 cd ./examples/simple && \
80 GOWORK=off \
81 KUBECONFIG=$(CURDIR)/$(kind_kubeconfig) \
82 $(GOTESTSUM) \
83 --junitfile=$(abs_artifacts)/junit-go-e2e.xml \
84 -- \
85 -coverprofile=$(abs_artifacts)/filtered.cov \
86 ./e2e/... \
87 -- \
88 -ldflags $(go_manager_ldflags)
View as plain text