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.

Un vaisseau capital traverse une ville éclairée au crépuscule pendant que des appareils plus petits s’arriment par sa baie ouverte. Un vaisseau capital traverse une ville éclairée au crépuscule pendant que des appareils plus petits s’arriment par sa baie ouverte.
Boucle de base
terraform init
terraform plan
terraform apply
terraform destroy
main.tf
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
}
Inspecter
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

S’entraîner sur un cluster réel →