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!
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:
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):
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.