From c6cea78135e453abe08adc0ee4de114869f353a2 Mon Sep 17 00:00:00 2001 From: alhendrickson Date: Tue, 20 Oct 2026 15:04:26 +0000 Subject: [PATCH] feat(iac): AWS Example module to use cogstack CE chart --- deployment-examples/aws-kubernetes/README.md | 103 ++++++++++++++++-- .../kubernetes-deployment/main.tf | 55 +++------- .../kubernetes-deployment/output.tf | 15 --- .../kubernetes-deployment/variables.tf | 4 - 4 files changed, 113 insertions(+), 64 deletions(-) delete mode 100644 deployment-examples/aws-kubernetes/kubernetes-deployment/output.tf delete mode 100644 deployment-examples/aws-kubernetes/kubernetes-deployment/variables.tf diff --git a/deployment-examples/aws-kubernetes/README.md b/deployment-examples/aws-kubernetes/README.md index ae17bc3c..be9e6fbd 100644 --- a/deployment-examples/aws-kubernetes/README.md +++ b/deployment-examples/aws-kubernetes/README.md @@ -50,12 +50,42 @@ terraform apply --auto-approve ### 3. Accessing the CogStack Platform -Once the deployment is complete and all services are running, you can access the CogStack platform and its components using the following URLs: +Once the deployment is complete and all services are running, you can access the CogStack platform and its components. +We will use kubernetes port-forwarding to make the services accessible locally. + +Run this command: + +```bash +terraform output -raw cogstack_notes | bash +``` + +The console will now print all the URLs you can visit to access your CogStack deployment. + + ```bash -terraform output service_urls +$ terraform output -raw cogstack_notes | bash +Forwarding from 127.0.0.1:5001 -> 5000 +Forwarding from [::1]:5001 -> 5000 +Forwarding from 127.0.0.1:5000 -> 5000 +Forwarding from [::1]:5000 -> 5000 +Visit http://127.0.0.1:5000 to use MedCAT Service +Visit http://127.0.0.1:5001 to use AnonCAT +Visit http://127.0.0.1:8080 to use MedCAT Trainer +Visit https://127.0.0.1:9200 to use OpenSearch +Visit http://127.0.0.1:5601 to use OpenSearch Dashboards +Visit http://127.0.0.1:8000 to use jupyterhub +Visit http://127.0.0.1:8000/user/admin/notebooks/medcat-service-tutorial.ipynb to get started with a tutorial ``` +### 4. Continue with the CogStack Tutorials + +You've now got a fully working deployment of CogStack Community Edition! + +Now you can look at the product tour and interactively follow along with this: https://docs.cogstack.org/en/latest/cogstack-ce/product-tour/ . + +You've already port-forwarded the services, so you should be able to just open all the URLs and try out the applications. + ### Optional - Destroy @@ -88,14 +118,71 @@ export KUBECONFIG=${AWS_KUBECONFIG} Note - alternatively you could use the AWS CLI to set your kubeconfig using `aws eks update-kubeconfig --name $(terraform output -raw cluster_name)`. -You can then interact with kubernetes via the CLI +You can then interact with kubernetes via the CLI for example: ```bash # Run Medcat service -helm install my-medcat oci://registry-1.docker.io/cogstacksystems/medcat-service-helm --wait --timeout 10m0s +helm install medcat-service oci://registry-1.docker.io/cogstacksystems/medcat-service-helm --wait --timeout 10m0s +``` + +## Optional - Public Access + +You can setup public access over the internet to your deployed services. + +One way to do this is to use an AWS ALB, along with defining the ingress routes of the helm chart. + +See this terraform code for an example + +```hcl +resource "kubernetes_ingress_class" "application_load_balancer" { + # An Application Load Balancer is required in order to create public URLs. + # The load balancer controller creates instances of the ALB when it sees ingress objects with the right annotations. + metadata { + name = "alb" + labels = { + "app.kubernetes.io/name" = "LoadBalancerController" + } + } + spec { + controller = "eks.amazonaws.com/alb" + } +} + +locals { + services = { + medcat_service = { + path_prefix = "medcat-service" + } + } +} +module "cogstack_helm_services" { + depends_on = [kubernetes_ingress_class.application_load_balancer] +source = "github.com/CogStack/cogstack-platform-toolkit//deployment/terraform/modules/cogstack-helm-services?ref=terraform-modules-v0.1.0" + medcat_service_values = <