Deploy the tailscale-subnet-router helm chart on Kubernetes
TypeScriptDeploying a Helm chart on a Kubernetes cluster with Pulumi is a process where you specify the Helm chart and its configuration within your Pulumi program. Under the hood, Pulumi communicates with the Kubernetes API to create the necessary resources defined by the Helm chart.
In this scenario, we will deploy the
tailscale-subnet-router
Helm chart. The chart is assumed to be available in a Helm repository that you have access to. Pulumi's Kubernetes provider includes support for deploying Helm charts via theChart
resource. You need to provide the chart name, version, and any custom values you want to set.Here is a Pulumi program written in TypeScript that accomplishes this:
import * as k8s from "@pulumi/kubernetes"; // Create a new Kubernetes Helm Chart for the Tailscale Subnet Router const tailscaleSubnetRouter = new k8s.helm.v3.Chart("tailscale-subnet-router", { // Assuming 'tailscale' is the name of the chart, and that it's in a repository that Helm is configured to use chart: "tailscale-subnet-router", // Specify the namespace if needed, or remove if you want to use the default namespace namespace: "networking", // The version of the chart to deploy version: "1.0.0", // Replace with the actual chart version // If the chart requires any values to be overridden or specified, include them here values: { // Example value (replace with actual values required by the Helm chart) // key: "value", }, }); // Export the name of the chart export const chartName = tailscaleSubnetRouter.metadata.name;
In the above program, replace the
version
with the actual version of thetailscale-subnet-router
chart and populate thevalues
object with any configuration required by the chart, which can often be found in the chart'svalues.yaml
file or in its documentation.To apply this Pulumi program:
- Ensure you have Pulumi installed and configured to communicate with your Kubernetes cluster.
- Save the code snippet in a file named
index.ts
. - Run
pulumi up
from the command line, in the same directory where you savedindex.ts
.
Pulumi will then execute the program, which will result in deploying the Helm chart to your Kubernetes cluster. The
pulumi up
command will show you a preview of the resources that will be created. You can confirm the deployment by selecting 'yes'. After the deployment, Pulumi will print any exported values, such as the name of the Helm release.The
Chart
resource from Pulumi uses Helm to package and deploy existing Kubernetes applications. These Helm charts are collections of pre-configured Kubernetes resources.In case you need to customize the installation according to some specific needs or Tailscale requirements like setting the Tailscale auth key or choosing the network interface, you will have to customize the
values
section of the chart. Thevalues
object in theChart
resource is a direct mapping to the values you would normally set invalues.yaml
or with--set
flags during a Helm install.Please refer to the
Chart
class for more details on deploying charts with Pulumi and the Kubernetes provider.