117 lines
2.6 KiB
HCL
117 lines
2.6 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 "subnets" {
|
|
description = "Map des sous-reseaux avec name et cidr"
|
|
type = map(object({
|
|
name = string
|
|
cidr = string
|
|
}))
|
|
default = {
|
|
subnet1 = {
|
|
name = "subnet-1"
|
|
cidr = "10.0.1.0/24"
|
|
}
|
|
subnet2 = {
|
|
name = "subnet-2"
|
|
cidr = "10.0.2.0/24"
|
|
}
|
|
}
|
|
}
|
|
|
|
variable "instances" {
|
|
description = "Map des instances EC2 avec ami, type et subnet"
|
|
type = map(object({
|
|
ami = string
|
|
instance_type = string
|
|
subnet_key = string
|
|
}))
|
|
default = {
|
|
ubuntu = {
|
|
ami = "ami-03638fc4f87bac487"
|
|
instance_type = "t3.micro"
|
|
subnet_key = "subnet1"
|
|
}
|
|
amazon_linux = {
|
|
ami = "ami-063039a3666cc5ce3"
|
|
instance_type = "t3.micro"
|
|
subnet_key = "subnet2"
|
|
}
|
|
}
|
|
}
|
|
|
|
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."
|
|
}
|
|
}
|
|
|
|
variable "ebs_volume_size" {
|
|
description = "Taille du volume EBS additionnel en Go"
|
|
type = number
|
|
default = 10
|
|
}
|