Hi,
ich habe einige Veränderungen an der Puppet Repo-Struktur vorgenommen. Diese ermöglichen uns endlich vollständig unabhängige testing und production environments auf dem selben Puppet Master zu fahren und machen die relativ schwierige Handhabung von Submodulen weitgehend überflüssig (Bjo und Stefan hatten sich das gewünscht).
1. Es gibt ein zentrales Repo in dem der Linting-Code liegt. In diesem Repo liegt auch ein Pre-Commit-Hook. Fügt man den seinem lokalen Repository hinzu, wird das linting vor einem Commit ausgeführt.
Siehe https://git.nordwest.freifunk.net/ffnw-puppet/puppet-lint
Evtl. müsste es von den Linting-Experten noch unseren Bedürfnissen angepasst werden.
2. Das puppet-data Repo ist nicht mehr aktiv und daher archiviert. Es ist im puppet-environments Repo aufgegangen (siehe unten).
3. Das Puppet-Base Repo enthält keinen wirklich relevanten Code mehr. Alle Daten liegen nun im puppet-environments Repo (siehe unten). Wenn ihr im Puppet-Base Repo Änderungen vornehmen müsst dann macht ihr vermutlich etwas falsch.
4. Es gibt ein neues Repo "puppet-environments": https://git.ffnw.net/ffnw-puppet/puppet-environments
In diesem Repo gibt es zwei Branches: "testing" und "production". Diese Branches sind 1 zu 1 auf die Environments auf dem Puppet Master gemapped. In diesem Repo sind auch die Abhängigkeiten für den Puppet-Librarian (Puppetfile) je Branch/Environment unabhängig voneinander definiert.
Änderungen können jetzt einfach im testing Branch/Environment durchgeführt/ getestet werden und anschließend in den production Branch/Environment gemerged werden.
Die Handhabung der Repos auf dem Puppet-Master erfolgt wie in einem normalen Puppet-Repo. Bitte achtet regelmäßig darauf, dass die Environments auf dem Master auch auf den jeweils zugehörigen Branch zeigen.
Die Branches sind rein zu Dokumentation-Zwecken als Submodule in das Puppet- Base Repo eingebunden. Das braucht aber nicht aktualisiert werden darum lasst euch davon bitte nicht irritieren.
Hinweis: Autodeployment und Auto-Linting per CI ist aktuell deaktivert. Ich muss dazu noch die Runner-Infra auf Docker migrieren. Und dann reaktiviere ich das (Autodeployment war aber ja sowieso bisher off).
Viele Grüße Clemens