Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: 2
updates:
- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
groups:
python-minor-patch:
update-types:
- "minor"
- "patch"
python-major:
update-types:
- "major"

- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 3
2 changes: 0 additions & 2 deletions .github/workflows/helm-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Helm Lint

on:
pull_request:
paths:
- 'chart/**'

jobs:
helm-lint:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Build stage
FROM python:3.14-slim AS builder

COPY --from=ghcr.io/astral-sh/uv:0.9 /uv /usr/local/bin/uv
COPY --from=ghcr.io/astral-sh/uv:0.11 /uv /usr/local/bin/uv

WORKDIR /app

Expand Down
24 changes: 12 additions & 12 deletions e2e/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ services:

echo "=== Installing kind, kubectl, helm (parallel) ==="
wget -qO /usr/local/bin/kind "https://kind.sigs.k8s.io/dl/v0.31.0/kind-linux-$${ARCH}" &
wget -qO /usr/local/bin/kubectl "https://dl.k8s.io/release/v1.32.2/bin/linux/$${ARCH}/kubectl" &
wget -qO- "https://get.helm.sh/helm-v3.14.0-linux-$${ARCH}.tar.gz" | tar xz -C /tmp &
wget -qO /usr/local/bin/kubectl "https://dl.k8s.io/release/v1.34.3/bin/linux/$${ARCH}/kubectl" &
wget -qO- "https://get.helm.sh/helm-v3.20.2-linux-$${ARCH}.tar.gz" | tar xz -C /tmp &
wait
chmod +x /usr/local/bin/kind /usr/local/bin/kubectl
mv /tmp/linux-$${ARCH}/helm /usr/local/bin/helm
Expand All @@ -61,7 +61,7 @@ services:
# Build esrally image with dependencies pre-installed (parallel)
(
printf '%s\n' \
'FROM python:3.12-slim' \
'FROM python:3.14-slim' \
'RUN apt-get update && apt-get install -y --no-install-recommends gcc python3-dev git curl && rm -rf /var/lib/apt/lists/*' \
'RUN pip install --no-cache-dir esrally' \
| docker build -t esrally:latest -f - /tmp
Expand Down Expand Up @@ -118,22 +118,22 @@ services:
" config_path = \"/etc/containerd/certs.d\"" \
"nodes:" \
" - role: control-plane" \
" image: kindest/node:v1.32.2" \
" image: kindest/node:v1.34.3" \
" extraMounts:" \
" - hostPath: $$HOST_PATH" \
" containerPath: /repo" \
" - role: worker" \
" image: kindest/node:v1.32.2" \
" image: kindest/node:v1.34.3" \
" extraMounts:" \
" - hostPath: $$HOST_PATH" \
" containerPath: /repo" \
" - role: worker" \
" image: kindest/node:v1.32.2" \
" image: kindest/node:v1.34.3" \
" extraMounts:" \
" - hostPath: $$HOST_PATH" \
" containerPath: /repo" \
" - role: worker" \
" image: kindest/node:v1.32.2" \
" image: kindest/node:v1.34.3" \
" extraMounts:" \
" - hostPath: $$HOST_PATH" \
" containerPath: /repo" \
Expand Down Expand Up @@ -206,7 +206,7 @@ services:
(
echo "Installing ECK CRDs..."
for i in 1 2 3; do
kubectl apply -f https://download.elastic.co/downloads/eck/3.2.0/crds.yaml && break
kubectl apply -f https://download.elastic.co/downloads/eck/3.3.2/crds.yaml && break
echo "ECK CRDs apply failed, retry $$i..."
sleep 5
done
Expand All @@ -216,7 +216,7 @@ services:
kubectl wait --for=condition=Established crd/kibanas.kibana.k8s.elastic.co --timeout=60s
echo "Installing ECK operator..."
for i in 1 2 3; do
kubectl apply -f https://download.elastic.co/downloads/eck/3.2.0/operator.yaml && break
kubectl apply -f https://download.elastic.co/downloads/eck/3.3.2/operator.yaml && break
echo "ECK operator apply failed, retry $$i..."
sleep 5
done
Expand Down Expand Up @@ -245,12 +245,12 @@ services:
# 4. cert-manager + Scylla Operator + Scylla Manager (sequential chain in single background job)
(
# cert-manager
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.2/cert-manager.yaml
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.0/cert-manager.yaml
kubectl wait --namespace cert-manager --for=condition=ready pod --all --timeout=300s
echo "✓ cert-manager ready"

# Scylla Operator (requires cert-manager)
kubectl apply --server-side -f https://raw.githubusercontent.com/scylladb/scylla-operator/v1.19.0/deploy/operator.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/scylladb/scylla-operator/v1.20.2/deploy/operator.yaml
kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=scylla-operator -n scylla-operator --timeout=300s
kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=webhook-server -n scylla-operator --timeout=300s
# Wait for webhook to be fully ready
Expand All @@ -275,7 +275,7 @@ services:
| kubectl apply -f -

# manager-prod.yaml creates a ScyllaCluster backend for the manager
kubectl apply --server-side -f https://raw.githubusercontent.com/scylladb/scylla-operator/v1.19.0/deploy/manager-prod.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/scylladb/scylla-operator/v1.20.2/deploy/manager-prod.yaml

# Wait for backend DB pods to appear
echo "Waiting for Scylla Manager backend DB pods..."
Expand Down
52 changes: 26 additions & 26 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,40 +20,40 @@ keywords = [
]
requires-python = ">=3.14"
dependencies = [
"fastapi>=0.109.0",
"uvicorn[standard]>=0.27.0",
"aioboto3>=13.0.0",
"boto3>=1.34.0",
"botocore>=1.34.0",
"cryptography>=42.0.0",
"pydantic>=2.5.0",
"pydantic-settings>=2.1.0",
"structlog>=24.1.0",
"httpx[http2]>=0.26.0",
"python-multipart>=0.0.6",
"fastapi>=0.136.0",
"uvicorn[standard]>=0.45.0",
"aioboto3>=15.5.0",
"boto3>=1.40.0",
"botocore>=1.40.0",
"cryptography>=46.0.0",
"pydantic>=2.13.0",
"pydantic-settings>=2.14.0",
"structlog>=25.5.0",
"httpx[http2]>=0.28.0",
"python-multipart>=0.0.26",
# Performance optimizations
"uvloop>=0.19.0; sys_platform != 'win32'",
"orjson>=3.9.0",
"uvloop>=0.22.0; sys_platform != 'win32'",
"orjson>=3.11.0",
# Redis for distributed state
"redis[hiredis]>=5.0.0",
"redis[hiredis]>=7.4.0",
# Memory monitoring
"psutil>=5.9.0",
"psutil>=7.2.0",
# Prometheus metrics
"prometheus-client>=0.20.0",
"prometheus-client>=0.25.0",
]

[project.optional-dependencies]
dev = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-cov>=4.1.0",
"pytest-xdist>=3.5.0",
"moto[s3]>=5.0.0",
"ruff>=0.2.0",
"mypy>=1.8.0",
"boto3-stubs[s3]>=1.34.0",
"fakeredis>=2.21.0",
"requests>=2.31.0",
"pytest>=9.0.0",
"pytest-asyncio>=1.3.0",
"pytest-cov>=7.1.0",
"pytest-xdist>=3.8.0",
"moto[s3]>=5.1.0",
"ruff>=0.15.0",
"mypy>=1.20.0",
"boto3-stubs[s3]>=1.42.0",
"fakeredis>=2.35.0",
"requests>=2.33.0",
]

[project.scripts]
Expand Down
2 changes: 1 addition & 1 deletion tests/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
redis:
image: redis:7-alpine
image: redis:8-alpine
container_name: s3proxy-test-redis
ports:
- "6379:6379"
Expand Down
Loading
Loading