feat: Migrate to spdy.io infrastructure

- Namespace: dispensary-scraper → cannaiq
- Registry: code.cannabrands.app → git.spdy.io
- Database: External PostgreSQL at 10.100.6.50
- MinIO: Internal at 10.100.9.80:9000
- CI: ci.spdy.io

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Kelly
2025-12-15 06:40:48 -07:00
parent 0979c9c37a
commit a8360c7260
14 changed files with 64 additions and 55 deletions

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: cannaiq-frontend
namespace: dispensary-scraper
namespace: cannaiq
spec:
replicas: 1
selector:
@@ -17,7 +17,7 @@ spec:
- name: regcred
containers:
- name: cannaiq-frontend
image: code.cannabrands.app/creationshop/cannaiq-frontend:latest
image: git.spdy.io/creationshop/cannaiq-frontend:latest
ports:
- containerPort: 80
resources:
@@ -32,7 +32,7 @@ apiVersion: v1
kind: Service
metadata:
name: cannaiq-frontend
namespace: dispensary-scraper
namespace: cannaiq
spec:
selector:
app: cannaiq-frontend

View File

@@ -2,10 +2,15 @@ apiVersion: v1
kind: ConfigMap
metadata:
name: scraper-config
namespace: dispensary-scraper
namespace: cannaiq
data:
NODE_ENV: "production"
PORT: "3010"
LOG_LEVEL: "info"
REDIS_HOST: "redis"
REDIS_PORT: "6379"
MINIO_ENDPOINT: "10.100.9.80"
MINIO_PORT: "9000"
MINIO_BUCKET: "cannaiq"
MINIO_USE_SSL: "false"
MINIO_PUBLIC_ENDPOINT: "https://cdn.spdy.io"

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: findadispo-frontend
namespace: dispensary-scraper
namespace: cannaiq
spec:
replicas: 1
selector:
@@ -17,7 +17,7 @@ spec:
- name: regcred
containers:
- name: findadispo-frontend
image: code.cannabrands.app/creationshop/findadispo-frontend:v1.0.0
image: git.spdy.io/creationshop/findadispo-frontend:v1.0.0
ports:
- containerPort: 80
resources:
@@ -32,7 +32,7 @@ apiVersion: v1
kind: Service
metadata:
name: findadispo-frontend
namespace: dispensary-scraper
namespace: cannaiq
spec:
selector:
app: findadispo-frontend

View File

@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: findagram-frontend
namespace: dispensary-scraper
namespace: cannaiq
spec:
replicas: 1
selector:
@@ -17,7 +17,7 @@ spec:
- name: regcred
containers:
- name: findagram-frontend
image: code.cannabrands.app/creationshop/findagram-frontend:v1.0.0
image: git.spdy.io/creationshop/findagram-frontend:v1.0.0
ports:
- containerPort: 80
resources:
@@ -32,7 +32,7 @@ apiVersion: v1
kind: Service
metadata:
name: findagram-frontend
namespace: dispensary-scraper
namespace: cannaiq
spec:
selector:
app: findagram-frontend

View File

@@ -2,7 +2,7 @@ apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: scraper-ingress
namespace: dispensary-scraper
namespace: cannaiq
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod

View File

@@ -1,6 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: dispensary-scraper
name: cannaiq
labels:
app: dispensary-scraper
app: cannaiq

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-pvc
namespace: dispensary-scraper
namespace: cannaiq
spec:
accessModes:
- ReadWriteOnce
@@ -14,7 +14,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
namespace: dispensary-scraper
namespace: cannaiq
spec:
replicas: 1
selector:
@@ -67,7 +67,7 @@ apiVersion: v1
kind: Service
metadata:
name: postgres
namespace: dispensary-scraper
namespace: cannaiq
spec:
selector:
app: postgres

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: redis-data
namespace: dispensary-scraper
namespace: cannaiq
spec:
accessModes:
- ReadWriteOnce
@@ -14,7 +14,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
namespace: dispensary-scraper
namespace: cannaiq
spec:
replicas: 1
selector:
@@ -57,7 +57,7 @@ apiVersion: v1
kind: Service
metadata:
name: redis
namespace: dispensary-scraper
namespace: cannaiq
spec:
selector:
app: redis

View File

@@ -4,13 +4,13 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: scraper-sa
namespace: dispensary-scraper
namespace: cannaiq
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: worker-scaler
namespace: dispensary-scraper
namespace: cannaiq
rules:
# Allow reading deployment and statefulset status
- apiGroups: ["apps"]
@@ -25,11 +25,11 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: scraper-worker-scaler
namespace: dispensary-scraper
namespace: cannaiq
subjects:
- kind: ServiceAccount
name: scraper-sa
namespace: dispensary-scraper
namespace: cannaiq
roleRef:
kind: Role
name: worker-scaler

View File

@@ -10,7 +10,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: scraper-worker
namespace: dispensary-scraper
namespace: cannaiq
spec:
# MAX 8 PODS - See CLAUDE.md rule #6
# Each pod runs up to MAX_CONCURRENT_TASKS browsers (~400MB each)
@@ -28,7 +28,7 @@ spec:
- name: regcred
containers:
- name: worker
image: code.cannabrands.app/creationshop/dispensary-scraper:latest
image: git.spdy.io/creationshop/cannaiq:latest
command: ["node"]
args: ["dist/tasks/task-worker.js"]
envFrom:

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: scraper-images-pvc
namespace: dispensary-scraper
namespace: cannaiq
spec:
accessModes:
- ReadWriteOnce
@@ -14,7 +14,7 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: scraper
namespace: dispensary-scraper
namespace: cannaiq
spec:
replicas: 1
selector:
@@ -30,7 +30,7 @@ spec:
- name: regcred
containers:
- name: scraper
image: code.cannabrands.app/creationshop/dispensary-scraper:latest
image: git.spdy.io/creationshop/cannaiq:latest
ports:
- containerPort: 3010
envFrom:

View File

@@ -2,11 +2,15 @@ apiVersion: v1
kind: Secret
metadata:
name: scraper-secrets
namespace: dispensary-scraper
namespace: cannaiq
type: Opaque
stringData:
POSTGRES_USER: "scraper"
POSTGRES_PASSWORD: "Kx9$mVnQ2wLpZ4fT8jRbY7cH"
POSTGRES_DB: "dispensary_scraper"
DATABASE_URL: "postgresql://scraper:Kx9$mVnQ2wLpZ4fT8jRbY7cH@postgres:5432/dispensary_scraper"
POSTGRES_USER: "cannaiq"
POSTGRES_PASSWORD: "SpDyCannaIQ2024"
POSTGRES_DB: "cannaiq"
DATABASE_URL: "postgresql://cannaiq:SpDyCannaIQ2024@10.100.6.50:5432/cannaiq"
JWT_SECRET: "aW7vN3xKpM9qLsT2fB5jDc8hR4wY6zXe"
MINIO_ACCESS_KEY: "cannaiq-app"
MINIO_SECRET_KEY: "62a37268f2fe4163ef46fe1c29ad93f817b415fc"
EVOMI_USER: "kl8"
EVOMI_PASS: "ogh9U1Xe7Gzxzozo4rmP"

View File

@@ -2,7 +2,7 @@ apiVersion: v1
kind: Service
metadata:
name: scraper
namespace: dispensary-scraper
namespace: cannaiq
spec:
selector:
app: scraper