Deploy the ocp-oauth-htpasswd helm chart on AWS EKS
TypeScriptTo deploy the
ocp-oauth-htpasswd
Helm chart on AWS EKS, we will perform the following steps:-
Create an Amazon EKS Cluster: Use the
eks.Cluster
resource to create a Kubernetes cluster managed by Amazon EKS. EKS handles the complexity of running the Kubernetes control plane. -
Define the EKS Node Group: Node groups are groups of worker nodes within the EKS cluster. Define one using the
aws-native.eks.Nodegroup
resource, specifying instance types and the desired capacity. -
Deploy the Helm Chart: Utilize the
kubernetes.helm.v3.Chart
resource to deploy theocp-oauth-htpasswd
Helm chart to the EKS cluster. -
Use Pulumi Outputs: After the deployment, output the Kubernetes
kubeconfig
needed to interact with your new EKS cluster.
Below is a program written in TypeScript that carries out these steps using Pulumi.
import * as pulumi from "@pulumi/pulumi"; import * as aws from "@pulumi/aws"; import * as awsx from "@pulumi/awsx"; import * as eks from "@pulumi/eks"; import * as k8s from "@pulumi/kubernetes"; // Create an EKS cluster. const cluster = new eks.Cluster("my-cluster", { instanceType: "t2.medium", desiredCapacity: 2, minSize: 1, maxSize: 2, }); // Deploy the ocp-oauth-htpasswd Helm chart to the EKS cluster. const ocpOauthHtpasswdChart = new k8s.helm.v3.Chart("ocp-oauth-htpasswd", { chart: "ocp-oauth-htpasswd", version: "your-chart-version", // Replace with the specific chart version you want to deploy fetchOpts: { repo: "https://charts.your-repository.com", // Replace with the correct Helm repository URL }, // Specify the values for the chart, as you would in a values.yaml file. values: { /* Add your chart values here */ }, }, { provider: cluster.provider }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeconfig;
This program sets up an EKS cluster with the desired configuration and then deploys the specified Helm chart. Note that you should replace
"your-chart-version"
and therepo
URL with the actual values. You also need to specify the Helm chart values in thevalues
field.Let's breakdown each part of the program:
-
eks.Cluster: Sets up your EKS cluster with the defined number of worker nodes and the instance type.
-
k8s.helm.v3.Chart: Represents a deployment of a Helm chart to a Kubernetes cluster. The given parameters include the chart name and version, repository URL, and any chart-specific values you might need to provide.
-
kubeconfig: Exports the Kubernetes configuration file content which you can use with
kubectl
to communicate with your new EKS cluster.
After you have this program written, install Pulumi CLI, and configure AWS credentials. Then, run the following commands in your terminal to deploy the Helm chart:
pulumi stack init dev # Initialize a new stack called dev pulumi up # Preview and deploy changes
Take note of the
kubeconfig
output from Pulumi after the deployment is successful. This output can be used to configurekubectl
to interact with your cluster.-