17 Commits

24 changed files with 108 additions and 42 deletions

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: keycloak-argocd-apps name: keycloak-argocd-apps
description: A Helm chart for deploying the different argocd apps to deploy Keycloak description: A Helm chart for deploying the different argocd apps to deploy Keycloak
type: application type: application
version: 0.1.0 version: 0.2.1

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: keycloak-deployment name: {{ .Values.argocd.prefix }}keycloak-deployment
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "0" argocd.argoproj.io/sync-wave: "0"
@@ -10,14 +10,26 @@ spec:
project: {{ .Values.argocd.project }} project: {{ .Values.argocd.project }}
source: source:
repoURL: "https://git.blarre.net/thomas/helm-charts.git" repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD targetRevision: {{ .Values.keycloakDeployment.targetRevision }}
path: keycloak-deployment path: keycloak-deployment
helm: helm:
releaseName: keycloak-deployment releaseName: keycloak-deployment
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
keycloakDeployment: keycloakDeployment:
deploymentName: {{ .Values.keycloakDeployment.deploymentName }}
numInstances: {{ .Values.keycloakDeployment.numInstances }} numInstances: {{ .Values.keycloakDeployment.numInstances }}
hostname: {{ .Values.keycloakDeployment.hostname }} hostname: {{ .Values.keycloakDeployment.hostname }}
vendor: {{ .Values.keycloakDeployment.vendor }}
dbHost: {{ .Values.keycloakDeployment.dbHost }}
dbPort: {{ .Values.keycloakDeployment.dbPort }}
usernameSecret:
name: {{ .Values.keycloakDeployment.usernameSecret.name }}
key: {{ .Values.keycloakDeployment.usernameSecret.key }}
passwordSecret:
name: {{ .Values.keycloakDeployment.passwordSecret.name }}
key: {{ .Values.keycloakDeployment.passwordSecret.key }}
database: {{ .Values.keycloakDeployment.database }}
destination: destination:
server: {{ .Values.mainDestination }} server: {{ .Values.mainDestination }}
namespace: {{ .Values.mainNamespace }} namespace: {{ .Values.mainNamespace }}

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: keycloak-postinstall name: {{ .Values.argocd.prefix }}keycloak-postinstall
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "1" argocd.argoproj.io/sync-wave: "1"
@@ -10,11 +10,12 @@ spec:
project: {{ .Values.argocd.project }} project: {{ .Values.argocd.project }}
source: source:
repoURL: "https://git.blarre.net/thomas/helm-charts.git" repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD targetRevision: {{ .Values.keycloakDeployment.targetRevision }}
path: keycloak-postinstall path: keycloak-postinstall
helm: helm:
releaseName: keycloak-postinstall releaseName: keycloak-postinstall
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
tailscaleIngresses: tailscaleIngresses:
keycloakHostname: {{ .Values.tailscaleIngresses.keycloakHostname }} keycloakHostname: {{ .Values.tailscaleIngresses.keycloakHostname }}
destination: destination:
@@ -27,4 +28,4 @@ spec:
syncOptions: syncOptions:
- ApplyOutOfSyncOnly=true - ApplyOutOfSyncOnly=true
- ServerSideApply=true - ServerSideApply=true
- CreateNamespace=true - CreateNamespace=true

View File

@@ -1,7 +1,8 @@
{{- if .Values.dbCluster.enable -}}
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: keycloak-requirements name: {{ .Values.argocd.prefix }}keycloak-requirements
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "-1" argocd.argoproj.io/sync-wave: "-1"
@@ -15,6 +16,7 @@ spec:
helm: helm:
releaseName: keycloak-requirements releaseName: keycloak-requirements
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
dbCluster: dbCluster:
size: {{ .Values.dbCluster.size }} size: {{ .Values.dbCluster.size }}
numInstances: {{ .Values.dbCluster.numInstances }} numInstances: {{ .Values.dbCluster.numInstances }}
@@ -29,3 +31,4 @@ spec:
- ApplyOutOfSyncOnly=true - ApplyOutOfSyncOnly=true
- ServerSideApply=true - ServerSideApply=true
- CreateNamespace=true - CreateNamespace=true
{{- end }}

View File

@@ -1,13 +1,26 @@
argocd: argocd:
namespace: argocd namespace: argocd
project: default project: default
prefix: null
dbCluster: dbCluster:
enable: true
size: 10Gi size: 10Gi
numInstances: 3 numInstances: 3
mainNamespace: keycloak mainNamespace: keycloak
mainDestination: https://kubernetes.default.svc mainDestination: https://kubernetes.default.svc
keycloakDeployment: keycloakDeployment:
targetRevision: HEAD
numInstances: 1 numInstances: 1
hostname: sso.domain.net hostname: sso.domain.net
vendor: postgres
dbHost: keycloak-db-rw
dbPort: 5432
usernameSecret:
name: keycloak-db-app
key: user
passwordSecret:
name: keycloak-db-app
key: password
database: app
tailscaleIngresses: tailscaleIngresses:
keycloakHostname: sso keycloakHostname: sso

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: keycloak-deployment name: keycloak-deployment
description: A Helm chart for deploying the actual keycloak pod through the keycloak operator description: A Helm chart for deploying the actual keycloak pod through the keycloak operator
type: application type: application
version: 0.1.0 version: 0.2.1

