Skip to content

Commit

Permalink
Merge pull request pulumi#1032 from mattstratton/mattstratton/kuberne…
Browse files Browse the repository at this point in the history
…tes-go-helm-wordpress
  • Loading branch information
mattstratton authored Jun 29, 2021
2 parents dec2c65 + 01cd6b9 commit 529c1f2
Show file tree
Hide file tree
Showing 6 changed files with 598 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ Example | Description |
Example | Description |
--------- | --------- |
[Guestbook](kubernetes-go-guestbook) | Build and deploy a simple, multi-tier web application using Kubernetes and Docker.
[Wordpress Helm Chart](kubernetes-go-helm-wordpress) | Use the Helm API to deploy v9.6.0 of the Wordpress Helm Chart to a Kubernetes cluster.
[Expose Deployment](kubernetes-go-exposed-deployment) | Deploy nginx to a Kubernetes cluster, and publicly expose it using a Kubernetes Service.

## Openstack
Expand Down
3 changes: 3 additions & 0 deletions kubernetes-go-helm-wordpress/Pulumi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
name: kubernetes-go-helm-wordpress
runtime: go
description: A minimal Go Pulumi program
116 changes: 116 additions & 0 deletions kubernetes-go-helm-wordpress/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
[![Deploy](https://get.pulumi.com/new/button.svg)](https://app.pulumi.com/new)

# Wordpress Helm Chart

Uses the Helm API of `pulumi-kubernetes` to deploy `v9.6.0` of the Wordpress Helm Chart to a
Kubernetes cluster. Pulumi will expand the Helm Chart and submit the expanded YAML to the cluster.

## Running the App

If you haven't already, follow the steps in [Pulumi Installation and
Setup](https://www.pulumi.com/docs/get-started/install/) and [Configuring Pulumi
Kubernetes](https://www.pulumi.com/docs/intro/cloud-providers/kubernetes/setup/) to get set up with
Pulumi and Kubernetes.

Now, install dependencies:

```sh
go get ./...
```

Create a new stack:

```sh
$ pulumi stack init
Enter a stack name: wordpress-dev
```

Preview the deployment of the application and the perform the deployment:

```sh
pulumi up
Previewing update (wordpress-dev)

View Live: https://app.pulumi.com/...

Type Name Plan
+ pulumi:pulumi:Stack kubernetes-go-helm-wordpress-wordpress-dev create
+ └─ kubernetes:helm.sh/v2:Chart wpdev create
+ ├─ kubernetes:core/v1:PersistentVolumeClaim wpdev-wordpress create
+ ├─ kubernetes:core/v1:Secret wpdev-wordpress create
+ ├─ kubernetes:core/v1:Service wpdev-wordpress create
+ ├─ kubernetes:core/v1:ConfigMap default/wpdev-mariadb create
+ ├─ kubernetes:core/v1:Secret default/wpdev-mariadb create
+ ├─ kubernetes:core/v1:Pod wpdev-credentials-test create
+ ├─ kubernetes:core/v1:Service default/wpdev-mariadb create
+ ├─ kubernetes:apps/v1:Deployment wpdev-wordpress create
+ └─ kubernetes:apps/v1:StatefulSet default/wpdev-mariadb create

Resources:
+ 11 to create

Do you want to perform this update? yes
Updating (wordpress-dev)

View Live: https://app.pulumi.com/.../updates/7

Type Name Status
+ pulumi:pulumi:Stack kubernetes-go-helm-wordpress-wordpress-dev created
+ └─ kubernetes:helm.sh:Chart wpdev created
+ ├─ kubernetes:core:Secret default/wpdev-mariadb created
+ ├─ kubernetes:core:Secret wpdev-wordpress created
+ ├─ kubernetes:core:PersistentVolumeClaim wpdev-wordpress created
+ ├─ kubernetes:core:Service wpdev-wordpress created
+ ├─ kubernetes:core:ConfigMap default/wpdev-mariadb created
+ ├─ kubernetes:core:Service default/wpdev-mariadb created
+ ├─ kubernetes:apps:StatefulSet default/wpdev-mariadb created
+ └─ kubernetes:apps:Deployment wpdev-wordpress created

Outputs:
frontendIp: "35.193.210.254"

Resources:
+ 10 created

Duration: 53s
```

We can see here in the `---outputs:---` section that Wordpress was allocated a public IP, in this
case `35.193.210.254`. It is exported with a stack output variable, `frontendIp`. We can use `curl`
and `grep` to retrieve the `<title>` of the site the proxy points at.

```sh
$ curl -sL $(pulumi stack output frontendIp):80 | grep "<title>"
<title>User&#039;s Blog! &#8211; Just another WordPress site</title>
```

You can also navigate to the site in a web browser.

When you're done, you can remove these resources with `pulumi destroy`:

```sh
pulumi destroy --skip-preview
Destroying (wordpress-dev)

View Live: https://app.pulumi.com/example/.../updates/8

Type Name Status
- pulumi:pulumi:Stack kubernetes-go-helm-wordpress-wordpress-dev deleted
- └─ kubernetes:helm.sh:Chart wpdev deleted
- ├─ kubernetes:core:Secret wpdev-wordpress deleted
- ├─ kubernetes:core:Secret default/wpdev-mariadb deleted
- ├─ kubernetes:core:ConfigMap default/wpdev-mariadb deleted
- ├─ kubernetes:core:Service default/wpdev-mariadb deleted
- ├─ kubernetes:core:PersistentVolumeClaim wpdev-wordpress deleted
- ├─ kubernetes:core:Service wpdev-wordpress deleted
- ├─ kubernetes:apps:StatefulSet default/wpdev-mariadb deleted
- └─ kubernetes:apps:Deployment wpdev-wordpress deleted

Outputs:
- frontendIp: "35.193.210.254"

Resources:
- 10 deleted

Duration: 7s
```
8 changes: 8 additions & 0 deletions kubernetes-go-helm-wordpress/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module kubernetes-go-helm-wordpress

go 1.14

require (
github.com/pulumi/pulumi/sdk/v3 v3.5.1
github.com/pulumi/pulumi-kubernetes/sdk/v3 v3.0.0
)
Loading

0 comments on commit 529c1f2

Please sign in to comment.