...
- 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
- Click Save. Wait for the database to be setup
- Once the setup is complete, click Done. It will redirect you to the Joget main page
...
- 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
- Apply the StorageClass by running
kubectl apply -f
<storageclass>.yaml - 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
- Delete the current PVC -
kubectl delete pvc efs-claim
, then recreate it using kubectl apply -f joget-dx8-tomcat9-deployment.yaml
- 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
- 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:
- In the Terraform Iac, go to infrastructure/compute/eks/eks.tf
- 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"]
}
...
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