mirror of
https://github.com/morten-olsen/homelab-operator.git
synced 2026-02-08 01:36:28 +01:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5fa12c203d | ||
|
|
440328ce6b | ||
|
|
67e9c3bc32 |
2
.github/workflows/publish-backup-tag.yml
vendored
2
.github/workflows/publish-backup-tag.yml
vendored
@@ -50,7 +50,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
id: push
|
id: push
|
||||||
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
|
uses: docker/build-push-action@cb8fc7586f9ad9441b20c33e0f6e8b1b58d8b4c6
|
||||||
with:
|
with:
|
||||||
context: ./images/backup
|
context: ./images/backup
|
||||||
push: true
|
push: true
|
||||||
|
|||||||
2
.github/workflows/publish-tag.yml
vendored
2
.github/workflows/publish-tag.yml
vendored
@@ -50,7 +50,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
id: push
|
id: push
|
||||||
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
|
uses: docker/build-push-action@cb8fc7586f9ad9441b20c33e0f6e8b1b58d8b4c6
|
||||||
with:
|
with:
|
||||||
context: ./images/operator
|
context: ./images/operator
|
||||||
push: true
|
push: true
|
||||||
|
|||||||
3
charts/apps/data/Chart.yaml
Normal file
3
charts/apps/data/Chart.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
version: 1.0.0
|
||||||
|
name: data
|
||||||
6
charts/apps/data/templates/database.yaml
Normal file
6
charts/apps/data/templates/database.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: homelab.mortenolsen.pro/v1
|
||||||
|
kind: PostgresDatabase
|
||||||
|
metadata:
|
||||||
|
name: '{{ .Release.Name }}'
|
||||||
|
spec:
|
||||||
|
environment: '{{ .Values.globals.environment }}'
|
||||||
2
charts/apps/data/values.yaml
Normal file
2
charts/apps/data/values.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
globals:
|
||||||
|
environment: prod
|
||||||
3
charts/apps/linkwarden/Chart.yaml
Normal file
3
charts/apps/linkwarden/Chart.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
version: 1.0.0
|
||||||
|
name: Linkwarden
|
||||||
10
charts/apps/linkwarden/templates/client.yaml
Normal file
10
charts/apps/linkwarden/templates/client.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: homelab.mortenolsen.pro/v1
|
||||||
|
kind: OidcClient
|
||||||
|
metadata:
|
||||||
|
name: "{{ .Release.Name }}"
|
||||||
|
spec:
|
||||||
|
environment: "{{ .Values.globals.environment }}"
|
||||||
|
redirectUris:
|
||||||
|
- path: /api/v1/auth/callback/authentik
|
||||||
|
subdomain: "{{ .Values.subdomain }}"
|
||||||
|
matchingMode: strict
|
||||||
6
charts/apps/linkwarden/templates/database.yaml
Normal file
6
charts/apps/linkwarden/templates/database.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: homelab.mortenolsen.pro/v1
|
||||||
|
kind: PostgresDatabase
|
||||||
|
metadata:
|
||||||
|
name: '{{ .Release.Name }}'
|
||||||
|
spec:
|
||||||
|
environment: '{{ .Values.globals.environment }}'
|
||||||
75
charts/apps/linkwarden/templates/deployment.yaml
Normal file
75
charts/apps/linkwarden/templates/deployment.yaml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
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 }}"
|
||||||
|
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
name: http
|
||||||
|
env:
|
||||||
|
- name: TZ
|
||||||
|
value: "{{ .Values.globals.timezone }}"
|
||||||
|
- name: NEXTAUTH_URL
|
||||||
|
value: "https://{{ .Values.subdomain }}.{{ .Values.globals.domain }}/api/v1/auth"
|
||||||
|
- name: NEXT_PUBLIC_OLLAMA_ENDPOINT_URL
|
||||||
|
value: "http://ollama:80"
|
||||||
|
- name: OLLAMA_MODEL
|
||||||
|
value: phi3:mini-4k
|
||||||
|
- name: DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Release.Name }}-pg-connection"
|
||||||
|
key: url
|
||||||
|
- name: NEXTAUTH_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Release.Name }}-secrets"
|
||||||
|
key: nextauth
|
||||||
|
- name: NEXT_PUBLIC_DISABLE_REGISTRATION
|
||||||
|
value: "true"
|
||||||
|
- name: NEXT_PUBLIC_CREDENTIALS_ENABLED
|
||||||
|
value: "false"
|
||||||
|
- name: DISABLE_NEW_SSO_USERS
|
||||||
|
value: "false"
|
||||||
|
- name: NEXT_PUBLIC_AUTHENTIK_ENABLED
|
||||||
|
value: "true"
|
||||||
|
- name: AUTHENTIK_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Release.Name }}-client"
|
||||||
|
key: clientId
|
||||||
|
- name: AUTHENTIK_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Release.Name }}-client"
|
||||||
|
key: clientSecret
|
||||||
|
- name: AUTHENTIK_ISSUER
|
||||||
|
value: "https://authentik.{{ .Values.globals.domain }}/application/o/linkwarden"
|
||||||
|
# TODO:
|
||||||
|
# - name: AUTHENTIK_ISSUER
|
||||||
|
# valueFrom:
|
||||||
|
# secretKeyRef:
|
||||||
|
# name: "{{ .Release.Name }}-client"
|
||||||
|
# key: configurationIssuer
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data/data
|
||||||
|
name: data
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: "{{ .Release.Name }}-data"
|
||||||
11
charts/apps/linkwarden/templates/external-http-service.yaml
Normal file
11
charts/apps/linkwarden/templates/external-http-service.yaml
Normal file
@@ -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
|
||||||
11
charts/apps/linkwarden/templates/http-service.yaml
Normal file
11
charts/apps/linkwarden/templates/http-service.yaml
Normal file
@@ -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
|
||||||
11
charts/apps/linkwarden/templates/pvc.yaml
Normal file
11
charts/apps/linkwarden/templates/pvc.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: '{{ .Release.Name }}-data'
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- 'ReadWriteOnce'
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: '1Gi'
|
||||||
|
storageClassName: '{{ .Values.globals.environment }}'
|
||||||
9
charts/apps/linkwarden/templates/secret.yaml
Normal file
9
charts/apps/linkwarden/templates/secret.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: homelab.mortenolsen.pro/v1
|
||||||
|
kind: GenerateSecret
|
||||||
|
metadata:
|
||||||
|
name: "{{ .Release.Name }}-secrets"
|
||||||
|
spec:
|
||||||
|
fields:
|
||||||
|
- name: nextauth
|
||||||
|
encoding: hex
|
||||||
|
length: 64
|
||||||
15
charts/apps/linkwarden/templates/service.yaml
Normal file
15
charts/apps/linkwarden/templates/service.yaml
Normal file
@@ -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 }}"
|
||||||
9
charts/apps/linkwarden/values.yaml
Normal file
9
charts/apps/linkwarden/values.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
globals:
|
||||||
|
environment: prod
|
||||||
|
domain: olsen.cloud
|
||||||
|
timezone: Europe/Amsterdam
|
||||||
|
image:
|
||||||
|
repository: ghcr.io/linkwarden/linkwarden
|
||||||
|
tag: latest
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
subdomain: linkwarden
|
||||||
10
charts/apps/metamcp/templates/client.yaml
Normal file
10
charts/apps/metamcp/templates/client.yaml
Normal file
@@ -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
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: '{{ .Release.Name }}'
|
name: "{{ .Release.Name }}"
|
||||||
spec:
|
spec:
|
||||||
strategy:
|
strategy:
|
||||||
type: Recreate
|
type: Recreate
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: '{{ .Release.Name }}'
|
app: "{{ .Release.Name }}"
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: '{{ .Release.Name }}'
|
app: "{{ .Release.Name }}"
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: '{{ .Release.Name }}'
|
- name: "{{ .Release.Name }}"
|
||||||
image: '{{ .Values.image.repository }}:{{ .Values.image.tag }}'
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||||
imagePullPolicy: '{{ .Values.image.pullPolicy }}'
|
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
containerPort: 12008
|
containerPort: 12008
|
||||||
@@ -33,47 +33,68 @@ spec:
|
|||||||
name: data
|
name: data
|
||||||
env:
|
env:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: '{{ .Values.globals.timezone }}'
|
value: "{{ .Values.globals.timezone }}"
|
||||||
- name: APP_URL
|
- name: APP_URL
|
||||||
value: https://metamcp.olsen.cloud # TODO: Change
|
value: "https://{{ .Values.subdomain }}.{{ .Values.globals.domain }}"
|
||||||
- name: NEXT_PUBLIC_APP_URL
|
- name: NEXT_PUBLIC_APP_URL
|
||||||
value: https://metamcp.olsen.cloud # TODO: Change
|
value: "https://{{ .Values.subdomain }}.{{ .Values.globals.domain }}"
|
||||||
- name: BETTER_AUTH_SECRET
|
- name: BETTER_AUTH_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: '{{ .Release.Name }}-secrets'
|
name: "{{ .Release.Name }}-secrets"
|
||||||
key: betterauth
|
key: betterauth
|
||||||
- name: DATABASE_URL
|
- name: DATABASE_URL
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: '{{ .Release.Name }}-pg-connection'
|
name: "{{ .Release.Name }}-pg-connection"
|
||||||
key: url
|
key: url
|
||||||
- name: POSTGRES_DB
|
- name: POSTGRES_DB
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: '{{ .Release.Name }}-pg-connection'
|
name: "{{ .Release.Name }}-pg-connection"
|
||||||
key: database
|
key: database
|
||||||
- name: POSTGRES_HOST
|
- name: POSTGRES_HOST
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: '{{ .Release.Name }}-pg-connection'
|
name: "{{ .Release.Name }}-pg-connection"
|
||||||
key: host
|
key: host
|
||||||
- name: POSTGRES_PORT
|
- name: POSTGRES_PORT
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: '{{ .Release.Name }}-pg-connection'
|
name: "{{ .Release.Name }}-pg-connection"
|
||||||
key: port
|
key: port
|
||||||
- name: POSTGRES_USER
|
- name: POSTGRES_USER
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: '{{ .Release.Name }}-pg-connection'
|
name: "{{ .Release.Name }}-pg-connection"
|
||||||
key: user
|
key: user
|
||||||
- name: POSTGRES_PASSWORD
|
- name: POSTGRES_PASSWORD
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: '{{ .Release.Name }}-pg-connection'
|
name: "{{ .Release.Name }}-pg-connection"
|
||||||
key: password
|
key: password
|
||||||
|
- name: OIDC_PROVIDER_ID
|
||||||
|
value: oidc
|
||||||
|
- name: OIDC_SCOPES
|
||||||
|
value: openid email profile
|
||||||
|
- name: OIDC_PKCE
|
||||||
|
value: "true"
|
||||||
|
- name: OIDC_CLIENT_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Release.Name }}-client"
|
||||||
|
key: clientId
|
||||||
|
- name: OIDC_CLIENT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Release.Name }}-client"
|
||||||
|
key: clientSecret
|
||||||
|
- name: OIDC_DISCOVERY_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: "{{ .Release.Name }}-client"
|
||||||
|
key: configuration
|
||||||
volumes:
|
volumes:
|
||||||
- name: data
|
- name: data
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: '{{ .Release.Name }}-data'
|
claimName: "{{ .Release.Name }}-data"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
globals:
|
globals:
|
||||||
environment: prod
|
environment: prod
|
||||||
|
domain: olsen.cloud
|
||||||
timezone: Europe/Amsterdam
|
timezone: Europe/Amsterdam
|
||||||
image:
|
image:
|
||||||
repository: ghcr.io/metatool-ai/metamcp
|
repository: ghcr.io/metatool-ai/metamcp
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ data:
|
|||||||
mosquitto.conf: |
|
mosquitto.conf: |
|
||||||
persistence true
|
persistence true
|
||||||
persistence_location /mosquitto/data/
|
persistence_location /mosquitto/data/
|
||||||
listener 1884 0.0.0.0
|
listener 1883 0.0.0.0
|
||||||
allow_anonymous true
|
allow_anonymous true
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ spec:
|
|||||||
command:
|
command:
|
||||||
- sh
|
- sh
|
||||||
- -c
|
- -c
|
||||||
- mosquitto_pub -h localhost -p 1884 -t health/ready -m "ready" -q 0 -i readiness_client -V 5
|
- mosquitto_pub -h localhost -p 1883 -t health/ready -m "ready" -q 0 -i readiness_client -V 5
|
||||||
initialDelaySeconds: 10 # Give broker time to start
|
initialDelaySeconds: 10 # Give broker time to start
|
||||||
periodSeconds: 20 # Check every 20 seconds
|
periodSeconds: 20 # Check every 20 seconds
|
||||||
timeoutSeconds: 5 # Fail if command takes longer than 5 seconds
|
timeoutSeconds: 5 # Fail if command takes longer than 5 seconds
|
||||||
@@ -37,7 +37,7 @@ spec:
|
|||||||
command:
|
command:
|
||||||
- sh
|
- sh
|
||||||
- -c
|
- -c
|
||||||
- mosquitto_pub -h localhost -p 1884 -t health/ready -m "ready" -q 0 -i readiness_client -V 5
|
- mosquitto_pub -h localhost -p 1883 -t health/ready -m "ready" -q 0 -i readiness_client -V 5
|
||||||
initialDelaySeconds: 15
|
initialDelaySeconds: 15
|
||||||
periodSeconds: 20
|
periodSeconds: 20
|
||||||
timeoutSeconds: 5
|
timeoutSeconds: 5
|
||||||
|
|||||||
11
charts/apps/mqtt/templates/http-service.yaml
Normal file
11
charts/apps/mqtt/templates/http-service.yaml
Normal file
@@ -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: 1883
|
||||||
@@ -5,7 +5,7 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
app: "{{ .Release.Name }}"
|
app: "{{ .Release.Name }}"
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: LoadBalancer
|
||||||
ports:
|
ports:
|
||||||
- port: 1883
|
- port: 1883
|
||||||
targetPort: 1883
|
targetPort: 1883
|
||||||
|
|||||||
3
charts/apps/nocodb/Chart.yaml
Normal file
3
charts/apps/nocodb/Chart.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
version: 1.0.0
|
||||||
|
name: nocodb
|
||||||
33
charts/apps/nocodb/templates/deployment.yaml
Normal file
33
charts/apps/nocodb/templates/deployment.yaml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
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 }}"
|
||||||
|
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: http
|
||||||
|
env:
|
||||||
|
- name: TZ
|
||||||
|
value: "{{ .Values.globals.timezone }}"
|
||||||
|
- name: PUID
|
||||||
|
- mountPath: /usr/app/data/
|
||||||
|
name: data
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: "{{ .Release.Name }}-data"
|
||||||
11
charts/apps/nocodb/templates/external-http-service.yaml
Normal file
11
charts/apps/nocodb/templates/external-http-service.yaml
Normal file
@@ -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
|
||||||
11
charts/apps/nocodb/templates/http-service.yaml
Normal file
11
charts/apps/nocodb/templates/http-service.yaml
Normal file
@@ -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
|
||||||
11
charts/apps/nocodb/templates/pvc.yaml
Normal file
11
charts/apps/nocodb/templates/pvc.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: '{{ .Release.Name }}-data'
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- 'ReadWriteOnce'
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: '1Gi'
|
||||||
|
storageClassName: '{{ .Values.globals.environment }}'
|
||||||
15
charts/apps/nocodb/templates/service.yaml
Normal file
15
charts/apps/nocodb/templates/service.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: "{{ .Release.Name }}"
|
||||||
|
labels:
|
||||||
|
app: "{{ .Release.Name }}"
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app: "{{ .Release.Name }}"
|
||||||
9
charts/apps/nocodb/values.yaml
Normal file
9
charts/apps/nocodb/values.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
globals:
|
||||||
|
environment: prod
|
||||||
|
domain: olsen.cloud
|
||||||
|
timezone: Europe/Amsterdam
|
||||||
|
image:
|
||||||
|
repository: nocodb/nocodb
|
||||||
|
tag: latest
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
subdomain: nocodb
|
||||||
1
notes.md
Normal file
1
notes.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|

|
||||||
@@ -5,6 +5,8 @@
|
|||||||
],
|
],
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
{
|
{
|
||||||
|
"groupName": "Docker images",
|
||||||
|
"groupSlug": "dockerimages",
|
||||||
"matchDatasources": ["docker"],
|
"matchDatasources": ["docker"],
|
||||||
"pinDigests": true
|
"pinDigests": true
|
||||||
}
|
}
|
||||||
@@ -23,4 +25,4 @@
|
|||||||
"datasourceTemplate": "docker"
|
"datasourceTemplate": "docker"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user