Deploy the simpleexampleservice helm chart on Rancher
TypeScriptIn order to deploy a Helm chart on a Rancher-managed Kubernetes cluster using Pulumi, you will need to perform several steps:
- Set up the Rancher2 Pulumi Provider, which allows you to manage resources in your Rancher instance.
- Deploy the
simpleexampleservice
Helm chart onto a specific cluster managed by Rancher.
Below is a TypeScript program using Pulumi to accomplish these tasks. The example assumes that you have a Rancher instance accessible, with proper credentials and that the cluster where you wish to deploy the Helm chart is already set up and managed by your Rancher instance.
This program does the following:
- Rancher2 Provider Setup: Configures a Rancher2 provider, which requires the URL of your Rancher instance and an API token.
- Helm Chart Deployment: Deploys the
simpleexampleservice
Helm chart to your Rancher-managed Kubernetes cluster.
Firstly, ensure that you have Pulumi installed and that you have access to your Rancher instance API. You'll need to retrieve your API token from Rancher, which you can find within the Rancher UI by navigating to the
API & Keys
section of your user settings.Now, let's get to the code:
import * as rancher2 from "@pulumi/rancher2"; import * as k8s from "@pulumi/kubernetes"; // Initialize the Rancher2 provider with the necessary credentials // The API token would typically be set through configuration or environment variables for security. const rancherProvider = new rancher2.Provider("rancher", { apiVersion: "v1", baseUrl: "https://rancher.your-domain.com", // Replace with your Rancher instance URL tokenKey: process.env.RANCHER_API_TOKEN, // Ensure RANCHER_API_TOKEN is set in your environment }); // Retrieve the cluster information where the Helm chart will be deployed // The cluster ID needs to be retrieved from your Rancher platform, replace it accordingly. const cluster = rancher2.getCluster({ id: "c-12345", // Replace with your actual Cluster ID }, { provider: rancherProvider }); // Now, deploy the simpleexampleservice Helm chart into the selected cluster const simpleExampleService = new k8s.helm.v3.Chart("simpleexampleservice-chart", { chart: "simpleexampleservice", // Replace with the actual chart name if different version: "1.0.0", // Specify the chart version you wish to deploy fetchOpts: { repo: "http://charts.example.com/", // Replace with the Helm chart repository URL }, }, { provider: new k8s.Provider("k8s-provider", { kubeconfig: cluster.kubeConfig }) }); // Using kubeconfig from Rancher's cluster // Export the cluster's kubeconfig as an output export const kubeConfig = cluster.kubeConfig;
This program begins by defining a Rancher2 provider that points to your Rancher-managed Kubernetes cluster. It then fetches the cluster information using the
getCluster
function, providing the cluster ID that identifies the cluster within your Rancher platform. ThekubeConfig
for the cluster is then used to initialize a Kubernetes provider.Next, the
simpleexampleservice
chart is installed using thehelm.v3.Chart
class from the Pulumi Kubernetes SDK. You need to replace the placeholder values with the actual data from your environment, such as the URL to your Rancher instance, the API token, the cluster ID, the Helm chart name, and the Helm chart repository URL. The version number of the chart is also specified, ensuring that you install a specific version to your cluster.Finally, the kubeconfig is exported as output, which allows you to interact with your cluster using
kubectl
if needed.Remember to set up your environment with the necessary credentials and replace the placeholder values in the program accordingly. To run this Pulumi program, save it to a file named
index.ts
, set theRANCHER_API_TOKEN
environment variable to your Rancher API token, then runpulumi up
in the same directory as yourindex.ts
file. Pulumi will perform the deployment, and you'll be able to see the resources it provisions.