This repository mainly contains OpenTofu configuration for deploying infrastructure for YASM Media utilizing necronizer's cloud modules for deploying a self hosted cloud solution.
The following is required to start using this repository:
- OpenTofu - Since modules are written in OpenTofu, we deploy all components using OpenTofu
- Kubernetes Cluster - Any kubernetes cluster can do, tested out with my self hosted kubernetes cluster
- Cloudflare Token and DNS Zones - Currently all modules use Cloudflare for provisioning public SSL certificates using DNS01 challenge validation.
- An SMTP Server - For sending mails using Keycloak Authentication
Step 1: Setup a TFVARS file, an example for which is given here which will require SMTP Server details to be added along with Cloudflare Token and DNS to be used. Save the file as terraform.tfvars.json.
Step 2: Initialize the state with OpenTofu by running the following command: tofu init
Step 3: Deploy all required CRDs using OpenTofu by executing the following command: tofu apply --target=module.helm -var-file terraform.tfvars.json -auto-approve
Step 4: Now you can deploy all components using OpenTofu by executing the following command: tofu apply -var-file terraform.tfvars.json -auto-approve