Merged
Conversation
- Add gateway-service.yaml: ExternalName service pointing to ingress controller - Add ingress.yaml: Auto-generates host from gateway.serviceName + namespace - Update tests to use http://s3-gateway.s3proxy endpoint - Enable gateway + ingress in e2e tests for load balancing verification - Default gateway/ingress to disabled for safer defaults Internal access: gateway.enabled=true, ingress.enabled=true -> endpoint: http://s3-gateway.<namespace> External access: gateway.enabled=false, ingress.enabled=true, hosts=[...] -> endpoint: http://your-domain.com
- Reduce Makefile from 17 targets to 7 essential ones - Rename helm-* targets to cluster-* for clarity - Add trap for EXIT/INT/TERM in test-helm-with-load.sh - cluster-test now auto-cleans on exit or Ctrl+C
- Remove benchmarks folder (tests didn't prove claims) - Rename e2e files from helm-* to cluster-* naming - Add encryption verification to load test (validates AES-GCM format) - Add cluster-test GitHub Action with Docker/Helm caching - Simplify Makefile targets: test, e2e, cluster-test, cluster-up, cluster-load, clean
- Remove embedded MinIO from production Helm chart - Deploy MinIO separately in cluster tests only - Update README: remove performance claims, use Makefile targets - Clean up values.yaml, configmap.yaml, secret.yaml
- Add ListBuckets, ListObjectsV1, object tagging, UploadPartCopy - Move multipart metadata to .s3proxy-internal/ prefix (hidden from list) - Add backwards compatibility for legacy .s3proxy-meta suffix - Fix cluster test shell quoting (cut -c1-32 instead of cut -d' ') - Add comprehensive tests for all new operations
- Add in-memory storage fallback for single-instance deployments - Redis now only required for HA/multi-replica deployments - Rewrite README with clearer Quick Start and How It Works sections - Add comprehensive Kubernetes/Helm production deployment docs - Document credential model and why proxy needs credentials
Use separate columns for gateway and ingress settings instead of combining them in a "Setup" column for better clarity.
The gateway creates an internal Kubernetes DNS name (s3-gateway.<namespace>) for convenience when you don't want to set up external DNS. Removed incorrect claims about request-level load balancing.
Merge Configuration and Configuration Reference into one unified table showing both environment variables and Helm values. Remove redundant documentation and streamline the Production Deployment section.
…erations, topologySpreadConstraints)
- Add helm-install-test.yml: daily smoke test using published GHCR image - Update docker-publish.yml: trigger on main (latest) and tags (versioned) - Add Helm Install status badge to README
- Replace hardcoded username with ${{ github.repository_owner }}
- Add lowercase conversion for GHCR compatibility
- Remove helm --wait flag that caused silent hangs - Add custom wait loop with 30s status updates - Reduce redis-ha replicas (2) and haproxy replicas (1) for faster CI - Show kubectl describe pods on timeout for debugging
- Increase wait timeout from 600s to 1200s (20 min) - Reduce redis-ha.replicas from 2 to 1 for faster initialization - GitHub Actions ubuntu-latest runners (2 vCPU) are slow for Kind + Redis-HA
- Set min-replicas-to-write=0 (no replicas to wait for with 1 node) - Increase timeout to 1800s (30 min) for slow runners - This should fix split-brain-fix init container hanging
- Deploy standalone redis:7-alpine instead of redis-ha chart - redis-ha takes 18+ min to initialize on slow CI runners - Simple Redis starts in seconds - Reduce timeout from 30min to 5min - Update status checks to 15s intervals
- 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
- Deploy simple Redis pod for CI - Set replicaCount=3 for proper multi-pod testing - Verify all 3 pods are running before smoke test
- Pass CI env var to docker-compose container - Reduce CPU from 500m to 100m limit / 50m request for CI - Fixes "Insufficient cpu" scheduling failures on 2-core runners
- Remove -t flag from kubectl run (no TTY in CI) - Add exit code check to fail if load test pod errors - Fixes false positive "Tests passed" when uploads actually failed
- 3x512MB concurrent uploads overwhelm 100m CPU pods - 10MB files still test full upload/download/encryption flow - Prevents 503 Service Unavailable errors on resource-constrained runners
CI (cluster-test.yml): - Self-contained like helm-install-test.yml - Uses helm/kind-action directly - Simple Redis, 3 replicas, low CPU limits - Full load test with encryption verification Local (docker-compose.cluster.yml): - Kept for local development with full redis-ha - Removed CI-specific conditional code - Uses --wait for helm install
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.