Aide-mémoire CKAD
exemple terraform apply
Un fichier .tf, c’est de l’état désiré — la même idée qu’un YAML de Deployment, mais pour les machines sous le cluster, pas pour ses objets. plan est le dry-run, apply la réalité, state la mémoire de ce que Terraform a déjà construit.
terraform init
terraform plan
terraform apply
terraform destroy
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "eu-west-3"
}
variable "instance_type" {
type = string
default = "t3.medium"
}
resource "aws_instance" "gateway" {
ami = "ami-0123456789abcdef0"
instance_type = var.instance_type
tags = {
Name = "kubelab-gateway-2"
}
}
output "gateway_ip" {
value = aws_instance.gateway.public_ip
}
terraform validate
terraform fmt
terraform state list
terraform output
terraform apply -var="instance_type=t3.large"
Champs
- provider
- L’API/le cloud auquel ce fichier parle. Il faut un required_providers correspondant au-dessus pour figer la version.
- resource
- Une chose réelle que Terraform crée et suit dans le state. La deuxième chaîne est un nom local — jamais envoyé au cloud.
- variable
- Une entrée, défaut optionnel. Les non renseignées se remplissent avec -var, un fichier .tfvars, ou une variable d’environnement TF_VAR_.
- output
- Affiché après apply, et lisible par d’autres configs Terraform. Sert à passer l’IP de la nouvelle machine à ce qui la configure ensuite.
- terraform init
- Télécharge les providers, prépare le backend. À relancer après avoir ajouté un provider ou changé de backend.
- terraform plan
- Dry-run. Montre +/-/~ par ressource. Rien ne change avant apply.
- terraform apply
- Exécute le plan pour de vrai. Demande confirmation sauf avec -auto-approve.
- terraform destroy
- Détruit tout ce qui est actuellement dans le state. Pas de retour en arrière.
- terraform state
- Liste ou modifie ce que Terraform pense exister. C’est la référence utilisée pour le diff, pas les fichiers .tf.
Pièges
- Pas un objet CKAD — de l’infra-as-code pour ce sur quoi tourne le cluster d’examen, pas le cluster lui-même.
- state fait foi de ce que Terraform croit exister. Supprimer un bloc resource puis apply détruit la vraie ressource — pas de undo.
- plan est le dry-run. Rien n’est créé ni détruit avant apply — lire le diff +/-/~ avant de taper yes.
- Le dimensionnement ici, c’est juste RAM/CPU. Ça ne dit rien du support de la virtualisation imbriquée (KVM), dont Kata Containers a besoin — à vérifier séparément selon le provider et le type d’instance.
Doc officielle Terraform docs Configuration language