View File

@@ -1,19 +1,20 @@
apiVersion: k8s.keycloak.org/v2alpha1 apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak kind: Keycloak
metadata: metadata:
name: linode-keycloak name: {{ .Values.prefix }}keycloak
spec: spec:
instances: {{ .Values.keycloakDeployment.numInstances }} instances: {{ .Values.keycloakDeployment.numInstances }}
db: db:
vendor: postgres vendor: {{ .Values.keycloakDeployment.vendor }}
host: keycloak-db-rw host: {{ .Values.keycloakDeployment.dbHost }}
port: {{ .Values.keycloakDeployment.dbPort }}
usernameSecret: usernameSecret:
name: keycloak-db-app name: {{ .Values.keycloakDeployment.usernameSecret.name }}
key: user key: {{ .Values.keycloakDeployment.usernameSecret.key }}
passwordSecret: passwordSecret:
name: keycloak-db-app name: {{ .Values.keycloakDeployment.passwordSecret.name }}
key: password key: {{ .Values.keycloakDeployment.passwordSecret.key }}
database: app database: {{ .Values.keycloakDeployment.database }}
ingress: ingress:
enabled: false enabled: false
http: http:

View File

@@ -1,3 +1,14 @@
prefix: null
keycloakDeployment: keycloakDeployment:
numInstances: 1 numInstances: 1
hostname: sso.domain.net hostname: sso.domain.net
vendor: postgres
dbHost: keycloak-db-rw
dbPort: 5432
usernameSecret:
name: keycloak-db-app
key: user
passwordSecret:
name: keycloak-db-app
key: password
database: app

View File

@@ -1,13 +1,13 @@
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: ts-keycloak name: {{ .Values.prefix }}ts-keycloak
annotations: annotations:
tailscale.com/funnel: "true" tailscale.com/funnel: "true"
spec: spec:
defaultBackend: defaultBackend:
service: service:
name: linode-keycloak-service name: {{ .Values.prefix }}keycloak-service
port: port:
number: 8080 number: 8080
ingressClassName: tailscale ingressClassName: tailscale

View File

@@ -1,2 +1,3 @@
prefix: null
tailscaleIngresses: tailscaleIngresses:
keycloakHostname: sso keycloakHostname: sso

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: keycloak-requirements name: keycloak-requirements
description: A Helm chart for deploying the DB used by keycloak description: A Helm chart for deploying the DB used by keycloak
type: application type: application
version: 0.1.0 version: 0.1.1

View File

@@ -1,7 +1,7 @@
apiVersion: postgresql.cnpg.io/v1 apiVersion: postgresql.cnpg.io/v1
kind: Cluster kind: Cluster
metadata: metadata:
name: keycloak-db name: {{ .Values.prefix }}keycloak-db
spec: spec:
instances: {{ .Values.dbCluster.numInstances }} instances: {{ .Values.dbCluster.numInstances }}

View File

