Skip to content

infraheads/turnk8s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

turnk8s is a toolset for On-Prem, turnkey Kubernetes deployments based on Talos Linux and Proxmox.

Before using turnk8s

You must fork turnk8s, set up a self-hosted GitHub runner inside your infrastructure, and create infrastructure-specific environmental variables. See the list of the repository's environmental variables.

Please note that the GitHub token should have repository creation privileges.

Using turnk8s

Adhering to GitOps, you can manage all the clusters with the config.yaml configuration file. turnk8s ensures that the config.yaml represents the state of your running clusters.

Click here to see the structure of config.yaml file:
turnk8s-cluster:
  versions:
    talos: v1.7.1
    k8s: v1.30.0
  controlplane:
    cpu_cores: 2
    memory: 4096
    disk_size: 20
  worker_nodes:
    cpu_cores: 2
    memory: 4096
    disk_size: 20

Creating a Cluster

You can create one or many clusters at once. All you need to do is add the turnk8s cluster configurations to the config.yaml file and push it to your turnk8s. Please note that you need Proxmox hosts deployed and available for your GitHub runner and Netris controller and softgate nodes available for your Kubernetes cluster pods.

Configuration parameters:

  • the main key is the cluster name:(Required) - A unique cluster name
  • versions.talos:(Required) - Talos Linux version: Supported versions are v1.7.1, v1.7.0, v1.6.7
  • versions.k8s:(Required) - Kubernetes version: Supported versions are v1.30.0, v1.29.3
  • controlplane.cpu_cores:(Required) - controlplane node cores :(min 2)
  • controlplane.memory:(Required) - controlpalne node RAM (min 2048)
  • controlplane.disk_size:(Required) - controlplane node disk size:(min 10)
  • worker_nodes.cpu_cores:(Required) - worker node cores:(min 1)
  • worker_nodes.memory:(Required) - worker node RAM:(min 2048)
  • worker_nodes.disk_size:(Required) - worker node disk size:(min 10)

Pushing config.yaml triggers a GitHub actions workflow. The Kubernetes configuration files and the Kubernetes services repo URL are shown on the summary page when the workflow is complete.

Screenshot 2024-05-24 at 17 11 48

Destroying a Cluster

To destroy a cluster, you must remove the cluster configuration from the config.yaml file and push it to your turnk8s repository.

Kubectl

Download the kubeconfig file from the summary page, unzip it, and export its path to the KUBECONFIG variable.
Try kubectl get nodes to check if Kubernetes is running.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published