Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
f6efcbe
feat: Implement generic database connection
sbernauer Mar 3, 2026
b035622
fix: Add to Pod template as well
sbernauer Mar 3, 2026
a67081b
Bump op-rs
sbernauer Mar 3, 2026
cfb0481
Fix tests
sbernauer Mar 3, 2026
c00b629
Update kuttl tests
sbernauer Mar 3, 2026
30c83e2
Update docs
sbernauer Mar 3, 2026
ba6c88d
Further update docs
sbernauer Mar 3, 2026
b2bf77b
Merge branch 'main' into feat/generic-database-connection
sbernauer Mar 4, 2026
a850a8a
bump op-rs
sbernauer Mar 4, 2026
d268bd7
cargo fmt
sbernauer Mar 4, 2026
773f207
Use docs from op-rs
sbernauer Mar 4, 2026
28134d0
Merge remote-tracking branch 'origin/main' into feat/generic-database…
sbernauer Mar 31, 2026
b03457b
Bump op-rs
sbernauer Mar 31, 2026
e82310a
Impl Deref for database connection enums
sbernauer Apr 1, 2026
0008a85
Some docs
sbernauer Apr 20, 2026
fda8025
Merge remote-tracking branch 'origin/main' into feat/generic-database…
sbernauer Apr 20, 2026
a7134da
Rename celeryResultBackend -> ResultBackend and celeryBroker -> broker
sbernauer Apr 20, 2026
856102d
Merge branch 'main' into feat/generic-database-connection
sbernauer Apr 20, 2026
2d6a2c8
WIP changelog
sbernauer Apr 21, 2026
c11d559
changelog
sbernauer Apr 21, 2026
13456ec
changelog
sbernauer Apr 21, 2026
22a55af
Fix some leftover credentialsSecret renames
sbernauer Apr 21, 2026
f7812c2
test: Fix ca-cert test
sbernauer Apr 21, 2026
63e1f6d
More test fixes
sbernauer Apr 21, 2026
5c70a74
Fix more tests
sbernauer Apr 21, 2026
fd235cc
Update tests/templates/kuttl/versioning/30-install-airflow-cluster.ya…
sbernauer Apr 22, 2026
4b6d398
Merge branch 'main' into feat/generic-database-connection
sbernauer Apr 22, 2026
29bac89
yaml linter
sbernauer Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
252 changes: 129 additions & 123 deletions Cargo.lock

Large diffs are not rendered by default.

355 changes: 182 additions & 173 deletions Cargo.nix

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ tokio = { version = "1.40", features = ["full"] }
tracing = "0.1"