@@ -1,4 +1,4 @@
prefix: null
dbCluster: dbCluster:
size: 1Gi size: 1Gi
numInstances: 3 numInstances: 3

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: odoo-argocd-apps name: odoo-argocd-apps
description: A Helm chart for deploying the requirements, main charts and postinstall as ArgoCD apps for Odoo description: A Helm chart for deploying the requirements, main charts and postinstall as ArgoCD apps for Odoo
type: application type: application
version: 0.1.0 version: 0.1.1

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: odoo-chart name: {{ .Values.argocd.prefix }}odoo-chart
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "0" argocd.argoproj.io/sync-wave: "0"
@@ -13,8 +13,9 @@ spec:
chart: odoo chart: odoo
targetRevision: 28.x targetRevision: 28.x
helm: helm:
releaseName: odoo releaseName: {{ .Values.argocd.prefix }}odoo
valuesObject: valuesObject:
image.debug: {{ .Values.odoo.image.debug }}
odooEmail: {{ .Values.odoo.odooEmail }} odooEmail: {{ .Values.odoo.odooEmail }}
replicaCount: {{ .Values.odoo.replicaCount }} replicaCount: {{ .Values.odoo.replicaCount }}
resourcesPreset: {{ .Values.odoo.resourcesPreset }} resourcesPreset: {{ .Values.odoo.resourcesPreset }}
@@ -23,13 +24,15 @@ spec:
postgresql: postgresql:
enabled: false enabled: false
externalDatabase: externalDatabase:
host: odoo-db-rw host: {{ .Values.odoo.externalDatabase.host }}
port: 5432 port: {{ .Values.odoo.externalDatabase.port }}
user: app user: {{ .Values.odoo.externalDatabase.user }}
database: app database: {{ .Values.odoo.externalDatabase.database }}
create: false create: {{ .Values.odoo.externalDatabase.create }}
existingSecret: odoo-db-app existingSecret: {{ .Values.odoo.externalDatabase.passwordSecret.name }}
existingSecretPasswordKey: password existingSecretPasswordKey: {{ .Values.odoo.externalDatabase.passwordSecret.key }}
sslmode: require
extraOptions: sslrootcert=/opt/ssl/root.crt sslcert=/opt/ssl/postgresql.crt sslkey=/opt/ssl/postgresql.key
destination: destination:
server: {{ .Values.destination.server }} server: {{ .Values.destination.server }}
namespace: {{ .Values.destination.namespace }} namespace: {{ .Values.destination.namespace }}

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: odoo-postinstall name: {{ .Values.argocd.prefix }}odoo-postinstall
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "1" argocd.argoproj.io/sync-wave: "1"
@@ -15,6 +15,7 @@ spec:
helm: helm:
releaseName: odoo-postinstall releaseName: odoo-postinstall
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
tailscaleIngresses: tailscaleIngresses:
odooHostname: {{ .Values.tailscaleIngresses.odooHostname }} odooHostname: {{ .Values.tailscaleIngresses.odooHostname }}
destination: destination:

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: odoo-requirements name: {{ .Values.argocd.prefix }}odoo-requirements
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "-1" argocd.argoproj.io/sync-wave: "-1"
@@ -15,8 +15,10 @@ spec:
helm: helm:
releaseName: odoo-requirements releaseName: odoo-requirements
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
odoo: odoo:
dbCluster: dbCluster:
enable: {{ .Values.odoo.dbCluster.enable }}
numInstances: {{ .Values.odoo.dbCluster.numInstances }} numInstances: {{ .Values.odoo.dbCluster.numInstances }}
size: {{ .Values.odoo.dbCluster.size }} size: {{ .Values.odoo.dbCluster.size }}
dataPvc: dataPvc:

View File

@@ -1,6 +1,7 @@
argocd: argocd:
namespace: argocd namespace: argocd
project: default project: default
prefix: null
requirements: requirements:
repoURL: "https://git.blarre.net/thomas/helm-charts.git" repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD targetRevision: HEAD
@@ -16,6 +17,7 @@ destination:
odoo: odoo:
dbCluster: dbCluster:
enable: true
numInstances: 3 numInstances: 3
size: 10Gi size: 10Gi
dataPvc: dataPvc:
@@ -25,6 +27,17 @@ odoo:
odooEmail: "admin@domain.net" odooEmail: "admin@domain.net"
resourcesPreset: "large" resourcesPreset: "large"
replicaCount: 1 replicaCount: 1
externalDatabase:
host: odoo-db-rw
port: 5432
user: app
database: app
create: false
passwordSecret:
name: odoo-db-secret
key: password
image:
debug: false
tailscaleIngresses: tailscaleIngresses:
odooHostname: odoo odooHostname: odoo

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: odoo-postinstall name: odoo-postinstall
description: A Helm chart for deploying the postinall stuff for odoo, mainly the ingress description: A Helm chart for deploying the postinall stuff for odoo, mainly the ingress
type: application type: application
version: 0.1.0 version: 0.1.1

View File

@@ -1,13 +1,13 @@
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: ts-odoo name: {{ .Values.prefix}}ts-odoo
annotations: annotations:
tailscale.com/funnel: "true" tailscale.com/funnel: "true"
spec: spec:
defaultBackend: defaultBackend:
service: service:
name: odoo name: {{ .Values.prefix }}odoo
port: port:
name: http name: http
ingressClassName: tailscale ingressClassName: tailscale

View File

@@ -1,2 +1,3 @@
prefix: null
tailcaleIngresses: tailcaleIngresses:
odooHostname: odoo odooHostname: odoo

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: odoo-requirements name: odoo-requirements
description: A Helm chart for the requirements for Odoo description: A Helm chart for the requirements for Odoo
type: application type: application
version: 0.1.0 version: 0.1.1

View File

@@ -1,8 +1,10 @@
apiVersion: postgresql.cnpg.io/v1 {{- if .Values.odoo.dbCluster.enabled -}}
: postgresql.cnpg.io/v1
kind: Cluster kind: Cluster
metadata: metadata:
name: odoo-db name: {{ .Values.prefix }}odoo-db
spec: spec:
instances: {{ .Values.odoo.dbCluster.numInstances }} instances: {{ .Values.odoo.dbCluster.numInstances }}
storage: storage:
size: {{ .Values.odoo.dbCluster.size }} size: {{ .Values.odoo.dbCluster.size }}
{{- end }}

View File

@@ -1,5 +1,7 @@
prefix: null
odoo: odoo:
dbCluster: dbCluster:
enable: true
numInstances: 3 numInstances: 3
size: 10Gi size: 10Gi
dataPvc: dataPvc: