Les permissions IAM pour Kubernetes ont été déplacées du module kubernetes vers le module iam pour une meilleure organisation.
terraform/modules/
├── iam/
│ ├── main.tf # Permissions équipe + instructeur
│ └── variables.tf
└── kubernetes/
├── main.tf # Cluster GKE
├── iam_kubernetes.tf # ❌ Permissions IAM Kubernetes
└── variables.tf
terraform/modules/
├── iam/
│ ├── main.tf # Permissions équipe + instructeur + Kubernetes
│ └── variables.tf # + user_email
└── kubernetes/
├── main.tf # Cluster GKE uniquement
└── variables.tf # - user_email
Les permissions suivantes sont maintenant dans le module iam :
# Permissions IAM pour Kubernetes
resource "google_project_iam_member" "container_admin" {
project = var.project_id
role = "roles/container.admin"
member = "user:${var.user_email}"
}
resource "google_project_iam_member" "compute_network_admin" {
project = var.project_id
role = "roles/compute.networkAdmin"
member = "user:${var.user_email}"
}
resource "google_project_iam_member" "service_account_user" {
project = var.project_id
role = "roles/iam.serviceAccountUser"
member = "user:${var.user_email}"
}-
Séparation des responsabilités :
- Module
iam= Toutes les permissions - Module
kubernetes= Infrastructure Kubernetes uniquement
- Module
-
Cohérence : Toutes les permissions IAM sont centralisées
-
Maintenance : Plus facile de gérer les permissions au même endroit
-
Dépendances claires : Kubernetes dépend maintenant d'IAM
# Module IAM (inclut les permissions Kubernetes)
module "iam" {
source = "./modules/iam"
# ... configuration
}
# Module Kubernetes (dépend d'IAM)
module "kubernetes" {
source = "./modules/kubernetes"
# ... configuration
depends_on = [module.network, module.iam] # ✅ Dépend d'IAM
}- ✅ Ajout de
user_emailpour les permissions Kubernetes
- ❌ Suppression de
user_email(plus nécessaire)
L'ordre de déploiement est maintenant :
- Network → Création du VPC
- IAM → Attribution des permissions (équipe + Kubernetes)
- Kubernetes → Création du cluster (avec permissions déjà accordées)
- Architecture plus propre et logique
- Permissions centralisées dans le module IAM
- Dépendances claires entre les modules
- Maintenance facilitée
La réorganisation est terminée ! 🎉