Deploy the kloudlite-autoscalers helm chart on Rancher
TypeScriptTo deploy the
kloudlite-autoscalers
Helm chart on a Rancher-managed Kubernetes cluster using Pulumi, you would typically perform the following high-level steps:- Set up a Rancher cluster that you want to deploy into, if you don't already have one.
- Configure Pulumi to use the Rancher2 provider, which will allow you to interact with a Rancher instance programmatically.
- Deploy the Helm Chart to the Rancher Cluster by creating a
HelmChart
resource.
Assuming that you already have a running Rancher cluster and kubeconfig file is correctly configured in your environment for access, the Pulumi program below demonstrates how to deploy a Helm chart named
kloudlite-autoscalers
using TypeScript.Detailed Explanation
In the Pulumi TypeScript program:
-
rancher2
Provider: This is used to interact with your Rancher cluster, which allows you to deploy resources onto the Kubernetes cluster managed by Rancher. -
CatalogV2
Resource: Used to add a new catalog to a Rancher cluster. For Helm-based deployments, we need to ensure that the target Helm chart is available in one of our catalog repositories. Ifkloudlite-autoscalers
chart is located in a custom Helm repository, we would add that repository as a catalog. -
HelmChart
Resource: This is used to deploy the Helm chart into the Rancher cluster. You will specify the name of the chart, the version you wish to deploy, and the values you wish to override in the chart.
Here is the code that achieves the deployment:
import * as pulumi from "@pulumi/pulumi"; import * as rancher2 from "@pulumi/rancher2"; // Add a catalog to the Rancher cluster if your Helm chart is // in a custom repository. If it's a well-known repository or // already added to Rancher, this step may not be necessary. const catalog = new rancher2.CatalogV2("kloudlite-catalog", { // Replace the url with your Helm chart repository URL. url: "https://charts.kloudlite.io", clusterId: "c-xxxxxx", // Replace with your actual cluster ID in Rancher. }); // Deploy kloudlite-autoscalers Helm chart to the cluster const chart = new rancher2.HelmChartV2("kloudlite-autoscalers", { // Specify the namespace where the chart should be installed. namespace: "default", // Assuming the kloudlite-autoscalers chart is in the added catalog. // Chart name should match the name provided in the Helm repository. chartName: "kloudlite-autoscalers", chartVersion: "1.0.0", // Specify the chart version. repoName: catalog.name, // Reference the catalog we just added. values: { // Specify any custom values you need for the 'kloudlite-autoscalers' chart. // This should follow the structure specified in the chart's 'values.yaml'. }, }, { dependsOn: [catalog] }); // Ensure the catalog exists before deploying the chart. // Export the chart name of the deployed Helm chart export const chartName = chart.chartName;
This program creates a new
CatalogV2
resource representing the Helm repository where yourkloudlite-autoscalers
chart is located, and then it creates aHelmChartV2
resource which actually deploys the chart onto your Rancher-managed cluster.Make sure to replace placeholders, such as Helm repository URL and cluster ID, with the actual values that apply to your setup.
The
repoName
property for theHelmChartV2
is set to the name of theCatalogV2
resource we set up. By settingdependsOn
, we instruct Pulumi to only proceed with deploying the Helm chart after the catalog has been successfully registered with Rancher.Finally, the program exports the name of the Helm chart deployed, which can be useful to check its status or reference it in other parts of your Pulumi program.
To run this Pulumi program, you will need to install the
@pulumi/rancher2
package using npm:npm install @pulumi/rancher2
After installing the package, you can use the
pulumi up
command to execute the deployment. Ensure you have set up the Pulumi CLI and logged in to your Pulumi account. Also, this script assumes your kubeconfig is set up to connect to your Rancher cluster. If it is not, you would need to set up the kubeconfig to allow Pulumi to interact with your cluster.