Uma solicitação de recurso: A possibilidade de especificar o tipo de instância secundária no caso de "Não há capacidade spot disponível que corresponda à sua solicitação", código: erro 'InsufficientInstanceCapacity'.
Acho que poderíamos ter um modelo de execução de fallback com outro tipo de instância ou substituir InstanceType
no modelo de execução atual caso a AWS responda com o erro 'InsufficientInstanceCapacity'.
Sim, tivemos o mesmo problema e nossa ideia era fazer o mesmo. Alguém já está trabalhando nisso?
Aqui está um WIP para esta ideia - https://github.com/Kostiantyn-Vorobiov/terraform-aws-github-runner/pull/1 (não testei no ambiente real)
Alguma ideia? Eu não sou um cara TS @gertjanmaas , @npalm
Olá @Kostiantyn-Vorobiov.
Eu realmente gosto da idéia. Eu não acho que a implementação funcionará porque usamos modelos de lançamento do EC2. Até onde eu sei, as opções Launch Templates e as opções de tipo de instância não se misturam na chamada runInstances
.
Portanto, em vez de alterar o tipo de instância, poderíamos criar um segundo modelo de execução no Terraform e alterar launchTemplateName
e launchTemplateVersion
para o modelo secundário em um erro InsufficientInstanceCapacity
. Veja o código terraform aqui: https://github.com/philips-labs/terraform-aws-github-runner/blob/8ed8a8491298d5023f37b207e432e92129183adc/modules/runners/main.tf#L36
@npalm como isso soa para você?
De acordo com a documentação -
"LaunchTemplate — (mapa) -
O modelo de execução a ser usado para iniciar as instâncias. Quaisquer parâmetros que você especificar em RunInstances substituem os mesmos parâmetros no modelo de execução."
Portanto, há uma chance de que isso possa funcionar dessa maneira. Mas o segundo modelo de lançamento também pode funcionar bem.
Além disso, existe uma solução mais robusta com solicitações de frota pontual. Mas isso requer muitas mudanças.
Nesse caso, a substituição deve ser o caminho a seguir
link para documentos: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html
@Kostiantyn-Vorobiov sinta-se à vontade para abrir um rascunho (WIP) PR
Comentários muito úteis
De acordo com a documentação -
"LaunchTemplate — (mapa) -
O modelo de execução a ser usado para iniciar as instâncias. Quaisquer parâmetros que você especificar em RunInstances substituem os mesmos parâmetros no modelo de execução."
Portanto, há uma chance de que isso possa funcionar dessa maneira. Mas o segundo modelo de lançamento também pode funcionar bem.
Além disso, existe uma solução mais robusta com solicitações de frota pontual. Mas isso requer muitas mudanças.