DEV Community

Robert Waffen for betadots

Posted on

🧩 Puppet Modul Update Prozess

🔍 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)