Add production Kubernetes manifests for Argo CD deployment

This commit is contained in:
Johannes Reichhardt 2026-03-31 16:42:37 -05:00
parent fb72d26ef9
commit 7ce1d71a99
1 changed files with 79 additions and 0 deletions

79
k8s/deployment.yaml Normal file
View File

@ -0,0 +1,79 @@
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: txt2md-gateway
namespace: default
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
gatewayClassName: gke-l7-global-external-managed
listeners:
- name: https
protocol: HTTPS
port: 443
hostname: "txt2md.hannesalbeiro.com"
tls:
mode: Terminate
certificateRefs:
- name: txt2md-cert
---
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
name: txt2md-route
namespace: default
spec:
parentRefs:
- name: txt2md-gateway
hostnames:
- "txt2md.hannesalbeiro.com"
rules:
- backendRefs:
- name: txt2md
port: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: txt2md
labels:
app: txt2md
spec:
replicas: 2
selector:
matchLabels:
app: txt2md
template:
metadata:
labels:
app: txt2md
spec:
containers:
- name: txt2md
image: europe-west3-docker.pkg.dev/project-84ddd43d-e408-4cb9-8cb/txt2md-repo/txt2md:latest
ports:
- containerPort: 5000
env:
- name: AI_API_KEY
valueFrom:
secretKeyRef:
name: txt2md-secrets
key: ai-api-key
- name: FLASK_SECRET_KEY
valueFrom:
secretKeyRef:
name: txt2md-secrets
key: flask-secret-key
---
apiVersion: v1
kind: Service
metadata:
name: txt2md
spec:
selector:
app: txt2md
ports:
- protocol: TCP
port: 80
targetPort: 5000
type: ClusterIP