Sovereign Cloud Stack

Eine Plattform — standardisiert, entwickelt und betrieben von Vielen.

Opensource - Testbed verwendet jetzt OpenTofu

Marc Schöchlin 12. Januar 2024

OSISM ist als Referenzimplementierung für die Infrastructure-as-a-Service-Schicht im Projekt Sovereign Cloud Stack (SCS) bekannt. Das OSISM Testbed wird daher im SCS-Projekt verwendet, um die Infrastructure-as-a-Service-Schicht zu demonstrieren, zu testen und weiterzuentwickeln.

Die Entwicklung von OSISM und SCS bringt aufgrund ihres verteilten Charakters der Systemachitektur eine Vielzahl von Herausforderungen mit sich, die sich auf verschiedene Ebenen erstrecken können. Neben dem rein funktionalen Testen von Infrastrukturkomponenten, wie es z.B. mit Cloud in a Box möglich ist (jede Komponente existiert genau einmal), ist es daher auch sehr sinnvoll, die verschiedenen Komponenten in einem Szenario zu testen, das einem produktiven Setup ähnlicher ist, indem diese in einem Cluster-Modus betrieben werden. Auf diese Weise können auch einige nicht-funktionale Konfigurations- und Implementierungsfragen im Testbed simuliert, entwickelt und verifiziert werden.

Als Basis bzw. zur Bereitstellung des Testbeds werden virtuelle Maschinen, Netzwerk und Storage auf Basis von OpenStack verwendet. Das Testbed kann damit grundsätzlich in einer beliebigen Openstack Cloud Umgebung ein SCS System System zu Test- und Entwickungszwecken betreiben. (Da SCS prinzipbedingt auch selbst Systeme virtualisiert, muss die OpenStack Umgebung die Fähigkeiten zur Nested Virtualization bereitstellen.)

Das SCS Testbed nutzte bisher Terraform, um die Basis für die benötigten Infrastrukturkomponenten automatisiert aufzubauen bzw. zu verwalten. Terraform wurde bisher unter der Mozilla Public License v2.0 veröffentlicht und passte daher von den Nutzungsbedingungen bzw. hinsichtlich seiner Offenheit gut zum OSISM- und SCS-Projekt.

Mit der Ankündigung vom 10. August 2023 hat Hashicorp bekannt gegeben, dass sich dies in Zukunft ändern wird - zukünftige Versionen werden zumindest in relevanten Teilen unter der Business Source License v1.1 zur Verfügung gestellt. Da wir ein sehr großes Interesse daran haben, dass unser Projekt auf ernsthaften Open Source Komponenten aufbaut, war absehbar, dass wir hier eine sinnvolle Alternative finden müssen die unseren Anforderungen entspricht.

Glücklicherweise hat sich schon am 2. September 2023 die Gründung eines Terraform Forks ergeben, der unter dem Dach der Linux Foundation unter den Lizenzbedingungen der Mozilla Public License 2 weiterentwickelt wird. Mit dem ersten offiziellen und stabilen Release von [OpenTofu](https://opentofu.org/] stellt OSISM und SCS nun seine Infrastructure-as-Code Realisierung im Testbed auf OpenTofu in der Version 1.6.0 um.

Die Migration gestaltete sich sehr einfach: OpenTofu kann aus unserer Sicht guten Gewissens und wenig überschend als DropIn Replacement für Terraform bezeichnet werden.

Mit dem heute integrierten Code-Stand haben wir noch einige Detailverbesserungen bei der Installation der Abhängigkeiten bzw. der Dokumentation des Testbeds vorgenommen. So ist es jetzt nur noch notwendig make, wireguard und python-virtualenv auf dem Rechner des Testbed-Benutzers zu installieren. Alle anderen Abhängigkeiten wie OpenTofu aber auch Ansible werden nun passend zum Stand des Git-Branch installiert und aktualisiert. Auf diese Weise erreichen wir, dass die Testbed-Nutzer in Zukunft weniger Aufwand bei der Verwaltung der Tools haben und dass für das Testbed sichergestellt ist, dass es mit den richtigen Tools in den richtigen Versionen genutzt werden.

Ich möchte and dieser Stelle ein weiteres Mal meine Begeisterung für OpenSource im Zusammenhang mit Terraform zum Ausdruck bringen. Die bisherige Offenheit von Terraform und das Engagement der Community haben hier dafür gesorgt, dass wir mit geringem Aufwand auf ein alternatives und zukunftssicheres Produkt migrieren können.

Über den Autor

Marc Schöchlin
Marc has been passionate about open source since the late 90's and has since spent his entire professional and personal life almost exclusively with open source technologies. As a systems engineer and developer (in recent years his profile can be very well described by the term Site Reliability Engineering), Marc has been responsible for mission-critical platforms for numerous companies and has contributed code, expertise, testing and ideas to many open source projects. As a Site Reliability Engineer, Marc takes care of the operability or non-functional properties (security, availability, scalability and efficiency) of SCS. This includes technical implementation and configuration details of individual components, but also structural aspects of SCS (architecture, operational concepts, processes, best practices).