behoof4mind / workadventure-eks

https://github.com/thecodingmachine/workadventure infrastructure based on AWS EKS solution

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  1. Create AWS account. AWS Free Tier
  2. Register domain. Register a Domain Name with Amazon Route 53
  3. Change variables in main.tf file if you need
  4. Change variables in helmfile.yaml file if you need
  5. Change terraform backend config to your own Terraform S3 backend, How to manage Terraform state
  6. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY secrets in GitHub project settings
  7. Start workflow Prepare EKS environment workflow in Github Actions
  8. Copy kubectl config from terraform output and put it as KUBE_CONFIG_DATA_BASE64 secret to GitHub project settings
  9. Start workflow Deploy app workflow in Github Actions
  10. When worflow will finish - check http://front.<YOUR-DOMAIN-NAME> page (http://front.workadventure-game.link in this example)
  11. 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

About

https://github.com/thecodingmachine/workadventure infrastructure based on AWS EKS solution


Languages

Language:JavaScript 54.2%Language:HCL 45.8%