Skip to content

Repository files navigation

kubepkgs

CI NixOS License: MIT

Warning

This project is a work in progress. Expect breaking changes.

Nix flake exposing versioned Kubernetes package sets. Each Kubernetes minor version ships a package set containing core binaries and selected SIG projects, all built reproducibly with gomod2nix.

Supported versions

Kubernetes cluster-api kube-state-metrics metrics-server external-dns
1.36 (latest) 1.10 2.14 0.7 0.15
1.35 1.9 2.14 0.7 0.15
1.34 1.9 2.13 0.7 0.15
1.33 1.8 2.13 0.7 0.14
Exact patch versions are pinned in versions.json (the table above shows only major/minor).

Usage

Add the flake to your inputs:

inputs.kubepkgs.url = "github:unmango/kubepkgs";

Then reference packages via legacyPackages:

# Latest Kubernetes version
kubepkgs.legacyPackages.x86_64-linux.kubernetes.latest.kubectl

# Specific minor version
kubepkgs.legacyPackages.x86_64-linux.kubernetes."1.36".kubectl
kubepkgs.legacyPackages.x86_64-linux.kubernetes."1.33".sigs.cluster-api

Available core packages

kubectl, kubeadm, kubelet, kube-apiserver, kube-controller-manager, kube-scheduler, kube-proxy

Available SIG packages

sigs.cluster-api, sigs.kube-state-metrics, sigs.metrics-server, sigs.external-dns

Development

make build                              # build default package (latest kube-apiserver)
make check                              # nix flake check
make fmt                                # format with nixfmt
make update                             # update flake inputs
make update-gomod2nix PKG=core-1.36    # regenerate gomod2nix.toml for one package
make update-all-gomod2nix              # regenerate all gomod2nix.toml files

direnv + use flake provides the dev shell automatically.

About

Nix packaged Kubernetes components and utilities

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages