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

💡 Hinweis: <ROOT> steht für das zentrale IT Unternehmen.


2. <root>-FF-GCP-GITOPS

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

4. <KUNDE>-PF-GCP-PROJECT-FACTORY


Service Projects

5. <KUNDE>-GCP-<PROJECT-NAME>


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