1. Answers
  2. Deploy The Instana-agent-operator Helm Chart On AWS EKS

Deploy the Instana-Agent-Operator Helm Chart on AWS EKS

Introduction

In this guide, we will deploy the Instana Agent Operator Helm chart on an AWS EKS cluster using Pulumi. The key services involved include AWS EKS for the Kubernetes cluster and Helm for managing the Instana Agent Operator deployment.

Step-by-Step Explanation

Step 1: Set Up AWS EKS Cluster

  1. Create a VPC: AWS EKS requires a VPC with subnets in at least two availability zones.
  2. Create an EKS Cluster: Set up an EKS cluster within the VPC.
  3. Create a Node Group: Add a managed node group to the EKS cluster.

Step 2: Deploy Instana Agent Operator Helm Chart

  1. Add Helm Repository: Add the Instana Helm repository to your Helm configuration.
  2. Deploy Helm Chart: Use the Helm provider in Pulumi to deploy the Instana Agent Operator Helm chart to the EKS cluster.

Summary

By following this guide, you will have successfully deployed the Instana Agent Operator on an AWS EKS cluster using Pulumi. This setup leverages AWS EKS for scalable Kubernetes management and Helm for streamlined application deployment.

Full Code Example

import * as awsx from "@pulumi/awsx";
import * as eks from "@pulumi/eks";
import * as k8s from "@pulumi/kubernetes";

// Create a VPC
const vpc = new awsx.ec2.Vpc("vpc", {
    cidrBlock: "10.0.0.0/16",
    numberOfAvailabilityZones: 2,
});

// Create an EKS cluster
const cluster = new eks.Cluster("eksCluster", {
    vpcId: vpc.vpcId,
    subnetIds: vpc.publicSubnetIds,
    instanceType: "t3.medium",
    desiredCapacity: 2,
    minSize: 1,
    maxSize: 3,
});

// Create a managed node group
const nodeGroup = new eks.ManagedNodeGroup("nodeGroup", {
    cluster: cluster,
    nodeGroupName: "instana-node-group",
    nodeRoleArn: cluster.instanceRoles.apply(roles => roles[0].arn),
    scalingConfig: {
        desiredSize: 2,
        minSize: 1,
        maxSize: 3,
    },
    instanceTypes: ["t3.medium"],
});

// Deploy Instana Agent Operator Helm chart
const instanaAgent = new k8s.helm.v3.Release("instana-agent", {
    chart: "agent-operator",
    version: "1.0.0",
    repositoryOpts: {
        repo: "https://agents.instana.io/helm",
    },
    values: {},
    namespace: "instana-agent",
}, { provider: cluster.provider });

export const vpcId = vpc.vpcId;
export const eksClusterName = cluster.eksCluster.name;
export const nodeGroupName = nodeGroup.nodeGroup.nodeGroupName;
export const helmReleaseName = instanaAgent.name;

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up