changeset 7:53ae53f7d1b3

add k8s config
author drewp@bigasterisk.com
date Sat, 06 Jul 2024 16:45:19 -0700
parents a4659594f2e5
children f23b21bd0fce
files k8s/deploy.yaml k8s/ingress.yaml k8s/service.yaml search/Dockerfile skaffold.yaml web/Dockerfile
diffstat 6 files changed, 118 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/k8s/deploy.yaml	Sat Jul 06 16:45:19 2024 -0700
@@ -0,0 +1,39 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: sco-bot
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: sco-bot
+  template:
+    metadata:
+      labels:
+        app: sco-bot
+    spec:
+      containers:
+        - name: vite
+          image: reg:5000/sco_bot_web
+          workingDir: /opt
+          command:
+            - pnpm
+            - exec
+            - vite
+          ports:
+            - containerPort: 8002
+        - name: search
+          image: reg:5000/sco_bot_search
+          workingDir: /opt
+          command:
+            - pdm
+            - run
+            - fastapi
+            - dev
+            - --host
+            - "0.0.0.0"
+            - --port
+            - "8001"
+            - search/query.py
+          ports:
+            - containerPort: 8001
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/k8s/ingress.yaml	Sat Jul 06 16:45:19 2024 -0700
@@ -0,0 +1,22 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  name: sco-bot
+  annotations:
+    cert-manager.io/cluster-issuer: letsencrypt-prod
+    ingress.pomerium.io/allow_public_unauthenticated_access: "true"
+    ingress.pomerium.io/pass_identity_headers: "true"
+    ingress.pomerium.io/preserve_host_header: "true"
+    ingress.pomerium.io/allow_websockets: "true"
+spec:
+  ingressClassName: pomerium
+  rules:
+    - host: "bigasterisk.com"
+      http:
+        paths:
+          - pathType: Prefix
+            path: /sco/
+            backend: { service: { name: sco-bot, port: { number: 80 } } }
+  tls:
+    - hosts: [bigasterisk.com]
+      secretName: bigasterisk.com-tls
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/k8s/service.yaml	Sat Jul 06 16:45:19 2024 -0700
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: sco-bot
+spec:
+  ports:
+    - { port: 80, targetPort: 8002 }
+  selector:
+    app: sco-bot
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/search/Dockerfile	Sat Jul 06 16:45:19 2024 -0700
@@ -0,0 +1,8 @@
+FROM reg:5000/base_basic
+
+WORKDIR /opt
+
+COPY pyproject.toml pdm.lock ./
+RUN pdm sync
+
+COPY search/** ./search/
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/skaffold.yaml	Sat Jul 06 16:45:19 2024 -0700
@@ -0,0 +1,31 @@
+apiVersion: skaffold/v4beta6
+kind: Config
+metadata:
+  name: sco-bot
+build:
+  artifacts:
+    - context: .
+      docker:
+        dockerfile: web/Dockerfile
+      image: reg:5000/sco_bot_web
+      platforms: [amd64]
+      sync:
+        infer:
+          - src/**
+    - context: .
+      docker:
+        dockerfile: search/Dockerfile
+      image: reg:5000/sco_bot_search
+      platforms: [amd64]
+      sync:
+        infer:
+          - 'search/**'
+  tagPolicy:
+    dateTime:
+      format: 2006-01-02_15-04-05
+      timezone: Local
+manifests:
+  rawYaml:
+    - k8s/*.yaml
+deploy:
+  kubectl: {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/Dockerfile	Sat Jul 06 16:45:19 2024 -0700
@@ -0,0 +1,9 @@
+FROM reg:5000/base_basic
+
+WORKDIR /opt
+
+COPY web/package.json web/pnpm-lock.yaml ./
+RUN pnpm install
+
+COPY web/vite.config.ts web/tsconfig.json ./
+COPY web/src/ ./src/