Merge pull request #19766 from offlinehacker/pkgs/kubernetes/update/1.4.0

kubernetes: 1.2.4 -> 1.4.0
This commit is contained in:
Tim Steinbach 2016-10-23 09:13:30 -04:00 committed by GitHub
commit e7f3c9cadb

View file

@ -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;
};
}