Deploy the amundsen helm chart on Linode Kubernetes Engine
TypeScriptAmundsen is an open-source data discovery and metadata platform designed for use with different types of data sources. Deploying it to a Kubernetes cluster involves using Helm, which is a package manager for Kubernetes that packages applications into a convenient format called a chart.
To deploy the Amundsen Helm chart on the Linode Kubernetes Engine (LKE) using Pulumi, you will need to set up an LKE cluster and use Pulumi's Kubernetes provider to deploy the chart. You can use the
kubernetes.helm.v3.Chart
resource to represent a chart from the Helm package manager within a Pulumi application.Here is a step-by-step guide to accomplish your goal:
-
Set up Linode Kubernetes Engine Cluster: Ensure you have an LKE cluster up and running. This will be your target Kubernetes cluster where Amundsen will be deployed. You can create an LKE cluster through the Linode Cloud Manager or using Pulumi's Linode provider (though this provider is not demonstrated here).
-
Helm Chart: The Amundsen Helm chart repository and details must be known. Generally, Helm charts can be found on artifact hubs or directly on the project's repository. The Amundsen Helm chart can be frequently found on its GitHub repository or a Helm chart repository provided by the maintainers.
-
Pulumi Program: You will need a Pulumi program that performs the following steps:
- Connects to your target Kubernetes cluster on LKE.
- Deploys the Helm chart for Amundsen to the LKE cluster.
-
Prerequisites:
- Pulumi: You need Pulumi CLI installed and setup. Make sure to log in to your Pulumi account.
- Kubernetes: You must have
kubectl
configured to communicate with your Kubernetes cluster. - Helm: It is useful to have Helm installed locally if you need to generate default
values.yaml
files or work with Helm charts outside of Pulumi.
-
Pulumi TypeScript Program: Below is a Pulumi program written in TypeScript that deploys a Helm chart to a Kubernetes cluster (assumes you have configured your Pulumi to work with your Kubernetes cluster):
import * as k8s from "@pulumi/kubernetes"; // The location of the Helm chart to deploy. const chartRepoName = "amundsen"; const chartRepoUrl = "https://helm chart repository URL"; // Specify the Helm repository URL here const chartVersion = "version"; // Specify the chart version here // Deploy Amundsen Helm chart to the LKE cluster. const amundsenHelmChart = new k8s.helm.v3.Chart(chartRepoName, { chart: chartRepoName, version: chartVersion, fetchOpts: { repo: chartRepoUrl, }, }); // This will output the resulting Kubernetes resources from the deployment of the Helm chart. export const amundsenHelmChartResources = amundsenHelmChart.resources;
- Running the Program:
- Run
pulumi up
to execute the Pulumi program. It will deploy the Amundsen Helm chart specified by the repository URL and chart name. This assumes thatkubectl
is configured correctly, and Pulumi has access to it.
- Run
Please make sure to replace
"https://helm chart repository URL"
and"version"
with the actual Helm chart repository URL and version of the Amundsen Helm chart you wish to deploy. This information can be obtained from the official documentation or Helm chart repository of Amundsen. If you wish to customize the deployment by providing a different configuration, you can add avalues
property to theChart
resource where you specify overrides.Keep in mind that you will need to have appropriate access rights configured for your Kubernetes context to deploy Helm charts to the LKE cluster. The
export
line at the end will make it easy for you to inspect the resources created by the deployment directly from the Pulumi stack outputs.-