Skip to content
Open
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
4 changes: 4 additions & 0 deletions k8s/chart/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v2
name: quickticket
description: QuickTicket SRE learning project
version: 0.1.0
67 changes: 67 additions & 0 deletions k8s/chart/templates/events.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: events
spec:
replicas: {{ .Values.events.replicas }}
selector:
matchLabels:
app: events
template:
metadata:
labels:
app: events
spec:
containers:
- name: events
image: {{ .Values.events.image }}
imagePullPolicy: Never
ports:
- containerPort: 8081
env:
- name: DB_HOST
value: "{{ .Values.events.db.host }}"
- name: DB_PORT
value: "{{ .Values.events.db.port }}"
- name: DB_NAME
value: "{{ .Values.events.db.name }}"
- name: DB_USER
value: "{{ .Values.events.db.user }}"
- name: DB_PASS
value: "{{ .Values.events.db.password }}"
- name: REDIS_HOST
value: "redis"
- name: REDIS_PORT
value: "6379"
livenessProbe:
httpGet:
path: /health
port: 8081
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: 8081
periodSeconds: 5
failureThreshold: 2
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: events
spec:
type: ClusterIP
selector:
app: events
ports:
- port: 8081
targetPort: 8081
59 changes: 59 additions & 0 deletions k8s/chart/templates/gateway.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: gateway
spec:
replicas: {{ .Values.gateway.replicas }}
selector:
matchLabels:
app: gateway
template:
metadata:
labels:
app: gateway
spec:
containers:
- name: gateway
image: {{ .Values.gateway.image }}
imagePullPolicy: Never
ports:
- containerPort: 8080
env:
- name: EVENTS_URL
value: "http://events:8081"
- name: PAYMENTS_URL
value: "http://payments:8082"
- name: GATEWAY_TIMEOUT_MS
value: "5000"
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: 8080
periodSeconds: 5
failureThreshold: 2
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: gateway
spec:
type: ClusterIP
selector:
app: gateway
ports:
- port: 8080
targetPort: 8080
57 changes: 57 additions & 0 deletions k8s/chart/templates/payments.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: payments
spec:
replicas: {{ .Values.payments.replicas }}
selector:
matchLabels:
app: payments
template:
metadata:
labels:
app: payments
spec:
containers:
- name: payments
image: {{ .Values.payments.image }}
imagePullPolicy: Never
ports:
- containerPort: 8082
env:
- name: PAYMENT_FAILURE_RATE
value: "{{ .Values.payments.failureRate }}"
- name: PAYMENT_LATENCY_MS
value: "{{ .Values.payments.latencyMs }}"
livenessProbe:
httpGet:
path: /health
port: 8082
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: 8082
periodSeconds: 5
failureThreshold: 2
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: payments
spec:
type: ClusterIP
selector:
app: payments
ports:
- port: 8082
targetPort: 8082
47 changes: 47 additions & 0 deletions k8s/chart/templates/postgres.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
labels:
app: postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:17-alpine
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: "quickticket"
- name: POSTGRES_USER
value: "quickticket"
- name: POSTGRES_PASSWORD
value: "quickticket"
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: postgres
spec:
type: ClusterIP
selector:
app: postgres
ports:
- port: 5432
targetPort: 5432
40 changes: 40 additions & 0 deletions k8s/chart/templates/redis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
labels:
app: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:7-alpine
ports:
- containerPort: 6379
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
type: ClusterIP
selector:
app: redis
ports:
- port: 6379
targetPort: 6379
17 changes: 17 additions & 0 deletions k8s/chart/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
gateway:
replicas: 1
image: quickticket-gateway:v1
events:
replicas: 1
image: quickticket-events:v1
db:
host: postgres
port: 5432
name: quickticket
user: quickticket
password: quickticket
payments:
replicas: 1
image: quickticket-payments:v1
failureRate: "0.0"
latencyMs: "0"
67 changes: 67 additions & 0 deletions k8s/events.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: events
spec:
replicas: 1
selector:
matchLabels:
app: events
template:
metadata:
labels:
app: events
spec:
containers:
- name: events
image: quickticket-events:v1
imagePullPolicy: Never
ports:
- containerPort: 8081
env:
- name: DB_HOST
value: "postgres"
- name: DB_PORT
value: "5432"
- name: DB_NAME
value: "quickticket"
- name: DB_USER
value: "quickticket"
- name: DB_PASS
value: "quickticket"
- name: REDIS_HOST
value: "redis"
- name: REDIS_PORT
value: "6379"
livenessProbe:
httpGet:
path: /health
port: 8081
initialDelaySeconds: 10
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /health
port: 8081
periodSeconds: 5
failureThreshold: 2
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
---
apiVersion: v1
kind: Service
metadata:
name: events
spec:
type: ClusterIP
selector:
app: events
ports:
- port: 8081
targetPort: 8081
Loading