Deploy the local-pv helm chart on AWS EKS
TypeScriptDeploying a local-pv (local persistent volume) Helm chart on AWS Elastic Kubernetes Service (EKS) requires a few steps. We will start by creating an EKS cluster using Pulumi's
eks
package, which provides a higher-level abstraction and simplifies the creation and management of an EKS cluster over using the lower-levelaws
oraws-native
packages directly.Once the cluster is set up, we will deploy the local-pv Helm chart into our EKS cluster. The
kubernetes
package'shelm.v3.Chart
resource will be used for this purpose, which allows us to deploy Helm charts into a Kubernetes cluster managed by Pulumi.Let's walk through the code:
- We initialize a new EKS cluster using the
eks.Cluster
class. - We install the Helm chart for local-pv within the EKS cluster using
helm.v3.Chart
.
Here is the TypeScript program:
import * as eks from "@pulumi/eks"; import * as k8s from "@pulumi/kubernetes"; // Step 1: Create an EKS cluster. // Documentation: https://www.pulumi.com/registry/packages/eks/api-docs/cluster/ const cluster = new eks.Cluster("my-cluster", { desiredCapacity: 2, // Number of worker nodes minSize: 1, maxSize: 3, instanceType: "t2.medium", // Instance type of the worker nodes }); // Step 2: Deploy the local-pv Helm chart. // Documentation: https://www.pulumi.com/registry/packages/kubernetes/api-docs/helm.sh/v3/chart/ const localPvChart = new k8s.helm.v3.Chart("local-pv", { chart: "local-pv", version: "1.0.0", // Specify the version of the Helm chart fetchOpts: { repo: "https://charts.example.com/", // Provide the repository URL hosting the local-pv chart }, }, { provider: cluster.provider }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeconfig;
Explanation:
-
EKS Cluster: We are creating an EKS cluster named
my-cluster
. The instance type for the worker nodes is specified ast2.medium
. We have set some scaling parameters which determine the number of worker nodes that our cluster can automatically scale to. -
Helm Chart: The
localPvChart
variable represents the Helm chart deployment. Thechart
property specifies the name of the chart, andversion
specifies the version of the chart we want to deploy. Replace therepo
with the URL of the Helm repository where thelocal-pv
chart is located. -
Export: The
export
keyword is used to export the kubeconfig of the created EKS cluster. With this kubeconfig, you can interact with your cluster usingkubectl
to manage Kubernetes resources.
To run this program:
- Save the code to a file called
index.ts
. - Ensure you have Pulumi CLI installed and AWS credentials configured.
- Run
pulumi up
to create the cluster and deploy the chart.
Pulumi will perform the deployment, and you will see the status of resources being created. Once done, you can use the exported
kubeconfig
to interact with your EKS cluster.Please replace placeholder values such as the Helm chart version and repository URL with actual values according to the
local-pv
chart you are planning to deploy.- We initialize a new EKS cluster using the