🔍 1. Modul identifizieren und analysieren
- Einen Modulnamen aus dem
Puppetfile
entnehmen. - In der Puppet Forge nach dem Modul suchen.
- Verfügbare Versionen vergleichen und die neueste identifizieren.
📝 2. Änderungen im Modul prüfen
- Über den Link zur Project URL auf der Forge-Seite zum GitHub-Repository wechseln.
- Dort unter Releases oder im Changelog die letzten Änderungen prüfen:
Beispiel:
⚠️ 3. Auf Breaking Changes achten
- Mögliche Breaking Changes:
- Entfernung der Unterstützung für EOL-Software
- Änderungen an der API
- Umbenennung von Variablen
- Hinweis: Nicht jede Breaking Change ist für jedes Setup relevant.
- Beispiel: Der Entfall von EL6-Support betrifft euch vermutlich nicht.
🔍 4. Sonstige Änderungen bewerten
- Auch verlinkte Pull Requests (PRs) können Aufschluss geben.
- Prüfen, ob Änderungen nachvollziehbar sind und keine Breaking Changes enthalten, die euch betreffen.
🌱 5. Aufnahme in Entwicklungszweige
- Wenn das Modul als updatefähig eingeschätzt wird:
- Aufnahme in einen Feature- oder Development-Branch
🌲 6. Branch-Struktur im Control-Repo
Typischerweise vorhanden:
development
staging
production
- Zusätzlich: 0–n Feature-Branches
🧪 7. Tests in Entwicklungsumgebung
- Test des neuen Moduls in geeigneter Umgebung (VM, Container)
- Beobachtung des Zusammenspiels mit anderen Modulen
Mögliche Erkenntnisse:
- Abhängigkeit zu anderen Modul-Versionen
- Neue Facts, die zusätzliche Daten in die PuppetDB schreiben
- Neue oder geänderte Parameter, die Hiera-Daten erfordern
🔄 8. Change weiterreichen
- Wenn alle Anpassungen erledigt sind:
- Übergabe des Changes in den nächsten Branch zur weiteren Prüfung oder Vorbereitung für den Rollout.
🤖 9. Automatisierung mit Renovate Bot
- Dieser Prozess ist sehr kleinteilig und kann zeitaufwendig sein.
- Mit Hilfe von Renovate Bot lässt sich das Sichten und Sammeln der relevanten Informationen deutlich erleichtern.
- Renovate ist ein Bot, der sich in GitLab oder GitHub integrieren lässt.
- Er funktioniert ähnlich wie der GitHub-eigene Dependabot, ist aber deutlich flexibler und konfigurierbarer.
🧰 10. Automatisierung mit VoxBox
- Man kann auch versuchen mit der Vox Pupuli Voxbox die Abhängigkeiten für das gesamte Control-Repo anzeigen zu lassen.
- Das klappt nicht bei jedem Setup.
- Wenn im Puppetfile private Module sind, muss der jenige der es ausführt, Zugriff auf diese haben.
- Beispielbefehl:
podman run -it --rm -v $PWD:/repo:Z ghcr.io/voxpupuli/voxbox:latest r10k:dependencies
- Weitere nützliche Informationen gibt es in der Vox Pupuli VoxBox Dokumentation
Top comments (0)