Skip to content

Commit 3c5bd7b

Browse files
committed
add patch file for stress testing
1 parent 812a26c commit 3c5bd7b

File tree

3 files changed

+72
-10
lines changed

3 files changed

+72
-10
lines changed

stacks/airflow/airflow.yaml

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,12 @@ spec:
3838
gracefulShutdownTimeout: 30s
3939
roleGroups:
4040
default:
41-
envOverrides:
41+
envOverrides: &envOverrides
4242
AIRFLOW__CORE__DAGS_FOLDER: "/dags"
4343
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"
4444
replicas: 1
4545
kubernetesExecutors:
46-
envOverrides:
47-
AIRFLOW__CORE__DAGS_FOLDER: "/dags"
48-
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"
46+
envOverrides: *envOverrides
4947
schedulers:
5048
config:
5149
gracefulShutdownTimeout: 30s
@@ -57,9 +55,7 @@ spec:
5755
limit: 1Gi
5856
roleGroups:
5957
default:
60-
envOverrides:
61-
AIRFLOW__CORE__DAGS_FOLDER: "/dags"
62-
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"
58+
envOverrides: *envOverrides
6359
replicas: 1
6460
---
6561
apiVersion: v1
@@ -83,11 +79,42 @@ data:
8379
tags=['example'],
8480
params={},
8581
) as dag:
86-
8782
run_this = BashOperator(
8883
task_id='run_every_minute',
8984
bash_command='date',
9085
)
86+
dag_factory.py: |
87+
from airflow import DAG
88+
from airflow.operators.empty import EmptyOperator
89+
from datetime import datetime, timedelta
90+
91+
# Number of DAGs to generate
92+
NUM_DAGS = 10 # Increase for more stress
93+
DAG_PREFIX = "stress_dag_"
94+
95+
default_args = {
96+
'owner': 'airflow',
97+
'start_date': datetime(2025, 1, 1),
98+
'retries': 1,
99+
'retry_delay': timedelta(seconds=5),
100+
}
101+
102+
def create_dag(dag_id):
103+
with DAG(
104+
dag_id=dag_id,
105+
default_args=default_args,
106+
schedule=None,
107+
catchup=False,
108+
tags=["stress_test"],
109+
) as dag:
110+
start = EmptyOperator(task_id='start')
111+
end = EmptyOperator(task_id='end')
112+
start >> end
113+
return dag
114+
115+
for i in range(NUM_DAGS):
116+
dag_id = f"{DAG_PREFIX}{i:04d}"
117+
globals()[dag_id] = create_dag(dag_id)
91118
pyspark_pi.py: |
92119
"""Example DAG demonstrating how to apply a Kubernetes Resource from Airflow running in-cluster"""
93120
from datetime import datetime, timedelta
@@ -319,4 +346,3 @@ stringData:
319346
connections.secretKey: "{{ airflowSecretKey }}"
320347
connections.sqlalchemyDatabaseUri: postgresql+psycopg2://airflow:airflow@postgresql-airflow/airflow
321348
connections.celeryResultBackend: db+postgresql://airflow:airflow@postgresql-airflow/airflow
322-
connections.celeryBrokerUrl: redis://:airflow@redis-airflow-master:6379/0

stacks/airflow/patch_airflow.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
apiVersion: airflow.stackable.tech/v1alpha1
3+
kind: AirflowCluster
4+
metadata:
5+
name: airflow
6+
spec:
7+
clusterConfig:
8+
dbInit: false
9+
volumeMounts:
10+
- name: airflow-dags
11+
mountPath: /dags/dag_factory.py
12+
subPath: dag_factory.py
13+
- name: airflow-dags
14+
mountPath: /dags/date_demo.py
15+
subPath: date_demo.py
16+
- name: airflow-dags
17+
mountPath: /dags/pyspark_pi.py
18+
subPath: pyspark_pi.py
19+
- name: airflow-dags
20+
mountPath: /dags/pyspark_pi.yaml
21+
subPath: pyspark_pi.yaml
22+
webservers:
23+
roleGroups:
24+
default:
25+
envOverrides: &envOverrides
26+
AIRFLOW__CORE__DAGS_FOLDER: "/dags"
27+
AIRFLOW__CORE__MIN_SERIALIZED_DAG_UPDATE_INTERVAL: "60"
28+
AIRFLOW__CORE__MIN_SERIALIZED_DAG_FETCH_INTERVAL: "60"
29+
AIRFLOW__DAG_PROCESSOR__MIN_FILE_PROCESS_INTERVAL: "60"
30+
AIRFLOW__DAG_PROCESSOR__PRINT_STATS_INTERVAL: "60"
31+
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"
32+
kubernetesExecutors:
33+
envOverrides: *envOverrides
34+
schedulers:
35+
roleGroups:
36+
default:
37+
envOverrides: *envOverrides

stacks/stacks-v2.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ stacks:
9999
- airflow
100100
manifests:
101101
- helmChart: https://raw.githubusercontent.com/stackabletech/demos/main/stacks/_templates/postgresql-airflow.yaml
102-
- helmChart: https://raw.githubusercontent.com/stackabletech/demos/main/stacks/_templates/redis-airflow.yaml
103102
- plainYaml: https://raw.githubusercontent.com/stackabletech/demos/main/stacks/airflow/airflow.yaml
104103
supportedNamespaces: []
105104
resourceRequests:

0 commit comments

Comments
 (0)