diff --git a/docs/add-ons/aws-for-fluent-bit.md b/docs/add-ons/aws-for-fluent-bit.md index 62714041f3..1d7c763aa5 100644 --- a/docs/add-ons/aws-for-fluent-bit.md +++ b/docs/add-ons/aws-for-fluent-bit.md @@ -8,7 +8,7 @@ AWS provides a Fluent Bit image with plugins for both CloudWatch Logs and Kinesi ### Usage -[aws-for-fluent-bit](../../modules/kubernetes-addons/aws-for-fluent-bit/README.md) can be deployed by enabling the add-on via the following. +[aws-for-fluent-bit](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/kubernetes-addons/aws-for-fluentbit) can be deployed by enabling the add-on via the following. ```hcl enable_aws_for_fluentbit = true diff --git a/docs/add-ons/cluster-autoscaler.md b/docs/add-ons/cluster-autoscaler.md index f23bf5483b..92ac427b5f 100644 --- a/docs/add-ons/cluster-autoscaler.md +++ b/docs/add-ons/cluster-autoscaler.md @@ -9,7 +9,7 @@ The [Cluster Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cl ## Usage -[Cluster Autoscaler](kubernetes-addons/cluster-autoscaler/README.md) can be deployed by enabling the add-on via the following. +[Cluster Autoscaler](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/kubernetes-addons/cluster-autoscaler) can be deployed by enabling the add-on via the following. ```hcl enable_cluster_autoscaler = true diff --git a/docs/add-ons/index.md b/docs/add-ons/index.md index a7ab979e9a..587897f98c 100644 --- a/docs/add-ons/index.md +++ b/docs/add-ons/index.md @@ -1,25 +1,30 @@ # Kubernetes Addons Module -The [`kubernetes-addons`](../../modules/kubernetes-addons) module within this framework allows you to configure the add-ons you would like deployed into you EKS cluster with simple **true/false** flags. +The [`kubernetes-addons`](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/kubernetes-addons) module within this framework allows you to configure the add-ons you would like deployed into you EKS cluster with simple **true/false** flags. The framework currently provides support for the following add-ons: | Add-on | Description | |-----------|----------------- -| [Agones](./agones) | Deploys Agones into an EKS cluster. | -| [ArgoCD](./argocd) | Deploys ArgoCD into an EKS cluster. | -| [AWS for Fluent Bit](./aws-for-fluent-bit) | Deploys Fluent Bit into an EKS cluster. | -| [AWS Load Balancer Controller](./fargate-fluent-bit) | Deploys the AWS Load Balancer Controller into an EKS cluster. | -| [AWS Distro for Open Telemetry](./aws-open-telemetry) | Deploys the AWS Open Telemetry Collector into an EKS cluster. | -| [cert-manager](./cert-manager) | Deploys cert-manager into an EKS cluster. | -| [Cluster Autoscaler](./cluster-autoscaler) | Deploys the standard cluster autoscaler into an EKS cluster. | -| [Fargate Fluent Bit](./fargate-fluent-bit) | Adds Fluent Bit support for EKS Fargate | -| [EKS Managed Add-ons](./managed-add-ons) | Enables EKS managed add-ons. | -| [Keda](./keda) | Deploys Keda into an EKS cluster. | -| [Metrics Server](./metrics-server) | Deploys the Kubernetes Metrics Server into an EKS cluster. | -| [Nginx](./ingress-nginx) | Deploys the NGINX Ingress Controller into an EKS cluster. | -| [Prometheus](./prometheus) | Deploys Prometheus into an EKS cluster. | -| [Traefik](./traefik) | Deploys Traefik Proxy into an EKS cluster. +| [Agones](../add-ons/agones) | Deploys Agones into an EKS cluster. | +| [Amazon EKS Add-ons](../add-ons/managed-add-ons) | Enables Amazon EKS add-ons. | +| [ArgoCD](../add-ons/argocd) | Deploys ArgoCD into an EKS cluster. | +| [AWS for Fluent Bit](../add-ons/aws-for-fluent-bit) | Deploys Fluent Bit into an EKS cluster. | +| [AWS Load Balancer Controller](../add-ons/aws-load-balancer-controller) | Deploys the AWS Load Balancer Controller into an EKS cluster. | +| [AWS Distro for Open Telemetry](../add-ons/aws-open-telemetry) | Deploys the AWS Open Telemetry Collector into an EKS cluster. | +| [AWS Node Termination Handler](../add-ons/aws-node-termination-handler) | Deploys the AWS Node Termination Handler into an EKS cluster. | +| [cert-manager](../add-ons/cert-manager) | Deploys cert-manager into an EKS cluster. | +| [Cluster Autoscaler](../add-ons/cluster-autoscaler) | Deploys the standard cluster autoscaler into an EKS cluster. | +| [Fargate Fluent Bit](../add-ons/fargate-fluent-bit) | Adds Fluent Bit support for EKS Fargate | +| [Karpenter](../add-ons/karpenter) | Deploys Karpenter into an EKS cluster. | +| [Keda](../add-ons/keda) | Deploys Keda into an EKS cluster. | +| [Metrics Server](../add-ons/metrics-server) | Deploys the Kubernetes Metrics Server into an EKS cluster. | +| [Nginx](../add-ons/nginx) | Deploys the NGINX Ingress Controller into an EKS cluster. | +| [Prometheus](../add-ons/prometheus) | Deploys Prometheus into an EKS cluster. | +| [Spark K8S Operator](../add-ons/spark-on-k8s-operator) | Deploys the Kubernetes Operator for Apache Spark into an EKS cluster. | +| [Traefik](../add-ons/traefik) | Deploys Traefik Proxy into an EKS cluster. +| [VPA](../add-ons/vpa) | Deploys the Vertical Pod Autoscaler into an EKS cluster. | +| [YuniKorn](../add-ons/yunikorn) | Deploys Apache YuniKorn into an EKS cluster. | ## Add-on Management diff --git a/docs/add-ons/metrics-server.md b/docs/add-ons/metrics-server.md index 024aaab8c8..12bf62894c 100644 --- a/docs/add-ons/metrics-server.md +++ b/docs/add-ons/metrics-server.md @@ -6,7 +6,7 @@ Metrics Server is a scalable, efficient source of container resource metrics for ## Usage -[Metrics Server](../../modules/kubernetes-addons/metrics-server/README.md) can be deployed by enabling the add-on via the following. +[Metrics Server](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/kubernetes-addons/metrics-server) can be deployed by enabling the add-on via the following. ```hcl enable_metrics_server = true diff --git a/docs/add-ons/nginx.md b/docs/add-ons/nginx.md index 893cd0503e..37e971728b 100644 --- a/docs/add-ons/nginx.md +++ b/docs/add-ons/nginx.md @@ -6,7 +6,7 @@ Other than handling Kubernetes ingress objects, this ingress controller can faci ## Usage -[Nginx Ingress Controller](kubernetes-addons/ingress-nginx/README.md) can be deployed by enabling the add-on via the following. +[Nginx Ingress Controller](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/kubernetes-addons/ingress-nginx) can be deployed by enabling the add-on via the following. ```hcl enable_ingress_nginx = true diff --git a/docs/add-ons/spark-on-k8s-operator.md b/docs/add-ons/spark-on-k8s-operator.md index f23092f3d4..5a077c1f08 100644 --- a/docs/add-ons/spark-on-k8s-operator.md +++ b/docs/add-ons/spark-on-k8s-operator.md @@ -5,7 +5,7 @@ For complete project documentation, please visit the [Spark K8S Operator documen ## Usage -[Spark K8S Operator](kubernetes-addons/spark-k8s-operator/README.md) can be deployed by enabling the add-on via the following. +[Spark K8S Operator](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/kubernetes-addons/spark-k8s-operator) can be deployed by enabling the add-on via the following. ### Basic Example diff --git a/docs/add-ons/traefik.md b/docs/add-ons/traefik.md index cd6347cce4..6046478e01 100644 --- a/docs/add-ons/traefik.md +++ b/docs/add-ons/traefik.md @@ -6,7 +6,7 @@ For complete project documentation, please visit the [Traefik documentation site ## Usage -[Traefik](kubernetes-addons/traefik-ingress/README.md) can be deployed by enabling the add-on via the following. +[Traefik](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/kubernetes-addons/traefik) can be deployed by enabling the add-on via the following. ```hcl enable_traefik = true diff --git a/docs/advanced/bottlerocket.md b/docs/advanced/bottlerocket.md index d581660e7c..1e2887c240 100644 --- a/docs/advanced/bottlerocket.md +++ b/docs/advanced/bottlerocket.md @@ -4,7 +4,7 @@ Bottlerocket has two containers runtimes running. Control container **on** by default used for AWS Systems manager and remote API access. Admin container **off** by default for deep debugging and exploration. -Bottlerocket [Launch templates userdata](modules/aws-eks-managed-node-groups/templates/userdata-bottlerocket.tpl) uses the TOML format with Key-value pairs. +Bottlerocket [Launch templates userdata](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/blob/main/modules/aws-eks-managed-node-groups/templates/userdata-bottlerocket.tpl) uses the TOML format with Key-value pairs. Remote API access API via SSM agent. You can launch trouble shooting container via user data `[settings.host-containers.admin] enabled = true`. ### Features diff --git a/docs/core-concepts.md b/docs/core-concepts.md index a111a95550..851a4e4abc 100644 --- a/docs/core-concepts.md +++ b/docs/core-concepts.md @@ -14,7 +14,7 @@ This document provides a high level overview of the Core Concepts that are embed A `cluster` is simply an EKS cluster. The `terraform-ssp-amazon-eks` framework provides for customizing the compute options you leverage with your `clusters`. The framework currently supports `EC2`, `Fargate` and `BottleRocket` instances. It also supports managed and self-managed node groups. To specify the type of compute you want to use for your `cluster`, you use the `managed_node_groups`, `self_managed_nodegroups`, or `fargate_profiles` variables. -See our [Node Groups](./node-groups) documentation page for detailed information. +See our [Node Groups](../node-groups) documentation page for detailed information. ## Add-on @@ -22,7 +22,7 @@ See our [Node Groups](./node-groups) documentation page for detailed information For example, the `metrics-server` add-on only deploys the Kubernetes manifests that are needed to run the Kubernetes Metrics Server. By contrast, the `aws-load-balancer-controller` add-on deploys both Kubernetes YAML, in addition to creating resources via AWS APIs that are needed to support the AWS Load Balancer Controller functionality. -The `terraform-ssp-amazon-eks` framework allows you to manage your add-ons directly via Terraform (by leveraging the Terraform Helm provider) or via GitOps with ArgoCD. See our [`Add-ons`](./add-ons) documentation page for detailed information. +The `terraform-ssp-amazon-eks` framework allows you to manage your add-ons directly via Terraform (by leveraging the Terraform Helm provider) or via GitOps with ArgoCD. See our [`Add-ons`](../add-ons) documentation page for detailed information. ## Team diff --git a/docs/getting-started.md b/docs/getting-started.md index 3422809b45..d7533eab0b 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -12,7 +12,7 @@ Ensure that you have installed the following tools in your Mac or Windows Laptop ## Deployment Steps -The following steps will walk you through the deployment of an example [DEV cluster](../examples/1-eks-cluster-with-new-vpc/main.tf) configuration. +The following steps will walk you through the deployment of an example [DEV cluster](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/blob/main/examples/1-eks-cluster-with-new-vpc/main.tf) configuration. This configuration will deploy a private EKS cluster with public and private subnets. One managed node group and a Fargate profile for the default namespace will be placed in private subnets. The ALB created by the AWS LB Ingress controller will be placed in Public subnets. The example will also deploy the following Kubernetes add-ons diff --git a/docs/internal/ci.md b/docs/internal/ci.md index 6a31cb2f98..ad1d4fe970 100644 --- a/docs/internal/ci.md +++ b/docs/internal/ci.md @@ -1,6 +1,6 @@ # E2E tests -We use GitHub Actions to run an end-to-end tests to verify all PRs. The GitHub Actions used are a combination of `aws-actions/configure-aws-credentials` and `hashicorp/setup-terraform@v1`. See the complete action definition [here](../../.github/workflows/e2e-test.yml). +We use GitHub Actions to run an end-to-end tests to verify all PRs. The GitHub Actions used are a combination of `aws-actions/configure-aws-credentials` and `hashicorp/setup-terraform@v1`. See the complete action definition [here](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/blob/main/.github/workflows/e2e-test.yml). ## Setup @@ -58,4 +58,4 @@ Outputs: 3. Setup a GitHub repo secret called `ROLE_TO_ASSUME` and set it to ARN of the role created in 1. -4. We use an S3 backend to test the canonical [example](../../examples/1-eks-cluster-with-new-vpc/main.tf). This allows us to recover from any failures during the `apply` stage. If you are setting up your own CI pipeline change the s3 bucket name in backend configuration of the example. +4. We use an S3 backend to test the canonical [example](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/blob/main/examples/1-eks-cluster-with-new-vpc/main.tf). This allows us to recover from any failures during the `apply` stage. If you are setting up your own CI pipeline change the s3 bucket name in backend configuration of the example. diff --git a/docs/modules/emr-on-eks.md b/docs/modules/emr-on-eks.md index 4c3c7afe41..6e8124e6e1 100644 --- a/docs/modules/emr-on-eks.md +++ b/docs/modules/emr-on-eks.md @@ -11,7 +11,7 @@ This module deploys the necessary resources to run EMR Spark Jobs on EKS Cluster ## Usage -[EMR on EKS](modules/emr-on-eks/README.md) can be deployed by enabling the module via the following. +[EMR on EKS](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/emr-on-eks) can be deployed by enabling the module via the following. ```hcl diff --git a/docs/node-groups.md b/docs/node-groups.md index d16cf8361c..1aca722274 100644 --- a/docs/node-groups.md +++ b/docs/node-groups.md @@ -1,12 +1,10 @@ # Node Groups -The framework uses dedicated sub modules for creating [AWS Managed Node Groups](modules/aws-eks-managed-node-groups), [Self-managed Node groups](modules/aws-eks-self-managed-node-groups) and [Fargate profiles](modules/aws-eks-fargate-profiles). These modules provide flexibility to add or remove managed/self-managed node groups/fargate profiles by simply adding/removing map of values to input config. See [example](examples/1-eks-cluster-with-new-vpc/main.tf). +The framework uses dedicated sub modules for creating [AWS Managed Node Groups](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/aws-eks-managed-node-groups), [Self-managed Node groups](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/aws-eks-self-managed-node-groups) and [Fargate profiles](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/modules/aws-eks-fargate-profiles). These modules provide flexibility to add or remove managed/self-managed node groups/fargate profiles by simply adding/removing map of values to input config. See [example](https://github.com/aws-samples/aws-eks-accelerator-for-terraform/tree/main/examples/1-eks-cluster-with-new-vpc). The `aws-auth` ConfigMap handled by this module allow your nodes to join your cluster, and you also use this ConfigMap to add RBAC access to IAM users and roles. Each Node Group can have dedicated IAM role, Launch template and Security Group to improve the security. -Please refer this [full example](examples/1-eks-cluster-with-new-vpc/main.tf) - ## Managed Node Groups The below example demonstrates the minimum configuration required to deploy a managed node group. diff --git a/mkdocs.yml b/mkdocs.yml index c4bfa2e67c..8ac4940eb0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -17,22 +17,29 @@ nav: - Add-ons: - Overview: "add-ons/index.md" - Agones: "add-ons/agones.md" + - Amazon EKS Add-ons: "add-ons/managed-add-ons.md" + - Argo CD: "add-ons/argocd.md" - AWS for Fluent Bit: "add-ons/aws-for-fluent-bit.md" - AWS Load Balancer Controller: "add-ons/aws-load-balancer-controller.md" - AWS Distro for OpenTelemetry: "add-ons/aws-open-telemetry.md" + - AWS Node Termination Handler: "add-ons/aws-node-termination-handler.md" - cert-manager: "add-ons/cert-manager.md" - Cluster Autoscaler: "add-ons/cluster-autoscaler.md" - Fargate Fluent Bit: "add-ons/fargate-fluent-bit.md" - - Managed EKS Add-ons: "add-ons/managed-add-ons.md" + - Karpenter: "add-ons/karpenter.md" + - KEDA: "add-ons/keda.md" - Metrics Server: "add-ons/metrics-server.md" - Nginx: "add-ons/nginx.md" - Prometheus: "add-ons/prometheus.md" - - Spark K8S Operator: "add-ons/spark-k8s-operator.md" + - Spark K8S Operator: "add-ons/spark-on-k8s-operator.md" - Traefik: "add-ons/traefik.md" + - VPA: "add-ons/vpa.md" + - YuniKorn: "add-ons/yunikorn.md" - Advanced: - Bottlerocket: "advanced/bottlerocket.md" - Cluster Upgrades: "advanced/cluster-upgrades.md" - ECR Instructions: "advanced/ecr-instructions.md" + - GitOps with Flux: "advanced/gitops-with-flux.md" - Multi-cluster: "advanced/multi-cluster.md" - Private Clusters: "advanced/private-clusters.md" markdown_extensions: