kube3d: 5.3.0 -> 5.4.1

Updated github location after the move
Fall back on default k3sVersion in the code
Added some validation to the k3sVersion that can be overriden
Enabled tests
Added mainProgram to meta
This commit is contained in:
06kellyjac 2022-04-06 20:31:33 +01:00
parent a64987375f
commit 2d7bf4c4db

View file

@ -1,16 +1,28 @@
{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.22.2-k3s2" }: { lib
, buildGoModule
, fetchFromGitHub
, installShellFiles
, k3sVersion ? null
}:
let
hasVPrefix = ver: (builtins.elemAt (lib.stringToCharacters ver) 0) == "v";
k3sVersionSet =
if k3sVersion != null then
if hasVPrefix k3sVersion then throw "k3sVersion should not have a v prefix" else true
else
false;
in
buildGoModule rec { buildGoModule rec {
pname = "kube3d"; pname = "kube3d";
version = "5.3.0"; version = "5.4.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rancher"; owner = "k3d-io";
repo = "k3d"; repo = "k3d";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-ZuUjk1wb7iRZX+OpjLJHp1T0WYNjCHU6DpYF4V/heVc="; sha256 = "sha256-DVQrD4JMei9yRFzuiVb6AcydEupNSlpgYLfGWWRiaao=";
}; };
vendorSha256 = null; vendorSha256 = null;
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
@ -18,10 +30,14 @@ buildGoModule rec {
excludedPackages = [ "tools" "docgen" ]; excludedPackages = [ "tools" "docgen" ];
ldflags = ldflags =
let t = "github.com/rancher/k3d/v5/version"; in let t = "github.com/k3d-io/k3d/v5/version"; in
[ "-s" "-w" "-X ${t}.Version=v${version}" "-X ${t}.K3sVersion=v${k3sVersion}" ]; [ "-s" "-w" "-X ${t}.Version=v${version}" ] ++ lib.optionals k3sVersionSet [ "-X ${t}.K3sVersion=v${k3sVersion}" ];
doCheck = false; preCheck = ''
# skip test that uses networking
substituteInPlace version/version_test.go \
--replace "TestGetK3sVersion" "SkipGetK3sVersion"
'';
postInstall = '' postInstall = ''
installShellCompletion --cmd k3d \ installShellCompletion --cmd k3d \
@ -34,13 +50,13 @@ buildGoModule rec {
installCheckPhase = '' installCheckPhase = ''
runHook preInstallCheck runHook preInstallCheck
$out/bin/k3d --help $out/bin/k3d --help
$out/bin/k3d --version | grep -e "k3d version v${version}" -e "k3s version v${k3sVersion}" $out/bin/k3d --version | grep -e "k3d version v${version}" ${lib.optionalString k3sVersionSet "-e \"k3s version v${k3sVersion}\""}
runHook postInstallCheck runHook postInstallCheck
''; '';
meta = with lib; { meta = with lib; {
homepage = "https://github.com/rancher/k3d"; homepage = "https://github.com/k3d-io/k3d/";
changelog = "https://github.com/rancher/k3d/blob/v${version}/CHANGELOG.md"; changelog = "https://github.com/k3d-io/k3d/blob/v${version}/CHANGELOG.md";
description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d"; description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d";
longDescription = '' longDescription = ''
k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
@ -51,5 +67,6 @@ buildGoModule rec {
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ricochet ]; maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ricochet ];
platforms = platforms.linux ++ platforms.darwin; platforms = platforms.linux ++ platforms.darwin;
mainProgram = "k3d";
}; };
} }