Skip to content

Infrastructure for managing the Mythbound stack on a virtualised K3s cluster with FluxCD, using Oracle's 'always free' resources with Ansible, Terraform, Vault, Helm, and Renovate.

Notifications You must be signed in to change notification settings

tibia-oce/infrastructure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0d9dbe2 Β· Apr 12, 2025
Oct 26, 2024
Oct 10, 2024
Oct 10, 2024
Apr 12, 2025
Sep 30, 2024
Oct 10, 2024
Sep 30, 2024
Aug 31, 2024
Nov 1, 2024
Oct 26, 2024

Repository files navigation

Mythbound Tibia Infrastructure :octocat:

... managed with Flux, Renovate, Ansible and Terraform πŸ€–

Kubernetes   Discord   Renovate

Cluster   Server   Website  




🏠 Oracle K3S Cluster

This mono-repository demonstrates how to deploy a K3s Kubernetes cluster for free on Oracle always free resources. Infrastructure provisioning, configuration and deployments are managed with Infrastructure as Code (IaC) and GitOps; using toolings from Ansible, HashiCorp, Kubernetes, Helm, Kustomize, Flux, Renovate, and GitHub Actions.


β›΅ Features

GitOps

Flux CD monitors the repository's Kubernetes manifests and ensures the cluster matches the desired state in Git. When changes are merged, Flux automatically applies them to the cluster.

Renovate watches for dependency updates, creating pull requests when updates are found. Once merged, Flux detects and applies the changes, deploying the updated dependencies.

State Management

Terraform Cloud handles the locking and consistency of state files, which helps prevent issues that might arise from multiple users or processes trying to modify the state simultaneously.

Secret Management

HashiCorp Vault stores and manages secrets, passwords, and API keys. It controls access, provides dynamic secrets, and supports automatic rotation to enhance security and limit exposure.

Core Components

  • cloudflare: dns resolution for layer 4 and layer 7 cluster applications.
  • metal-lb: layer 2 & 3 network load balancing to integrate with Oracle cloud without a CCM.
  • nginx: an os-level pass through proxy to support cloud integration.
  • flannel: internal Kubernetes container networking interface.
  • traefik: as a reverse proxy and service load balancing ingress controller.
  • authentik: IAM server for multi-factor auth and single sign-ons.
  • cert-manager: manages SSL certificates for services in the cluster.
  • gatus: monitors the health and performance of services, with alerts.

🌐 Network topology

Here's a macroscopic overview of the state of the network, integrated with Oracle ingress points.

network


πŸ“ Directories

This Git repository contains the following directories:

πŸ“ infrastructure
β”œβ”€β”€ πŸ“ scripts                      # Utility bash scripts used to assist in preparing credentials
β”œβ”€β”€ πŸ“ ansible                      
β”‚   β”œβ”€β”€ πŸ“ collections              # Required Ansible collections used across playbooks
β”‚   β”œβ”€β”€ πŸ“ inventory                # Inventory files for managing host groups and variables
β”‚   └── πŸ“ roles                    # Roles for reusable automation tasks
β”œβ”€β”€ πŸ“ kubernetes                   
β”‚   β”œβ”€β”€ πŸ“ apps                     # Application-specific manifests and configurations for Kubernetes
β”‚   └── πŸ“ flux                     # ArgoCD configuration files for managing Kubernetes applications
└── πŸ“ terraform                    
    └── πŸ“ modules                  
        β”œβ”€β”€ πŸ“ compute              # Terraform modules for managing compute instances
        β”œβ”€β”€ πŸ“ load_balancers       # Terraform modules for configuring load balancers
        β”œβ”€β”€ πŸ“ networking           # Terraform modules for setting up network components
        β”œβ”€β”€ πŸ“ reserved_ip          # Terraform modules for managing reserved IP addresses
        β”œβ”€β”€ πŸ“ security_groups      # Terraform modules for defining network security groups
        └── πŸ“ security_lists       # Terraform modules for configuring network security lists 

πŸ€™ Related projects & many thanks

This project was heavily influenced by the following work and communities, shout out to all the amazing people and resources for design, code and ideas:

About

Infrastructure for managing the Mythbound stack on a virtualised K3s cluster with FluxCD, using Oracle's 'always free' resources with Ansible, Terraform, Vault, Helm, and Renovate.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published