Code Monkey home page Code Monkey logo

terraform-proxmox-k0s's Introduction

Proxmox k0s Kubernetes Cluster Module

This module creates k0s Kubernetes clusters on the Proxmox hypervisor. The k0sctl cluster manager is used for bootstrapping and managing the k0s clusters. There are a number of sub-modules used for configuring a complete cluster.

Providers

These modules make use of the telmate/proxmox and danitso/proxmox providers. Since they're both named proxmox, the danitso/proxmox provider has been aliased to proxmox-resource because it's only used for creating snippets, etc. The telmate/proxmox provider is used for the management of containers and VMs.

Compatibility

This module is meant for use with Terraform 1.0+ and tested using Terraform 1.0. If you find incompatibilities, please open an issue. This has been tested with Proxmox 6.4, 7.1, and 7.2 but not all features have been tested with all listed versions of proxmox.

Caveats

Providers

Some modules make use of danitso/proxmox (GitHub) specifically for writing cloud-init snippets for QEMU VMs. This provider appears to be...not currently maintained. Testing has revealed that snippet resources, and posibly the resulting CDROM volumes, might not be properly destroyed. These might require deletion after a terraform destroy for a complete cleanup.

Proxmox

When cloning VM templates, Proxmox places a mutex lock on the source. When creating a more-than-small number of VMs, this will lead to VM creation failures. Rerunning terraform apply will usually rectify the situation. The problem can also be avoided by specifying -parallelism=2 (or other suitably small number) during the apply. This obviously comes at the expense of speed, but waiting longer may be preferable to dealing with multiple apply iterations to complete the cluster setup.

Personal/Homelab Project

Cloudops is my day job, but these modules were developed as a personal/homelab project. Only features and configurations that I've experimented with or use regularly, or features that would obviously be needed by thrid parties, are exposed in these modules. No attempt was made to accommodate all possible permutations of cluster and/or VM configurations. If a particular feature you need is not exposed, please open an issue or pull request.

Examples/Tests

Yeah, there kind of aren't any yet. There are two "tests" which really just amount to a minimal config and an all-the-things config. I use these locally for testing changes on my Proxmox cluster so, while not particurly great for copy-pasta, they do represent working configurations. IP allocations, node names, etc. are obviously unique to my setup. The only missing bits are the Proxmox credentials as defined in the variables.tf files.

terraform-proxmox-k0s's People

Contributors

jfklingler 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

Watchers

 avatar  avatar

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.