Deploy the kiali helm chart on AWS EKS
TypeScriptTo deploy the Kiali Helm chart on an AWS Elastic Kubernetes Service (EKS) cluster using Pulumi, you'll perform several steps:
- Set up an EKS cluster.
- Install the Helm chart for Kiali on the cluster.
First, ensure you have Pulumi installed and configured with your AWS credentials. These steps assume you have basic familiarity with TypeScript and the AWS cloud platform.
Step 1: Set up an EKS Cluster
To begin, you'll need an EKS cluster. If you already have one, you can skip this step. The following Pulumi program in TypeScript creates a new EKS cluster.
Here's a rundown of resources used in the program:
eks.Cluster
from the@pulumi/eks
package to create a managed EKS cluster. Documentation foreks.Cluster
.- AWS Identity and Access Management (IAM) Roles for EKS from the
@pulumi/aws-iam
package to create roles for the EKS service and the node group. Documentation for AWS IAM roles for EKS.
Step 2: Install the Kiali Helm Chart
Once you have an EKS cluster, you can install Helm charts to it. This involves setting up a Helm release. In Pulumi, this can be done using the
Chart
resource from the@pulumi/kubernetes/helm
module.Here is the complete Pulumi program that creates an EKS cluster and installs the Kiali Helm chart:
import * as pulumi from "@pulumi/pulumi"; import * as eks from "@pulumi/eks"; import * as aws from "@pulumi/aws"; import { Chart } from "@pulumi/kubernetes/helm"; // Create an EKS cluster. const cluster = new eks.Cluster("my-cluster", { desiredCapacity: 2, minSize: 1, maxSize: 3, instanceType: "t2.medium", providerCredentialOpts: { profileName: aws.config.profile, // Configures the AWS profile to use from the shared credentials file. }, }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeconfig; // Install the Kiali Helm chart on the EKS cluster. const kialiChart = new Chart("kiali", { chart: "kiali-server", version: "1.29.1", // Specify the version of the Kiali Helm chart here. namespace: "istio-system", //Ensure this is the namespace where Istio is installed. fetchOpts: { repo: "https://kiali.org/helm-charts", // Kiali Helm chart repository. }, }, { provider: cluster.provider }); // Export the Helm chart name. export const kialiChartName = kialiChart.releaseName;
Make sure Istio is installed on your cluster since Kiali is used for observing Istio service meshes. The namespace for the Helm chart deployment is set to
istio-system
, which is the default namespace for Istio components.This program sets up an EKS cluster with a desired node count and deploys the Kiali Helm chart to the cluster. Ensure you have the
istio-system
namespace created, or adjust the namespace as needed for where Istio is installed in your cluster.Now, let me guide you through how to deploy this code:
- Save this code in a file with a
.ts
extension, e.g.,main.ts
. - Open a terminal and navigate to the directory where you saved
main.ts
. - Run
pulumi up
and follow the on-screen prompts to deploy the resources.
Pulumi will provision the resources, and once done, it will output the cluster's kubeconfig and the Helm chart release name. Use the kubeconfig to configure kubectl or other Kubernetes tooling to interact with your cluster.
With the Kiali Helm chart installed, you should be able to access the Kiali dashboard and observe the service mesh within your EKS cluster.