Skip to content

Commit 62996f4

Browse files
committed
kestra
1 parent b8c2f30 commit 62996f4

File tree

2 files changed

+42
-98
lines changed

2 files changed

+42
-98
lines changed
Lines changed: 15 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
kestra:
2-
# L'immagine viene presa automaticamente dalla versione del chart
3-
# Non serve specificarla a meno di override necessari
4-
5-
# Deploy standalone (tutti i componenti in un unico pod)
6-
# Per un homelab questo è perfetto
2+
# Deploy standalone per homelab
73
deployments:
84
standalone:
95
enabled: true
106
replicaCount: 1
117

12-
# Resources (adatta in base al tuo cluster)
138
resources:
149
limits:
1510
cpu: 2000m
@@ -18,11 +13,10 @@ kestra:
1813
cpu: 500m
1914
memory: 2Gi
2015

21-
# Strategy per evitare split-brain con SQLite/H2
2216
strategy:
2317
type: Recreate
2418

25-
# Disabilita deployment separati (non servono per homelab)
19+
# Disabilita deployment separati
2620
webserver:
2721
enabled: false
2822
executor:
@@ -34,101 +28,55 @@ kestra:
3428
worker:
3529
enabled: false
3630

37-
# Configurazione comune a tutti i deployment
31+
# Configurazione comune
3832
common:
39-
# Node selector se hai nodi specifici
40-
nodeSelector: {}
41-
42-
tolerations: []
43-
44-
affinity: {}
45-
46-
# Secrets come environment variables
47-
# I secrets verranno caricati da External Secrets / Vault
48-
extraEnvFrom:
49-
- secretRef:
50-
name: kestra-secrets
51-
52-
# Environment variables aggiuntive
5333
extraEnv:
5434
- name: TZ
5535
value: "Europe/Rome"
36+
37+
# Carica secrets per i workflow (accessibili con secret() function)
38+
extraSecretEnvFrom:
39+
- name: kestra-secrets
40+
prefix: SECRET_
5641

57-
# Configurazione Kestra (ConfigMap)
58-
# Questo configura PostgreSQL esterno
42+
# Configurazione Kestra
5943
configuration:
6044
kestra:
6145
server:
6246
base-url: "https://kestra.local.ildoc.it"
6347

64-
# Repository (metadati workflow, executions, etc.)
6548
repository:
6649
type: postgres
6750

68-
# Queue (task scheduling)
6951
queue:
7052
type: postgres
7153

72-
# Storage per file, logs, outputs
7354
storage:
7455
type: local
7556
local:
7657
base-path: "/app/storage"
77-
78-
# Tasks configuration
79-
tasks:
80-
tmp-dir:
81-
path: "/tmp/kestra-wd/tmp"
8258

83-
# Secrets Kestra (database credentials)
84-
# Questi verranno sovrascritti da External Secrets
85-
secrets:
86-
kestra:
87-
datasources:
88-
postgres:
89-
# Placeholder - verranno sovrascritti da External Secrets
90-
url: jdbc:postgresql://192.168.0.30:5432/kestra_db
91-
username: kestra_user
92-
password: placeholder
59+
# Carica database credentials da External Secret
60+
externalSecret:
61+
secretName: kestra-db-secret
62+
key: application-secrets.yml
9363

9464
# Service Account
9565
serviceAccount:
9666
create: true
9767
automountToken: false
9868

99-
# Service
100-
service:
101-
type: ClusterIP
102-
port: 8080
103-
10469
# Persistence per storage locale
10570
persistence:
10671
enabled: true
10772
storageClassName: "nfs-csi"
10873
accessModes:
10974
- ReadWriteOnce
110-
size: 20Gi # Storage per workflow files, logs, outputs
75+
size: 20Gi
11176

112-
# Docker-in-Docker per eseguire container
113-
# Necessario per task come Script con Docker runner
77+
# Docker-in-Docker
11478
dind:
11579
enabled: true
116-
# Modalità rootless (più sicura)
117-
mode: 'rootless'
118-
119-
image:
120-
repository: docker
121-
tag: dind-rootless
122-
pullPolicy: IfNotPresent
123-
124-
securityContext:
125-
privileged: true
126-
runAsUser: 1000
127-
runAsGroup: 1000
128-
129-
args:
130-
- --log-level=fatal
131-
- --group=1000
13280

