Skip to content

Commit 141e97e

Browse files
committed
fixed e2e tests (via refactoring of image registry setup)
Signed-off-by: Joe Lanford <joe.lanford@gmail.com>
1 parent 7bf9b64 commit 141e97e

33 files changed

+232
-256
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,6 @@ E2E_REGISTRY_IMAGE=localhost/e2e-test-registry:devel
244244
image-registry: export GOOS=linux
245245
image-registry: export GOARCH=amd64
246246
image-registry: ## Build the testdata catalog used for e2e tests and push it to the image registry
247-
go build $(GO_BUILD_FLAGS) $(GO_BUILD_EXTRA_FLAGS) -tags '$(GO_BUILD_TAGS)' -ldflags '$(GO_BUILD_LDFLAGS)' -gcflags '$(GO_BUILD_GCFLAGS)' -asmflags '$(GO_BUILD_ASMFLAGS)' -o ./testdata/registry/bin/registry ./testdata/registry/registry.go
248247
go build $(GO_BUILD_FLAGS) $(GO_BUILD_EXTRA_FLAGS) -tags '$(GO_BUILD_TAGS)' -ldflags '$(GO_BUILD_LDFLAGS)' -gcflags '$(GO_BUILD_GCFLAGS)' -asmflags '$(GO_BUILD_ASMFLAGS)' -o ./testdata/push/bin/push ./testdata/push/push.go
249248
$(CONTAINER_RUNTIME) build -f ./testdata/Dockerfile -t $(E2E_REGISTRY_IMAGE) ./testdata
250249
$(CONTAINER_RUNTIME) save $(E2E_REGISTRY_IMAGE) | $(KIND) load image-archive /dev/stdin --name $(KIND_CLUSTER_NAME)
@@ -263,6 +262,7 @@ test-e2e: run image-registry e2e e2e-coverage kind-clean #HELP Run e2e test suit
263262

264263
.PHONY: extension-developer-e2e
265264
extension-developer-e2e: KIND_CLUSTER_NAME := operator-controller-ext-dev-e2e
265+
extension-developer-e2e: KUSTOMIZE_BUILD_DIR := config-new/overlays/community-e2e
266266
extension-developer-e2e: export INSTALL_DEFAULT_CATALOGS := false
267267
extension-developer-e2e: run image-registry test-ext-dev-e2e kind-clean #EXHELP Run extension-developer e2e on local kind cluster
268268

@@ -356,7 +356,7 @@ run: docker-build kind-cluster kind-load kind-deploy wait #HELP Build the operat
356356
CATD_NAMESPACE := olmv1-system
357357
wait:
358358
kubectl wait --for=condition=Available --namespace=$(CATD_NAMESPACE) deployment/catalogd-controller-manager --timeout=60s
359-
kubectl wait --for=condition=Ready --namespace=$(CATD_NAMESPACE) certificate/catalogd-service-cert # Avoid upgrade test flakes when reissuing cert
359+
kubectl wait --for=condition=Ready --namespace=$(CATD_NAMESPACE) certificate/catalogd-cert # Avoid upgrade test flakes when reissuing cert
360360

361361
.PHONY: docker-build
362362
docker-build: build-linux #EXHELP Build docker image for operator-controller and catalog with GOOS=linux and local GOARCH.

cmd/catalogd/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ func run(ctx context.Context) error {
199199
}
200200
cfg.externalAddr = protocol + cfg.externalAddr
201201

