Code Monkey home page Code Monkey logo

aws-controllers-for-kubernetes's Introduction

AWS Controllers for Kubernetes (ACK) examples

This repository consists of examples for the AWS Controllers for Kubernetes (ACK). ACK allows you to create AWS Resources on your behalf from Kubernetes Clusters with simple Kubernetes YAML files.

Prerequisites

If you don't have a Kubernetes cluster, you can create an EKS cluster with Terraform using the example codes within this repository.

Terraform Codes

Terraform codes in this repository creates following resources:

  • VPC with 6 subnets (3 Private, 3 Public)

  • Security Group for Worker Instances in EKS Cluster

  • EKS Cluster with Kubernetes version set to 1.22

  • EKS Managed Node group

You can update the Terraform codes according to your requirements and environment.

Installation of EKS Cluster

terraform init
terraform plan
terraform apply --auto-approve

PS:

You can connect to your cluster using this command:

aws eks --region <region> update-kubeconfig --name <cluster_name>

Installation of a Service Controller

When you want to install a Service Controller and configure IAM Permissions you can run ./ack_controller_install.sh <service_name> and change the service_name accordingly.

The script has two functions called install and permissions.

  • Install function downloads the required Helm Chart from the official AWS Registry installs it to the Kubernetes cluster.

  • Permissions function creates OIDC identity provider for the Kubernetes cluster and creates IAM Roles for for Service Accounts of the Service Controllers.

Cleanup

When you want to delete all the resources created in this repository, you can run ./cleanup.sh <service_name> script in the root directory of this repository and change the service_name accordingly.

The script has one function and does the following:

  • Uninstalls the Helm Chart for Service Controller

  • Deletes the CRDs created for Service Controller

  • Deletes the OIDC Provider of EKS Cluster

  • Deletes the EKS Cluster created with Terraform

aws-controllers-for-kubernetes's People

Contributors

eminalemdar avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.