This repository contains the code for the deployment of Tonetag. The deployment is done with Terraform, Ansible and ArgoCD.
The Terraform project in terraform/hetzner/ contains the code for the deployment of the Tonetag infrastructure on Hetzner Cloud. It also creates Cloudflare DNS records for the Tonetag domain. The Terraform state is later used as Ansible inventory.
To deploy the infrastructure, run the following commands:
cd terraform/hetzner
terraform init
terraform apply
The Ansible project in ansible/ contains the code to install K3S and deploy ArgoCD with ArgoCD Kustomize SOPS plugin.
To deploy the infrastructure, run the following commands:
cd ansible
ansible-galaxy install -r requirements.yml
ansible-playbook -i inventory/terraform playbooks/deploy.yml
That should be it! Wait a few minutes for the deployment to finish and then you should then see Tonetag deployed at the domain you specified in the Terraform variables!
The ArgoCD project in argocd/ contains the code to deploy the Tonetag application. It contains a Project and Application in argocd/projects/.
The Application contains a Kustomization in argocd/tonetag/ that deploys the cert-manager Helm chart, certificates for the Tonetag domain, and the Tonetag application with Helm.
The Helm chart for the Tonetag application is in the tonetag/charts repository.