git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #140286 from superherointj/package-linkerd-updateScript
commitfcadfea45c538f370394c0d36aa1e234fc79b8a9 authorSandro <sandro.jaeckel@gmail.com> dateSun 3 Oct 2021, 16:46 (5 years ago) parent6229ad1f6e0602
6 files changed+148−74
pkgs/applications/networking/cluster/linkerd/default.nix+8−71 pkgs/applications/networking/cluster/linkerd/edge.nix+8 pkgs/applications/networking/cluster/linkerd/generic.nix+59 pkgs/applications/networking/cluster/linkerd/update-edge.sh+35 pkgs/applications/networking/cluster/linkerd/update-stable.sh+35 pkgs/top-level/all-packages.nix+3−3
pkgs/applications/networking/cluster/linkerd/default.nix+8−71
@@ -1,71 +1,8 @@
1−{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
2−
3−let generic = { channel, version, sha256, vendorSha256 }:
4− buildGoModule rec {
5− pname = "linkerd-${channel}";
6− inherit version vendorSha256;
7−
8− src = fetchFromGitHub {
9− owner = "linkerd";
10− repo = "linkerd2";
11− rev = "${channel}-${version}";
12− inherit sha256;
13− };
14−
15− subPackages = [ "cli" ];
16− runVend = true;
17−
18− preBuild = ''
19− env GOFLAGS="" go generate ./pkg/charts/static
20− env GOFLAGS="" go generate ./jaeger/static
21− env GOFLAGS="" go generate ./multicluster/static
22− env GOFLAGS="" go generate ./viz/static
23− '';
24−
25− tags = [
26− "prod"
27− ];
28−
29− ldflags = [
30− "-s" "-w"
31− "-X github.com/linkerd/linkerd2/pkg/version.Version=${src.rev}"
32− ];
33−
34− nativeBuildInputs = [ installShellFiles ];
35−
36− postInstall = ''
37− mv $out/bin/cli $out/bin/linkerd
38− installShellCompletion --cmd linkerd \
39− --bash <($out/bin/linkerd completion bash) \
40− --zsh <($out/bin/linkerd completion zsh) \
41− --fish <($out/bin/linkerd completion fish)
42− '';
43−
44− doInstallCheck = true;
45− installCheckPhase = ''
46− $out/bin/linkerd version --client | grep ${src.rev} > /dev/null
47− '';
48−
49− meta = with lib; {
50− description = "A simple Kubernetes service mesh that improves security, observability and reliability";
51− downloadPage = "https://github.com/linkerd/linkerd2/";
52− homepage = "https://linkerd.io/";
53− license = licenses.asl20;
54− maintainers = with maintainers; [ Gonzih bryanasdev000 superherointj ];
55− };
56− };
57−in
58− {
59− stable = generic {
60− channel = "stable";
61− version = "2.10.2";
62− sha256 = "sha256-dOD0S4FJ2lXE+1VZooi8tKvC8ndGEHAxmAvSqoWI/m0=";
63− vendorSha256 = "sha256-Qb0FZOvKL9GgncfUl538PynkYbm3V8Q6lUpApUoIp5s=";
64− };
65− edge = generic {
66− channel = "edge";
67− version = "21.9.3";
68− sha256 = "0swqx4myvr24visj39icg8g90kj325pvf22bq447rnm0whq3cnyz";
69− vendorSha256 = "sha256-fMtAR66TwMNR/HCVQ9Jg3sJ0XBx2jUKDG7/ts0lEZM4=";
70− };
71− }
1+{ callPackage }:
2+
3+(callPackage ./generic.nix { }) {
4+ channel = "stable";
5+ version = "2.10.2";
6+ sha256 = "sha256-dOD0S4FJ2lXE+1VZooi8tKvC8ndGEHAxmAvSqoWI/m0=";
7+ vendorSha256 = "sha256-Qb0FZOvKL9GgncfUl538PynkYbm3V8Q6lUpApUoIp5s=";
8+}
pkgs/applications/networking/cluster/linkerd/edge.nixnew file+8
@@ -0,0 +1,8 @@
1+{ callPackage }:
2+
3+(callPackage ./generic.nix { }) {
4+ channel = "edge";
5+ version = "21.9.3";
6+ sha256 = "0swqx4myvr24visj39icg8g90kj325pvf22bq447rnm0whq3cnyz";
7+ vendorSha256 = "sha256-fMtAR66TwMNR/HCVQ9Jg3sJ0XBx2jUKDG7/ts0lEZM4=";
8+}
pkgs/applications/networking/cluster/linkerd/generic.nixnew file+59
@@ -0,0 +1,59 @@
1+{ lib, fetchFromGitHub, buildGoModule, installShellFiles }:
2+
3+{ channel, version, sha256, vendorSha256 }:
4+
5+buildGoModule rec {
6+ pname = "linkerd-${channel}";
7+ inherit version vendorSha256;
8+
9+ src = fetchFromGitHub {
10+ owner = "linkerd";
11+ repo = "linkerd2";
12+ rev = "${channel}-${version}";
13+ inherit sha256;
14+ };
15+
16+ subPackages = [ "cli" ];
17+ runVend = true;
18+
19+ preBuild = ''
20+ env GOFLAGS="" go generate ./pkg/charts/static
21+ env GOFLAGS="" go generate ./jaeger/static
22+ env GOFLAGS="" go generate ./multicluster/static
23+ env GOFLAGS="" go generate ./viz/static
24+ '';
25+
26+ tags = [
27+ "prod"
28+ ];
29+
30+ ldflags = [
31+ "-s" "-w"
32+ "-X github.com/linkerd/linkerd2/pkg/version.Version=${src.rev}"
33+ ];
34+
35+ nativeBuildInputs = [ installShellFiles ];
36+
37+ postInstall = ''
38+ mv $out/bin/cli $out/bin/linkerd
39+ installShellCompletion --cmd linkerd \
40+ --bash <($out/bin/linkerd completion bash) \
41+ --zsh <($out/bin/linkerd completion zsh) \
42+ --fish <($out/bin/linkerd completion fish)
43+ '';
44+
45+ doInstallCheck = true;
46+ installCheckPhase = ''
47+ $out/bin/linkerd version --client | grep ${src.rev} > /dev/null
48+ '';
49+
50+ passthru.updateScript = (./. + "/update-${channel}.sh");
51+
52+ meta = with lib; {
53+ description = "A simple Kubernetes service mesh that improves security, observability and reliability";
54+ downloadPage = "https://github.com/linkerd/linkerd2/";
55+ homepage = "https://linkerd.io/";
56+ license = licenses.asl20;
57+ maintainers = with maintainers; [ Gonzih bryanasdev000 superherointj ];
58+ };
59+}
pkgs/applications/networking/cluster/linkerd/update-edge.shnew file+35
@@ -0,0 +1,35 @@
1+#!/usr/bin/env nix-shell
2+#!nix-shell -i bash -p curl gnugrep gnused jq
3+
4+set -eu -o pipefail
5+
6+cd $(dirname "$0")
7+
8+TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
9+ --silent https://api.github.com/repos/linkerd/linkerd2/releases | \
10+ jq 'map(.tag_name)' | grep edge | sed 's/["|,| ]//g' | sort -r | head -n1)
11+
12+VERSION=$(echo ${TAG} | sed 's/^edge-//')
13+
14+SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linkerd/linkerd2/archive/refs/tags/${TAG}.tar.gz)
15+
16+setKV () {
17+ sed -i "s|$1 = \".*\"|$1 = \"$2\"|" ./edge.nix
18+}
19+
20+setKV version ${VERSION}
21+setKV sha256 ${SHA256}
22+setKV vendorSha256 "" # Necessary to force clean build.
23+
24+cd ../../../../../
25+set +e
26+VENDOR_SHA256=$(nix-build --no-out-link -A linkerd_edge 2>&1 | grep "got:" | cut -d':' -f2 | sed 's| ||g')
27+set -e
28+
29+if [ -n "${VENDOR_SHA256:-}" ]; then
30+ cd - > /dev/null
31+ setKV vendorSha256 ${VENDOR_SHA256}
32+else
33+ echo "Update failed. VENDOR_SHA256 is empty."
34+ exit 1
35+fi
pkgs/applications/networking/cluster/linkerd/update-stable.shnew file+35
@@ -0,0 +1,35 @@
1+#!/usr/bin/env nix-shell
2+#!nix-shell -i bash -p curl gnugrep gnused jq
3+
4+set -eu -o pipefail
5+
6+cd $(dirname "$0")
7+
8+TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} \
9+ --silent https://api.github.com/repos/linkerd/linkerd2/releases/latest | \
10+ jq -r '.tag_name')
11+
12+VERSION=$(echo ${TAG} | sed 's/^stable-//')
13+
14+SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/linkerd/linkerd2/archive/refs/tags/${TAG}.tar.gz)
15+
16+setKV () {
17+ sed -i "s|$1 = \".*\"|$1 = \"$2\"|" ./default.nix
18+}
19+
20+setKV version ${VERSION}
21+setKV sha256 ${SHA256}
22+setKV vendorSha256 "" # Necessary to force clean build.
23+
24+cd ../../../../../
25+set +e
26+VENDOR_SHA256=$(nix-build --no-out-link -A linkerd 2>&1 | grep "got:" | cut -d':' -f2 | sed 's| ||g')
27+set -e
28+
29+if [ -n "${VENDOR_SHA256:-}" ]; then
30+ cd - > /dev/null
31+ setKV vendorSha256 ${VENDOR_SHA256}
32+else
33+ echo "Update failed. VENDOR_SHA256 is empty."
34+ exit 1
35+fi
pkgs/top-level/all-packages.nix+3−3
@@ -25651,9 +25651,9 @@ with pkgs;
2565125651
2565225652 fluxcd = callPackage ../applications/networking/cluster/fluxcd { };
2565325653
25654− linkerd_edge = (callPackage ../applications/networking/cluster/linkerd { }).edge;
25655− linkerd_stable = (callPackage ../applications/networking/cluster/linkerd { }).stable;
25656− linkerd = linkerd_stable;
25654+ linkerd = callPackage ../applications/networking/cluster/linkerd { };
25655+ linkerd_edge = callPackage ../applications/networking/cluster/linkerd/edge.nix { };
25656+ linkerd_stable = linkerd;
2565725657
2565825658 kile-wl = callPackage ../applications/misc/kile-wl { };
2565925659