diff --git a/charts/apps/baikal/Chart.yaml b/charts/apps/baikal/Chart.yaml new file mode 100644 index 0000000..b06614b --- /dev/null +++ b/charts/apps/baikal/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +version: 1.0.0 +name: esphome diff --git a/charts/apps/baikal/templates/database.yaml b/charts/apps/baikal/templates/database.yaml new file mode 100644 index 0000000..6a30b53 --- /dev/null +++ b/charts/apps/baikal/templates/database.yaml @@ -0,0 +1,6 @@ +apiVersion: homelab.mortenolsen.pro/v1 +kind: PostgresDatabase +metadata: + name: '{{ .Release.Name }}' +spec: + environment: '{{ .Values.globals.environment }}' diff --git a/charts/apps/baikal/templates/deployment.yaml b/charts/apps/baikal/templates/deployment.yaml new file mode 100644 index 0000000..a661d1a --- /dev/null +++ b/charts/apps/baikal/templates/deployment.yaml @@ -0,0 +1,46 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: "{{ .Release.Name }}" +spec: + strategy: + type: Recreate + replicas: 1 + selector: + matchLabels: + app: "{{ .Release.Name }}" + template: + metadata: + labels: + app: "{{ .Release.Name }}" + spec: + containers: + - name: "{{ .Release.Name }}" + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: "{{ .Values.image.pullPolicy }}" + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + tcpSocket: + port: http + readinessProbe: + tcpSocket: + port: http + env: + - name: TZ + value: "{{ .Values.globals.timezone }}" + volumeMounts: + - mountPath: /var/www/baikal/Specific + name: data + - mountPath: /var/www/baikal/config + name: config + + volumes: + - name: data + persistentVolumeClaim: + claimName: "{{ .Release.Name }}-data" + - name: config + persistentVolumeClaim: + claimName: "{{ .Release.Name }}-config" diff --git a/charts/apps/baikal/templates/http-service.yaml b/charts/apps/baikal/templates/http-service.yaml new file mode 100644 index 0000000..15b1989 --- /dev/null +++ b/charts/apps/baikal/templates/http-service.yaml @@ -0,0 +1,11 @@ +apiVersion: homelab.mortenolsen.pro/v1 +kind: HttpService +metadata: + name: "{{ .Release.Name }}" +spec: + environment: "{{ .Values.globals.environment }}" + subdomain: "{{ .Values.subdomain }}" + destination: + host: "{{ .Release.Name }}" + port: + number: 80 diff --git a/charts/apps/baikal/templates/pvc.yaml b/charts/apps/baikal/templates/pvc.yaml new file mode 100644 index 0000000..a7bd546 --- /dev/null +++ b/charts/apps/baikal/templates/pvc.yaml @@ -0,0 +1,24 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: "{{ .Release.Name }}-data" +spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + storageClassName: "{{ .Values.globals.environment }}" + +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: "{{ .Release.Name }}-config" +spec: + accessModes: + - "ReadWriteOnce" + resources: + requests: + storage: "1Gi" + storageClassName: "{{ .Values.globals.environment }}" diff --git a/charts/apps/baikal/templates/service.yaml b/charts/apps/baikal/templates/service.yaml new file mode 100644 index 0000000..98872d7 --- /dev/null +++ b/charts/apps/baikal/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: "{{ .Release.Name }}" + labels: + app: "{{ .Release.Name }}" +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: 80 + protocol: TCP + name: http + selector: + app: "{{ .Release.Name }}" diff --git a/charts/apps/baikal/values.yaml b/charts/apps/baikal/values.yaml new file mode 100644 index 0000000..f084f9b --- /dev/null +++ b/charts/apps/baikal/values.yaml @@ -0,0 +1,9 @@ +globals: + environment: prod + timezone: Europe/Amsterdam + domain: olsen.cloud +image: + repository: docker.io/ckulka/baikal + tag: nginx + pullPolicy: IfNotPresent +subdomain: baikal diff --git a/charts/apps/esphome/Chart.yaml b/charts/apps/esphome/Chart.yaml new file mode 100644 index 0000000..b06614b --- /dev/null +++ b/charts/apps/esphome/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +version: 1.0.0 +name: esphome diff --git a/charts/apps/esphome/templates/deployment.yaml b/charts/apps/esphome/templates/deployment.yaml new file mode 100644 index 0000000..86e0b7e --- /dev/null +++ b/charts/apps/esphome/templates/deployment.yaml @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: "{{ .Release.Name }}" +spec: + strategy: + type: Recreate + replicas: 1 + selector: + matchLabels: + app: "{{ .Release.Name }}" + template: + metadata: + labels: + app: "{{ .Release.Name }}" + spec: + hostNetwork: true + containers: + - name: "{{ .Release.Name }}" + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: "{{ .Values.image.pullPolicy }}" + ports: + - name: http + containerPort: 6052 + protocol: TCP + livenessProbe: + tcpSocket: + port: http + readinessProbe: + tcpSocket: + port: http + env: + - name: TZ + value: "{{ .Values.globals.timezone }}" + volumeMounts: + - mountPath: /config + name: data + + volumes: + - name: data + persistentVolumeClaim: + claimName: "{{ .Release.Name }}-data" diff --git a/charts/apps/esphome/templates/http-service.yaml b/charts/apps/esphome/templates/http-service.yaml new file mode 100644 index 0000000..15b1989 --- /dev/null +++ b/charts/apps/esphome/templates/http-service.yaml @@ -0,0 +1,11 @@ +apiVersion: homelab.mortenolsen.pro/v1 +kind: HttpService +metadata: + name: "{{ .Release.Name }}" +spec: + environment: "{{ .Values.globals.environment }}" + subdomain: "{{ .Values.subdomain }}" + destination: + host: "{{ .Release.Name }}" + port: + number: 80 diff --git a/charts/apps/esphome/templates/pvc.yaml b/charts/apps/esphome/templates/pvc.yaml new file mode 100644 index 0000000..bc1d0a6 --- /dev/null +++ b/charts/apps/esphome/templates/pvc.yaml @@ -0,0 +1,11 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: '{{ .Release.Name }}-data' +spec: + accessModes: + - 'ReadWriteOnce' + resources: + requests: + storage: '1Gi' + storageClassName: '{{ .Values.globals.environment }}' diff --git a/charts/apps/esphome/templates/service.yaml b/charts/apps/esphome/templates/service.yaml new file mode 100644 index 0000000..48d3c5a --- /dev/null +++ b/charts/apps/esphome/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: "{{ .Release.Name }}" + labels: + app: "{{ .Release.Name }}" +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: 6052 + protocol: TCP + name: http + selector: + app: "{{ .Release.Name }}" diff --git a/charts/apps/esphome/values.yaml b/charts/apps/esphome/values.yaml new file mode 100644 index 0000000..271c2e5 --- /dev/null +++ b/charts/apps/esphome/values.yaml @@ -0,0 +1,9 @@ +globals: + environment: prod + timezone: Europe/Amsterdam + domain: olsen.cloud +image: + repository: ghcr.io/esphome/esphome + tag: latest + pullPolicy: IfNotPresent +subdomain: esphome