syself / cluster-api-provider-hetzner

Cluster API Provider Hetzner :rocket: The best way to manage Kubernetes clusters on Hetzner, fully declarative, Kubernetes-native and with self-healing capabilities
https://caph.syself.com
Apache License 2.0
693 stars 61 forks source link
bare-metal cloud-native cluster-api cluster-api-provider-hetzner devops go hcloud hetzner high-availability k8s k8s-provider-hetzner k8s-sig-cluster-api k8s-sig-cluster-lifecycle kubernetes linux operator

Kubernetes Cluster API Provider Hetzner


Quickstart | Docs | Cluster API Book

⭐ Consider leaving a star β€” it motivates us a lot! ⭐


GitHub release GoDoc Go Report Card CII Best Practices License Latest quay.io image tags


Table of Contents

πŸ“° What is the Cluster API Provider Hetzner?

[!NOTE] The Cluster API Provider Hetzner is independently maintained by Syself and the community. It is not an official Hetzner project.

If you have any questions about this project, please start a conversation in the Discussions tab or contact us at contact@syself.com.

The Cluster API Provider Hetzner (CAPH) provides a way to declaratively create and manage infrastructure on Hetzner, in a Kubernetes-native way. It extends the Kubernetes API with Custom Resource Definitions (CRDs) allowing you to interact with clusters in the same fashion you interact with workload.

Key benefits include:

CAPH enables you to have DIY Kubernetes on Hetzner at any scale, with full control over your infrastructure and clusters configuration.

If you want a batteries-included solution instead, you can try Syself free for 14 days.

πŸ“– Documentation

Documentation can be found at caph.syself.com. You can contribute to it by modifying the contents of the /docs directory.

πŸš€ Getting Started

The best way to get started with CAPH is to spin up a cluster. For that you can follow our Managing Kubernetes on Hetzner with Cluster API article featured in the Hetzner Community Tutorials.

Additional resources from the documentation:

In addition to the pure creation and operation of Kubernetes clusters, this provider can also validate and approve certificate signing requests. This increases security as the kubelets of the nodes can be operated with signed certificates, and enables the metrics-server to run securely. Click here to read more about the CSR controller.

πŸ–‡οΈ Compatibility with Cluster API and Kubernetes Versions

This provider's versions are compatible with the following versions of Cluster API:

CAPI v1beta1 (v1.7.x) CAPI v1beta1 (v1.8.x)
Hetzner Provider v1.0.0-beta.34-43 βœ… ❌
Hetzner Provider v1.0.0 βœ… βœ…

This provider's versions can install and manage the following versions of Kubernetes:

Hetzner Provider v1.0.x
Kubernetes 1.28.x βœ…
Kubernetes 1.29.x βœ…
Kubernetes 1.30.x βœ…

Test status:

Each version of Cluster API for Hetzner will attempt to support at least two Kubernetes versions.

NOTE: As the versioning for this project is tied to the versioning of Cluster API, future modifications to this policy may be made to more closely align with other providers in the Cluster API ecosystem.

πŸ’Ώ Operating System Images

Cluster API Provider Hetzner relies on a few prerequisites that must be already installed in the operating system images, such as a container runtime, kubelet, and kubeadm.

Reference images are available in kubernetes-sigs/image-builder and templates/node-image.

If it's not possible to pre-install these prerequisites, custom scripts can be deployed through the kubeadm config.

In case you want a solution with managed node images, Syself might be interesting for you.

🀝 Getting Involved and Contributing

We, the maintainers and the community, welcome any contributions to Cluster API Provider Hetzner. Feel free to contact the maintainers for suggestions, contributions and help.

To set up your environment, refer to the development guide.

For new contributors, check out issues tagged as good first issue. These are typically smaller in scope and great for getting familiar with the codebase.

We encourage all active community members to act as if they were maintainers, even without "official" write permissions. This is a collaborative effort serving the Kubernetes community.

If you have an active interest and you want to get involved, you have real power! Don't assume that the only people who can get things done around here are the "maintainers".

We would also love to add more "official" maintainers, so show us what you can do!

βš–οΈ Code of Conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

:shipit: GitHub Issues

πŸ› Bugs

If you think you have found a bug, please follow these steps:

🌟 Tracking New Features

We also use the issue tracker to track features. If you have an idea for a feature or think that you can help Cluster API Provider Hetzner become even more awesome, then follow these steps:

πŸ’¬ Contact

For more information about Syself, our platform, or any generall information about the Cluster API Provider Hetzner, feel free to reach out to us. Below are some ways to contact our team:

Kubernetes Cluster API Provider Hetzner