Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
The following guide will show steps to deploy Joget on EKS using Terraform
Prerequisites
Configuring Terraform Remote Backend
Disclaimer: The Terraform code provisions the minimum required infrastructure. You may have to modify some of the parameters to ensure that it is working in your environment. You may refer to the official AWS and Hashicorp documentation for more details
app_name=”<your-app-name>”
terraform init
terraform plan
to observe the resources that will be deployed (optional)terraform apply -auto-approve
infrastructure
directory and open main.tf
backend "s3" {
bucket = "xxx"
key = "terraform.infrastructure.tfstate"
region = "xxx"
dynamodb_table = "xxx"
}
Note: This process will create a local Terraform state. The remote state will only apply for infrastructure
Deploying AWS Infrastructure
terraform.tfvars
file and ensure the following variables are included app_name=”<your-app-name>”
cluster_name=”<your-eks-cluster-name>”
rds_username=”<your-rds-username>”
rds_password=”<your-rds-password>”
terraform init
terraform plan
to observe the resources that will be deployed (optional)terraform apply -auto-approve
Note: This step will take some time, around 20-30 minutes
Deploying Joget DX 8
kubectl apply -f joget-dx8-tomcat9-deployment.yaml
kubectl get pods -A
to obtain the status of the podsAccessing Joget through Load Balancer
kubectl get ingress -A
. You should see the DNS under Address column like so: k8s-namespace-RANDOM-STRING.REGION.elb.amazonaws.com
/jw
. It will redirect you to the database setupNote: The Terraform IaC has RDS Aurora Serverless included in the Infrastructure and as such, it will be deployed alongside the EKS. You may use the RDS to better synergize with the VPC configuration
Common Errors
Terraform
Kubernetes/EKS
aws_auth_users= [
{
userarn = "arn:aws:iam::<account-id>:user/<username>"
username = "<username>"
groups = ["system:masters"]
}
]
{
rolearn = “arn:aws:iam::<account-id>:role/<role-name>”
username = "<role-name>"
groups = ["system:masters"]
}