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. <root>-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 (
<root>-ff-gcp-gitops) -
GitOps-Repositories für die Project Factorys zu erstellen (
<kunde>-pf-gcp-gitops)
-
💡 Hinweis:
<ROOT>steht für das zentrale IT Unternehmen.
2. <root>-FF-GCP-GITOPS
-
Wird vom
ROOT-FF-GCP-FOUNDATION-GITOPSerstellt -
Verwaltet sämtliche GitOps-Repositories der Google Cloud Foundation Layer.
Erstellt folgende Repositories (Können weitere jederzeit ergäntzt werden):
| Repository Name | Funktion |
|---|---|
<kunde>-ff-gcp-billing-alerts |
Billing Alerts und Budgets konfigurieren |
<kunde>-ff-gcp-vpc-[n] |
Virtual Private Clouds (Netzwerkstruktur) |
<kunde>-ff-gcp-cloud-identity-groups |
Identity-Gruppen & IAM-Berechtigungen |
<kunde>-ff-gcp-public-dns |
Public DNS Zonen & Records |
<kunde>-ff-gcp-organization-hierarchy |
Organisationsebenenstruktur (Folder) |
<kunde>-ff-gcp-organization-policies |
Org Policies (Constraints, Restrictions) |
<kunde>-ff-gcp-project-factory |
Project Factory Verwaltung für Kundenprojekte |
<kunde>-ff-gcp-custom-roles |
Definierte benutzerdefinierte IAM Rollen |
<kunde>-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. <KUNDE>-PF-GCP-GITOPS
-
Wird vom Foundation GitOps Repository (
<kunde>-ff-gcp-gitops) erstellt -
Erstellt die Service Projects in dennen der Gesamte Code des jeweiligen Projektes abgebildet ist (
<kunde>-gcp-<project-name>) -
IAM-Service Accounts werden generiert
4. <KUNDE>-PF-GCP-PROJECT-FACTORY
- Terraform-Repository zur eigentlichen Erstellung der GCP-Projekte
Service Projects
5. <KUNDE>-GCP-<PROJECT-NAME>
-
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[<root>-FF-GCP-FOUNDATION-GITOPS] --> B1[<KUNDE>-FF-GCP-GITOPS]
A[<root>-FF-GCP-FOUNDATION-GITOPS] --> B2[<KUNDE>-PF-GCP-GITOPS]
B1 --> C1[Billing, VPC, Identity, Policies...]
B2 --> D1[<KUNDE>-PF-GCP-PROJECT-FACTORY]
B2 --> E1[<KUNDE>-GCP-<PROJECT1>]
B2 --> E2[<KUNDE>-GCP-<PROJECT2>]
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