Terraform-aws-github-runner: Fallback-Instanztyp

Erstellt am 16. Feb. 2021  ·  6Kommentare  ·  Quelle: philips-labs/terraform-aws-github-runner

Eine Funktionsanforderung: Die Möglichkeit, den sekundären Instance-Typ anzugeben, wenn der Fehler "Es ist keine Spot-Kapazität verfügbar, die Ihrer Anforderung entspricht", Code: 'InsufficientInstanceCapacity'.

Ich denke, wir könnten eine Fallback-Startvorlage mit einem anderen Instance-Typ haben oder InstanceType in der aktuellen Startvorlage überschreiben, falls AWS mit dem Fehler 'InsufficientInstanceCapacity' antwortet.

Hilfreichster Kommentar

Laut Dokumentation -
"LaunchTemplate — (Karte) -
Die zum Starten der Instanzen zu verwendende Startvorlage. Alle Parameter, die Sie in RunInstances angeben, überschreiben dieselben Parameter in der Startvorlage."
Es besteht also die Möglichkeit, dass es auf diese Weise funktioniert. Aber die zweite Startvorlage könnte auch gut funktionieren.

Außerdem gibt es eine robustere Lösung mit Spot-Flottenanfragen. Aber das erfordert viele Veränderungen.

Alle 6 Kommentare

Ja, wir hatten das gleiche Problem und unsere Idee war, dasselbe zu tun. Arbeitet schon jemand daran?

Hier ist ein WIP für diese Idee - https://github.com/Kostiantyn-Vorobiov/terraform-aws-github-runner/pull/1 (nicht in der realen Umgebung getestet)
Irgendwelche Gedanken? Ich bin kein TS-Typ @gertjanmaas , @npalm

Hallo @Kostiantyn-Vorobiov.

Die Idee gefällt mir richtig gut. Ich glaube nicht, dass die Implementierung funktionieren wird, weil wir EC2 Launch Templates verwenden. Soweit ich weiß, mischen sich die Optionen für Startvorlagen und die Optionen für den Instanztyp nicht im runInstances Aufruf.

Anstatt den Instanztyp zu ändern, könnten wir also eine zweite Startvorlage in Terraform erstellen und launchTemplateName und launchTemplateVersion bei einem InsufficientInstanceCapacity Fehler in die sekundäre Vorlage ändern. Siehe Terraform-Code hier: https://github.com/philips-labs/terraform-aws-github-runner/blob/8ed8a8491298d5023f37b207e432e92129183adc/modules/runners/main.tf#L36

@npalm wie hört sich das für dich an?

Laut Dokumentation -
"LaunchTemplate — (Karte) -
Die zum Starten der Instanzen zu verwendende Startvorlage. Alle Parameter, die Sie in RunInstances angeben, überschreiben dieselben Parameter in der Startvorlage."
Es besteht also die Möglichkeit, dass es auf diese Weise funktioniert. Aber die zweite Startvorlage könnte auch gut funktionieren.

Außerdem gibt es eine robustere Lösung mit Spot-Flottenanfragen. Aber das erfordert viele Veränderungen.

In diesem Fall sollte das Überschreiben der richtige Weg sein

Link zu Dokumenten: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html

@Kostiantyn-Vorobiov öffne gerne einen Entwurf (WIP) PR

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen