fix(infra): donne au runner un nom distinct de son label
Infra / Formatage et validation Terraform (push) Successful in 9s
Infra / Formatage et validation Terraform (push) Successful in 9s
--name reprenait runner_labels : un runner et son label portaient le meme eni-g3. Deux machines qui reprendraient cette racine s'enregistreraient sous le meme nom, ce que GitHub refuse. Le nom vaut desormais celui de l'hote, resolu sur la machine, et runner_nom permet de le forcer. Point 2 de la revue de la PR #144. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
fca36649f9
commit
357cf996ed
@@ -13,6 +13,9 @@ locals {
|
|||||||
en_tant_que = "${var.ssh_user == "root" ? "" : "sudo "}runuser -u ${var.proprietaire} --"
|
en_tant_que = "${var.ssh_user == "root" ? "" : "sudo "}runuser -u ${var.proprietaire} --"
|
||||||
provisionneur = "${path.root}/../../../../scripts/provision-host.sh"
|
provisionneur = "${path.root}/../../../../scripts/provision-host.sh"
|
||||||
runner_archive = "actions-runner-linux-x64-${var.runner_version}.tar.gz"
|
runner_archive = "actions-runner-linux-x64-${var.runner_version}.tar.gz"
|
||||||
|
# Substitution shell, evaluee par le sh -c distant : un nom de runner doit etre unique dans
|
||||||
|
# le depot, le nom d'hote l'est deja et le reste si cette racine sert a une autre machine.
|
||||||
|
runner_nom = var.runner_nom != "" ? var.runner_nom : "$(hostname -s)"
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "null_resource" "docker_engine" {
|
resource "null_resource" "docker_engine" {
|
||||||
@@ -89,13 +92,14 @@ resource "null_resource" "environnements" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Piege : le jeton d'enregistrement expire en une heure. Un `apply` rejoue cette ressource des
|
# Piege : le jeton d'enregistrement expire en une heure. Un `apply` rejoue cette ressource des
|
||||||
# que `runner_version` ou `runner_labels` change, et redemande donc un jeton frais.
|
# que `runner_version`, `runner_labels` ou `runner_nom` change, et redemande donc un jeton frais.
|
||||||
resource "null_resource" "runner_github" {
|
resource "null_resource" "runner_github" {
|
||||||
depends_on = [null_resource.environnements]
|
depends_on = [null_resource.environnements]
|
||||||
|
|
||||||
triggers = {
|
triggers = {
|
||||||
version = var.runner_version
|
version = var.runner_version
|
||||||
labels = var.runner_labels
|
labels = var.runner_labels
|
||||||
|
nom = local.runner_nom
|
||||||
dossier = var.runner_dossier
|
dossier = var.runner_dossier
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +127,7 @@ resource "null_resource" "runner_github" {
|
|||||||
if [ ! -f ${var.runner_dossier}/.runner ]; then
|
if [ ! -f ${var.runner_dossier}/.runner ]; then
|
||||||
${local.en_tant_que} sh -c 'cd ${var.runner_dossier} && ./config.sh --unattended --replace \
|
${local.en_tant_que} sh -c 'cd ${var.runner_dossier} && ./config.sh --unattended --replace \
|
||||||
--url ${var.runner_url} --token ${var.runner_token} \
|
--url ${var.runner_url} --token ${var.runner_token} \
|
||||||
--labels ${var.runner_labels} --name ${var.runner_labels} --work _work'
|
--labels ${var.runner_labels} --name ${local.runner_nom} --work _work'
|
||||||
${local.sudo}${var.runner_dossier}/svc.sh install ${var.proprietaire}
|
${local.sudo}${var.runner_dossier}/svc.sh install ${var.proprietaire}
|
||||||
fi
|
fi
|
||||||
${local.sudo}${var.runner_dossier}/svc.sh start
|
${local.sudo}${var.runner_dossier}/svc.sh start
|
||||||
|
|||||||
@@ -16,3 +16,7 @@ runner_version = "2.330.0"
|
|||||||
# depot peut le creer. terraform.tfvars est ignore par git, mais le jeton ne doit pas y rester
|
# depot peut le creer. terraform.tfvars est ignore par git, mais le jeton ne doit pas y rester
|
||||||
# apres l'apply.
|
# apres l'apply.
|
||||||
runner_token = "A_RENSEIGNER"
|
runner_token = "A_RENSEIGNER"
|
||||||
|
|
||||||
|
# Nom du runner cote GitHub. Vide par defaut : le nom d'hote de la machine. A renseigner
|
||||||
|
# seulement si deux runners doivent tourner sur la meme machine, leurs noms devant differer.
|
||||||
|
# runner_nom = "eni-g3-bis"
|
||||||
|
|||||||
@@ -77,6 +77,12 @@ variable "runner_labels" {
|
|||||||
default = "eni-g3"
|
default = "eni-g3"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "runner_nom" {
|
||||||
|
type = string
|
||||||
|
description = "Nom du runner cote GitHub, unique dans le depot. Vide : le nom d'hote de la machine, qui reste unique si cette racine est reprise pour une seconde VM. A renseigner pour faire tourner deux runners sur la meme machine."
|
||||||
|
default = ""
|
||||||
|
}
|
||||||
|
|
||||||
variable "runner_dossier" {
|
variable "runner_dossier" {
|
||||||
type = string
|
type = string
|
||||||
description = "Dossier d'installation du runner sur la machine."
|
description = "Dossier d'installation du runner sur la machine."
|
||||||
|
|||||||
Reference in New Issue
Block a user