202+
setupLog.Info("server certificate", "cert", cfg.certFile, "key", cfg.keyFile)
202203
cw, err := certwatcher.New(cfg.certFile, cfg.keyFile)
203204
if err != nil {
204205
setupLog.Error(err, "failed to initialize certificate watcher")

config-new/components/cert-manager/catalogd_certificate.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
apiVersion: cert-manager.io/v1
22
kind: Certificate
33
metadata:
4-
name: catalogd-service-cert
4+
name: catalogd-cert
55
namespace: __NAMESPACE_PLACEHOLDER__
66
spec:
7-
secretName: catalogd-service-cert-${VERSION}
7+
secretName: catalogd-cert-${VERSION}
88
dnsNames:
99
- catalogd-service.__NAMESPACE_PLACEHOLDER__.svc
1010
- catalogd-service.__NAMESPACE_PLACEHOLDER__.svc.cluster.local

config-new/components/cert-manager/operator_controller_certificate.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
apiVersion: cert-manager.io/v1
22
kind: Certificate
33
metadata:
4-
name: olmv1-cert
4+
name: operator-controller-cert
55
spec:
6-
secretName: olmv1-cert
6+
secretName: operator-controller-cert
77
dnsNames:
88
- operator-controller-service.__NAMESPACE_PLACEHOLDER__.svc
99
- operator-controller-service.__NAMESPACE_PLACEHOLDER__.svc.cluster.local
Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
1+
# operator-controller's server cert (e.g. for serving the catalogd API and prometheus metrics)
12
- op: add
23
path: /spec/template/spec/volumes/-
3-
value: {"name":"olmv1-certificate", "secret":{"secretName":"catalogd-service-cert-${VERSION}", "optional": false, "items": [{"key": "ca.crt", "path": "olm-ca.crt"}]}}
4+
value: {"name":"server-cert","secret":{"secretName":"catalogd-cert-${VERSION}","optional":false,"items":[{"key":"tls.crt","path":"tls.crt"},{"key":"tls.key","path":"tls.key"}]}}
45
- op: add
56
path: /spec/template/spec/containers/0/volumeMounts/-
6-
value: {"name":"olmv1-certificate", "readOnly": true, "mountPath":"/var/ca-certs/"}
7+
value: {"name":"server-cert","mountPath":"/var/server-cert"}
78
- op: add
89
path: /spec/template/spec/containers/0/args/-
9-
value: "--pull-cas-dir=/var/ca-certs"
10-
- op: add
11-
path: /spec/template/spec/volumes/-
12-
value: {"name":"catalogserver-certs", "secret":{"secretName":"catalogd-service-cert-${VERSION}"}}
13-
- op: add
14-
path: /spec/template/spec/containers/0/volumeMounts/-
15-
value: {"name":"catalogserver-certs", "mountPath":"/var/certs"}
16-
- op: add
17-
path: /spec/template/spec/containers/0/args/-
18-
value: "--tls-cert=/var/certs/tls.crt"
10+
value: "--tls-cert=/var/server-cert/tls.crt"
1911
- op: add
2012
path: /spec/template/spec/containers/0/args/-
21-
value: "--tls-key=/var/certs/tls.key"
13+
value: "--tls-key=/var/server-cert/tls.key"
Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
1+
# operator-controller's server cert (e.g. for serving prometheus metrics)
12
- op: add
23
path: /spec/template/spec/volumes/-
3-
value: {"name":"olmv1-certificate", "secret":{"secretName":"olmv1-cert", "optional": false, "items": [{"key": "ca.crt", "path": "olm-ca.crt"}, {"key": "tls.crt", "path": "tls.cert"}, {"key": "tls.key", "path": "tls.key"}]}}
4+
value: {"name":"server-cert", "secret":{"secretName":"operator-controller-cert", "optional": false, "items": [{"key": "tls.crt", "path": "tls.cert"}, {"key": "tls.key", "path": "tls.key"}]}}
45
- op: add
56
path: /spec/template/spec/containers/0/volumeMounts/-
6-
value: {"name":"olmv1-certificate", "readOnly": true, "mountPath":"/var/certs/"}
7+
value: {"name":"server-cert", "readOnly": true, "mountPath":"/var/certs/server-cert"}
78
- op: add
89
path: /spec/template/spec/containers/0/args/-
9-
value: "--catalogd-cas-dir=/var/certs"
10+
value: "--tls-cert=/var/certs/server-cert/tls.cert"
1011
- op: add
1112
path: /spec/template/spec/containers/0/args/-
12-
value: "--pull-cas-dir=/var/certs"
13+
value: "--tls-key=/var/certs/server-cert/tls.key"
14+
15+
# catalogd CA, so that operator-controller's http client can verify catalogd's server cert
1316
- op: add
14-
path: /spec/template/spec/containers/0/args/-
15-
value: "--tls-cert=/var/certs/tls.cert"
17+
path: /spec/template/spec/volumes/-
18+
value: {"name":"catalogd-ca", "secret":{"secretName":"catalogd-cert-${VERSION}", "optional": false, "items":[{"key": "ca.crt", "path": "ca.crt"}]}}
19+
- op: add
20+
path: /spec/template/spec/containers/0/volumeMounts/-
21+
value: {"name":"catalogd-ca", "readOnly": true, "mountPath":"/var/certs/catalogd-ca"}
1622
- op: add
1723
path: /spec/template/spec/containers/0/args/-
18-
value: "--tls-key=/var/certs/tls.key"
24+
value: "--catalogd-cas-dir=/var/certs/catalogd-ca"
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
apiVersion: cert-manager.io/v1
2+
kind: Issuer
3+
metadata:
4+
name: e2e-self-sign-issuer
5+
namespace: cert-manager
6+
spec:
7+
selfSigned: {}
8+
---
9+
apiVersion: cert-manager.io/v1
10+
kind: Certificate
11+
metadata:
12+
name: e2e-ca
13+
namespace: cert-manager
14+
spec:
15+
isCA: true
16+
commonName: e2e-ca
17+
secretName: e2e-ca
18+
secretTemplate:
19+
annotations:
20+
cert-manager.io/allow-direct-injection: "true"
21+
privateKey:
22+
algorithm: ECDSA
23+
size: 256
24+
issuerRef:
25+
name: e2e-self-sign-issuer
26+
kind: Issuer
27+
group: cert-manager.io
28+
---
29+
apiVersion: cert-manager.io/v1
30+
kind: ClusterIssuer
31+
metadata:
32+
name: e2e-ca
33+
spec:
34+
ca:
35+
secretName: e2e-ca
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: kustomize.config.k8s.io/v1alpha1
2+
kind: Component
3+
4+
resources:
5+
- e2e_cluster_issuer.yaml

config-new/components/e2e/coverage_copy_pod.yaml renamed to config-new/components/e2e/install-namespace/coverage_copy_pod.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apiVersion: v1
22
kind: Pod
33
metadata:
44
name: e2e-coverage-copy-pod
5+
namespace: olmv1-system
56
spec:
67
restartPolicy: Never
78
securityContext:

config-new/components/e2e/coverage_pvc.yaml renamed to config-new/components/e2e/install-namespace/coverage_pvc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apiVersion: v1
22
kind: PersistentVolumeClaim
33
metadata:
44
name: e2e-coverage
5+
namespace: olmv1-system
56
spec:
67
accessModes:
78
- ReadWriteOnce

0 commit comments

Comments
 (0)