Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Create a terraform.tfvars file in the backend directory and ensure the following variables are included

app_name=”<your-app-name>”

  1. Run terraform init
  2. Run terraform plan to observe the resources that will be deployed (optional)
  3. Once verified, run terraform apply -auto-approve
  4. Once the backend has been deployed, go to the infrastructure directory and open main.tf
  5. Find the block:

 backend "s3" {

    bucket         = "xxx"

    key            = "terraform.infrastructure.tfstate"

    region         = "xxx"

    dynamodb_table = "xxx"

  }

  1. Fill in the marked with xxx with the ones that you have created on step 1 - 5

...

Deploying AWS Infrastructure

  1. Create a 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>”

  1. Run terraform init
  2. Run terraform plan to observe the resources that will be deployed (optional)
  3. Once verified, run terraform apply -auto-approve


Note: This step will take some time, around 20-30 minutes

...

  1. Download the Kubernetes manifest here
  2. Run kubectl apply -f joget-dx8-tomcat9-deployment.yaml
  3. Wait for the containers to initialize. Run kubectl get pods -A to obtain the status of the pods

...

Accessing Joget through Load Balancer

  1. Run kubectl get ingress -A . You should see the DNS under Address column like so:

k8s-namespace-RANDOM-STRING.REGION.elb.amazonaws.com

  1. Use the Address and go to /jw . It will redirect you to the database setup

...

    • This happens when you are using different credentials - different users or roles to access the cluster. If you are the cluster creator, you should be able to access the cluster
    • Solution: 
      1. In the Terraform Iac, go to infrastructure/compute/eks/eks.tf
      2. Under the module “eks”, add the following
        • If you are using users credential:

aws_auth_users= [

    {

      userarn  = "arn:aws:iam::<account-id>:user/<username>"

      username = "<username>"

      groups   = ["system:masters"]

    }

  ]

  • If you are using roles, you may append the aws_auth_roles block like so:

{

      rolearn  = “arn:aws:iam::<account-id>:role/<role-name>”

      username = "<role-name>"

      groups   = ["system:masters"]

    }