Skip to content

Latest commit

 

History

History
108 lines (82 loc) · 2.96 KB

File metadata and controls

108 lines (82 loc) · 2.96 KB

🔄 Réorganisation des Permissions IAM Kubernetes

Changements effectués

Les permissions IAM pour Kubernetes ont été déplacées du module kubernetes vers le module iam pour une meilleure organisation.

📁 Avant vs Après

❌ Avant :

terraform/modules/
├── iam/
│   ├── main.tf              # Permissions équipe + instructeur
│   └── variables.tf
└── kubernetes/
    ├── main.tf              # Cluster GKE
    ├── iam_kubernetes.tf    # ❌ Permissions IAM Kubernetes
    └── variables.tf

✅ Après :

terraform/modules/
├── iam/
│   ├── main.tf              # Permissions équipe + instructeur + Kubernetes
│   └── variables.tf         # + user_email
└── kubernetes/
    ├── main.tf              # Cluster GKE uniquement
    └── variables.tf         # - user_email

🔧 Permissions IAM Kubernetes déplacées

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}"
}

🎯 Avantages de cette réorganisation

  1. Séparation des responsabilités :

    • Module iam = Toutes les permissions
    • Module kubernetes = Infrastructure Kubernetes uniquement
  2. Cohérence : Toutes les permissions IAM sont centralisées

  3. Maintenance : Plus facile de gérer les permissions au même endroit

  4. Dépendances claires : Kubernetes dépend maintenant d'IAM

🔄 Ordre de déploiement mis à jour

# 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
}

📋 Variables mises à jour

Module IAM :

  • ✅ Ajout de user_email pour les permissions Kubernetes

Module Kubernetes :

  • ❌ Suppression de user_email (plus nécessaire)

🚀 Déploiement

L'ordre de déploiement est maintenant :

  1. Network → Création du VPC
  2. IAM → Attribution des permissions (équipe + Kubernetes)
  3. Kubernetes → Création du cluster (avec permissions déjà accordées)

Résultat

  • 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 ! 🎉