111 lines
2.7 KiB
HCL
111 lines
2.7 KiB
HCL
variable "aws_profile" {
|
|
description = "Profil AWS a utiliser"
|
|
type = string
|
|
default = "ecole"
|
|
}
|
|
|
|
variable "aws_region" {
|
|
description = "Region AWS de deploiement"
|
|
type = string
|
|
default = "eu-west-3"
|
|
|
|
validation {
|
|
condition = can(regex("^eu-west-3$", var.aws_region))
|
|
error_message = "La region doit etre eu-west-3."
|
|
}
|
|
}
|
|
|
|
variable "owner" {
|
|
description = "Identifiant du proprietaire des ressources (tag Owner)"
|
|
type = string
|
|
default = "johan.leroy2023"
|
|
|
|
validation {
|
|
condition = length(var.owner) > 0
|
|
error_message = "Le owner ne peut pas etre vide."
|
|
}
|
|
}
|
|
|
|
variable "course_id" {
|
|
description = "Identifiant du cours (tag CourseId)"
|
|
type = string
|
|
default = "cours-tf-aws-s14"
|
|
|
|
validation {
|
|
condition = length(var.course_id) > 0
|
|
error_message = "Le CourseId ne peut pas etre vide."
|
|
}
|
|
}
|
|
|
|
variable "trigramme" {
|
|
description = "Trigramme pour prefixer les ressources"
|
|
type = string
|
|
default = "jle"
|
|
|
|
validation {
|
|
condition = can(regex("^[a-z]{3}$", var.trigramme))
|
|
error_message = "Le trigramme doit etre compose de 3 lettres minuscules."
|
|
}
|
|
}
|
|
|
|
variable "vpc_cidr" {
|
|
description = "CIDR du VPC"
|
|
type = string
|
|
default = "10.0.0.0/16"
|
|
|
|
validation {
|
|
condition = can(cidrhost(var.vpc_cidr, 0))
|
|
error_message = "Le CIDR du VPC doit etre un bloc CIDR valide."
|
|
}
|
|
}
|
|
|
|
variable "subnet_cidrs" {
|
|
description = "Liste des CIDR pour les sous-reseaux (un par AZ)"
|
|
type = list(string)
|
|
default = ["10.0.1.0/24", "10.0.2.0/24"]
|
|
|
|
validation {
|
|
condition = length(var.subnet_cidrs) == 2
|
|
error_message = "Il faut exactement 2 sous-reseaux."
|
|
}
|
|
}
|
|
|
|
variable "availability_zones" {
|
|
description = "Liste des zones de disponibilite"
|
|
type = list(string)
|
|
default = ["eu-west-3a", "eu-west-3b"]
|
|
|
|
validation {
|
|
condition = length(var.availability_zones) == 2
|
|
error_message = "Il faut exactement 2 zones de disponibilite."
|
|
}
|
|
}
|
|
|
|
variable "ami_id" {
|
|
description = "ID de l'AMI pour l'instance EC2"
|
|
type = string
|
|
default = "ami-03638fc4f87bac487"
|
|
}
|
|
|
|
variable "instance_type" {
|
|
description = "Type d'instance EC2"
|
|
type = string
|
|
default = "t3.micro"
|
|
|
|
validation {
|
|
condition = var.instance_type == "t3.micro"
|
|
error_message = "Le type d'instance doit etre t3.micro."
|
|
}
|
|
}
|
|
|
|
variable "root_volume_size" {
|
|
description = "Taille du disque racine en Go (max 30)"
|
|
type = number
|
|
default = 30
|
|
|
|
validation {
|
|
condition = var.root_volume_size > 0 && var.root_volume_size <= 30
|
|
error_message = "La taille du disque doit etre entre 1 et 30 Go."
|
|
}
|
|
}
|