Skip to content

Commit d3fb90c

Browse files
committed
Add end-to-end chart test
1 parent 672487f commit d3fb90c

File tree

3 files changed

+69
-3
lines changed

3 files changed

+69
-3
lines changed

.github/workflows/chart.yaml

+3-1
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,12 @@ jobs:
153153
if: steps.list-changed.outputs.changed == 'true'
154154
run: |
155155
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
156+
helm repo add bitnami https://charts.bitnami.com/bitnami
156157
helm repo update
157158
helm install prometheus-operator-crds prometheus-community/prometheus-operator-crds --wait
159+
helm install postgresql bitnami/postgresql --wait
158160
helm install unleasherator-crds ./charts/unleasherator-crds --wait
159-
ct install --charts ./charts/unleasherator --target-branch ${{ github.event.repository.default_branch }}
161+
ct install --charts ./charts/unleasherator --target-branch ${{ github.event.repository.default_branch }} --helm-extra-args '--timeout 400s'
160162
161163
push:
162164
permissions:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
apiVersion: unleash.nais.io/v1
3+
kind: Unleash
4+
metadata:
5+
name: unleash-connection-test
6+
namespace: default
7+
labels:
8+
app.kubernetes.io/name: unleash-connection-test
9+
app.kubernetes.io/part-of: unleasherator
10+
spec:
11+
size: 1
12+
customImage: unleashorg/unleash-server:5
13+
database:
14+
secretName: postgres-postgresql
15+
secretPassKey: postgres-password
16+
host: postgres-postgresql
17+
databaseName: postgres
18+
port: "5432"
19+
user: postgres
20+
ssl: "false"
21+
extraEnvVars:
22+
- name: ENABLE_OAS
23+
value: "true"
24+
networkPolicy:
25+
enabled: true
26+
allowDNS: true
27+
extraEgressRules:
28+
- to:
29+
- podSelector:
30+
matchLabels:
31+
app.kubernetes.io/name: postgresql
32+
ports:
33+
- protocol: TCP
34+
port: 5432
35+
---
36+
apiVersion: v1
37+
kind: Pod
38+
metadata:
39+
name: unleash-connection-test
40+
namespace: default
41+
labels:
42+
app.kubernetes.io/name: unleash-connection-test
43+
app.kubernetes.io/part-of: unleasherator
44+
annotations:
45+
"helm.sh/hook": test
46+
"helm.sh/hook-delete-policy": hook-succeeded
47+
spec:
48+
containers:
49+
- name: connection-test
50+
image: curlimages/curl:7.88.1
51+
command:
52+
- sh
53+
- -c
54+
- |
55+
echo "Testing connection to Unleash server..."
56+
curl -s --retry 10 --retry-delay 5 --retry-connrefused http://unleash-connection-test:4242/api/admin/health -o /dev/null -w "HTTP Status: %{http_code}\n"
57+
if [ $? -eq 0 ]; then
58+
echo "Connection successful!"
59+
exit 0
60+
else
61+
echo "Connection failed!"
62+
exit 1
63+
fi
64+
restartPolicy: Never

controllers/unleash_controller.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -308,9 +308,9 @@ func (r *UnleashReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
308308
// avoid testing connection to the previous instance if the Deployment is not
309309
// ready yet. Delay requeue to avoid tying up the reconciler since waiting is
310310
// done in the same reconcile loop.
311-
log.Info("Waiting for Deployment rollout to finish")
311+
log.WithValues("timeout", deploymentTimeout).Info("Waiting for Deployment rollout to finish")
312312
if err = r.waitForDeployment(ctx, deploymentTimeout, req.NamespacedName); err != nil {
313-
if err := r.updateStatusReconcileFailed(ctx, unleash, err, "Deployment rollout timed out"); err != nil {
313+
if err := r.updateStatusReconcileFailed(ctx, unleash, err, fmt.Sprintf("Deployment rollout timed out after %s", deploymentTimeout)); err != nil {
314314
return ctrl.Result{RequeueAfter: deploymentTimeout}, err
315315
}
316316
return ctrl.Result{RequeueAfter: deploymentTimeout}, err

0 commit comments

Comments
 (0)