Deploy the logstash-super-turbo helm chart on Rancher
TypeScriptTo deploy the
logstash-super-turbo
Helm chart on Rancher using Pulumi, we're going to use therancher2
package. This provider allows you to manage Rancher 2 resources programmatically.In this program, we'll create a new Rancher 2 catalog, then deploy the
logstash-super-turbo
Helm chart into a specific project and namespace within a Rancher managed Kubernetes cluster. We'll assume that you have already installed Rancher, configured it correctly, and have access to its API from Pulumi.Here's a step-by-step Pulumi program in TypeScript:
- Set up the
rancher2
provider using the API token and URL of your Rancher server. - Create a new catalog if needed, or use an existing one with the Helm chart repository that contains the
logstash-super-turbo
chart. - Create a namespace in a specific project where we want to deploy the Helm chart.
- Finally, deploy the Helm chart using the details such as chart name, version, values, and so on.
Below is the complete program:
import * as rancher2 from "@pulumi/rancher2"; import { CatalogV2, AppV2 } from "@pulumi/rancher2"; // Initialize Rancher 2 provider with the required credentials. // You have to replace `RANCHER_API_URL` and `RANCHER_API_TOKEN` with actual values. const rancherProvider = new rancher2.Provider("rancherProvider", { apiUrl: "RANCHER_API_URL", apiToken: "RANCHER_API_TOKEN", }); // Optional: Create a new Rancher Catalog (if it does not already exist) // This is usually a one-time setup step and may not be needed in your case. const catalog = new CatalogV2("logstashCatalog", { clusterId: "local", url: "https://logstash-helm-chart-repo.example.com", // Replace with the URL of the Helm chart repository branch: "main", }, { provider: rancherProvider }); // Apply the Rancher Catalog to create it. catalog.apply(c => { const logstashChartVersion = "1.0.0"; // Replace with the version of the chart you want to deploy. // Create a namespace in a specific project within the Rancher cluster. // Replace `YOUR_PROJECT_ID` and `YOUR_NAMESPACE` with actual values. const namespace = new rancher2.Namespace("logstashNamespace", { projectId: "YOUR_PROJECT_ID", // The Project ID where the namespace and app will reside name: "YOUR_NAMESPACE", // The name of the namespace where you want to deploy your app }, { provider: rancherProvider }); // Deploy the `logstash-super-turbo` Helm chart into the specified namespace. const logstashApp = new AppV2("logstashApp", { // Chart details and deployment configuration chartName: "logstash-super-turbo", chartVersion: logstashChartVersion, clusterId: "local", projectId: namespace.projectId, namespace: namespace.name, // Assume we have default values or have a custom values file that you want to deploy with your app. values: ` logstashConfig: key1: value1 key2: value2 `, }, { provider: rancherProvider }); return logstashApp; }); // Export the endpoint of logstash application if it has one export const logstashEndpoint = logstashApp.status.apply(status => status.endpoint);
In this program, replace
RANCHER_API_URL
,RANCHER_API_TOKEN
,YOUR_PROJECT_ID
, andYOUR_NAMESPACE
with the actual values specific to your Rancher setup. The values YAML string should contain the custom configurations you want to apply to your Logstash deployment; replacekey1: value1
andkey2: value2
with actual Logstash configurations.Please ensure you have Rancher 2 credentials and access to the Rancher 2 cluster where you want to deploy the Helm chart. To use the presented code, you need to have Pulumi CLI and Node.js installed on your machine. Save the code in a
index.ts
file, runnpm install
to fetch the necessary packages, and then usepulumi up
to deploy your resources.- Set up the