Configuration
Global configuration - generally set as environment variables but it works as system properties too.
|
IMPORTANT
|
for object lists, ensure to set |
-
yupiik.chords.dags.$index.edges.$index.condition(env:YUPIIK_CHORDS_DAGS_INDEX_EDGES_INDEX_CONDITION) -
When to enable this edge. Default:
io.yupiik.kubernetes.chords.core.ConfiguredDagContributor.DagsConfiguration.ConfigurableEdge.Condition.ON_SUCCESS. -
yupiik.chords.dags.$index.edges.$index.from(env:YUPIIK_CHORDS_DAGS_INDEX_EDGES_INDEX_FROM) - Id the edge starts from (required).
-
yupiik.chords.dags.$index.edges.$index.to(env:YUPIIK_CHORDS_DAGS_INDEX_EDGES_INDEX_TO) - Id the edge ends to (required).
-
yupiik.chords.dags.$index.name(env:YUPIIK_CHORDS_DAGS_INDEX_NAME) - DAG identifier (required).
-
yupiik.chords.dags.$index.nodes.$index.descriptors(env:YUPIIK_CHORDS_DAGS_INDEX_NODES_INDEX_DESCRIPTORS) -
List of descriptor to return for this node - as of today only JSON is supported. In this static mode, only a few placeholders are supported:
${now:datepattern}wheredatepatternis aDateTimeFormatterpattern used to format theOffsetDateTimerepresenting current datetime in UTC zone. They can be a file path if easier to define because by default it will be split on a comma or the value set usingsep=xxx|values..... Default:java.util.List.of(). -
yupiik.chords.dags.$index.nodes.$index.id(env:YUPIIK_CHORDS_DAGS_INDEX_NODES_INDEX_ID) - Node identifier.
Sample
YUPIIK_CHORDS_DAGS_LENGTH: 1
#
# DAG demo
#
YUPIIK_CHORDS_DAGS_0_NAME: demo
YUPIIK_CHORDS_DAGS_0_NODES_LENGTH: 3
YUPIIK_CHORDS_DAGS_0_NODES_0_ID: pre1
YUPIIK_CHORDS_DAGS_0_NODES_0_DESCRIPTORS_LENGTH: 0
YUPIIK_CHORDS_DAGS_0_NODES_1_ID: pre2
YUPIIK_CHORDS_DAGS_0_NODES_1_DESCRIPTORS_LENGTH: 0
YUPIIK_CHORDS_DAGS_0_NODES_2_ID: downstream
YUPIIK_CHORDS_DAGS_0_NODES_2_DESCRIPTORS: |\
sep: _|{\
"metadata":{"name":"second"},\
....\
}
YUPIIK_CHORDS_DAGS_0_EDGES_LENGTH: 2
YUPIIK_CHORDS_DAGS_0_EDGES_0_FROM: pre1
YUPIIK_CHORDS_DAGS_0_EDGES_0_TO: second
YUPIIK_CHORDS_DAGS_0_EDGES_1_FROM: pre2
YUPIIK_CHORDS_DAGS_0_EDGES_1_TO: second
this does define a DAG where pre1 and pre2 can be CronJob or manually triggered Job - self managed by Kubernetes directly, and downstream is only triggered when both are finished for the same execution (see Getting Started
).
|
TIP
|
this is because the root node triggers is external that they don't define descriptors but just nodes, i.e. dependencies for downstream jobs. |
Since the syntax for inline descriptors (YUPIIK_CHORDS_DAGS_0_NODES_2_DESCRIPTORS in previous example) is not always convenient that you can also pass a path: YUPIIK_CHORDS_DAGS_0_NODES_2_DESCRIPTORS: /opt/dags/downstream.json.