workadventure-eks
This is test task:
thecodingmachine/workadventure app in AWS EKS
Overview
Terraform module: behoof4mind/tf-module-workadventure
Own helmchart repository: behoof4mind/helm-charts
CI/CD: GitHub Actions
GitHub Actions plugin fork: helm-eks-action (i've added helmfile support)
Environment: AWS EKS + ExternalDNS
How it works
- creates AWS EKS infrastructure by the module
- deploy apps by the helmfile:
- external-dns - that provide automation to add sub-domains to the Route53 HostedZone by kubernetes annotations
- workadventure - chart that deploy app itself
How to use
- Create AWS account. AWS Free Tier
- Register domain. Register a Domain Name with Amazon Route 53
- Change variables in main.tf file if you need
- Change variables in helmfile.yaml file if you need
- Change terraform backend config to your own Terraform S3 backend, How to manage Terraform state
- Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY secrets in GitHub project settings
- Start workflow
Prepare EKS environment
workflow in Github Actions - Copy kubectl config from terraform output and put it as KUBE_CONFIG_DATA_BASE64 secret to GitHub project settings
- Start workflow
Deploy app
workflow in Github Actions - When worflow will finish - check
http://front.<YOUR-DOMAIN-NAME>
page (http://front.workadventure-game.link in this example) - You should see web page with workadventure app
TODO
- Add IAM role to manage deployments
- Add IAM role to manage DNS records
- Add and configure ingress-controller to manage HTTP/HTTPS access
- Configure auto-acme/cert-management automation to have TLS
- Prepare own JitsyMeet server