13381
resources:
13482
limits:
@@ -139,17 +87,14 @@ kestra:
13987
memory: 512Mi
14088

14189
# Disabilita servizi non necessari
142-
# (PostgreSQL e MinIO sono esterni)
14390
kafka:
14491
enabled: false
14592

14693
elasticsearch:
14794
enabled: false
14895

149-
# Operator (solo Enterprise Edition)
15096
operator:
15197
enabled: false
15298

153-
# Ingress disabilitato (usiamo HTTPRoute)
15499
ingress:
155100
enabled: false
Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,63 @@
11
---
2+
# Secret per PostgreSQL ESTERNO (database credentials)
23
apiVersion: external-secrets.io/v1
34
kind: ExternalSecret
45
metadata:
5-
name: vault-kestra-secrets
6+
name: kestra-db-secret
67
namespace: apps
78
spec:
89
refreshInterval: "1h"
910
secretStoreRef:
10-
name: vault-kubernetes-secret-store
11+
name: vault-cross-secret-store
1112
kind: ClusterSecretStore
1213
target:
13-
name: kestra-secrets
14+
name: kestra-db-secret
1415
creationPolicy: Owner
1516
template:
1617
engineVersion: v2
1718
data:
18-
# PostgreSQL connection (nel formato che Kestra si aspetta)
19+
# File di configurazione per Kestra (database credentials)
1920
application-secrets.yml: |
2021
kestra:
2122
datasources:
2223
postgres:
2324
url: jdbc:postgresql://192.168.0.30:5432/kestra_db
2425
driver-class-name: org.postgresql.Driver
25-
username: {{ .postgres_username }}
26+
username: kestra_user
2627
password: {{ .postgres_password }}
27-
28-
# Secrets per i workflow (accessibili con secret() function)
29-
# External Secrets già gestisce l'encoding, NON serve b64enc
30-
SECRET_VAULT_ROLE_ID: "{{ .vault_role_id }}"
31-
SECRET_VAULT_SECRET_ID: "{{ .vault_secret_id }}"
32-
SECRET_GITLAB_TOKEN: "{{ .gitlab_token }}"
33-
SECRET_SLACK_WEBHOOK: "{{ .slack_webhook }}"
34-
3528
data:
36-
- secretKey: postgres_username
37-
remoteRef:
38-
key: kubernetes/data/apps/kestra
39-
property: postgres_username
40-
4129
- secretKey: postgres_password
4230
remoteRef:
43-
key: kubernetes/data/apps/kestra
31+
key: cross/data/apps/kestra
4432
property: postgres_password
45-
46-
- secretKey: vault_role_id
33+
34+
---
35+
# Secret per workflow (accessibili tramite secret() function)
36+
apiVersion: external-secrets.io/v1
37+
kind: ExternalSecret
38+
metadata:
39+
name: kestra-secrets
40+
namespace: apps
41+
spec:
42+
refreshInterval: "1h"
43+
secretStoreRef:
44+
name: vault-kubernetes-secret-store
45+
kind: ClusterSecretStore
46+
target:
47+
name: kestra-secrets
48+
creationPolicy: Owner
49+
data:
50+
- secretKey: VAULT_ROLE_ID
4751
remoteRef:
4852
key: kubernetes/data/apps/kestra
4953
property: vault_role_id
5054

51-
- secretKey: vault_secret_id
55+
- secretKey: VAULT_SECRET_ID
5256
remoteRef:
5357
key: kubernetes/data/apps/kestra
5458
property: vault_secret_id
5559

56-
- secretKey: gitlab_token
60+
- secretKey: GITLAB_TOKEN
5761
remoteRef:
5862
key: kubernetes/data/apps/kestra
5963
property: gitlab_token
60-
61-
- secretKey: slack_webhook
62-
remoteRef:
63-
key: kubernetes/data/apps/kestra
64-
property: slack_webhook

0 commit comments

Comments
 (0)