Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alessiodionisi/packer-hcloud-kubernetes

Kubernetes image for Hetzner Cloud, can be used with Kubernetes Cluster API
https://github.com/alessiodionisi/packer-hcloud-kubernetes

cluster-api containerd hcloud hetzner kubernetes packer

Last synced: about 2 months ago
JSON representation

Kubernetes image for Hetzner Cloud, can be used with Kubernetes Cluster API

Awesome Lists containing this project

README

        

# Kubernetes image for Hetzner Cloud

This [Packer](https://www.packer.io) project creates an image to spin up [Kubernetes](https://kubernetes.io) clusters with [kubeadm](https://kubernetes.io/docs/reference/setup-tools/kubeadm) or [Kubernetes Cluster API](https://cluster-api.sigs.k8s.io) on [Hetzner Cloud](https://www.hetzner.com/cloud).

## Features

- All requirements to setup a Kubernetes cluster with `kubeadm`
- [containerd](https://containerd.io) as container runtime
- AMD64 and ARM64 support
- IPv4/IPv6 dual-stack networking support
- Integrity of downloaded files verified with `sha256sum`
- Images used by `kubeadm` pulled as building step

## Getting started

Set `HCLOUD_TOKEN` environment variable or `token` variable and run `packer build`, for example:

```shell
export HCLOUD_TOKEN=xxxx
packer build .
```

To build an ARM64 image, set `server_type` variable to `cax11`:

```shell
export HCLOUD_TOKEN=xxxx
packer build -var server_type=cax11 .
```

## Variables

| Name | Description | Default |
| ------------------------------------ | ---------------------------------------------- | ----------------------------------- |
| `cni_plugins_version` | cni plugins version | `1.4.0` |
| `containerd_sandbox_image` | containerd sandbox image, should match k8s one | `registry.k8s.io/pause:3.9` |
| `containerd_version` | containerd version | `1.7.13` |
| `crictl_version` | crictl version | `1.29.0` |
| `image` | Hetzner Cloud base image | `debian-12` |
| `kubernetes_release_tooling_version` | kubernetes release tooling version | `0.16.5` |
| `kubernetes_version` | kubernetes version | `1.29.2` |
| `location` | Hetzner Cloud location | `nbg1` |
| `runc_version` | runc version | `1.1.12` |
| `server_type` | Hetzner Cloud server type | `cpx11` |
| `token` | Hetzner Cloud token to access APIs | `HCLOUD_TOKEN` environment variable |