Zum Inhalt springen
Beta

TM1: Infrastructure as Code (Terraform-Grundlagen)

Zuletzt aktualisiert am

In modernen souveränen Cloud-Umgebungen wird Infrastruktur niemals über manuelle Interaktionen in der Oberfläche provisioniert. Stattdessen wird Infrastruktur mit derselben Sorgfalt wie Software-Quellcode behandelt. Terraform innerhalb eines zentralisierten Pipeline-Frameworks bietet vier grundlegende Vorteile.

  • Idempotenz: Idempotenz garantiert, dass die mehrfache Ausführung derselben Konfigurationsdateien stets denselben Live-Zustand der Umgebung erzeugt.
  • Versionskontrolle: Die Versionskontrolle verfolgt alle Infrastruktur-Änderungen in Git-Repositories und schafft Nachvollziehbarkeit über Pull Requests und Peer-Code-Reviews.
  • Geschwindigkeit und Skalierung: Geschwindigkeit und Skalierung ermöglichen es, Hunderte identische Umgebungen über Regionen hinweg mit demselben minimalen Aufwand wie eine einzelne Instanz auszurollen.
  • Compliance-Durchsetzung: Die Compliance-Durchsetzung validiert Security-Guardrails, Kostenkontrollen und Organisationsrichtlinien, bevor eine physische Ressource erzeugt wird.

Der offizielle STACKIT Terraform Provider ist das primäre deklarative Gateway zur STACKIT-API-Plattform. Der STACKIT Terraform Provider interpretiert High-Level-Konfigurationsdateien (.tf) und übersetzt sie in vorhersehbare, authentifizierte API-Anfragen gegen souveräne Endpunkte.

Die vollständige Schema-Dokumentation für alle unterstützten Ressourcen und Data Sources wird in der offiziellen STACKIT Provider Registry gepflegt.

  • Ressourcen-Abdeckung: Der STACKIT Terraform Provider verwaltet den vollständigen Lifecycle von Compute-Instanzen, Virtual Private Clouds (VPC), Block Storage und Managed Services wie der STACKIT Kubernetes Engine (SKE).
  • Zentralisierte Authentifizierung: Der STACKIT Terraform Provider unterstützt nativ kurzlebige Service-Account-Tokens und beseitigt fest codierte Anmeldedaten in Engineering-Umgebungen.
  • State-Isolation: Der STACKIT Terraform Provider unterstützt kryptografisch gesicherte Remote-State-Backends, um eine Single Source of Truth zu garantieren und gleichzeitige Schreibkollisionen zu verhindern.

Innerhalb des STACKIT Cloud Frameworks ist das Ausführen von Terraform-Binaries auf lokalen Entwicklerrechnern eingeschränkt. Alle strukturellen Änderungen müssen über eine isolierte, identitätsgeprüfte CI/CD-Pipeline laufen.

  1. Code: Definiere deine Ziel-State-Konfiguration (zum Beispiel SKE-Cluster oder Object-Storage-Buckets) mit Standard-HCL-Syntax in .tf-Dateien.

  2. Plan: Die Pipeline führt terraform plan aus, um das strukturelle Delta zu berechnen und eine transparente Vorschau von Ergänzungen, Änderungen und Löschungen zu erstellen.

  3. Review: Ein Peer-Cloud-Engineer validiert den generierten Execution-Plan im Pull-Request-Interface.

  4. Apply: Nach einem erfolgreichen Merge in den Main-Branch führt die Pipeline terraform apply aus, um die definierten Ressourcen auf STACKIT zu materialisieren.

  5. State-Sicherung: Der aktualisierte State-Snapshot wird sicher in ein zentralisiertes Remote-Storage-Backend zurückgeschrieben.


Um mit STACKIT-Ressourcen zu interagieren, muss der STACKIT Terraform Provider explizit deklariert und mit Service-Account-Anmeldedaten authentifiziert werden, die über den Pipeline-Kontext injiziert werden.

Erstelle eine Standard-main.tf-Datei und gib den erforderlichen Provider-Block sowie die Versions-Constraints an.

terraform {
required_providers {
stackit = {
source = "stackitcloud/stackit"
version = "~> 0.0"
}
}
}
provider "stackit" {
# Authentication is handled via pipeline-injected environment variables:
# STACKIT_SERVICE_ACCOUNT_TOKEN
}

Die Ressource stackit_project etabliert den logischen Tenant-Container der Organisation innerhalb der souveränen STACKIT-Plattform-Topologie.

resource "stackit_project" "enterprise_core" {
name = "Framework-Core-Infrastructure"
container_id = "your-target-parent-folder-or-org-id"
}

3. Optionale Enterprise-Security- und Netzwerk-Integration

Abschnitt betitelt „3. Optionale Enterprise-Security- und Netzwerk-Integration“

Abhängig von den Compliance-Blueprints deiner Organisation können Projekte nach Bedarf mit erweiterten Sicherheitsmustern angereichert werden.

  • SNA-Architekturmuster: Die Integration der Secure Network Architecture (SNA) kann umgesetzt werden, wenn Governance-Modelle des Kunden eine strikte Netzwerk-Isolation erfordern.
  • Supply-Chain-Scanning: Pipeline-Konfigurationen können automatische Helm- und Terraform-Scanning-Engines (etwa Snyk) integrieren, um Konfigurations-Drift und Schwachstellen zu erkennen.