This repository provides a simple and automated way to install the POSIT toolchain on AWS EKS (Elastic Kubernetes Service) for SCE (Statistical Compute Environment). The solution includes a one-click deployment and destroy option, making it easy to set up and tear down the POSIT-SCE environment on AWS EKS for enterprise use.
- One-Click Deploy: Deploy the POSIT-SCE toolchain on AWS EKS with a single command.
- One-Click Destroy: Easily tear down the POSIT-SCE environment on AWS EKS with a single command.
- Enterprise-Ready: The solution is designed and configured for enterprise use, ensuring scalability, security, and compliance.
- Automated Setup: The deployment process automates the installation and configuration of the POSIT toolchain, saving time and reducing manual effort.
- Customizable: The solution can be customized to meet specific requirements, such as resource allocation, networking, and security settings.
Before deploying the POSIT-SCE on AWS EKS, ensure you have the following prerequisites:
- AWS Command Line Interface (CLI) installed and configured with appropriate permissions.
- AWS Cloud Development Kit (CDK) is installed
- An AWS account with sufficient permissions to create and manage EKS clusters, EC2 instances, and related resources.
- Homebrew, Kubernetes CLI (KubeCTL), Helm and Node installed.
- [Windows Only] A installed and configured WSL (Windows Subversion Linux)
-
Clone this repository
-
Install the required dependencies:
# Install dependencies if applicable brew install node brew install awscli brew install aws-cdk brew install kubernetes-cli brew install helm #Install node modules npm install
Be sure to authenticate the AWS CLI, please see this link for guidance. Make sure to note down the (or one of) the IAM Role ARN's the CLI has assumed or that the IAM user has been assigned. This role is required in the setup to provide administrative rights to the current session for configuration of the Kubernetes cluster. You can find out which user or role is assumed via the following command:
aws sts get-caller-identity
-
Deploy the POSIT-SCE on AWS EKS: Configure the POSIT licenses, with your license keys You can reach out to POSIT team here.
# Edit the .env file to include the license keys. PWB_LICENSE=xxx PCO_LICENSE=xxx PPM_LICENSE=xxx
# One-click deploy command bash ./run.sh deploy
Note: If you are running authenticated to the CLI using an assumed role - specify the ARN of the role that has been assumed where prompted to accept the role ARN.
This script will run all required commands for the setup. The entire deployment is idem-potent and the initial configuration takes ~40 minutes.
# One-click destroy command
bash ./run.sh destroy
This command will initially reset the EKS cluster and provide the option to also destroy the infrastructure stack. If you make changes to the infrastructure outside of the CDK stack you might get destroy errors as there are untracked dependencies.
How do I deploy the solution to a different AWS region
: Change the region by running the export AWS_REGION=xxx
command before the deploy script. Replace xxx with your region like us-east-1 or eu-west-1.
How can I make changes to the deployment : All components of the solution are idempotent, meaning you can make a change to the CDK, install scripts and .env file and re-run the deploy script. As long as there are no breaking changes they will propagate to your deployment.
Will the solution auto-scale? : Currently the EKS cluster will scale horizontally with M5.XLARGE and M5.8XLARGE instances using Cluster Autoscaler. You can change this in the CDK deployment code.
Can I use my own domain name? : Yes! The setup will ask you for the FQDN and configure posit accordingly. You will have to manually add the HTTPS listener to the Load Balancer as it requires your SSL certificate for SSL termination and configure your DNS settings to point to the LB.
Can I use my own domain name? : Yes! The setup will ask you for the FQDN and configure posit accordingly. You will have to manually add the HTTPS listener to the Load Balancer as it requires your SSL certificate for SSL termination and configure your DNS settings to point to the LB.
For any issue/ support contact lind mainteners team.
Currently you have to run the bash ./run.sh deploy twice to get the Application Load Balancer deployed.