diff --git a/docs/docs/platform/deployment/examples/aws-kubernetes-eks.md b/docs/docs/platform/deployment/examples/aws-kubernetes-eks.md index 9b5bea7..fca15f3 100644 --- a/docs/docs/platform/deployment/examples/aws-kubernetes-eks.md +++ b/docs/docs/platform/deployment/examples/aws-kubernetes-eks.md @@ -73,14 +73,36 @@ terraform init terraform apply --auto-approve ``` + ### 4. 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 service_urls +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 -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 +``` ### Optional - Destroy @@ -97,7 +119,7 @@ terraform destroy ``` -## Optionally use the K8s cluster as normal with the CLI +## Optional - Use the kubectl CLI to interact with the cluster After setting up the cluster, it is possible to interact directly with it using the kubectl CLI The requirement is to get the KUBECONFIG file created by the terraform apply. @@ -116,11 +138,72 @@ Note - alternatively you could use the AWS CLI to set your kubeconfig using `aws You can then interact with kubernetes via the CLI ```bash +kubectl get pods + # 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 = <