diff --git a/docs/aws-eks.md b/docs/aws-eks.md index 81a1fe4c..783cdcb9 100644 --- a/docs/aws-eks.md +++ b/docs/aws-eks.md @@ -1,19 +1,16 @@ # AWS EKS Cluster Walkthrough -This walkthrough uses `eksctl` and assumes you already have an AWS account, have the [eksctl prerequisites installed](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) including `eksctl` and `helm`. -After creating the cluster we'll walk through installing the following add-ons and controllers: +This is a verbose walkthrough. It uses `eksctl` and assumes you already have an AWS account, have the [eksctl prerequisites installed](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) including `eksctl` and `helm`. + +If you are familiar with Terraform would like an IaC choice that is more terse consider setting up your cluster with that: https://github.com/developmentseed/eoapi-k8s-terraform -* `aws-ebs-csi-driver` -* `aws-load-balancer-controller` -* `nginx-ingress-controller` ## Table of Contents: 1. [Create EKS Cluster](#create-cluster) 2. [Make sure EKS Cluster has OIDC Provider](#check-oidc) 3. [Install Node Autoscaling](#node-autoscaler) 4. [Install EBS CSI Add-on](#ebs-addon) -5. [Install AWS LB Controller](#aws-lb) -4. [Install NGINX Ingress Controller](#nginx-ingress) +5. [Install NGINX Ingress Controller](#nginx-ingress) --- @@ -161,67 +158,6 @@ a sample application to make sure it dynamically mounts an EBS volume --- -### Install AWS load balancer controller - -Best to walk through the [AWS userguide](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html) and [docs](https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html) but -examples are provided below. - -First, we create the policy, IAM role and the k8s `ServiceAccount` - - ```sh - export AWS_ACCOUNT_ID="$(aws sts get-caller-identity --query Account --output text)" - - # download the policy aws-load-balancer policy - curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.7/docs/install/iam_policy.json - - # create the policy - aws iam create-policy \ - --policy-name AWSLoadBalancerControllerIAMPolicy \ - --policy-document file://iam_policy.json - - # Create the IAM Role, the ServiceAccount and bind them - # Arbitrary, the naming is up to you - # ARN from last step - - eksctl create iamserviceaccount \ - --region us-west-2 \ - --cluster=sandbox \ - --namespace=kube-system \ - --name=aws-load-balancer-controller \ - --role-name AmazonEKSLoadBalancerControllerRole \ - --attach-policy-arn=arn:aws:iam::${AWS_ACCOUNT_ID}:policy/AWSLoadBalancerControllerIAMPolicy \ - --approve - - # assert it was created and has an annotation - kubectl get sa aws-load-balancer-controller -n kube-system - - # NAME SECRETS AGE - # aws-load-balancer-controller 0 13s - - # kubectl describe sa aws-load-balancer-controller -n kube-system | grep Annotations - # Annotations: eks.amazonaws.com/role-arn: arn:aws:iam:::role/AmazonEKSLoadBalancerControllerRole - ``` - -Then install the K8s AWS Controller: - - ```sh - helm repo add eks https://aws.github.io/eks-charts - helm repo update - helm install aws-load-balancer-controller \ - eks/aws-load-balancer-controller \ - -n kube-system \ - --set clusterName=sandbox \ - --set serviceAccount.create=false \ - --set serviceAccount.name=aws-load-balancer-controller - # since the last steps already did this, set to false - ``` - - ```sh - kubectl get deployment -n kube-system aws-load-balancer-controller - # NAME READY UP-TO-DATE AVAILABLE AGE - # aws-load-balancer-controller 2/2 2 2 36d - ``` - ## Install Nginx Ingress Controller Please look through the [Nginx Docs](https://github.com/kubernetes/ingress-nginx) to verify nothing has changed below. There are multiple ways to provision and configure. Below is the simplest we found: diff --git a/docs/gcp-gke.md b/docs/gcp-gke.md index 348367da..bf25e5a3 100644 --- a/docs/gcp-gke.md +++ b/docs/gcp-gke.md @@ -1,6 +1,8 @@ # GCP GKE Cluster Setup - This walk-through uses `gcloud` and assumes you already have an GCP account and project where you want to run eoapi. We also assume that you have some prerequisites installed including `gcloud`, `kubectl` and `helm`. +This is a verbose walkthrough. It uses `gcloud` and assumes you already have an GCP account and project where you want to run eoapi. We also assume that you have some prerequisites installed including `gcloud`, `kubectl` and `helm`. + +If you are familiar with Terraform would like an IaC choice that is more terse consider setting up your cluster with that: https://github.com/developmentseed/eoapi-k8s-terraform # Table of Contents - [Pre-requisites](#pre-requisites) diff --git a/helm-chart/eoapi-support/Chart.yaml b/helm-chart/eoapi-support/Chart.yaml index 6fc801db..5c885c15 100644 --- a/helm-chart/eoapi-support/Chart.yaml +++ b/helm-chart/eoapi-support/Chart.yaml @@ -11,14 +11,14 @@ dependencies: # - name: prometheus # NOTE: configuration for this dependency is handled in `eoapi-support/values.yaml.prometheus` values - version: 24.5.0 + version: 25.3.1 repository: https://prometheus-community.github.io/helm-charts # used to create custom metrics to autoscale on # - name: prometheus-adapter # NOTE: configuration for this dependency is handled in `eoapi-support/values.yaml.prometheus-adapter` values - version: 4.6.0 + version: 4.7.1 repository: https://prometheus-community.github.io/helm-charts # Grafana for dashboarding of metrics @@ -26,5 +26,5 @@ dependencies: # - name: grafana # NOTE: configuration for this dependency is handled in `eoapi-support/values.yaml.grafana` values - version: 6.60.1 + version: 7.3.3 repository: https://grafana.github.io/helm-charts diff --git a/helm-chart/eoapi/values.yaml b/helm-chart/eoapi/values.yaml index eb46a2b8..fe400f27 100644 --- a/helm-chart/eoapi/values.yaml +++ b/helm-chart/eoapi/values.yaml @@ -78,7 +78,7 @@ service: port: 8080 ingress: - # `"nginx"` will create a `kind:Service` with a `spec.port:ClusterIP` and a single (A||N)LB and path rewrites for /vector, /stac, /raster + # `"nginx"` will create a `kind:Service` with a `spec.port:ClusterIP` and a single Load Balancer and path rewrites for /vector, /stac, /raster enabled: true className: "nginx" host: "" diff --git a/iac/aws/README.md b/iac/aws/README.md index 9782c884..d05e2535 100644 --- a/iac/aws/README.md +++ b/iac/aws/README.md @@ -1 +1 @@ -TODO: TF/CDK/EKS related IaC goes here +please refer to https://github.com/developmentseed/eoapi-k8s-terraform \ No newline at end of file diff --git a/iac/gcp/README.md b/iac/gcp/README.md index 1f75eb0f..d05e2535 100644 --- a/iac/gcp/README.md +++ b/iac/gcp/README.md @@ -1 +1 @@ -TODO: TF/CDK/GKE related IaC goes here +please refer to https://github.com/developmentseed/eoapi-k8s-terraform \ No newline at end of file