From d629ca54b21f580ec6b6b2c9974b6a048698e08f Mon Sep 17 00:00:00 2001 From: Demitri Tzitzon Date: Thu, 27 Apr 2023 12:24:37 -0700 Subject: [PATCH] k3s: symlinks for kubectl crictl & ctr --- nixos/tests/k3s/single-node.nix | 14 +++++++------- .../networking/cluster/k3s/1_24/default.nix | 3 +++ .../networking/cluster/k3s/1_25/default.nix | 3 +++ .../networking/cluster/k3s/builder.nix | 7 +++++++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/nixos/tests/k3s/single-node.nix b/nixos/tests/k3s/single-node.nix index d61595d889e..e059603b9c9 100644 --- a/nixos/tests/k3s/single-node.nix +++ b/nixos/tests/k3s/single-node.nix @@ -62,20 +62,20 @@ import ../make-test-python.nix ({ pkgs, lib, k3s, ... }: start_all() machine.wait_for_unit("k3s") - machine.succeed("k3s kubectl cluster-info") - machine.fail("sudo -u noprivs k3s kubectl cluster-info") + machine.succeed("kubectl cluster-info") + machine.fail("sudo -u noprivs kubectl cluster-info") '' # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)" + lib.optionalString (!pkgs.stdenv.isAarch64) ''machine.succeed("k3s check-config")'' + '' machine.succeed( - "${pauseImage} | k3s ctr image import -" + "${pauseImage} | ctr image import -" ) # Also wait for our service account to show up; it takes a sec - machine.wait_until_succeeds("k3s kubectl get serviceaccount default") - machine.succeed("k3s kubectl apply -f ${testPodYaml}") - machine.succeed("k3s kubectl wait --for 'condition=Ready' pod/test") - machine.succeed("k3s kubectl delete -f ${testPodYaml}") + machine.wait_until_succeeds("kubectl get serviceaccount default") + machine.succeed("kubectl apply -f ${testPodYaml}") + machine.succeed("kubectl wait --for 'condition=Ready' pod/test") + machine.succeed("kubectl delete -f ${testPodYaml}") # regression test for #176445 machine.fail("journalctl -o cat -u k3s.service | grep 'ipset utility not found'") diff --git a/pkgs/applications/networking/cluster/k3s/1_24/default.nix b/pkgs/applications/networking/cluster/k3s/1_24/default.nix index 8ead6e5fc82..6f7644dd543 100644 --- a/pkgs/applications/networking/cluster/k3s/1_24/default.nix +++ b/pkgs/applications/networking/cluster/k3s/1_24/default.nix @@ -313,6 +313,9 @@ buildGoModule rec { wrapProgram $out/bin/k3s \ --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \ --prefix PATH : "$out/bin" + ln -s $out/bin/k3s $out/bin/kubectl + ln -s $out/bin/k3s $out/bin/crictl + ln -s $out/bin/k3s $out/bin/ctr ''; doInstallCheck = true; diff --git a/pkgs/applications/networking/cluster/k3s/1_25/default.nix b/pkgs/applications/networking/cluster/k3s/1_25/default.nix index 25234f1d442..47c3b5886c5 100644 --- a/pkgs/applications/networking/cluster/k3s/1_25/default.nix +++ b/pkgs/applications/networking/cluster/k3s/1_25/default.nix @@ -317,6 +317,9 @@ buildGoModule rec { wrapProgram $out/bin/k3s \ --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \ --prefix PATH : "$out/bin" + ln -s $out/bin/k3s $out/bin/kubectl + ln -s $out/bin/k3s $out/bin/crictl + ln -s $out/bin/k3s $out/bin/ctr ''; doInstallCheck = true; diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index fc75ab41bda..9605ff9f947 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -84,6 +84,10 @@ let homepage = "https://k3s.io"; maintainers = with maintainers; [ euank mic92 yajo ]; platforms = platforms.linux; + + # resolves collisions with other installations of kubectl, crictl, ctr + # prefer non-k3s versions + priority = 5; }; # https://github.com/k3s-io/k3s/blob/5fb370e53e0014dc96183b8ecb2c25a61e891e76/scripts/build#L19-L40 @@ -325,6 +329,9 @@ buildGoModule rec { wrapProgram $out/bin/k3s \ --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \ --prefix PATH : "$out/bin" + ln -s $out/bin/k3s $out/bin/kubectl + ln -s $out/bin/k3s $out/bin/crictl + ln -s $out/bin/k3s $out/bin/ctr ''; doInstallCheck = true;