Deploy the wbstack-clusterissuers helm chart on Rancher
TypeScriptTo deploy the
wbstack-clusterissuers
Helm chart on Rancher using Pulumi, we'll need to perform a few steps. First, we need to understand that Pulumi works with cloud providers through the use of providers and resources. Here therancher2
package provides the necessary resources to interact with a Rancher instance.Assuming that you've set up your Rancher environment, we'll be using the
rancher2.CatalogV2
resource, which allows us to add a catalog to a Rancher server; therancher2.Cluster
resource, to specify the cluster to which we'll be deploying; and arancher2.AppV2
resource to deploy the Helm chart to the specified cluster.Here's a Pulumi program in TypeScript to achieve this:
import * as pulumi from "@pulumi/pulumi"; import * as rancher2 from "@pulumi/rancher2"; // Initialize the Pulumi Rancher2 provider with the URL and access credentials for your Rancher Server const provider = new rancher2.Provider("rancher", { apiUrl: "https://rancher.my-domain.com", accessToken: pulumi.secret("myRancherAccessToken"), secretKey: pulumi.secret("myRancherSecretKey"), }); // Add a catalog to the Rancher server where the Helm chart is located const catalog = new rancher2.CatalogV2("wbstack-catalog", { clusterId: "<CLUSTER_ID>", // Replace with the ID of your Kubernetes cluster within Rancher name: "wbstack", url: "https://charts.wbstack.com", // The Helm repository containing the `wbstack-clusterissuers` chart // Add other required properties like gitBranch or secretName as needed for your catalog setup }, { provider: provider }); // Deploy the wbstack-clusterissuers Helm chart const wbstackClusterIssuersApp = new rancher2.AppV2("wbstack-clusterissuers-app", { clusterId: "<CLUSTER_ID>", // Replace with the ID of your Kubernetes cluster within Rancher namespace: "default", // Replace with the target namespace for the Helm release name: "wbstack-clusterissuers", repoName: catalog.metadata.name, // Reference the catalog we just created chartName: "wbstack-clusterissuers", // The name of the chart in the repository chartVersion: "1.0.0", // Specify the version of the chart you want to deploy // values: Provide any custom values.yaml as an object }, { provider: provider, dependsOn: [catalog] }); // Ensure the catalog is created before deploying the app // Export the App name export const appname = wbstackClusterIssuersApp.metadata.name;
This Pulumi program does the following:
-
Provider Initialization: Sets up the Rancher provider with necessary API credentials. You'll need to replace
myRancherAccessToken
andmyRancherSecretKey
with your actual Rancher server access credentials. -
Catalog Creation: Creates a new catalog in your Rancher instance pointing to the Helm chart repository where the
wbstack-clusterissuers
chart can be found. You need to ensure theurl
is correct and provide the<CLUSTER_ID>
for the Kubernetes cluster where you want to manage the catalog. -
Helm Chart Deployment: Deploys the
wbstack-clusterissuers
Helm chart from the catalog onto the specified Rancher Kubernetes cluster. Again, you'll have to provide the<CLUSTER_ID>
and replace"default"
if you wish to deploy to a different namespace. -
Exports: The name of the app as deployed is exported. You'll be able to use
pulumi stack output appname
to get the name of the app after the code runs.
Ensure you replace the placeholders with actual values appropriate for your Rancher setup:
"<CLUSTER_ID>"
: with the Rancher cluster ID where you want to deploy the chart."https://rancher.my-domain.com"
: with the URL of your Rancher server.- Helm
chartVersion
: if you want to specify a different version of the chart.
Remember to have your Kubernetes and Rancher2 provider configurations set up either via the Pulumi config commands or environmental variables for this program to work.
After writing this code to your
index.ts
, you can run the Pulumi CLI commands (pulumi up
) to preview and then apply your configurations, which will deploy the Helm chart on Rancher.Keep in mind that customization of the chart (like providing a values file or setting specific deployment parameters) can be set via the
values
property in therancher2.AppV2
resource.-