Files
badger/manifest.yaml
T
2022-06-11 21:16:29 +00:00

278 lines
6.7 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: badger
labels:
tags.datadoghq.com/env: "prod"
tags.datadoghq.com/service: "badger"
tags.datadoghq.com/version: "v0.1.145"
spec:
selector:
matchLabels:
app: badger
replicas: 2
template:
metadata:
labels:
app: badger
tags.datadoghq.com/env: "prod"
tags.datadoghq.com/service: "badger"
tags.datadoghq.com/version: "v0.1.145"
spec:
containers:
- name: badger
image: "ghcr.io/wahyd4/badger/badger:v0.1.145"
securityContext:
runAsUser: 1000
imagePullPolicy: Always
env:
- name: DD_AGENT_HOST
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
- name: DB_HOST
value: new-postgres-postgresql.db.svc.cluster.local
- name: PROMETHEUS_URL
value: http://prometheus-kube-prometheus-prometheus.default.svc.cluster.local:9090
- name: DB_NAME
value: badges
- name: DB_USERNAME
value: postgres
- name: DB_PASSWORD
valueFrom:
{ secretKeyRef: { name: database-credentials, key: password } }
- name: DB_PORT
value: "5432"
- name: GIN_MODE
value: release
- name: SENTRY_DSN
valueFrom:
{ secretKeyRef: { name: sentry-credentials, key: dsn } }
ports:
- containerPort: 8080
name: badger-port
protocol: TCP
- containerPort: 9090
name: metrics-port
protocol: TCP
resources:
requests:
cpu: 20m
memory: 32Mi
limits:
cpu: 50m
memory: 64Mi
imagePullSecrets:
- name: regcred
---
apiVersion: v1
kind: Service
metadata:
name: badger
labels:
app: badger
spec:
type: ClusterIP
ports:
- port: 80
targetPort: badger-port
protocol: TCP
name: web
- port: 9090
targetPort: metrics-port
protocol: TCP
name: metrics-port
selector:
app: badger
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: badger-ui
spec:
selector:
matchLabels:
app: badger-ui
replicas: 2
template:
metadata:
labels:
app: badger-ui
spec:
containers:
- name: badger-ui
image: "ghcr.io/wahyd4/badger/ui:v0.1.145"
securityContext:
runAsUser: 0
imagePullPolicy: Always
env:
- name: BASE_URL
value: "https://badges.toozhao.com"
- name: GITHUB_CLIENT_ID
valueFrom:
{ secretKeyRef: { name: github-credentials, key: clientId } }
- name: GITHUB_CLIENT_SECRET
valueFrom:
{
secretKeyRef: { name: github-credentials, key: clientSecret },
}
ports:
- containerPort: 3000
name: ui-port
protocol: TCP
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 200m
memory: 256Mi
imagePullSecrets:
- name: regcred
---
apiVersion: v1
kind: Service
metadata:
name: badger-ui
labels:
app: badger-ui
spec:
type: ClusterIP
ports:
- port: 80
targetPort: ui-port
protocol: TCP
name: ui
selector:
app: badger-ui
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: badger-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/tls-acme: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/global-rate-limit-window: 1m
nginx.ingress.kubernetes.io/global-rate-limit: "20"
spec:
tls:
- hosts:
- badges.toozhao.com
secretName: badges-2-tls
rules:
- host: badges.toozhao.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: badger-ui
port:
number: 80
- path: /badges
pathType: Exact
backend:
service:
name: badger-ui
port:
number: 80
- path: /stats
pathType: Prefix
backend:
service:
name: badger-ui
port:
number: 80
- path: /login
pathType: Prefix
backend:
service:
name: badger-ui
port:
number: 80
- path: /_auth
pathType: Prefix
backend:
service:
name: badger-ui
port:
number: 80
- path: /callback
pathType: Prefix
backend:
service:
name: badger-ui
port:
number: 80
- path: /badges
pathType: Prefix
backend:
service:
name: badger
port:
number: 80
- path: /svg
pathType: Prefix
backend:
service:
name: badger
port:
number: 80
- path: /val
pathType: Prefix
backend:
service:
name: badger
port:
number: 80
- path: /api
pathType: Prefix
backend:
service:
name: badger
port:
number: 80
- path: /ping
pathType: Prefix
backend:
service:
name: badger
port:
number: 80
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: badger
labels:
app: badger
release: prometheus # this can make the service monitor be discovered by prometheus
spec:
namespaceSelector:
matchNames:
- apps
selector:
matchLabels:
app: badger
endpoints:
- port: metrics-port
interval: 30s