Building a Kubernetes Platform in Amazon EKS with Pulumi
February 24, 2021In this workshop, you will examine how Pulumi interacts with Kubernetes, and build real-world examples of managing Amazon EKS clusters.
Pulumi's infrastructure as code SDK helps create, deploy, and manage your AWS infrastructure, including containers, serverless functions, and other infrastructure using modern programming languages.
Software development begins with the Engineer and they need tools and processes that enable them to deliver their ideas with speed and reliability. Pulumi puts the Engineer's experience first and focuses on providing familiar tools that make delivery applications and infrastructure easier than ever before.
By using Pulumi you use the productivity features available in your preferred IDE like autocompletion, to help write infrastructure programs faster and with more accuracy.
With Pulumi you can take advantage of your favorite programming languages and popular testing frameworks to validate your infrastructure and applications through their entire lifecycle.
Sharing and reusing your infrastructure code is available right out of the box with Pulumi. You can use your preferred programming language's native package managers to share and distribute infrastructure code within your organization.
Getting an application into production can be an overwhelming process. Pulumi empowers you and your team to work together to reduce obstacles and increase collaboration across your entire software delivery pipeline.
Type Name Status
+ pulumi:pulumi:Stack aws-typescript-dev created
+ └─ aws:s3:Bucket my-bucket created
bucketName: "my-bucket-9dfc488"
+ 2 created
8s
Pulumi's unique approach to Infrastructure as Code allows you to build self-service infrastructure platforms. You can abstract away complexity for your teammates, allowing folks to focus on what's important.
Pulumi gives you the power to continuously test and deliver your cloud infrastructure using your favorite CI/CD platforms. By automating your testing and delivery you can focus more on delivering value to your customers.
Pulumi gives you robust policy enforcement for your cloud environments so you can prevent mistakes before they occur and respond rapidly to any incidents.
Pulumi provides you with any easy way to ensure secrets are kept safe during the entire software development lifecycle. You can have Pulumi manage your secrets for you or bring your own secrets management provider.
When you enable Policy as Code within your organization you get the ability to define guardrails for your infrastructure, ensuring engineers are following best practices and putting security first.
The Pulumi Console gives you full auditability of the current state of your cloud infrastructure. From seeing what resources are being managed by which stack, to the actions specific team members are performing.
The Automation API gives you the ability to build bespoke deployment tools that allow application developers to self-serve their infrastructure, using codified best practices. No two applications or environments are the same and you can quickly hit edges with tools trying to be one-size-fits-all solution. The Automation API enables you to write tooling that fits your use cases and works exactly the way you want it to. Everything from complex workflow orchestration to opinionated full-stack application frameworks is possible with the Automation API.
func NewAddCmd() *cobra.Command {
return &cobra.Command{
Use: "add",
Short: "add deploys an additional vm stack",
Run: func(cmd *cobra.Command, args []string) {
stackName := fmt.Sprintf("vmgr%d", rangeIn(10000000, 99999999))
s, err := auto.NewStackInlineSource(ctx, stackName, projectName, nil)
subnetID, rgName, err := EnsureNetwork(ctx, projectName)
stack.SetProgram(GetDeployVMFunc(subnetID, rgName))
stdoutStreamer := optup.ProgressStreams(os.Stdout)
res, err := s.Up(ctx, stdoutStreamer)
if err != nil {
fmt.Printf("Failed to deploy vm stack: %v\n", err)
os.Exit(1)
}
fmt.Printf("deployed server running at public IP %s\n", res.Outputs["ip"].Value)
},
}
}
import * as eks from "@pulumi/eks";
// Create an EKS cluster with the default configuration.
const cluster = new eks.Cluster("my-cluster", {
desiredCapacity: 5,
minSize: 3,
maxSize: 5,
deployDashboard: false,
enabledClusterLogTypes: [
"api",
"audit",
"authenticator",
],
});
// Export the cluster's kubeconfig.
export const kubeconfig = cluster.kubeconfig;
Pulumi Crosswalk for AWS is a collection of libraries that use automatic well-architected best practices to make common infrastructure-as-code tasks in AWS easier and more secure. Secure and cost-conscious defaults are chosen so that simple programs automatically use best practices for the underlying infrastructure, enabling better productivity with confidence.
Crosswalk enables you to blur the lines between application and infrastructure code enabling you to author an entire full-stack application in one program. With support for inline Lambda functions and ease-of-use helper functions, building robust applications on AWS has never been easier.
In this workshop, you will examine how Pulumi interacts with Kubernetes, and build real-world examples of managing Amazon EKS clusters.
In this workshop, we’ll examine how Pulumi can accelerate provisioning of cloud infrastructure. We’ll focus on AWS Lambda, and build a set of microservices.
In this bi-monthly workshop, you will learn the fundamentals of Infrastructure as Code through guided exercises using Pulumi's Cloud Engineering platform.
Deploy your first app in just five minutes. Follow our tutorials for AWS, Azure, GCP, Kubernetes, and more.
Get StartedTransition to Pulumi with converter tools for Terraform, AWS CloudFormation, Azure Resource Manager, and Kubernetes.
Explore Convertor ToolsWe are building a distributed-database-as-a-service product that runs on Kubernetes clusters across multiple public clouds including GCP, AWS and others. Pulumi's declarative model, the support for real programming languages, and the uniform workflow on any cloud make our SRE team much more efficient.