Skip to content

AkôFlow - Suporte a Múltiplos Runtimes #11

@ovvesley

Description

@ovvesley

Atualmente, o AkôFlow está diretamente atrelado ao Kubernetes, o que limita sua execução a clusters compatíveis com essa tecnologia. Essa abordagem impede sua utilização em ambientes como o SDumont, onde a execução de tarefas requer um mecanismo diferente.

O objetivo desta issue é tornar o AkôFlow mais flexível, permitindo a execução de múltiplas runtimes, tornando-o independente de um único ambiente de execução.

Solução Proposta

Criar uma camada de abstração no AkôFlow para suportar diferentes Runtimes, permitindo que ele se conecte a diversos mecanismos de execução. Cada Runtime será responsável por realizar a conexão com o ambiente de execução e gerenciar as submissões e coletas de dados.

Os Runtimes planejados incluem:

  • Runtime Kubernetes (já existente);
  • Runtime Docker;
  • Runtime Singularity;
  • Runtime Singularity para o SDumont.

Casos de Uso

  • O AkôFlow deve ser capaz de rodar em máquinas externas, não estando restrito ao cluster Kubernetes;
  • Permitir a execução de jobs em diferentes infraestruturas, como SDumont, que exige conexão via VPN e submissão via nó de login;
  • Garantir que a submissão e a coleta de dados de proveniência sejam feitas corretamente, independentemente do Runtime utilizado.

Tarefas

  • Criar estrutura base para suportar múltiplos Runtimes;
  • Implementar interface genérica para Runtimes no AkôFlow;
  • Adicionar suporte para Runtime Docker;
  • Adicionar suporte para Runtime Singularity;
  • Implementar suporte específico para SDumont, garantindo conexão via VPN e execução nos nós de trabalho;
  • Criar testes para validação da submissão e coleta de dados em cada Runtime.

Critérios de Aceitação

  • O AkôFlow deve funcionar com qualquer Runtime configurado sem depender exclusivamente do Kubernetes;
  • O usuário deve ser capaz de selecionar a Runtime desejada através de uma configuração simples;
  • A execução no SDumont deve ser validada, garantindo conexão segura e submissão correta dos jobs;
  • Os dados de proveniência devem ser coletados corretamente independentemente do Runtime utilizado.

Image

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions