An open API service indexing awesome lists of open source software.

https://github.com/uldyssian-sh/aws-eks-cluster-awscli

AWS EKS cluster management and automation using AWS CLI and scripting
https://github.com/uldyssian-sh/aws-eks-cluster-awscli

automation aws awscli cloud cluster devops eks infrastructure kubernetes management scripts terraform

Last synced: 3 months ago
JSON representation

AWS EKS cluster management and automation using AWS CLI and scripting

Awesome Lists containing this project

README

          

# AWS EKS Cluster with AWS CLI

[![CI](https://github.com/uldyssian-sh/aws-eks-cluster-awscli/workflows/CI/badge.svg)](https://github.com/uldyssian-sh/aws-eks-cluster-awscli/actions)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![AWS](https://img.shields.io/badge/AWS-EKS-orange.svg)](https://aws.amazon.com/eks/)

Enterprise-grade AWS EKS cluster automation using AWS CLI with comprehensive security, monitoring, and cost optimization for GitHub Free tier.

## ๐Ÿš€ Features

- **Automated EKS Cluster Deployment** - Complete cluster setup with AWS CLI
- **Multi-AZ VPC Configuration** - High availability across 3 availability zones
- **Security Best Practices** - Pod Security Standards, Network Policies, IAM roles
- **Monitoring & Observability** - Prometheus, Grafana integration
- **Cost Optimization** - GitHub Free tier compatible, resource optimization
- **CI/CD Integration** - Automated testing and deployment workflows

## ๐Ÿ“‹ Prerequisites

- AWS CLI v2.x installed and configured
- kubectl installed
- Helm 3.x installed
- jq for JSON processing
- Valid AWS credentials with EKS permissions

## ๐Ÿ› ๏ธ Quick Start

1. **Clone the repository**
```bash
git clone https://github.com/uldyssian-sh/aws-eks-cluster-awscli.git
cd aws-eks-cluster-awscli
```

2. **Configure environment**
```bash
cp .env.template .env
# Edit .env with your AWS configuration
```

3. **Create VPC infrastructure**
```bash
./scripts/create-vpc.sh
```

4. **Deploy EKS cluster**
```bash
./scripts/create-eks.sh
```

5. **Configure kubectl**
```bash
./scripts/configure-kubectl.sh
```

6. **Install add-ons**
```bash
./scripts/install-addons.sh
```

## ๐Ÿ“ Project Structure

```
โ”œโ”€โ”€ .github/ # GitHub workflows and templates
โ”œโ”€โ”€ cloudformation/ # CloudFormation templates
โ”œโ”€โ”€ docs/ # Documentation
โ”œโ”€โ”€ examples/ # Example configurations
โ”œโ”€โ”€ iam/ # IAM policies
โ”œโ”€โ”€ manifests/ # Kubernetes manifests
โ”œโ”€โ”€ scripts/ # Automation scripts
โ”œโ”€โ”€ terraform/ # Terraform configurations
โ””โ”€โ”€ tests/ # Test scripts
```

## ๐Ÿ”ง Configuration

### Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `AWS_REGION` | AWS region | `eu-central-1` |
| `CLUSTER_NAME` | EKS cluster name | `eks-demo` |
| `K8S_VERSION` | Kubernetes version | `1.29` |
| `INSTANCE_TYPE` | Node instance type | `t3.medium` |
| `DESIRED_SIZE` | Desired node count | `3` |

### VPC Configuration

The CloudFormation template creates:
- VPC with 3 public and 3 private subnets
- Internet Gateway and NAT Gateway
- Route tables and security groups
- EKS-optimized networking

## ๐Ÿ”’ Security Features

- **Pod Security Standards** - Enforced security policies
- **Network Policies** - Traffic segmentation
- **IAM Roles** - Least privilege access
- **Secrets Management** - Secure credential handling

## ๐Ÿ“Š Monitoring

- **Prometheus** - Metrics collection
- **Grafana** - Visualization dashboards
- **Cluster Autoscaler** - Automatic scaling
- **AWS Load Balancer Controller** - Ingress management

## ๐Ÿงช Testing

Run the test suite:
```bash
./tests/test-cluster.sh
```

## ๐Ÿš€ Deployment

The repository includes automated CI/CD workflows:
- **CI Pipeline** - Code validation and testing
- **Deployment Pipeline** - Automated infrastructure deployment

## ๐Ÿ’ฐ Cost Optimization

This project is optimized for GitHub Free tier:
- Single NAT Gateway configuration
- t3.medium instances for cost efficiency
- Automated resource cleanup scripts
- Monitoring for cost tracking

## ๐Ÿค Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request

See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ†˜ Support

- [Issues](https://github.com/uldyssian-sh/aws-eks-cluster-awscli/issues)
- [Discussions](https://github.com/uldyssian-sh/aws-eks-cluster-awscli/discussions)
- [Documentation](docs/)

## ๐Ÿ”— Related Projects

- [AWS EKS Kasten](https://github.com/uldyssian-sh/aws-eks-cluster-kasten)
- [Enterprise EKS Multi-AZ](https://github.com/uldyssian-sh/enterprise-eks-multi-az-cluster)

---

**Note**: This project follows AWS Well-Architected Framework principles and GitHub DevOps professional standards.