Skip to content

Commit 34c1932

Browse files
fix: use simple Redis in CI, full redis-ha locally
- Check CI env var to switch between modes - CI: simple redis:7-alpine pod (fast startup) - Local: full redis-ha with --wait (complete HA testing) - GitHub Actions sets CI=true automatically
1 parent 1c871df commit 34c1932

1 file changed

Lines changed: 50 additions & 28 deletions

File tree

e2e/docker-compose.cluster.yml

Lines changed: 50 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,16 @@ services:
154154
helm repo add dandydeveloper https://dandydeveloper.github.io/charts
155155
helm repo update
156156
157-
# Build helm dependencies (skip if redis-ha disabled)
158-
helm dependency build /app/manifests || true
157+
# Build helm dependencies
158+
helm dependency build /app/manifests
159159
160-
# Deploy simple Redis for CI (much faster than redis-ha)
161-
echo "Deploying simple Redis for CI..."
162-
kubectl apply -n s3proxy -f - <<REDIS_EOF
160+
# Generate encryption key for testing
161+
ENCRYPT_KEY=$$(openssl rand -base64 32)
162+
163+
# CI uses simple Redis (fast), local uses redis-ha (complete)
164+
if [ "$${CI:-false}" = "true" ]; then
165+
echo "CI detected - deploying simple Redis for speed..."
166+
kubectl apply -n s3proxy -f - <<REDIS_EOF
163167
apiVersion: apps/v1
164168
kind: Deployment
165169
metadata:
@@ -194,31 +198,49 @@ services:
194198
ports:
195199
- port: 6379
196200
REDIS_EOF
197-
198-
echo "Waiting for Redis to be ready..."
199-
kubectl wait --for=condition=ready pod -l app=redis -n s3proxy --timeout=120s
200-
201-
# Generate encryption key for testing
202-
ENCRYPT_KEY=$$(openssl rand -base64 32)
203-
echo "Installing Helm chart..."
204-
helm upgrade --install s3proxy /app/manifests \
205-
-n s3proxy \
206-
--set image.repository=s3proxy \
207-
--set image.pullPolicy=IfNotPresent \
208-
--set s3.host="http://minio:9000" \
209-
--set secrets.encryptKey="$$ENCRYPT_KEY" \
210-
--set secrets.awsAccessKeyId="minioadmin" \
211-
--set secrets.awsSecretAccessKey="minioadmin" \
212-
--set gateway.enabled=true \
213-
--set ingress.enabled=true \
214-
--set resources.limits.cpu=500m \
215-
--set resources.requests.cpu=500m \
216-
--set redis-ha.enabled=false \
217-
--set externalRedis.url="redis://redis:6379/0"
201+
kubectl wait --for=condition=ready pod -l app=redis -n s3proxy --timeout=120s
202+
203+
echo "Installing Helm chart (simple Redis)..."
204+
helm upgrade --install s3proxy /app/manifests \
205+
-n s3proxy \
206+
--set image.repository=s3proxy \
207+
--set image.pullPolicy=IfNotPresent \
208+
--set s3.host="http://minio:9000" \
209+
--set secrets.encryptKey="$$ENCRYPT_KEY" \
210+
--set secrets.awsAccessKeyId="minioadmin" \
211+
--set secrets.awsSecretAccessKey="minioadmin" \
212+
--set gateway.enabled=true \
213+
--set ingress.enabled=true \
214+
--set resources.limits.cpu=500m \
215+
--set resources.requests.cpu=500m \
216+
--set redis-ha.enabled=false \
217+
--set externalRedis.url="redis://redis:6379/0"
218+
219+
TIMEOUT=300
220+
else
221+
echo "Local environment - deploying full redis-ha..."
222+
helm upgrade --install s3proxy /app/manifests \
223+
-n s3proxy --wait --timeout 1800s \
224+
--set image.repository=s3proxy \
225+
--set image.pullPolicy=IfNotPresent \
226+
--set s3.host="http://minio:9000" \
227+
--set secrets.encryptKey="$$ENCRYPT_KEY" \
228+
--set secrets.awsAccessKeyId="minioadmin" \
229+
--set secrets.awsSecretAccessKey="minioadmin" \
230+
--set gateway.enabled=true \
231+
--set ingress.enabled=true \
232+
--set resources.limits.cpu=500m \
233+
--set resources.requests.cpu=500m \
234+
--set redis-ha.persistentVolume.enabled=false \
235+
--set redis-ha.hardAntiAffinity=false \
236+
--set redis-ha.affinity=null \
237+
--set redis-ha.haproxy.hardAntiAffinity=false \
238+
--set redis-ha.haproxy.affinity=null
239+
240+
TIMEOUT=60
241+
fi
218242
219243
echo "=== Waiting for s3proxy to be ready ==="
220-
# Wait with progress updates every 15s (5 min should be enough without redis-ha)
221-
TIMEOUT=300
222244
ELAPSED=0
223245
while [ $$ELAPSED -lt $$TIMEOUT ]; do
224246
echo "--- Status at $${ELAPSED}s ---"

0 commit comments

Comments
 (0)