mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-18 07:46:09 +01:00
Merge pull request #19766 from offlinehacker/pkgs/kubernetes/update/1.4.0
kubernetes: 1.2.4 -> 1.4.0
This commit is contained in:
commit
e7f3c9cadb
1 changed files with 40 additions and 26 deletions
|
@ -1,55 +1,69 @@
|
|||
{ stdenv, fetchFromGitHub, which, go, makeWrapper, iptables, rsync, utillinux, coreutils, e2fsprogs, procps-ng }:
|
||||
{ stdenv, lib, fetchFromGitHub, which, go, go-bindata, makeWrapper, rsync
|
||||
, iptables, coreutils
|
||||
, components ? [
|
||||
"cmd/kubectl"
|
||||
"cmd/kubelet"
|
||||
"cmd/kube-apiserver"
|
||||
"cmd/kube-controller-manager"
|
||||
"cmd/kube-proxy"
|
||||
"plugin/cmd/kube-scheduler"
|
||||
"cmd/kube-dns"
|
||||
"federation/cmd/federation-apiserver"
|
||||
"federation/cmd/federation-controller-manager"
|
||||
]
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kubernetes-${version}";
|
||||
version = "1.2.4";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "1a3y0f1l008ywkwwygg9vn2rb722c54i3pbgqks38gw1yyvgbiih";
|
||||
sha256 = "0q7xwdjsmfrz7pnmylkbkr2yxsl2gzzy17aapfznl2hb1ms81kys";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper which go iptables rsync ];
|
||||
buildInputs = [ makeWrapper which go rsync go-bindata ];
|
||||
|
||||
buildPhase = ''
|
||||
GOPATH=$(pwd):$(pwd)/Godeps/_workspace
|
||||
mkdir -p $(pwd)/Godeps/_workspace/src/k8s.io
|
||||
ln -s $(pwd) $(pwd)/Godeps/_workspace/src/k8s.io/kubernetes
|
||||
outputs = ["out" "man""pause"];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace "hack/lib/golang.sh" --replace "_cgo" ""
|
||||
patchShebangs ./hack
|
||||
hack/build-go.sh --use_go_build
|
||||
|
||||
(cd cluster/addons/dns/kube2sky && go build ./kube2sky.go)
|
||||
'';
|
||||
|
||||
WHAT="--use_go_build ${concatStringsSep " " components}";
|
||||
|
||||
postBuild = "(cd build/pause && gcc pause.c -o pause)";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/bin" "$out"/libexec/kubernetes/cluster
|
||||
cp _output/local/go/bin/{kube*,hyperkube} "$out/bin/"
|
||||
cp cluster/addons/dns/kube2sky/kube2sky "$out/bin/"
|
||||
cp cluster/saltbase/salt/helpers/safe_format_and_mount "$out/libexec/kubernetes"
|
||||
cp -R hack "$out/libexec/kubernetes"
|
||||
cp cluster/update-storage-objects.sh "$out/libexec/kubernetes/cluster"
|
||||
makeWrapper "$out"/libexec/kubernetes/cluster/update-storage-objects.sh "$out"/bin/kube-update-storage-objects \
|
||||
--prefix KUBE_BIN : "$out/bin"
|
||||
mkdir -p "$out/bin" "$man/share/man" "$pause/bin"
|
||||
|
||||
cp _output/local/go/bin/* "$out/bin/"
|
||||
cp build/pause/pause "$pause/bin/pause"
|
||||
cp -R docs/man/man1 "$man/share/man"
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram "$out/bin/kube-proxy" --prefix PATH : "${iptables}/bin"
|
||||
wrapProgram "$out/bin/kubelet" --prefix PATH : "${stdenv.lib.makeBinPath [ utillinux procps-ng ]}"
|
||||
chmod +x "$out/libexec/kubernetes/safe_format_and_mount"
|
||||
wrapProgram "$out/libexec/kubernetes/safe_format_and_mount" --prefix PATH : "${stdenv.lib.makeBinPath [ e2fsprogs utillinux ]}"
|
||||
substituteInPlace "$out"/libexec/kubernetes/cluster/update-storage-objects.sh \
|
||||
--replace KUBE_OUTPUT_HOSTBIN KUBE_BIN
|
||||
wrapProgram "$out/bin/kubelet" --prefix PATH : "${coreutils}/bin"
|
||||
|
||||
# Remove references to go compiler
|
||||
while read file; do
|
||||
cat $file | sed "s,${go},$(echo "${go}" | sed "s,$NIX_STORE/[^-]*,$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,"),g" > $file.tmp
|
||||
mv $file.tmp $file
|
||||
chmod +x $file
|
||||
done < <(find $out/bin $pause/bin -type f 2>/dev/null)
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = {
|
||||
description = "Production-Grade Container Scheduling and Management";
|
||||
license = licenses.asl20;
|
||||
homepage = http://kubernetes.io;
|
||||
maintainers = with maintainers; [offline];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue