kubernetes / autoscaler

Autoscaling components for Kubernetes
Apache License 2.0
8.06k stars 3.97k forks source link

add Hetzner support #2054

Closed hadifarnoud closed 5 years ago

hadifarnoud commented 5 years ago

Hetzner cloud has a kubernetes controller manager. I assume the support for autoscaler can be added

https://github.com/hetznercloud/hcloud-cloud-controller-manager

MaciekPytel commented 5 years ago

I'm not sure what exactly is your question here? We accept new cloud provider implementations on condition that they don't modify global vendor/ and they don't introduce license-related problems. Implementation wise - Cluster Autoscaler uses a completely different interface to talk to cloud provider, having working controller-manager doesn't help you at all. Implementing cloud provider support for CA is unfortunately a serious task (most existing implementations are >5k LOC).

hadifarnoud commented 5 years ago

I didn't realize how hard it is.

ilkarataev commented 4 years ago

What you mean LOC- line of code?

alexanderkjeldaas commented 4 years ago

The digital ocean autoscaler implementation looks like its less than 500 loc, mostly boilerplate.

MaciekPytel commented 4 years ago

Yeah, DO is much simpler than all previously existing implementations. A lot of complexity comes from supporting scale-from-0 and optimizing for very large clusters (thousands of nodes in multiple nodepools), but if you don't care about this and just want basic support, DO is by far the best example to follow.

Fgruntjes commented 4 years ago

We started an implementation for the Hetzner Cloud in #3640

hadifarnoud commented 3 years ago

I cannot contain my excitement. can't wait

ErwinSteffens commented 3 years ago

Hi there, is this something the should work at the moment? We are trying it out but without any luck yet.

Running the master version on a 1.20 cluster results in this error. I will check what was changed there. Is it possible to get a 1.20 compatible version somehow? I see it is not in the 1.20 release branch.

I0412 14:42:51.479800       1 reflector.go:255] Listing and watching *v1beta1.CSIStorageCapacity from k8s.io/client-go/informers/factory.go:134
E0412 14:42:51.483618       1 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1beta1.CSIStorageCapacity: failed to list *v1beta1.CSIStorageCapacity: csistoragecapacities.storage.k8s.io is forbidden: User "system:serviceaccount:kube-system:cluster-autoscaler-hetzner-cluster-autoscaler" cannot list resource "csistoragecapacities" in API group "storage.k8s.io" at the cluster scope