Skip to content

Commit

Permalink
Merge pull request #107 from wunderio/feature/aws-docs
Browse files Browse the repository at this point in the history
SLT-931: EKS silta-cluster chart notes
  • Loading branch information
Rade333 authored Nov 27, 2023
2 parents e5cd9eb + 21ce262 commit 39d7042
Showing 1 changed file with 52 additions and 3 deletions.
55 changes: 52 additions & 3 deletions docs/vendor-eks.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,63 @@ Silta is mostly AWS compatible, there are some requirements for environments dep

## Cluster requirements

- Calico service which helps enforcing namespace (project) network separation;
- Ingress-nginx as the Ingress choice
- Amazon VPC CNI plugin for NetworkPolicy
- Amazon EBS CSI Driver plugin for default storage class (gp2)

There are few more requirements listed on [silta-cluster chart page](https://github.com/wunderio/charts/tree/master/silta-cluster#requirements), those are common for all silta-cluster installations
### Preparation steps

On new, empty cluster, before installing silta-cluster chart:

1. Install Amazon VPC CNI plugin (plugins are located in EKS -> cluster > Add-ons tab)
2. Install Amazon EBC CSI Driver plugin
3. Create and attach IAM role to worker nodes with these permissions:
- AmazonEC2ContainerRegistryFullAccess
- AmazonEC2FullAccess
- AmazonEKSWorkerNodePolicy
- AmazonElasticFileSystemFullAccess
- AmazonS3FullAccess

### Silta-cluster chart requirements

Enabling proxy protocol over ingress-nginx, for passing client IP to pods:
```yaml
ingress-nginx:
config:
use-proxy-protocol: true
service:
annotations:
"service.beta.kubernetes.io/aws-load-balancer-proxy-protocol": "*"
```
SSH uses NLB as ingress point. Apply these annotations:
```yaml
gitAuth:
enabled: true
scope: 'https://github.com/wunderio'
annotations:
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "tcp"
"service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout": "60"
# "service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled": "true"
"service.beta.kubernetes.io/aws-load-balancer-type": "nlb"
# the length of the list must be equal to the number of subnets
"service.beta.kubernetes.io/aws-load-balancer-eip-allocations": "<elastic IP id>"
"service.beta.kubernetes.io/aws-load-balancer-subnets": "<subnet name here"
"service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "instance"
"service.beta.kubernetes.io/aws-load-balancer-ip-address-type": "ipv4"
"service.beta.kubernetes.io/aws-load-balancer-target-group-attributes": "stickiness.enabled=true,stickiness.type=source_ip,preserve_client_ip.enabled=true"
```
For NLB, it is required to have 1 Elastic IP per subnet (defined by Availability Zones)
EIP Allocation ID is in Network & Security -> Elastic IPs
Subnet names are in VPC Dashboard -> Virtual Private Cloud -> Subnets
There are few more requirements listed on [silta-cluster chart page](https://github.com/wunderio/charts/tree/master/silta-cluster#requirements), those are common for all silta-cluster installations
## Missing functionality
- ALB ingress
- NLB for HTTP/HTTPS ingress
## Deployment specifics
Expand Down

0 comments on commit 39d7042

Please sign in to comment.