Files
HomeMonitor/Environment/Service/deploy/manifest.yaml
2024-05-28 16:49:32 -04:00

187 lines
4.4 KiB
YAML

---
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: environment-database
namespace: home-monitor
labels:
app: environment-database
spec:
replicas: 1
selector:
matchLabels:
app: environment-database
serviceName: environment-database
template:
metadata:
labels:
app: environment-database
spec:
containers:
- name: environment-database
image: timescale/timescaledb:latest-pg16
imagePullPolicy: IfNotPresent
env:
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: environment-database-credentials
key: username
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: environment-database-credentials
key: password
- name: POSTGRES_DB
value: environment
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
nodeSelector:
kubernetes.io/hostname: kubernetes
schedulerName: default-scheduler
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: local-path
resources:
requests:
storage: 4Gi
---
kind: Service
apiVersion: v1
metadata:
name: environment-database
spec:
ports:
- name: client
port: 5432
selector:
app: environment-database
type: LoadBalancer
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: environment-service
namespace: home-monitor
labels:
app: environment-service
spec:
replicas: 1
selector:
matchLabels:
app: environment-service
template:
metadata:
labels:
app: environment-service
spec:
containers:
- name: environment-service
image: ckaczor/home-monitor-environment-service:#BUILD_BUILDNUMBER#
terminationMessagePath: "/dev/termination-log"
terminationMessagePolicy: File
imagePullPolicy: Always
securityContext:
privileged: true
env:
- name: Environment__Database__Host
value: environment-database
- name: Environment__Database__User
valueFrom:
secretKeyRef:
name: environment-database-credentials
key: username
- name: Environment__Database__Password
valueFrom:
secretKeyRef:
name: environment-database-credentials
key: password
- name: Environment__Hub__Url
value: http://hub-service/environment
- name: AuthorizationToken
valueFrom:
secretKeyRef:
name: authorization
key: token
- name: Telegram__BotToken
valueFrom:
secretKeyRef:
name: telegram
key: bot-token
- name: Telegram__ChatId
valueFrom:
secretKeyRef:
name: telegram
key: chat-id
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
nodeSelector:
kubernetes.io/hostname: kubernetes
schedulerName: default-scheduler
---
kind: Service
apiVersion: v1
metadata:
name: environment-service
spec:
ports:
- name: client
port: 8080
selector:
app: environment-service
type: ClusterIP
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
annotations:
kubernetes.io/ingress.class: traefik
creationTimestamp: null
name: environment
namespace: home-monitor
spec:
routes:
- kind: Rule
match: PathPrefix(`/api/environment`)
middlewares:
- name: api-environment
namespace: home-monitor
services:
- kind: Service
name: environment-service
namespace: home-monitor
port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
creationTimestamp: null
name: api-environment
namespace: home-monitor
spec:
stripPrefix:
prefixes:
- /api/environment