Deploy the wiki-service helm chart on Rancher
TypeScriptTo deploy a Helm chart on Rancher using Pulumi, you would typically follow these steps:
- Install and Configure Pulumi CLI: Make sure you have Pulumi CLI installed and configured for use with your cloud provider.
- Set Up Pulumi Project: You need to create a Pulumi project if you don't have one already.
- Install Required Providers: For Rancher, the
rancher2
provider is required. - Write the Deployment Code: Define the resources required to deploy the Helm chart using Pulumi's TypeScript API.
- Deploy: Run
pulumi up
to execute the deployment.
Install and Configure Pulumi CLI
Before you begin, ensure that you have installed Pulumi CLI and logged in. If you haven't already installed the Pulumi CLI, you can follow the instructions on the Pulumi Getting Started page.
Set Up Pulumi Project
Set up a new Pulumi TypeScript project by running
pulumi new typescript
. This command creates a new directory with a template Pulumi project.Install Required Providers
The
rancher2
provider will be automatically installed when you add it as a dependency in your Pulumi project.Write the Deployment Code
Below is a detailed program written in TypeScript that deploys a Helm chart on Rancher.
The example assumes you have already set up your Rancher instance and have the necessary kubeconfig file to interact with your Rancher Kubernetes cluster. Replace the placeholder values with the actual values from your environment where necessary.
import * as k8s from "@pulumi/kubernetes"; import * as pulumi from "@pulumi/pulumi"; // Initialize the Kubernetes provider using the kubeconfig from the Rancher cluster const rancherK8sProvider = new k8s.Provider("rancherK8sProvider", { kubeconfig: "<RANCHER_CLUSTER_KUBECONFIG>", // replace with your Rancher cluster kubeconfig }); // Deploy the 'wiki-service' Helm chart on the Rancher Kubernetes cluster const wikiServiceChart = new k8s.helm.v3.Chart("wiki-service-chart", { chart: "wiki-service", version: "1.0.0", // specify the chart version fetchOpts: { repo: "https://charts.example.com/", // specify the Helm repository URL }, // Set any values for the Helm chart deployment that are necessary values: { service: { type: "LoadBalancer", }, // Add additional configuration here }, }, { provider: rancherK8sProvider }); // Ensure this Helm chart is installed to the configured Rancher cluster // Export the endpoint of the wiki-service export const endpoint = wikiServiceChart.getResourceProperty("v1/Service", "wiki-service-svc", "status") .apply(status => status.loadBalancer.ingress[0].ip || status.loadBalancer.ingress[0].hostname);
In this program, we are importing the necessary libraries first. We then initialize a Pulumi provider for Kubernetes which interacts with the Rancher cluster. Ensure to replace
<RANCHER_CLUSTER_KUBECONFIG>
with the kubeconfig of your Rancher cluster.The
wiki-service-chart
variable refers to the new deployment of our Helm chart. We specify the chart name, chart version, and repository where thewiki-service
Helm chart is stored. You can configure the Helm chart deployment by setting thevalues
field to reflect any custom configurations that your chart accepts.Finally, the
endpoint
export statement will provide the IP address or hostname to access the wiki service once it's deployed.Deploy
Run this Pulumi program with the following command in the project directory:
pulumi up
This command will start the deployment process as per the definitions in the TypeScript file. Follow the on-screen prompts and confirm the deployment when asked by Pulumi. Once the deployment is successful, the output will display the exported endpoint which you can use to access the
wiki-service
.