Deploy the dapr-dashboard helm chart on Rancher
TypeScriptDeploying a Helm chart on Rancher using Pulumi involves several steps. You will need to have a Rancher Kubernetes cluster already provisioned and accessible. Then, you'll use the
rancher2
Pulumi provider to interact with your Rancher instance.Here is a step-by-step Pulumi TypeScript program that assumes you have a Rancher Kubernetes cluster set up. It will deploy the Dapr dashboard using a Helm chart:
-
Set up the Pulumi Rancher 2 provider: Ensure that the Pulumi program can interact with your Rancher instance by configuring the provider with the necessary credentials.
-
Provision a Chart for the Dapr Dashboard: Use the Pulumi Kubernetes provider to deploy a new instance of the Dapr dashboard Helm chart to your Rancher-managed cluster.
Pulumi Program to Deploy the Dapr Dashboard on Rancher
Below is the TypeScript program that accomplishes this:
import * as pulumi from '@pulumi/pulumi'; import * as rancher2 from '@pulumi/rancher2'; import * as k8s from '@pulumi/kubernetes'; // Initialize a Pulumi Rancher 2 provider instance with your Rancher deployment's access credentials. const rancherProvider = new rancher2.Provider('my-rancher', { apiUrl: 'https://your-rancher-api-url', tokenKey: 'your-token-key', // Additional configurations may be necessary depending on your Rancher setup. }); // Retrieve the Rancher cluster where you want to deploy the Dapr dashboard. const cluster = rancher2.getCluster({ name: 'your-cluster-name', }, { provider: rancherProvider }); // Instantiate a Kubernetes provider for the retrieved Rancher cluster. const k8sProvider = new k8s.Provider('k8s-provider', { kubeconfig: cluster.kubeConfig, }); // Deploy the Dapr dashboard Helm chart. const daprDashboardChart = new k8s.helm.v3.Chart('dapr-dashboard', { chart: 'dapr-dashboard', version: 'your-chart-version', // Specify the chart version you want to deploy fetchOpts:{ repo: 'https://dapr.github.io/helm-charts/', // Official Dapr Helm chart repository }, // Include any custom values you wish to override in the Helm chart values: { // Custom values for the Dapr dashboard Helm chart go here }, }, { provider: k8sProvider }); // Export the necessary information to access the deployed Dapr dashboard. export const dashboardUrl = daprDashboardChart.getResourceProperty('v1/Service', 'dapr-dashboard', 'status').apply(s => `http://${s.loadBalancer.ingress[0].ip}/`);
Explanation
-
First, we import the necessary Pulumi libraries to interact with Rancher (
@pulumi/rancher2
) and Kubernetes (@pulumi/kubernetes
). -
We create a Rancher 2 provider instance and provide it with the API URL and token key of your Rancher instance.
-
We then retrieve the specific Rancher Kubernetes cluster named
'your-cluster-name'
, adjusting the names as necessary for your context. -
With the
kubeconfig
of the retrieved cluster, we create a Kubernetes provider. -
Next, we use the
k8s.helm.v3.Chart
class to deploy the Dapr dashboard Helm chart. We specify the chart name, version, and repository URL. You can provide overrides in thevalues
field if needed. -
Finally, we export
dashboardUrl
, which uses Pulumi's.apply()
method to query the deployedService
resource for the IP address assigned by the load balancer to access the Dapr dashboard.
Note: Before you run this Pulumi program, replace placeholder values such as
'https://your-rancher-api-url'
,'your-token-key'
,'your-cluster-name'
, and'your-chart-version'
with actual values from your Rancher setup and the Dapr Helm chart you wish to use.This program can be executed using Pulumi's CLI to deploy the Dapr dashboard on a Rancher Kubernetes cluster. Ensure that you have Pulumi installed and configured, as well as access to your Rancher cluster's API endpoint and credentials.
-