Versions Compared

Key

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

...

  • Ensure that you have these CLI tools installed:
  • Configured AWS CLI with Access Keys or assumed role with sufficient permissions
  • You have downloaded the Terraform IaC from here

...

Note: 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. Ensure that you use the writer endpoint when setting up Joget database

  1. Click Save. Wait for the database to be setup
  2. Once the setup is complete, click Done. It will redirect you to the Joget main page

...

  1. Create a StorageClass manifest as follow:

    kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: <your-efs-sc-name> provisioner: efs.csi.aws.com parameters: provisioningMode: efs-ap fileSystemId: <efs-file-id> directoryPerms: "775" reclaimPolicy: Retain
  2. Apply the StorageClass by running kubectl apply -f <storageclass>.yaml
  3. Modify the PVC from the joget-dx8-tomcat9-deployment.yaml file to this:  

    apiVersion: v1 kind: PersistentVolumeClaim metadata: name: efs-claim spec: accessModes: - ReadWriteMany storageClassName: <your-efs-sc-name> resources: requests: storage: 5Gi
  4. Delete the current PVC - kubectl delete pvc efs-claim , then recreate it using kubectl apply -f joget-dx8-tomcat9-deployment.yaml
  5. Wait for the Persistent Volume to be createdOnce the Persistent Volume is created, modify the Joget Deployment to the following:apiVersion: apps/v1 kind: Deployment metadata: name: joget-dx8-tomcat9 labels: app: joget-dx8-tomcat9 spec: replicas: 1 selector: matchLabels: app: joget-dx8-tomcat9 template: metadata: labels: app: joget-dx8-tomcat9 spec: volumes: - name: <efs-pv-name> persistentVolumeClaim: claimName: joget-dx8-tomcat9-pvc securityContext: runAsUser: 1000 fsGroup: 0 containers: - name: joget-dx8-tomcat9 image: jogetworkflow/joget-dx8-tomcat9:latest ports: - containerPort: 8080 volumeMounts: - name: <efs-pv-name> mountPath: /opt/joget/wflow env: - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
  6. Wait for the new pods to spawn. The new pods The application will now be using the EFS storage instead of EBS

Joget on AWS Marketplace

Joget is also available in AWS Marketplace. Installation guide is available on the Marketplace page. Ensure that you have installed eksctl when following the instruction


Common Errors

Terraform

  • Error: error configuring S3 Backend: no valid credential sources for S3 Backend found.

...

    • 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
        1. If you are using users credential:
          aws_auth_users= [
              {
                userarn  = "arn:aws:iam::<account-id>:user/<username>"
                username = "<username>"
                groups   = ["system:masters"]
              }
           ]
          
        2. 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"]
          }
          

...

AWS Marketplace

  • Quicklaunch: Cloudformation Stack failed to be created
    • There can be numerous reasons the stack can be failed
    • The most common and important reason is the Helm chart failed to be deployed
    • Check the reason of failure from the Cloudformation console > Quicklaunch stack > Helm stack in the reason column