doc: update readme

Update README.md
This commit is contained in:
Serge Logvinov
2023-04-10 07:59:39 +03:00
parent 5677ba33a6
commit 0173d671dd
3 changed files with 11 additions and 9 deletions

View File

@@ -1,16 +1,18 @@
# Kubernetes cloud controller manager for Proxmox
In my opinion, Proxmox is like a manual way of creating a cloud.
There isn't much automation built into it.
To me, it seems like Proxmox is a bit old-fashioned when it comes to creating virtual machines.
It doesn't have a lot of automation built-in, so you have to do a lot of things manually.
Proxmox is a good option if you have a static infrastructure or don't create new virtual machines very often.
I personally use terraform to launch kubernetes nodes, and when I scale down, I need to delete the node resource in kubernetes.
That's why I created the CCM (Cloud Controller Manager).
Originally, it was designed to work with [TalosCCM](https://github.com/siderolabs/talos-cloud-controller-manager), but it was not difficult to make it a standalone solution.
I use Terraform to launch my Kubernetes nodes.
However, when I need to scale down the cluster, I have to manually delete the corresponding node resource in Kubernetes.
That's why I created the CCM (Cloud Controller Manager) for Proxmox.
Originally, it was designed to work with [Talos CCM](https://github.com/siderolabs/talos-cloud-controller-manager), but it was not difficult to make it as standalone solution.
The CCM does a few things: it initialises new nodes, applies common labels to them, and removes them when they're deleted. It also supports multiple clusters, meaning you can have one kubernetes cluster across multiple Proxmox clusters.
The basic definitions:
* kubernetes `region` is a Proxmox cluster
* kubernetes `region` is a Proxmox cluster `clusters[].region`
* kubernetes `zone` is a hypervisor host machine name
This makes it possible for me to use pods affinity/anti-affinity.

2
go.mod
View File

@@ -11,7 +11,7 @@ require (
k8s.io/client-go v0.26.3
k8s.io/cloud-provider v0.26.3
k8s.io/component-base v0.26.3
k8s.io/klog/v2 v2.90.0
k8s.io/klog/v2 v2.90.1
)
require (

4
go.sum
View File

@@ -747,8 +747,8 @@ k8s.io/component-helpers v0.26.3 h1:eQ682yg1GiIGAsde+l2xL0P2yMYJOvypWsz6h6FtkZo=
k8s.io/component-helpers v0.26.3/go.mod h1:feC+CaxJXULs5TSD3lG8K5ecftOkF8eY0pHQgd7koEI=
k8s.io/controller-manager v0.26.3 h1:68orrBzfIUJNB+SAjlX6m8ocpHK1mz+/FUHu14+VHzc=
k8s.io/controller-manager v0.26.3/go.mod h1:YS449osPmX9Q4xLcyuqEfVzqYcEDxjzzr1kMABouA1I=
k8s.io/klog/v2 v2.90.0 h1:VkTxIV/FjRXn1fgNNcKGM8cfmL1Z33ZjXRTVxKCoF5M=
k8s.io/klog/v2 v2.90.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
k8s.io/kms v0.26.3 h1:+rC4BMeMBkH5hrfZt9WFMRrs2m3vY2rXymisNactcTY=
k8s.io/kms v0.26.3/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg=
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=