Files
HomeMonitor/Power/Service/deploy/manifest.yaml

164 lines
3.9 KiB
YAML

---
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: power-database
namespace: home-monitor
labels:
app: power-database
spec:
replicas: 1
selector:
matchLabels:
app: power-database
serviceName: power-database
template:
metadata:
labels:
app: power-database
spec:
containers:
- name: power-database
image: mcr.microsoft.com/mssql/server
terminationMessagePath: "/dev/termination-log"
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
env:
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: power-database-credentials
key: password
- name: ACCEPT_EULA
value: "Y"
- name: MSSQL_PID
value: Express
- name: MSSQL_TCP_PORT
value: "1434"
- name: TZ
value: America/New_York
volumeMounts:
- name: data
mountPath: /var/opt/mssql
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: power-database
spec:
ports:
- name: client
port: 1434
selector:
app: power-database
type: LoadBalancer
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: power-service
namespace: home-monitor
labels:
app: power-service
spec:
replicas: 1
selector:
matchLabels:
app: power-service
template:
metadata:
labels:
app: power-service
spec:
containers:
- name: power-service
image: ckaczor/home-monitor-power-service:#BUILD_BUILDNUMBER#
terminationMessagePath: "/dev/termination-log"
terminationMessagePolicy: File
imagePullPolicy: Always
securityContext:
privileged: true
env:
- name: ApplicationInsights__ConnectionString
valueFrom:
secretKeyRef:
name: telemetry
key: key
- name: Power__Database__Host
value: power-database
- name: Power__Database__User
valueFrom:
secretKeyRef:
name: power-database-credentials
key: username
- name: Power__Database__Password
valueFrom:
secretKeyRef:
name: power-database-credentials
key: password
- name: Hub__Power
value: http://hub-service/power
- name: Power__Host
valueFrom:
secretKeyRef:
name: power-neurio-connection
key: host
- name: Power__AuthorizationHeader
valueFrom:
secretKeyRef:
name: power-neurio-connection
key: authorization
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
nodeSelector:
kubernetes.io/hostname: kubernetes
schedulerName: default-scheduler
---
kind: Service
apiVersion: v1
metadata:
name: power-service
spec:
ports:
- name: client
port: 80
selector:
app: power-service
type: ClusterIP
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: power
namespace: home-monitor
annotations:
kubernetes.io/ingress.class: traefik
nginx.ingress.kubernetes.io/ssl-redirect: 'false'
traefik.frontend.rule.type: PathPrefixStrip
spec:
rules:
- http:
paths:
- path: "/api/power"
pathType: ImplementationSpecific
backend:
service:
name: power-service
port:
number: 80