[patch."https://github.com/stackabletech/operator-rs.git"]
# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" }
stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "spike/generic-databases" }
# stackable-operator = { path = "../operator-rs/crates/stackable-operator" }
18 changes: 9 additions & 9 deletions crate-hashes.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 7 additions & 14 deletions docs/modules/airflow/examples/example-airflow-dags-configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,12 @@ spec:
image:
productVersion: 3.1.6
clusterConfig:
loadExamples: false
exposeConfig: false
credentialsSecret: simple-airflow-credentials
credentialsSecret: airflow-admin-credentials
metadataDatabase:
postgresql:
host: airflow-postgresql
database: airflow
credentialsSecret: airflow-postgresql-credentials
volumes:
- name: cm-dag # <3>
configMap:
Expand All @@ -27,14 +30,4 @@ spec:
AIRFLOW__CORE__DAGS_FOLDER: "/dags" # <8>
replicas: 1
celeryExecutors:
roleGroups:
default:
envOverrides:
AIRFLOW__CORE__DAGS_FOLDER: "/dags" # <8>
replicas: 2
schedulers:
roleGroups:
default:
envOverrides:
AIRFLOW__CORE__DAGS_FOLDER: "/dags" # <8>
replicas: 1
# ...
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ spec:
clusterConfig:
loadExamples: false
exposeConfig: false
credentialsSecret: test-airflow-credentials # <1>
credentialsSecret: airflow-admin-credentials # <1>
dagsGitSync: # <2>
- repo: https://github.com/stackabletech/airflow-operator # <3>
branch: "main" # <4>
gitFolder: "tests/templates/kuttl/mount-dags-gitsync/dags" # <5>
depth: 10 # <6>
wait: 20s # <7>
credentials:
basicAuthSecretName: git-credentials # <8>
basicAuthSecretName: airflow-git-credentials # <8>
gitSyncConf: # <9>
--rev: HEAD # <10>
# --rev: git-sync-tag # N.B. tag must be covered by "depth" (the number of commits to clone)
Expand All @@ -29,7 +29,7 @@ spec:
apiVersion: v1
kind: Secret
metadata:
name: git-credentials # <8>
name: airflow-git-credentials # <8>
type: Opaque
data:
user: c3Rh...
Expand Down
27 changes: 19 additions & 8 deletions docs/modules/airflow/examples/example-airflow-incluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,39 @@ spec:
clusterConfig:
loadExamples: false
exposeConfig: false
credentialsSecret: simple-airflow-credentials
credentialsSecret: airflow-admin-credentials
metadataDatabase:
postgresql:
host: airflow-postgresql
database: airflow
credentialsSecret: airflow-postgresql-credentials
webservers:
roleConfig:
listenerClass: external-unstable
roleGroups:
default:
envOverrides:
envOverrides: &envOverrides
AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D"
replicas: 1
schedulers:
roleGroups:
default:
envOverrides:
AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D"
envOverrides: *envOverrides
replicas: 1
celeryExecutors:
celeryResultBackend:
postgresql:
host: airflow-postgresql
database: airflow
credentialsSecret: airflow-postgresql-credentials
celeryBroker:
redis:
host: airflow-redis-master
credentialsSecret: airflow-redis-credentials
roleGroups:
default:
envOverrides:
AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D"
envOverrides: *envOverrides
replicas: 1
# in case of using kubernetesExecutors
# kubernetesExecutors:
# envOverrides:
# AIRFLOW_CONN_KUBERNETES_IN_CLUSTER: "kubernetes://?__extra__=%7B%22extra__kubernetes__in_cluster%22%3A+true%2C+%22extra__kubernetes__kube_config%22%3A+%22%22%2C+%22extra__kubernetes__kube_config_path%22%3A+%22%22%2C+%22extra__kubernetes__namespace%22%3A+%22%22%7D"
# envOverrides: *envOverrides
16 changes: 0 additions & 16 deletions docs/modules/airflow/examples/example-airflow-secret.yaml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,27 @@
apiVersion: v1
kind: Secret
metadata:
name: simple-airflow-credentials
name: airflow-admin-credentials
type: Opaque
stringData:
adminUser.username: airflow
adminUser.firstname: Airflow
adminUser.lastname: Admin
adminUser.email: airflow@airflow.com
adminUser.password: airflow
connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow
# Only needed when using celery workers (instead of Kubernetes executors)
connections.celeryResultBackend: db+postgresql://airflow:airflow@airflow-postgresql.default.svc.cluster.local/airflow
connections.celeryBrokerUrl: redis://:redis@airflow-redis-master:6379/0
---
apiVersion: v1
kind: Secret
metadata:
name: airflow-postgresql-credentials
stringData:
username: airflow
password: airflow
---
apiVersion: v1
kind: Secret
metadata:
name: airflow-redis-credentials
stringData:
username: ""
password: redis
16 changes: 15 additions & 1 deletion docs/modules/airflow/examples/getting_started/code/airflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,28 @@ spec:
clusterConfig:
loadExamples: true
exposeConfig: false
credentialsSecret: simple-airflow-credentials
credentialsSecret: airflow-admin-credentials
metadataDatabase:
postgresql:
host: airflow-postgresql
database: airflow
credentialsSecret: airflow-postgresql-credentials
webservers:
roleConfig:
listenerClass: external-unstable
roleGroups:
default:
replicas: 1
celeryExecutors:
celeryResultBackend:
postgresql:
host: airflow-postgresql
database: airflow
credentialsSecret: airflow-postgresql-credentials
celeryBroker:
redis:
host: airflow-redis-master
credentialsSecret: airflow-redis-credentials
roleGroups:
default:
replicas: 1
Expand Down
1 change: 1 addition & 0 deletions docs/modules/airflow/pages/usage-guide/logging.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ spec:
"flask_appbuilder":
level: WARN
celeryExecutors:
...
config:
logging:
enableVectorAgent: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ spec:
default:
replicas: 2
celeryExecutors:
...
config:
resources:
cpu:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ E.g. you would change the following example
----
spec:
celeryExecutors:
...
roleGroups:
default:
replicas: 2
Expand Down
116 changes: 0 additions & 116 deletions examples/simple-airflow-cluster-dags-cmap.yaml

This file was deleted.

Loading