Giter VIP home page Giter VIP logo

terraform-talos's Introduction

Terraform examples to launch Talos.

I store here the terraform code to launch Talos in the clouds. I wouldn't use the terrafrom modules from internet. The goal is to create all cloud services from scratch.

Ideas

First, I will create separate clusters on each cloud provider, test them thoroughly, and bring them close to production readiness. When I merge these separate Kubernetes clusters into one, they will have a single control plane.

Why is it so important?

Having a single Kubernetes control plane that spans multiple cloud providers can offer several benefits:

  • Improved resilience and availability: By using multiple cloud providers, you can reduce the risk of downtime due to a single point of failure.
  • Flexibility: A single control plane allows you to easily move workloads between different cloud providers, depending on your needs.
  • Cost savings: You can take advantage of the different pricing models and discounts offered by different cloud providers to save on costs.
  • Improved security: By using multiple cloud providers, you can implement a defense-in-depth strategy to protect your data and reduce the risk of a security breach.
  • Decrease the time to recovery (TTR)

Clouds

Platform Checked Talos version Addons Setup type Nat-IPv4 IPv6
Azure 1.3.4 CCM,CSI,Autoscaler many regions, many zones
Exoscale 1.3.0 CCM,Autoscaler many regions
GCP 1.3.4 CCM,CSI,Autoscaler one region, many zones
Hetzner 1.4.0 CCM,CSI,Autoscaler many regions, one network zone
Openstack 1.3.4 CCM,CSI many regions, many zones
Oracle 1.3.4 CCM,CSI,Autoscaler one region, many zones
Proxmox 1.3.4 CCM,CSI one region, mny zones
Scaleway 1.3.4 CCM,CSI one region

Known issues

  • Talos does not support Oracle CSI.

Multi cloud compatibility

CCM compatibility, which can work together:

  • Talos CCM in mode: cloud-node
  • Other CCMs in mode: cloud-node-lifecycle
Azure GCP Hetzner Openstack Proxmox
Azure
Exoscale
GCP
Hetzner
Openstack
Proxmox

Common

  • cilium network with vxlan tunnels.
  • ingress-nginx (daemonsets) runs on web role nodes. It uses hostNetwork ports 80,443 for optimizations. It helps me to tweak the kernel on a host and apply it to ingress controller. And I can disable conntrack too.
  • coredns-local (daemonsets) uses dummy interface on al nodes and has ip 169.254.2.53 It decrease the dns response (all traffic does not leave the node).
  • rancher.io/local-path as default storage class.

terraform-talos's People

Contributors

flomaetschke avatar sergelogvinov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

terraform-talos's Issues

Proxmox prepare step ansible role missing

ansible-role-users appears to be missing from your repos in order to complete the prepare step for proxmox.

I have continued as its stated as optional.

Cheers

ansible-galaxy role install git+https://github.com/sergelogvinov/ansible-role-users.git,main

Proxmox: Permissions issues creating the controlplane

Non stop permissions issues for me, not sure what I am doing wrong, but putting it here if others give it a try :)

make create-controlplane

terraform apply -auto-approve -target=null_resource.controlplane

│ Warning: Resource targeting is in effect

│ You are creating a plan with the -target option, which means that the result of this plan may not represent all of the changes requested by the current configuration.

│ The -target option is not for routine use, and is provided only for exceptional situations such as recovering from errors or mistakes, or when Terraform specifically
│ suggests to use it as part of an error message.


│ Error: user kubernetes@pve has valid credentials but cannot retrieve user list, check privilege separation of api token

│ with provider["registry.terraform.io/telmate/proxmox"],
│ on auth.tf line 12, in provider "proxmox":
│ 12: provider "proxmox" {

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.