-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
3ef4cbc
commit 9474988
Showing
6 changed files
with
117 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,12 +18,10 @@ | |
# You can create any custom variable you would like, and they will be accessible | ||
# in the templates via {{ site.myvariable }}. | ||
|
||
title: Your awesome title | ||
email: [email protected] | ||
title: viadee CDK Challenge | ||
email: [email protected] | ||
description: >- # this means to ignore newlines until "baseurl:" | ||
Write an awesome description for your new site here. You can edit this | ||
line in _config.yml. It will appear in your document head meta (for | ||
Google search results) and in your feed.xml site description. | ||
A pulumi learning challenge. Powered by [viadee](https://viadee.de) | ||
#baseurl: "" # the subpath of your site, e.g. /blog | ||
#url: "" # the base hostname & protocol for your site, e.g. http://example.com | ||
#twitter_username: jekyllrb | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- | ||
layout: post | ||
title: "Stufe 0: Einrichtung Pulumi und GCP-Account" | ||
date: 2024-06-14 10:24:28 +0200 | ||
permalink: /einrichtung/ | ||
--- | ||
|
||
Nutzt den bereitgestellten Google Account und logged Euch ein: | ||
|
||
```bash | ||
gcloud auth application-default login | ||
``` | ||
|
||
Das lokale Dateisystem als Speicher für den State konfigurieren: | ||
|
||
```bash | ||
pulumi login --local | ||
``` | ||
|
||
Erzeugt ein neues Pulumi Projekt: | ||
|
||
```bash | ||
pulumi new gcp-typescript | ||
``` | ||
|
||
(Name: `pulumi-challenge`, Stack: egal, GCP project: `viadee-pulumi-training`) | ||
|
||
In der `index.ts` die Bucket-Location auf `EU` ändern. | ||
|
||
Einen Namen für euer Team überlegen. | ||
|
||
Den String `"my-bucket"` auf den Teamnamen ändern. | ||
|
||
Den Bucket deployen: | ||
|
||
```bash | ||
pulumi up | ||
``` | ||
|
||
Öffnet die Google Cloud Console und prüft, dass dort Euer Storage Bucket angelegt wurde: https://console.cloud.google.com/ | ||
|
||
Sprecht uns an, zeigt uns Eure Ergebnisse und wir zeigen Euch den Weg zu Level 1. | ||
|
||
Final: Bereinigt die erzeugte Infrastruktur: | ||
|
||
```bash | ||
pulumi destroy | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- | ||
layout: post | ||
title: "Stufe 1: TODO-App Deployment Google Cloud Run" | ||
date: 2024-06-14 10:24:28 +0200 | ||
permalink: /todo-app/ | ||
--- | ||
|
||
Nutzt ein bereitgestelltes Container Image mit einer TODO-App und deploye sie auf Google Cloud Run. | ||
Die Applikation soll danach im öffentlichen Internet über einen Web-Browser aufrufbar sein. | ||
|
||
Hinweise: | ||
- Port im Container: 8080. | ||
- Region: `europe-west3` | ||
- Vergebt einen Service name, der mit Eurem Team Namen beginnt. | ||
- Registry / Image: `europe-west3-docker.pkg.dev/viadee-pulumi-training/demo-app/quarkus-todo-app:1.0` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--- | ||
layout: post | ||
title: "Stufe 2: TODO-APP mit Postgres-DB" | ||
date: 2024-06-14 10:24:28 +0200 | ||
permalink: /postgres-db/ | ||
--- | ||
|
||
Deployed die TODO-APP aus Level-1 mit einer Postgres-DB zur persistenten Datenhaltung. | ||
|
||
Hinweise: | ||
- Es steht ein angepasstes Container-Image für Euch bereit! | ||
|
||
- Deployed eine Postgres-DB mittels Google Cloud SQL | ||
- Region: `europe-west3`, | ||
- Tier: `db-f1-micro`. | ||
- Setzt die `deletionProtection` für die Instanz auf `false`. | ||
- Bindet die Datenbank an die TODO-App an. | ||
- Nutzt das für GCP SQL vorkonfigurierte Image `europe-west3-docker.pkg.dev/viadee-pulumi-training/demo-app/quarkus-todo-app:1.0-CLOUDSQL` | ||
- Setzt die Umgebungsvariablen: | ||
- `QUARKUS_DATASOURCE_USERNAME`, `QUARKUS_DATASOURCE_PASSWORD`: (Werte aus der `gcp.sql.Users`-Ressource) | ||
- `QUARKUS_DATASOURCE_JDBC_URL`: `jdbc:postgresql:///<Name der DB>` | ||
- `QUARKUS_DATASOURCE_JDBC_ADDITIONAL_JDBC_PROPERTIES_CLOUDSQLINSTANCE`: (Wert von connectionName aus der `gcp.sql.DatabaseInstance`) | ||
- Überprüft, dass TODO-Einträge in der DB persistiert werden. | ||
|
||
Achtung: Die Instanzierung des Postgres Services braucht etwas Zeit. Eine gute Gelegenheit, um sich zum Beispiel mit etwas zu trinken zu versorgen. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
layout: post | ||
title: "Stufe 3: Function als Endpunkt für den TODO-App Webhook" | ||
date: 2024-06-14 10:24:28 +0200 | ||
permalink: /webhook/ | ||
--- | ||
|
||
Die TODO-APP aus dem letzten level bietet einen HTTP-Webhook an. | ||
Hierfür gilt es mit einer GCP Cloud Function einen Endpunkt bereitszustellen. | ||
|
||
Hinweise: | ||
- Denkt immernoch daran Eure Ressourcen mit Eurem Team Namen vorne weg zubenennen. | ||
- Deployt eine Google Cloud Function, die den HTTP-Request-Body des Aufrufs mit `console.log` ins Log schreibt und mit dem HTTP-Status-Code 200 antwortet. | ||
- Bei Nutzung von `gcp.cloudfunctions.HttpCallbackFunction` könnt Ihr den Quelltext der Funktion direkt in den Pulumi-Code einbetten. | ||
- Konfiguriert die TODO-App so, dass die neue Funktion bei jeder Aktion an einem TODO-Element aufgerufen wird. | ||
- Nutzt hierzu die Umgebungsvariable `QUARKUS_REST_CLIENT_WEBHOOK_URL`. | ||
- Überprüft, dass die Aktionen nun ins Log der Funktion geschrieben werden: | ||
|
||
|
||
```bash | ||
gcloud functions list | ||
gcloud functions logs read <function-name> | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters