Für eine optimale Darstellung aktivieren Sie bitte JavaScript.

🇩🇪 ♊ [Geminocks] Einen ⬣ Cloud Build-Trigger mit 🧹Pulumi in 🐍 Python einrichten

 ·  ☕ 3 Min. Lesezeit

Der Original-Artikel hier: https://medium.com/google-cloud/setting-cloudbuild-with-pulumi-in-python-330e8b54b2cf

TODO(7feb23): Dieses Video als eingebettetes Video hinzufügen: https://www.youtube.com/watch?v=5jhWVNN8P_M (erstellt am 6feb23)

Vor ein paar Wochen habe ich mich in Pulumi verliebt. Es hat alles, was ich mir von Terraform gewünscht habe: einfache Einrichtung, einfache Konfigurationsverwaltung, eine schöne Benutzeroberfläche kostenlos und vor allem… Sprachunterstützung! Pulumi ist die beste Erfindung nach Buffalo Pizza und hat nur ein Problem… keine Ruby-Unterstützung :/

Wie auch immer, ich bin so verliebt in ⬣ GCP (was zufälligerweise mein Gehalt bezahlt, das muss ich zugeben), Cloud Build, Cloud Deploy und im Allgemeinen CI/CD-Pipelines auf Google Cloud, dass ich es einfach ausprobieren wollte. Bei der Google-Suche nach “Cloud Build Pulumi” bin ich auf diesen netten Artikel für JavaScript gestoßen, der mir aber nicht so liegt.

Der Code

Mein Code ist hier: https://github.com/palladius/pulumi/tree/main/examples/python-gcp-cloudbuild-auto-trigger

Hinweis: 👍 Der Code wird jetzt endlich korrekt erstellt. Juhu!

cb-trigger-list

Was ist das Besondere an dem Code?

Der Code ermöglicht es jedem Pulumi-Projekt, das Sie auf GCP haben (in Python 🐍), einen Trigger einzurichten, um sich selbst zu aktualisieren. Ein Push an das Git-Repo löst einen Build-Job aus, der sich - wenn er erfolgreich ist - als Sie selbst bei Pulumi anmeldet und ein Update mit dem neuen Code anfordert.

Wenn Sie also zum Beispiel eine Änderung übergeben, die einen GCS-Bucket zum Code hinzufügt, wird dieser GCS-Bucket in ein paar Minuten erstellt und die README.md-Datei wird mit den Builder-Parametern aktualisiert:

cb-trigger-list
In Fettschrift sehen Sie 3 Parameter, die von Cloud Build selbst aktualisiert wurden!

Mein Code unterstützt im Moment Github (wie es ist) und Bitbucket (Code zu 99% fertig, da es zuerst funktionierte!).

Ich habe auch die Nachricht gemäß Lauras Artikel angepasst, indem ich der Git-Nachricht ein “[built with Cloud Build]” vorangestellt habe (“Slash N Fix” in diesem Fall):

View on Pulumi website

Was bedeutet Pulumi?

Ich habe versucht, Google Translate zu benutzen, es sieht so aus, als könnte es Besen (🧹) auf Hawaiianisch oder Burmesisch (🇲🇲, jetzt Myanmar) bedeuten. Bis dahin werde ich das erste Emoji verwenden, bis mir jemand das Gegenteil beweist.

Edit: Mein Freund Aaron von Pulumi bestätigt Besen und verweist auf diesen Artikel.

Nächste Schritte

Meine 📝 für die Zukunft beinhaltet:

  • Einrichten eines geeigneten Passworts/Status auf GCP über HSM oder GCS.
  • Umwandlung in ein Modul, so dass Sie, egal welches Pulumi-Projekt Sie haben, diesen Code mit 4-5 Variablen aufrufen können (Github-Benutzer, Github-Repo, Pulumi-Buidl-Verzeichnis, Anmeldedaten, ..). Ich muss noch sehen, ob dies auch sprachübergreifend (nicht 🐍) möglich ist.

Referenzen

Originalcode (Cloud Build + Node.js): https://www.pulumi.com/docs/guides/continuous-delivery/google-cloud-build/

Mein Code (python): https://github.com/palladius/pulumi/tree/main/examples/python-gcp-cloudbuild-auto-trigger

(Generated by Geminocks: https://github.com/palladius/ricc.rocks/tree/main/gemini prompt_version=1.4)


title: “[TODO] [de] \U0001F4A6 Setting a ⬣ Cloud Build trigger with \U0001F9F9Pulumi
in \U0001F40D Python”
date: 2022-09-22 21:17:43.000000000 +01:00
draft: false
tags:

  • symlink
  • GCP
  • pulumi
  • CloudBuild
  • Medium
    canonicalURL: https://medium.com/google-cloud/setting-cloudbuild-with-pulumi-in-python-330e8b54b2cf
    featured_image: “/images/gohugo-default-sample-hero-image.jpg”
    image: “/images/mtg-clone.jpg”
    geminock:
    :alter_front_matter_version: ‘1.0’
    🎶 Riccardo - todo make this variable per extension and calla proper class
    to get it. So you can have a single thingie for Main picture, and then transform
    it for all extensions.

Generated by Geminock v.1.9 - matter_hash_to_str()

Note this operation might have removed all previous comments. Sorry.

If Riccardo wants to edit this, code is in: /Users/ricc/git/ricc.rocks/gemini/lib/gemini/translator.rb


Inhalt teilen auf:

Riccardo
ERSTELLT VON
Riccardo
Developer Advocate, Google Cloud