uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
96
pkgs/applications/networking/cluster/kubernetes/default.nix
Normal file
96
pkgs/applications/networking/cluster/kubernetes/default.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, which
|
||||
, go
|
||||
, makeWrapper
|
||||
, rsync
|
||||
, installShellFiles
|
||||
, kubectl
|
||||
, nixosTests
|
||||
|
||||
, components ? [
|
||||
"cmd/kubelet"
|
||||
"cmd/kube-apiserver"
|
||||
"cmd/kube-controller-manager"
|
||||
"cmd/kube-proxy"
|
||||
"cmd/kube-scheduler"
|
||||
"test/e2e/e2e.test"
|
||||
]
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kubernetes";
|
||||
version = "1.23.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-YHlcopB47HVLO/4QI8HxjMBzCpcHVnlAz3EOmZI+EG8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper which go rsync installShellFiles ];
|
||||
|
||||
outputs = [ "out" "man" "pause" ];
|
||||
|
||||
patches = [ ./fixup-addonmanager-lib-path.patch ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}"
|
||||
patchShebangs ./hack
|
||||
'';
|
||||
|
||||
WHAT = lib.concatStringsSep " " ([
|
||||
"cmd/kubeadm"
|
||||
] ++ components);
|
||||
|
||||
postBuild = ''
|
||||
./hack/update-generated-docs.sh
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
for p in $WHAT; do
|
||||
install -D _output/local/go/bin/''${p##*/} -t $out/bin
|
||||
done
|
||||
|
||||
cc build/pause/linux/pause.c -o pause
|
||||
install -D pause -t $pause/bin
|
||||
|
||||
rm docs/man/man1/kubectl*
|
||||
installManPage docs/man/man1/*.[1-9]
|
||||
|
||||
ln -s ${kubectl}/bin/kubectl $out/bin/kubectl
|
||||
|
||||
# Unfortunately, kube-addons-main.sh only looks for the lib file in either the
|
||||
# current working dir or in /opt. We have to patch this for now.
|
||||
substitute cluster/addons/addon-manager/kube-addons-main.sh $out/bin/kube-addons \
|
||||
--subst-var out
|
||||
|
||||
chmod +x $out/bin/kube-addons
|
||||
patchShebangs $out/bin/kube-addons
|
||||
wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
|
||||
|
||||
cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
|
||||
|
||||
installShellCompletion --cmd kubeadm \
|
||||
--bash <($out/bin/kubeadm completion bash) \
|
||||
--zsh <($out/bin/kubeadm completion zsh)
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
disallowedReferences = [ go ];
|
||||
|
||||
GOFLAGS = [ "-trimpath" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Production-Grade Container Scheduling and Management";
|
||||
license = licenses.asl20;
|
||||
homepage = "https://kubernetes.io";
|
||||
maintainers = with maintainers; [ ] ++ teams.kubernetes.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
passthru.tests = nixosTests.kubernetes;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
diff --git a/cluster/addons/addon-manager/kube-addons-main.sh b/cluster/addons/addon-manager/kube-addons-main.sh
|
||||
index 849973470d1..e4fef30eaea 100755
|
||||
--- a/cluster/addons/addon-manager/kube-addons-main.sh
|
||||
+++ b/cluster/addons/addon-manager/kube-addons-main.sh
|
||||
@@ -17,17 +17,7 @@
|
||||
# Import required functions. The addon manager is installed to /opt in
|
||||
# production use (see the Dockerfile)
|
||||
# Disabling shellcheck following files as the full path would be required.
|
||||
-if [ -f "kube-addons.sh" ]; then
|
||||
- # shellcheck disable=SC1091
|
||||
- source "kube-addons.sh"
|
||||
-elif [ -f "/opt/kube-addons.sh" ]; then
|
||||
- # shellcheck disable=SC1091
|
||||
- source "/opt/kube-addons.sh"
|
||||
-else
|
||||
- # If the required source is missing, we have to fail.
|
||||
- log ERR "== Could not find kube-addons.sh (not in working directory or /opt) at $(date -Is) =="
|
||||
- exit 1
|
||||
-fi
|
||||
+source "@out@/bin/kube-addons-lib.sh"
|
||||
|
||||
# The business logic for whether a given object should be created
|
||||
# was already enforced by salt, and /etc/kubernetes/addons is the
|
||||
38
pkgs/applications/networking/cluster/kubernetes/kubectl.nix
Normal file
38
pkgs/applications/networking/cluster/kubernetes/kubectl.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ lib, stdenv, kubernetes }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kubectl";
|
||||
|
||||
inherit (kubernetes)
|
||||
disallowedReferences
|
||||
GOFLAGS
|
||||
nativeBuildInputs
|
||||
postBuild
|
||||
postPatch
|
||||
src
|
||||
version
|
||||
;
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
WHAT = "cmd/kubectl";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -D _output/local/go/bin/kubectl -t $out/bin
|
||||
|
||||
installManPage docs/man/man1/kubectl*
|
||||
|
||||
installShellCompletion --cmd kubectl \
|
||||
--bash <($out/bin/kubectl completion bash) \
|
||||
--fish <($out/bin/kubectl completion fish) \
|
||||
--zsh <($out/bin/kubectl completion zsh)
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = kubernetes.meta // {
|
||||
description = "Kubernetes CLI";
|
||||
homepage = "https://github.com/kubernetes/kubectl";
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue