Deploy the elasticsearch-agent helm chart on Rancher
TypeScriptIn order to deploy an Elasticsearch Agent Helm chart on a Rancher Kubernetes cluster using Pulumi, we will perform the following steps:
- Configure access to your Rancher instance.
- Gain access to the Kubernetes cluster managed by Rancher on which you will deploy the Helm chart.
- Use the Pulumi
helm.v3
module to deploy a Helm chart to that Kubernetes cluster.
Here's a detailed breakdown of how you can do this using Pulumi with TypeScript:
Prerequisites
- You need to have access to a Rancher-managed Kubernetes cluster.
pulumi
andkubectl
CLI tools should be installed on your machine.- You need to be authenticated with the Kubernetes cluster managed by Rancher. This can often be done by using the
rancher
CLI tool to pointkubectl
to your cluster with a command likerancher kubectl
.
Configure Access
You must configure Pulumi to have access to your Rancher Kubernetes cluster. This typically involves setting the
KUBECONFIG
environment variable or using thekubeconfig
property within the Pulumi program to point to the configuration file associated with your Kubernetes cluster.Deploy the Helm Chart
With Pulumi, you use the
helm.v3.Chart
resource to deploy a Helm chart. You can specify the chart you would like to deploy (in your case, an Elasticsearch Agent chart) as well as the version and any custom values you would like to provide to that chart.Now let's move to the program:
import * as k8s from "@pulumi/kubernetes"; import * as pulumi from "@pulumi/pulumi"; // Import credentials for accessing Rancher managed Kubernetes Cluster // Assuming you have KUBECONFIG env variable set or the kubeconfig in default location const kubeconfig = process.env.KUBECONFIG; // Create a Kubernetes provider instance that uses our kubeconfig const k8sProvider = new k8s.Provider("k8s-provider", { kubeconfig }); // Elasticsearch Agent Helm chart deployment // Please replace `CHART_VERSION` with the version of the Elasticsearch Agent chart you wish to deploy const elasticsearchAgentChart = new k8s.helm.v3.Chart("elasticsearch-agent", { chart: "elasticsearch-agent", // This should be replaced with the precise chart name version: "CHART_VERSION", // Specify the chart version namespace: "default", // Assuming you're deploying to the default namespace // If you have a custom repository you may need to add a `repo` property here // You can also add custom values with the 'values' property, for example: // values: { // key: "value", // }, }, { provider: k8sProvider }); // Export the name of the chart export const chartName = elasticsearchAgentChart.metadata.name;
Explanation:
This program creates an instance of a Kubernetes provider that communicates with your Rancher-managed cluster. Then it creates a
Chart
resource to deploy the Elasticsearch Agent Helm chart.The
chart
,version
, andnamespace
properties must be filled in with the appropriate values for the Elasticsearch Agent chart you are deploying. Thevalues
property is used for overriding default chart values or specifying additional configurations required by the Helm chart.Remember that you need to have the correct Helm chart name for
elasticsearch-agent
(you might need to adjust this value if the chart name differs). Moreover, you will need to specify the version of the chart that you want to deploy, replacingCHART_VERSION
with the desired version.Kubernetes Provider Configuration:
The
Provider
object takes akubeconfig
parameter, which is the path to your kubeconfig file. This can be automatically picked up from the environment variableKUBECONFIG
, or you can supply a path to it directly if stored elsewhere.Helm Chart Deployment:
The
helm.v3.Chart
resource deploys the Helm chart to the specified namespace in your Kubernetes cluster. Therepo
property can be added if your Helm chart is located in a custom repository.By running this Pulumi program, you will deploy the Elasticsearch Agent Helm chart to your Rancher-managed Kubernetes cluster. After running
pulumi up
, the program will reach out to your cluster and perform the deployment, giving you output similar to runninghelm install
from the command line.As a final note, if certain configurations or settings are needed specifically for your Elasticsearch Agent deployment, you can add them to the
values
property to customize the deployment according to your needs.