Initial commit

This commit is contained in:
Scooby Husky
2026-03-09 20:21:35 -05:00
commit aacb8eebbe
314 changed files with 21766 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
# infrastructure/scylla/cluster-values.yaml
# ScyllaCluster (database)
# Homelab-friendly mode (reduced kernel tuning requirements)
developerMode: true
# Use your Ceph-backed default StorageClass
racks:
- name: rack-a
members: 3
storage:
storageClassName: rook-ceph-block
capacity: 50Gi
# Requests drive scheduling; keep low for bootstrap.
# Limits drive Scylla shard count (cpu limit = shard count).
resources:
requests:
cpu: 10m
memory: 512Mi
limits:
cpu: 2
memory: 4Gi
agentResources:
requests:
cpu: 100m
memory: 128Mi
placement: {}
alternator:
enabled: false
insecureEnableHTTP: false
serviceMonitor:
create: true
labels:
release: kube-prometheus-stack
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# Post-sync fix for scylla-manager: the chart-created NetworkPolicy
# blocks cross-node ClusterIP traffic due to a CNI/kube-proxy DNAT
# interaction. Delete it so the manager API can reach its backend
# ScyllaCluster via the per-pod service from any node.
set -euo pipefail
NS=scylla-manager
echo "Removing NetworkPolicy that blocks cross-node ClusterIP traffic..."
kubectl -n "${NS}" delete networkpolicy scylla-manager-to-scylla-pod --ignore-not-found=true
+42
View File
@@ -0,0 +1,42 @@
# infrastructure/scylla/manager-values.yaml
# Scylla Manager (with its own small Scylla backend)
logLevel: info
resources:
requests:
cpu: 10m
memory: 128Mi
scylla:
# Homelab-friendly mode
developerMode: true
# Use Ceph for the manager's backend storage
racks:
- name: manager-rack
members: 1
storage:
capacity: 10Gi
storageClassName: rook-ceph-block
resources:
# Requests drive Kubernetes scheduling. Keep them extremely low so the
# embedded Scylla backend can schedule even when the cluster is
# request-saturated.
requests:
cpu: 1m
memory: 1Gi
limits:
cpu: 1
memory: 2Gi
agentResources:
requests:
cpu: 1m
memory: 10M
placement: {}
serviceMonitor:
create: true
labels:
release: kube-prometheus-stack
@@ -0,0 +1,16 @@
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: scylla-manager
namespace: scylla-manager
spec:
hosts:
- scylla-manager.kube.huskypup.net
gateways:
- istio-system/edge
http:
- route:
- destination:
host: scylla-manager.scylla-manager.svc.cluster.local
port:
number: 80
@@ -0,0 +1,18 @@
# infrastructure/scylla/operator-values.yaml
# Scylla Operator
replicas: 2
logLevel: 2
webhook:
# Use cert-manager to generate the self-signed cert
createSelfSignedCertificate: true
resources:
requests:
cpu: 100m
memory: 128Mi
webhookServerResources:
requests:
cpu: 10m
memory: 64Mi
+51
View File
@@ -0,0 +1,51 @@
# ScyllaCluster (via scylla-operator Helm chart)
# Bootstrap-friendly defaults:
# - Uses Rook-Ceph RBD PVCs (rook-ceph-block)
# - No required node affinity/tolerations
# - Enables ServiceMonitor for Prometheus
scyllaImage:
repository: scylladb/scylla
tag: 2025.3.3
agentImage:
repository: scylladb/scylla-manager-agent
tag: 3.7.0
# Homelab: allow relaxed settings on smaller nodes.
developerMode: true
# Enable Alternator (DynamoDB API) only if you want it.
alternator:
enabled: false
insecureEnableHTTP: false
# Optional: enable cpu pinning once you dedicate nodes.
cpuset: false
# Datacenter + racks
# NOTE: This chart creates a ScyllaCluster CR; the operator creates the StatefulSets.
datacenter: homelab-dc
racks:
- name: rack-a
members: 3
storage:
storageClassName: rook-ceph-block
capacity: 50Gi
resources:
requests:
cpu: 1
memory: 4Gi
limits:
cpu: 2
memory: 8Gi
# No strict scheduling constraints for bootstrap.
placement:
nodeAffinity: {}
tolerations: []
# Prometheus
serviceMonitor:
create: true
labels:
release: kube-prometheus-stack