Terraform Foundation Factory Übersicht Die Foundation Factory ist eine zentrale Automatisierungsstruktur, die den Aufbau und Betrieb der gesamten Google Cloud Plattform (GCP) Foundation eines Unternehmens sicherstellt. Dabei kommen Terraform und GitOps-Prinzipien zum Einsatz. Ziel ist es, eine skalierbare, wartbare und mandantenfähige Struktur aufzubauen, bei der alle GCP-Komponenten – von Organisationsebene bis zu projektspezifischen Ressourcen – infrastrukturell als Code verwaltet werden. Repository-Struktur 1. -FF-GCP-FOUNDATION-GITOPS Einziges Repository, das manuell erstellt wird Verwaltet zentral alle nachgelagerten GitOps-Repositories der Foundation. Führt Terraform-Code aus, um: GitOps-Repositories für die Foundation zu erstellen ( -ff-gcp-gitops) GitOps-Repositories für die Project Factorys zu erstellen ( -pf-gcp-gitops) 💡 Hinweis: steht für das zentrale IT Unternehmen. 2. -FF-GCP-GITOPS Wird vom ROOT-FF-GCP-FOUNDATION-GITOPS erstellt Verwaltet sämtliche GitOps-Repositories der Google Cloud Foundation Layer. Erstellt folgende Repositories (Können weitere jederzeit ergäntzt werden): Repository Name Funktion -ff-gcp-billing-alerts Billing Alerts und Budgets konfigurieren -ff-gcp-vpc-[n] Virtual Private Clouds (Netzwerkstruktur) -ff-gcp-cloud-identity-groups Identity-Gruppen & IAM-Berechtigungen -ff-gcp-public-dns Public DNS Zonen & Records -ff-gcp-organization-hierarchy Organisationsebenenstruktur (Folder) -ff-gcp-organization-policies Org Policies (Constraints, Restrictions) -ff-gcp-project-factory Project Factory Verwaltung für Kundenprojekte -ff-gcp-custom-roles Definierte benutzerdefinierte IAM Rollen -ff-gcp-fortigate-firewall Firewall-Regeln (z. B. Third Party Integration) 🛡️ Berechtigungen auf Organisationsebene werden nicht automatisch über Gitops vergeben und müssen manuell erfolgen! Project Factory 3. -PF-GCP-GITOPS Wird vom Foundation GitOps Repository ( -ff-gcp-gitops) erstellt Erstellt die Service Projects in dennen der Gesamte Code des jeweiligen Projektes abgebildet ist ( -gcp-) IAM-Service Accounts werden generiert 4. -PF-GCP-PROJECT-FACTORY Terraform-Repository zur eigentlichen Erstellung der GCP-Projekte Service Projects 5. -GCP- Echte Kundenprojekte, z. B. SAP-Systeme, Data Lake, etc. Enthält Terraform-Code für: Projektinterne Ressourcen Weitere IAM-Konfiguration Speicher, Netzwerk, GKE, etc. IAM & Berechtigungen Bereich Verwaltet durch Beschreibung Organisationsebene Manuell Wird per Hand vergeben indem man den nötigen Principel einer jeweiligen Gruppe zuweist. Projekt & Folder IAM GitOps via Terraform Wird automatisiert über GitOps-Repos geregelt Service Accounts Automatisch erstellt Durch GitOps-Repositories GitOps Flow – Zusammenfassung A[-FF-GCP-FOUNDATION-GITOPS] --> B1[-FF-GCP-GITOPS] A[-FF-GCP-FOUNDATION-GITOPS] --> B2[-PF-GCP-GITOPS] B1 --> C1[Billing, VPC, Identity, Policies...] B2 --> D1[-PF-GCP-PROJECT-FACTORY] B2 --> E1[-GCP-] B2 --> E2[-GCP-] Vorteile dieser Struktur Modularisierung: Trennung von Foundation, Project Factory & Kundenprojekten Wiederverwendbarkeit: Templates können auf beliebige Kunden repliziert werden GitOps-Konformität: Änderungsverfolgung über GitLab Repos Skalierbarkeit: Neue Mandanten/Kunden können leicht hinzugefügt werden Sicherheitskonform: Rollen- und Berechtigungsstruktur zentral steuerbar