If you follow us on our blog or in GitHub, you may have already heard of eksctl and Flagger, two popular Open Source Projects from the Weaveworks team. Just recently we’ve added these two projects to our website. Find out how eksctl helps you create and manage clusters on AWS EKS with GitOps and how Flagger can be used to automate advanced deployments to Kubernetes. Both of these pages contain links to tutorials as well as video demonstrations to help you get started.

Eksctl - Create an Amazon EKS cluster with one command

Jointly developed by AWS and Weaveworks ekctl automates much of the experience of creating EKS clusters. eksctl is written in Go and makes use of AWS CloudFormation. Here is what happens when you run `eksctl create cluster`:

  • Sets up the AWS Identity and Access Management (IAM) Role for the master control plane to connect to EKS.
  • Creates the Amazon VPC architecture, and the master control plane.
  • Brings up instances, and deploys the ConfigMap so nodes can join the cluster.
  • Provides access to the cluster with a predefined kubeconfig file.

eksctl-terminal.jpg

Cluster lifecycle management and more with ekscstl

Although eksctl started as a CLI for EKS cluster creation, it has become much more than that. You can also use eksctl to implement a simple GitOps approach for end-to-end cluster and configuration management:

  • GitOps cluster lifecycle management - Add and remove cluster components with git-based workflows. eksctl uses GitOps to take care of installing, configuring, upgrading, and keeping production ready Kubernetes clusters on EKS, including control plane upgrades.
  • Extensible production ready cluster - Add popular extensions with GitOps for complete end to end cluster management. Choose from Weave Net, Helm, AWS CI tools like CodeCommit, CodeBuild, ECR, Jenkins X, AWS CodeStar, as well as Weave Scope and Weave Flux.
  • Automatic scalability - You no longer need to manually scale nodes through the AWS interface. Create autoscale groups easily on the command line without switching contexts with eksctl. Use a single nodegroup to automatically scale across multiple zones.
  • Simple, flexible VPC networking - eksctl builds a dedicated VPC that can be configured to peer with other VPCs, made larger or smaller, work with a private subnet, or it can be customized and used with your existing VPC, for example, a Kops network.
  • Runs on your favourite OS - Install and run eksctl on the OS of your choice: Linux (curl), Windows (chocolatey) and MacOS (homebrew).

Find out more on the eksctl page.

Flagger advanced deployment automation for Kubernetes

Use Flagger to automate and manage canary and other advanced deployments like A/B and Blue/Green. It works with SMI (Service Mesh Interface), Istio, AWS App Mesh or NGINX for traffic shifting and also integrates Prometheus metrics to control canary deployment success or failure.

flagger-canary-overview.png

Complete end to end control over canary deployments

Flagger implements a control loop that gradually shifts traffic to the canary while measuring key performance indicators like HTTP requests success rate, requests average duration and pods health. Based on the set thresholds, a canary is either promoted or aborted and its analysis is pushed to a Slack channel.

  • GitOps pipelines automation - Build fully automated GitOps pipelines for Canary deployments with Flagger and Weave Cloud. Connect to your git repo where any changed manifests and Helm charts are automatically synced by the GitOps operator.
  • Safer deployments - Reduce the risk of app downtime by controlling and automating canary promotions with Prometheus metrics. Set error threshold metrics to determine when to promote a deployment, and whether it should abort and rollback.
  • Flexible traffic routing - Shift and route traffic between canary deployments using a service mesh like Istio, Envoy or AWS App Mesh. Not using a service mesh? Not a problem. An ingress controller like NGINX can also be used to shift traffic.
  • Integrated webhooks - Extend a canary analysis with webhooks and run acceptance tests, load tests or any other type of custom validation.

Learn more about Flagger.