Skip to content

Commit

Permalink
EKS silta-cluster chart notes
Browse files Browse the repository at this point in the history
  • Loading branch information
agnis-mateuss committed Oct 12, 2023
1 parent 394c5b3 commit 312f6e9
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 312f6e9

Please sign in to comment.