{"id":18334469,"url":"https://github.com/eminalemdar/aws-controllers-for-kubernetes","last_synced_at":"2025-04-06T04:33:26.192Z","repository":{"id":37824727,"uuid":"495750588","full_name":"eminalemdar/aws-controllers-for-kubernetes","owner":"eminalemdar","description":"AWS Controllers for Kubernetes (ACK) examples","archived":false,"fork":false,"pushed_at":"2023-06-12T09:43:46.000Z","size":77,"stargazers_count":23,"open_issues_count":0,"forks_count":23,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-06-13T09:15:33.233Z","etag":null,"topics":["aws","eks","kubernetes","terraform"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eminalemdar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-24T09:15:56.000Z","updated_at":"2023-06-13T07:55:35.000Z","dependencies_parsed_at":"2022-07-15T21:48:24.889Z","dependency_job_id":null,"html_url":"https://github.com/eminalemdar/aws-controllers-for-kubernetes","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eminalemdar%2Faws-controllers-for-kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eminalemdar%2Faws-controllers-for-kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eminalemdar%2Faws-controllers-for-kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eminalemdar%2Faws-controllers-for-kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eminalemdar","download_url":"https://codeload.github.com/eminalemdar/aws-controllers-for-kubernetes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223237176,"owners_count":17111344,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","eks","kubernetes","terraform"],"created_at":"2024-11-05T19:49:02.089Z","updated_at":"2025-04-06T04:33:26.172Z","avatar_url":"https://github.com/eminalemdar.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS Controllers for Kubernetes (ACK) examples\n\nThis repository consists of examples for the AWS Controllers for Kubernetes [(ACK)](https://aws-controllers-k8s.github.io/community/). ACK allows you to create AWS Resources on your behalf from Kubernetes Clusters with simple Kubernetes YAML files.\n\n## Prerequisites\n\n- A Kubernetes Cluster\n\n- AWS IAM Permissions for creating and attaching IAM Roles\n\n- Installation of required tools:\n\n  - [AWS CLI](https://aws.amazon.com/cli/)\n\n  - [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)\n\n  - [Helm](https://helm.sh/docs/intro/install/)\n\n  - [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli#install-terraform)\n\n  - [eksctl](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html)\n\nIf you don't have a Kubernetes cluster, you can create an EKS cluster with Terraform using the [example codes](./scripts/terraform/) within this repository.\n\n## Terraform Codes\n\nTerraform codes in this repository uses [Amazon EKS Blueprints for Terraform](https://aws-ia.github.io/terraform-aws-eks-blueprints/main/)\n\nTerraform codes in this repository creates following resources:\n\n- VPC with 6 subnets (3 Private, 3 Public)\n\n- EKS Cluster with Kubernetes version set to 1.22\n\n- EKS Managed Node group\n\n\u003e You can update the Terraform codes according to your requirements and environment.\n\n### Installation of EKS Cluster\n\n```shell\nterraform init\nterraform plan\nterraform apply --auto-approve\n```\n\n\u003e PS:\n\u003e\n\u003e - These resources are not Free Tier eligible.\n\u003e - You need to configure AWS Authentication for Terraform with either [Environment Variables](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set) or AWS CLI [named profiles](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html#cli-configure-profiles-create).\n\nYou can connect to your cluster using this command:\n\n```bash\naws eks --region \u003cregion\u003e update-kubeconfig --name \u003ccluster_name\u003e\n```\n\n\u003e You need to change `region` and `cluster_name` parameters.\n\n### Installation of a Service Controller\n\nWhen you want to install a Service Controller and configure IAM Permissions you can run `./ack_controller_install.sh \u003cservice_name\u003e` and change the *service_name* accordingly.\n\nThe [script](./scripts/terraform/ack_controller_install.sh) has two functions called install and permissions.\n\n- Install function downloads the required Helm Chart from the official AWS Registry installs it to the Kubernetes cluster.\n\n- Permissions function creates OIDC identity provider for the Kubernetes cluster and creates IAM Roles for for Service Accounts of the Service Controllers.\n\n### Cleanup\n\nWhen you want to delete all the resources created in this repository, you can run `./cleanup.sh \u003cservice_name\u003e` script in the root directory of this repository and change the *service_name* accordingly.\n\nThe [script](./scripts/terraform/cleanup.sh) has one function and does the following:\n\n- Uninstalls the Helm Chart for Service Controller\n\n- Deletes the CRDs created for Service Controller\n\n- Deletes the OIDC Provider of EKS Cluster\n\n- Deletes the EKS Cluster created with Terraform\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feminalemdar%2Faws-controllers-for-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feminalemdar%2Faws-controllers-for-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feminalemdar%2Faws-controllers-for-kubernetes/lists"}