diff --git a/charts/apps/appsmith/Chart.yaml b/charts/apps/appsmith/Chart.yaml new file mode 100644 index 0000000..8d4d8eb --- /dev/null +++ b/charts/apps/appsmith/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +version: 1.0.0 +name: appsmith diff --git a/charts/apps/appsmith/templates/_client.yaml b/charts/apps/appsmith/templates/_client.yaml new file mode 100644 index 0000000..60befa2 --- /dev/null +++ b/charts/apps/appsmith/templates/_client.yaml @@ -0,0 +1,10 @@ +apiVersion: homelab.mortenolsen.pro/v1 +kind: OidcClient +metadata: + name: '{{ .Release.Name }}' +spec: + environment: '{{ .Values.globals.environment }}' + redirectUris: + - path: /api/auth/oidc/callback + subdomain: '{{ .Values.subdomain }}' + matchingMode: strict diff --git a/charts/apps/appsmith/templates/_external-http-service.yaml b/charts/apps/appsmith/templates/_external-http-service.yaml new file mode 100644 index 0000000..e28916d --- /dev/null +++ b/charts/apps/appsmith/templates/_external-http-service.yaml @@ -0,0 +1,11 @@ +apiVersion: homelab.mortenolsen.pro/v1 +kind: ExternalHttpService +metadata: + name: '{{ .Release.Name }}' +spec: + environment: '{{ .Values.globals.environment }}' + subdomain: '{{ .Values.subdomain }}' + destination: + host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local' + port: + number: 80 diff --git a/charts/apps/appsmith/templates/deployment.yaml b/charts/apps/appsmith/templates/deployment.yaml new file mode 100644 index 0000000..762d2b9 --- /dev/null +++ b/charts/apps/appsmith/templates/deployment.yaml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: "{{ .Release.Name }}" + labels: + app: "{{ .Release.Name }}" +spec: + 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 }}" + ports: + - containerPort: 80 + name: http + env: + + volumeMounts: + - mountPath: /appsmith-stacks + name: data + volumes: + - name: data + persistentVolumeClaim: + claimName: "{{ .Release.Name }}-data" diff --git a/charts/apps/appsmith/templates/http-service.yaml b/charts/apps/appsmith/templates/http-service.yaml new file mode 100644 index 0000000..93ab9db --- /dev/null +++ b/charts/apps/appsmith/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/appsmith/templates/pvc.yaml b/charts/apps/appsmith/templates/pvc.yaml new file mode 100644 index 0000000..bc1d0a6 --- /dev/null +++ b/charts/apps/appsmith/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/appsmith/templates/service.yaml b/charts/apps/appsmith/templates/service.yaml new file mode 100644 index 0000000..ac45675 --- /dev/null +++ b/charts/apps/appsmith/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/appsmith/values.yaml b/charts/apps/appsmith/values.yaml new file mode 100644 index 0000000..d553c30 --- /dev/null +++ b/charts/apps/appsmith/values.yaml @@ -0,0 +1,4 @@ +subdomain: appsmith +image: + repository: index.docker.io/appsmith/appsmith-ce + tag: latest diff --git a/charts/apps/metabase/Chart.yaml b/charts/apps/metabase/Chart.yaml new file mode 100644 index 0000000..9c26479 --- /dev/null +++ b/charts/apps/metabase/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +version: 1.0.0 +name: metabase diff --git a/charts/apps/metabase/templates/_client.yaml b/charts/apps/metabase/templates/_client.yaml new file mode 100644 index 0000000..60befa2 --- /dev/null +++ b/charts/apps/metabase/templates/_client.yaml @@ -0,0 +1,10 @@ +apiVersion: homelab.mortenolsen.pro/v1 +kind: OidcClient +metadata: + name: '{{ .Release.Name }}' +spec: + environment: '{{ .Values.globals.environment }}' + redirectUris: + - path: /api/auth/oidc/callback + subdomain: '{{ .Values.subdomain }}' + matchingMode: strict diff --git a/charts/apps/metabase/templates/_external-http-service.yaml b/charts/apps/metabase/templates/_external-http-service.yaml new file mode 100644 index 0000000..e28916d --- /dev/null +++ b/charts/apps/metabase/templates/_external-http-service.yaml @@ -0,0 +1,11 @@ +apiVersion: homelab.mortenolsen.pro/v1 +kind: ExternalHttpService +metadata: + name: '{{ .Release.Name }}' +spec: + environment: '{{ .Values.globals.environment }}' + subdomain: '{{ .Values.subdomain }}' + destination: + host: '{{ .Release.Name }}.{{ .Release.Namespace }}.svc.cluster.local' + port: + number: 80 diff --git a/charts/apps/metabase/templates/database.yaml b/charts/apps/metabase/templates/database.yaml new file mode 100644 index 0000000..6a30b53 --- /dev/null +++ b/charts/apps/metabase/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/metabase/templates/deployment.yaml b/charts/apps/metabase/templates/deployment.yaml new file mode 100644 index 0000000..1101259 --- /dev/null +++ b/charts/apps/metabase/templates/deployment.yaml @@ -0,0 +1,51 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: "{{ .Release.Name }}" + labels: + app: "{{ .Release.Name }}" +spec: + 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 }}" + ports: + - containerPort: 3000 + name: http + env: + + - name: MB_DB_TYPE + value: postgres + - name: MB_DB_DBNAME + valueFrom: + secretKeyRef: + name: "{{ .Release.Name }}-pg-connection" + key: database + - name: MB_DB_PORT + valueFrom: + secretKeyRef: + name: "{{ .Release.Name }}-pg-connection" + key: port + - name: MB_DB_USER + valueFrom: + secretKeyRef: + name: "{{ .Release.Name }}-pg-connection" + key: user + - name: MB_DB_PASS + valueFrom: + secretKeyRef: + name: "{{ .Release.Name }}-pg-connection" + key: password + - name: MB_DB_HOST + valueFrom: + secretKeyRef: + name: "{{ .Release.Name }}-pg-connection" + key: host diff --git a/charts/apps/metabase/templates/http-service.yaml b/charts/apps/metabase/templates/http-service.yaml new file mode 100644 index 0000000..93ab9db --- /dev/null +++ b/charts/apps/metabase/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/metabase/templates/service.yaml b/charts/apps/metabase/templates/service.yaml new file mode 100644 index 0000000..f1ca183 --- /dev/null +++ b/charts/apps/metabase/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: 3000 + protocol: TCP + name: http + selector: + app: '{{ .Release.Name }}' diff --git a/charts/apps/metabase/values.yaml b/charts/apps/metabase/values.yaml new file mode 100644 index 0000000..3afabc1 --- /dev/null +++ b/charts/apps/metabase/values.yaml @@ -0,0 +1,4 @@ +subdomain: metabase +image: + repository: index.docker.io/metabase/metabase + tag: latest diff --git a/helmfile.yaml b/helmfile.yaml index 4484f21..1407ce3 100644 --- a/helmfile.yaml +++ b/helmfile.yaml @@ -161,3 +161,13 @@ releases: namespace: prod values: - values.yaml + - name: appsmith + chart: charts/apps/appsmith + namespace: prod + values: + - values.yaml + - name: metabase + chart: charts/apps/metabase + namespace: prod + values: + - values.yaml