An open API service indexing awesome lists of open source software.

https://github.com/jaxxstorm/pulumi-component-workshop


https://github.com/jaxxstorm/pulumi-component-workshop

Last synced: 5 months ago
JSON representation

Awesome Lists containing this project

README

        

# Pulumi Reuseable Component Workshop

This workshop will guide you through the process of creating a reusable Pulumi component to deploy to Kubernetes.

You'll first provision an application to a Kubernetes cluster using Pulumi's [Component Resource](https://www.pulumi.com/docs/intro/concepts/resources/#components) mechanism.

The workshop is designed to be run from within GitPod. Hit the button below to open the repo in GitPod.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/jaxxstorm/pulumi-component-workshop)

## Prerequisites

Before you start with this workshop, you'll need to have the Pulumi CLI installed and be logged into the Pulumi SaaS backend to store your state.

### Pulumi Login

Once the GitPod environment has initialized, you'll need to provide a Pulumi token. You can retrieve a token from [here](https://app.pulumi.com/settings/tokens)

### Kubernetes

You'll also need a Kubernetes cluster provisioned and running. The Kubernetes cluster must be capable of provisioning a service with `Type=LoadBalancer`.

You can check you have everything you need using `kubectl`:

```bash
kubectl cluster-info
Kubernetes control plane is running at https://f9a621c9-8f87-46ce-856d-662add25434a.k8s.ondigitalocean.com
CoreDNS is running at https://f9a621c9-8f87-46ce-856d-662add25434a.k8s.ondigitalocean.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
```

If you're following this tutorial in a live Pulumi Workshop event, a cluster will be provided to you.
If you need to provision a cluster, Pulumi code to do so on digital ocean can be found in the [infra folder](./infra).

# Acknowledgements

This workshop takes a lot of inspiration and has lifted code directly from [Komal Ali's](https://github.com/komalali/) [self service platyform](https://github.com/komalali/self-service-platyform).