-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
Descrição:
Atualmente, os workflows do AkoFlow são definidos estaticamente em arquivos YAML. No entanto, em cenários como os de Machine Learning (ML), o número de atividades frequentemente depende da natureza e estrutura dos dados de entrada, o que torna definições estáticas insuficientes. Esta issue propõe o design e a implementação de um recurso de workflows dinâmicos.
Requisitos do Recurso
1. Características de Workflows Dinâmicos:
- Geração de Atividades por Dados: Os workflows devem se adaptar com base nos dados analisados durante a execução.
- Leitura e Escrita Atributivas: Cada atividade conterá atributos para indicar de onde os dados serão lidos (inputPath) e para onde serão escritos (outputPath), permitindo a criação de novas atividades antes ou após a execução.
2. YAML Exemplo para Workflow Dinâmico:
name: example-workflow
spec:
image: "example-docker-image:latest"
namespace: "example-namespace"
storageClassName: "hostpath"
storageSize: "10Gi"
storagePolicy:
type: "distributed"
mountPath: "/data-path"
activities:
- name: step-1
dynamicActivitySources: "/data/output-folder/step-1-result" # pasta que será lida, antes de executar a próxima atividade, criando as devidas tarefas.
run: |
echo "Step 1 is running"
process-input --input /data/input-folder --output /data/output-folder/step-1-result
memoryLimit: "1Gi"
cpuLimit: 1
- name: step-2
dynamicActivitySources: "/data/output-folder/step-2-result"
run: |
echo "Step 2 is running"
process-step --input /data/output-folder/step-1-result --output /data/output-folder/step-2-result
memoryLimit: "2Gi"
cpuLimit: 2
dependsOn:
- "step-1"
- name: step-3
dynamicActivitySources: "/data/output-folder/final-result"
run: |
echo "Step 3 is running"
finalize --input /data/output-folder/step-2-result --output /data/output-folder/final-result
memoryLimit: "4Gi"
cpuLimit: 4
dependsOn:
- "step-2"
Reactions are currently unavailable