O processamento dos manifestos é separado em 2 fluxos diferentes:
1 - O processamento dos CustomResourceDefinitions
Consiste na leitura do manifesto, verificando a estrutura do mesmo e gerando o schema que será utilizado na validação de outros manifestos.
2 - O processamento dos manifestos de recursos
Consiste na validação do manifesto utilizando as regras presentes nos schemas gerados no passo anterior.
Como se é percebido, o resultado de um passo está completamente acoplado com o próximo, o que torna necessário o casamento dos dados entre eles, porém, da forma que está sendo implementado pelo PR #14, as regras dos dois fluxos ficarão separadas, deixando a manutenção desses códigos mais complicada.
Proposta
A ideia proposta nessa issue é a adição de um novo conceito chamado de Schema Processor. O Schema Processor será um bloco de código, único para cada tipo de dado, que terá a função de ler as regras do CustomResourceDefinition, gerar um schema e depois validar se um manifesto cumpre as regras do schema gerado.
Como antes, isso ocorrerá em 2 etapas, como descrito no diagrama:
O que a proposta resolve?
Essa proposta resolve o espalhamento das regras de validação pelo código, além de tornar possível a reutilização do código de processamento do CustomResourceDefinition, tornando a criação de uma nova versão da interface YAML mais rápida, simples e fácil, evitando um "copia e cola" de vários arquivos.
Contexto:
O processamento dos manifestos é separado em 2 fluxos diferentes:
1 - O processamento dos
CustomResourceDefinitions
Consiste na leitura do manifesto, verificando a estrutura do mesmo e gerando o
schema
que será utilizado na validação de outros manifestos.2 - O processamento dos manifestos de recursos
Consiste na validação do manifesto utilizando as regras presentes nos
schemas
gerados no passo anterior.Como se é percebido, o resultado de um passo está completamente acoplado com o próximo, o que torna necessário o casamento dos dados entre eles, porém, da forma que está sendo implementado pelo PR #14, as regras dos dois fluxos ficarão separadas, deixando a manutenção desses códigos mais complicada.
Proposta
A ideia proposta nessa issue é a adição de um novo conceito chamado de
Schema Processor
. OSchema Processor
será um bloco de código, único para cada tipo de dado, que terá a função de ler as regras doCustomResourceDefinition
, gerar umschema
e depois validar se um manifesto cumpre as regras doschema
gerado.Como antes, isso ocorrerá em 2 etapas, como descrito no diagrama:
O que a proposta resolve?
Essa proposta resolve o espalhamento das regras de validação pelo código, além de tornar possível a reutilização do código de processamento do
CustomResourceDefinition
, tornando a criação de uma nova versão da interface YAML mais rápida, simples e fácil, evitando um "copia e cola" de vários arquivos.