Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENDOC-556 Update Amazon EKS install instructions #554

Merged
merged 2 commits into from
Aug 25, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 19 additions & 9 deletions vuepress/docs/next/tutorials/getting-started/eks-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ These steps use the AWS console to create the cluster. Experienced AWS users may
8. Name your role (you’ll need this later), e.g. YOUR-EKS-ROLE
9. Click `Create role`

3. Refine the role to enable `Node Group` management and add elastic load balancer (ELB) access so the cluster can deploy the ELB for NGINX
3. Refine the role to enable `Node Group` management and add Elastic Load Balancing (ELB) access so the cluster can deploy the load balancer for NGINX
1. Go to `IAM` → `Roles` → `YOUR-EKS-ROLE`
2. Under `Add permissions`, click `Attach policies`
3. Find each of these named policies and then click `Attach policies` \
Expand All @@ -48,14 +48,24 @@ These steps use the AWS console to create the cluster. Experienced AWS users may
`AmazonEC2ContainerRegistryReadOnly` \
`ElasticLoadBalancingFullAccess`
4. Go to `Trust Relationships` → `Edit trust policy` → `Add new statement`. Add `ec2.amazonaws.com` so the cluster can manage the EC2 resources.
```yaml
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
```

Go to [Identity Management and Access on EKS](https://docs.aws.amazon.com/eks/latest/userguide/security-iam.html) for more details on roles.

### Create the EKS Cluster
1. Go to `Services` and select `Elastic Kubernetes Service`
2. Click `Add cluster` → `Create`
3. Add a cluster name, e.g. YOUR-CLUSTER-1
4. Select 1.21 for the Kubernetes version
4. Select an [Entando-compatible Kubernetes version](https://www.entando.com/page/en/compatibility-guide), e.g. `1.22`
5. For `Cluster Service Role`, select the role you created above, e.g. YOUR-EKS-ROLE
6. Click `Next`
7. Use the defaults for `Networking` (Step 2) and click `Next`
Expand All @@ -66,12 +76,12 @@ See [Creating an Amazon EKS Cluster](https://docs.aws.amazon.com/eks/latest/user

### Add a Node Group to the Cluster
1. Go to `Services` → `Elastic Kubernetes Service` → `Clusters` and select YOUR-CLUSTER-NAME
2. Go to `Configuration` → `Compute`
2. Go to `Compute`
3. Click `Add Node Group` and supply the following fields
* `Name`: Give your group a name, e.g. YOUR-NODE-1
* `Node IAM Role`: Select the cluster role you created above. If the role doesn't appear, verify that you modified the trust policy as noted above.
* Click `Next`
4. Review the `Node Group compute and scaling configuration`. These AWS defaults will work fine:
4. Review the `Node Group compute configuration`. These AWS defaults will work fine:
* AMI type: `Amazon Linux 2`
* Instance type: `t3.medium`
5. Set the `Maximum size` to `5`. This is over-resourced for a Getting Started instance but offers capacity for adding microservices to your cluster without modifying the Node Group.
Expand Down Expand Up @@ -104,7 +114,7 @@ Add the NGINX controller for the ingress. This step relies on your role having p

1. Create the NGINX ingress controller
```sh
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.3/deploy/static/provider/aws/deploy.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.0/deploy/static/provider/aws/deploy.yaml
```
2. Get the ELB external URL for your NGINX install
```sh
Expand All @@ -128,7 +138,7 @@ See the [NGINX AWS Guide](https://kubernetes.github.io/ingress-nginx/deploy/#aws

1. Apply the cluster-scoped custom resource definitions (CRDs). This is required only once per cluster.
```sh
kubectl apply -f https://raw.githubusercontent.com/entando/entando-releases/v7.0.1/dist/ge-1-1-6/namespace-scoped-deployment/cluster-resources.yaml
kubectl apply -f https://raw.githubusercontent.com/entando/entando-releases/v7.1.0/dist/ge-1-1-6/namespace-scoped-deployment/cluster-resources.yaml
```

2. Create the namespace for the Entando Application
Expand All @@ -137,7 +147,7 @@ kubectl create namespace entando
```
3. Download the `entando-operator-config` template so you can configure the [Entando Operator](../devops/entando-operator.md).
```sh
curl -sLO "https://raw.githubusercontent.com/entando/entando-releases/v7.0.1/dist/ge-1-1-6/samples/entando-operator-config.yaml"
curl -sLO "https://raw.githubusercontent.com/entando/entando-releases/v7.1.0/dist/ge-1-1-6/samples/entando-operator-config.yaml"
```
4. Edit the `entando-operator-config.yaml` to set `data/entando.requires.filesystem.group.override: "true"`
```yaml
Expand All @@ -153,7 +163,7 @@ kubectl apply -f entando-operator-config.yaml -n entando

6. Apply the namespace-scoped custom resources
```sh
kubectl apply -n entando -f https://raw.githubusercontent.com/entando/entando-releases/v7.0.1/dist/ge-1-1-6/namespace-scoped-deployment/namespace-resources.yaml
kubectl apply -n entando -f https://raw.githubusercontent.com/entando/entando-releases/v7.1.0/dist/ge-1-1-6/namespace-scoped-deployment/namespace-resources.yaml
```
7. You can use `kubectl get pods -n entando --watch` to see the initial pods start up. Use `Ctrl+C` to exit.
```
Expand All @@ -166,7 +176,7 @@ entando-operator-5b5465788b-ghb25 1/1 Running 0 5m53s
### Configure the Entando Application
1. Download the `entando-app.yaml` template
```sh
curl -sLO "https://raw.githubusercontent.com/entando/entando-releases/v7.0.1/dist/ge-1-1-6/samples/entando-app.yaml"
curl -sLO "https://raw.githubusercontent.com/entando/entando-releases/v7.1.0/dist/ge-1-1-6/samples/entando-app.yaml"
```

2. Edit `entando-app.yaml` and replace YOUR-HOST-NAME with the NGINX address from above. See the [Custom Resources overview](../../docs/consume/entandoapp-cr.md) for details on other `EntandoApp` options.
Expand Down