Try AWS Native preview for resources not in the classic version.
Amazon EKS Distro Cluster
Try AWS Native preview for resources not in the classic version.
This example deploys an Amazon EKS Distro cluster using a dynamic provider which utilizes kops
Deploying the App
To deploy your infrastructure, follow the below steps.
Prerequisites
Steps
After cloning this repo, from this working directory, run these commands:
Install the required Node.js packages:
$ npm install
Create a new stack, which is an isolated deployment target for this example:
$ pulumi stack init
Set the required configuration variables for this program:
$ pulumi config set aws:region us-west-2
Stand up the EKS cluster, which will also deploy the Kubernetes Dashboard:
$ pulumi up
After 10-15 minutes, your cluster will be ready, and the kubeconfig JSON you’ll use to connect to the cluster will be available as an output. You can save this kubeconfig to a file like so:
$ pulumi stack output kubeconfig --show-secrets >kubeconfig.json
Once you have this file in hand, you can interact with your new cluster as usual via
kubectl
:$ KUBECONFIG=./kubeconfig.json kubectl get nodes
From there, feel free to experiment. Make edits and run
pulumi up
to incrementally update your stack. For example, in order to deploy a Helm chart into your cluster, import the@pulumi/kubernetes/helm
package, add aChart
resource that targets the EKS cluster toindex.ts
, and runpulumi up
. Note that the Helm client must be set up in order for the chart to deploy. For more details, see the Prerequisites list.import * as helm from "@pulumi/kubernetes/helm"; // ... existing code here ... const myk8s = new k8s.Provider("myk8s", { kubeconfig: cluster.kubeconfig.apply(JSON.stringify), }); const postgres = new helm.v2.Chart("postgres", { // stable/postgresql@0.15.0 repo: "stable", chart: "postgresql", version: "0.15.0", values: { // Use a stable password. postgresPassword: "some-password", // Expose the postgres server via a load balancer. service: { type: "LoadBalancer", }, }, }, { providers: { kubernetes: myk8s } });
Once the chart has been deployed, you can find its public, load-balanced endpoint via the Kubernetes Dashboard.
Once you’ve finished experimenting, tear down your stack’s resources by destroying and removing it:
$ pulumi destroy --yes $ pulumi stack rm --yes
Try AWS Native preview for resources not in the classic version.