about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/cluster
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-04-09 18:28:16 +0000
committerAlyssa Ross <hi@alyssa.is>2021-04-12 18:46:15 +0000
commitfd2e737e0678ee7d8081baef05b305146a2c0034 (patch)
treeac3e9b27576a0382335532d126f9a66d486bc638 /nixpkgs/pkgs/applications/networking/cluster
parentcc207d720b6aa836e256c1ee9842bc739e630a8a (diff)
parent9e377a6ce42dccd9b624ae4ce8f978dc892ba0e2 (diff)
downloadnixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.gz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.bz2
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.lz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.xz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.zst
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.zip
Merge remote-tracking branch 'nixpkgs/nixos-unstable'
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/cluster')
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix38
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix44
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch23
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh113
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/lens/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix6
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/octant/update.sh38
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spark/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch44
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch46
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix123
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json44
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile3
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock92
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix261
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/velero/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix22
69 files changed, 1288 insertions, 381 deletions
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
index 8460322f05b1..6e5d05ff0d75 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.12.7";
+  version = "2.12.10";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-bMbfFAI4oGZc7FOlU8LczbjAq1cYmJg5WTXkQKS9vgo=";
+    sha256 = "sha256-A4s6D3/1FsqrJ+Jaql4IuyD9ySChL3SXqVvl8wUDRDE=";
   };
 
   vendorSha256 = "sha256-4XPMixVNj6PUKobNLwpsOBT7Zs/7pkhDtQacLIB5EfE=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
index c3e9a774fa90..f1c98e0ed84c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "1.8.3";
-  commit = "ef5010c3a0b5e027fd642732d03c5b0391b1e574";
+  version = "1.8.6";
+  commit = "28aea3dfdede00443b52cc584814d80e8f896200";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256-do5DAxaQ1gBdvNN/YGKAkmkFcJ+j/ojBaWPwrXXQko0=";
+    sha256 = "sha256-kJ3/1owK5T+FbcvjmK2CO+i/KwmVZRSGzF6fCt8J9E8=";
   };
 
-  vendorSha256 = "sha256-6DOay+aeXz7EQKe5SzQSmg/5KyUI0g6wzPgx/+F2RW4=";
+  vendorSha256 = "sha256-rZ/ox180h9scocheYtMmKkoHY2/jH+I++vYX8R0fdlA=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
index 728e23ff380f..dcb6b823667e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.16.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "sha256-1sak6CaqFhiBIoaa7kERXLHsgn24oMgBlOJaQDuF61E=";
+    sha256 = "sha256-D549pInoK8ispgcn8LYdix19Hp7wO6w2/d2Y1L/9Px8=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index de032cc60e99..a251886ebdd7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, fetchurl, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, fetchurl, installShellFiles }:
 
 buildGoModule rec {
   pname = "cloudfoundry-cli";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
index a45f3553b921..1d8a8228af15 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,26 +1,39 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
+
+let
+  version = "0.11.0";
+
+  manifests = fetchzip {
+    url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
+    sha256 = "sha256-nqvFJriNMK3SvAsNzhE8MCzVNR8j/TjYU+f1PbuxkuI=";
+    stripRoot = false;
+  };
+in
 
 buildGoModule rec {
+  inherit version;
+
   pname = "fluxcd";
-  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "fluxcd";
     repo = "flux2";
     rev = "v${version}";
-    sha256 = "1k7zcn8l60qfgiixkjcmp94w87w88n475mmhf58vl5pfz21p9vky";
+    sha256 = "sha256-V4cZuRlC1Hu4gBG5/8ZNBKlSBFLgOtSJ3GbpjW5/8xM=";
   };
 
-  vendorSha256 = "16yixz47zrzjkb2k4n03zfivpc2cavcrrv4fz8s5a4xzfrcp4nvx";
+  vendorSha256 = "sha256-aVVvrOjCKxzFer5uZRSu1LCQKkGkPcBdKdebN5uHUUg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  doCheck = false;
-
   subPackages = [ "cmd/flux" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
 
+  postUnpack = ''
+    cp -r ${manifests} source/cmd/flux/manifests
+  '';
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/flux --version | grep ${version} > /dev/null
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
index 4a8f42e3cc7e..1d02e675f9c4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.21.1";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "sha256-/go8V1EjY/iL3csoNpPyeWORvWCf0WnnaSOgiZ8UFQ8=";
+    sha256 = "sha256-SaDO3a50CLhgLafCdgKEfHpuHdIweSy5L/TUgEUv5CM=";
   };
 
-  vendorSha256 = "sha256-GEU0Q2Elhiel20xvup+i1DSXCjQdA9s7cWykcbKR5KA=";
+  vendorSha256 = "sha256-4uSw/9lI/rdDqy78jNC9eHYW/v/sMFb+sQvwYG6GZks=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
index 4f3dfcfc03f7..659e8ee41701 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -1,9 +1,12 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, bash
+{ lib, stdenv, fetchurl, makeWrapper, pkg-config, which, maven, cmake, jre, jdk8, bash
 , coreutils, glibc, protobuf2_5, fuse, snappy, zlib, bzip2, openssl, openssl_1_0_2
 }:
 
 let
-  common = { version, sha256, dependencies-sha256, tomcat, opensslPkg ? openssl }:
+  maven-jdk8 = maven.override {
+    jdk = jdk8;
+  };
+  common = { version, sha256, dependencies-sha256, maven, tomcat, opensslPkg ? openssl }:
     let
       # compile the hadoop tarball from sources, it requires some patches
       binary-distributon = stdenv.mkDerivation rec {
@@ -131,6 +134,7 @@ in {
     dependencies-sha256 = "1lsr9nvrynzspxqcamb10d596zlnmnfpxhkd884gdiva0frm0b1r";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_2_8 = common {
     version = "2.8.4";
@@ -138,6 +142,7 @@ in {
     dependencies-sha256 = "1j4f461487fydgr5978nnm245ksv4xbvskfr8pbmfhcyss6b7w03";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_2_9 = common {
     version = "2.9.1";
@@ -145,17 +150,20 @@ in {
     dependencies-sha256 = "1d5i8jj5y746rrqb9lscycnd7acmxlkz64ydsiyqsh5cdqgy2x7x";
     tomcat = tomcat_6_0_48;
     opensslPkg = openssl_1_0_2;
+    maven = maven-jdk8;
   };
   hadoop_3_0 = common {
     version = "3.0.3";
     sha256 = "1vvkci0kx4b48dg0niifn2d3r4wwq8pb3c5z20wy8pqsqrqhlci5";
     dependencies-sha256 = "1kzkna9ywacm2m1cirj9cyip66bgqjhid2xf9rrhq6g10lhr8j9m";
     tomcat = null;
+    maven = maven-jdk8;
   };
   hadoop_3_1 = common {
     version = "3.1.1";
     sha256 = "04hhdbyd4x1hy0fpy537f8mi0864hww97zap29x7dk1smrffwabd";
     dependencies-sha256 = "1q63jsxg3d31x0p8hvhpvbly2b07almyzsbhwphbczl3fhlqgiwn";
     tomcat = null;
+    maven = maven-jdk8;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
index 5da9e9220a80..501956ec9382 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.5.2";
+  version = "3.5.3";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-XFWJtzKQrZL6lcr8JNiEQ8ldG5289x5pE21E8XgoYkA=";
+    sha256 = "sha256-7xO07JDy6ujWlDF+5Xd3myRQ8ajTppCXz9fNe4yizVw=";
   };
-  vendorSha256 = "sha256-mjWQxCCtTgj1VCFjnuJWgDjwMt/r4jiFC9Of+CXRgPg=";
+  vendorSha256 = "sha256-lpEoUgABtJczwShNdvD+zYAPDFTJqILSei2YY6mQ2mw=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix
new file mode 100644
index 000000000000..edd19a25f9ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/default.nix
@@ -0,0 +1,11 @@
+{ callPackage }:
+
+{
+
+  helm-diff = callPackage ./helm-diff.nix {};
+
+  helm-s3 = callPackage ./helm-s3.nix {};
+
+  helm-secrets = callPackage ./helm-secrets.nix {};
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
new file mode 100644
index 000000000000..ce6491bfba47
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -0,0 +1,35 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "helm-diff";
+  version = "3.1.3";
+
+  src = fetchFromGitHub {
+    owner = "databus23";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-h26EOjKNrlcrs2DAYj0NmDRgNRKozjfw5DtxUgHNTa4=";
+  };
+
+  vendorSha256 = "sha256-+n/QBuZqtdgUkaBG7iqSuBfljn+AdEzDoIo5SI8ErQA=";
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  postInstall = ''
+    install -dm755 $out/${pname}
+    mv $out/bin $out/${pname}/
+    mv $out/${pname}/bin/{helm-,}diff
+    install -m644 -Dt $out/${pname} plugin.yaml
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that shows a diff";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
new file mode 100644
index 000000000000..661048a0c72c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-s3.nix
@@ -0,0 +1,38 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "helm-s3";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "hypnoglow";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-2BQ/qtoL+iFbuLvrJGUuxWFKg9u1sVDRcRm2/S0mgyc=";
+  };
+
+  vendorSha256 = "sha256-/9TiY0XdkiNxW5JYeC5WD9hqySCyYYU8lB+Ft5Vm96I=";
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  checkPhase = ''
+    make test-unit
+  '';
+
+  postInstall = ''
+    install -dm755 $out/${pname}
+    mv $out/bin $out/${pname}/
+    install -m644 -Dt $out/${pname} plugin.yaml
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that shows a diff";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
new file mode 100644
index 000000000000..bef5d230ece3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub, makeWrapper, coreutils, findutils, getopt, gnugrep, gnused, sops, vault }:
+
+stdenv.mkDerivation rec {
+  pname = "helm-secrets";
+  version = "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "jkroepke";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-EXCr0QjupsBBKTm6Opw5bcNwAD4FGGyOiqaa8L91/OI=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ getopt sops ];
+
+  # NOTE: helm-secrets is comprised of shell scripts.
+  dontBuild = true;
+
+  # NOTE: Remove the install and upgrade hooks.
+  postPatch = ''
+    sed -i '/^hooks:/,+2 d' plugin.yaml
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -dm755 $out/${pname} $out/${pname}/scripts
+    install -m644 -Dt $out/${pname} plugin.yaml
+    cp -r scripts/* $out/${pname}/scripts
+    wrapProgram $out/${pname}/scripts/run.sh \
+        --prefix PATH : ${lib.makeBinPath [ coreutils findutils getopt gnugrep gnused sops vault ]}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Helm plugin that helps manage secrets";
+    inherit (src.meta) homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix
new file mode 100644
index 000000000000..21a29e31243b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/wrapper.nix
@@ -0,0 +1,46 @@
+{ symlinkJoin, lib, makeWrapper, writeText }:
+
+helm:
+
+let
+  wrapper = {
+    plugins ? [],
+    extraMakeWrapperArgs ? ""
+  }:
+  let
+
+  initialMakeWrapperArgs = [
+      "${helm}/bin/helm" "${placeholder "out"}/bin/helm"
+      "--argv0" "$0" "--set" "HELM_PLUGINS" "${pluginsDir}"
+  ];
+
+  pluginsDir = symlinkJoin {
+    name = "helm-plugins";
+    paths = plugins;
+  };
+in
+  symlinkJoin {
+    name = "helm-${lib.getVersion helm}";
+
+    # Remove the symlinks created by symlinkJoin which we need to perform
+    # extra actions upon
+    postBuild = ''
+      rm $out/bin/helm
+      makeWrapper ${lib.escapeShellArgs initialMakeWrapperArgs}  ${extraMakeWrapperArgs}
+    '';
+    paths = [ helm pluginsDir ];
+
+    preferLocalBuild = true;
+
+    nativeBuildInputs = [ makeWrapper ];
+    passthru = { unwrapped = helm; };
+
+    meta = helm.meta // {
+      # To prevent builds on hydra
+      hydraPlatforms = [];
+      # prefer wrapper over the package
+      priority = (helm.meta.priority or 0) - 1;
+    };
+  };
+in
+  lib.makeOverridable wrapper
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
index 72fcc2f9c35f..3c6d66769060 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.138.4";
+  version = "0.138.7";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-Y0/0wC00s7QY7/B6igOoPKXv5TE2P8NoGd9UhfVmLOk=";
+    sha256 = "sha256-LFNsSd+S+mQiTk7bCnSD/Kp/D0Jefxo80eRsGkStBhs=";
   };
 
   vendorSha256 = "sha256-WlV6moJymQ7VyZXXuViCNN1WP4NzBUszavxpKjQR8to=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
index ccfeb6ed87a5..ed828feefdae 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmsman";
-  version = "3.6.4";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "Praqma";
     repo = "helmsman";
     rev = "v${version}";
-    sha256 = "sha256-4oJ/undqDSNn+Xn8eFEgOx+7263tmdXTHxXBkyFLpsE=";
+    sha256 = "sha256-SGVch7mMtHi5GYFOrSss4dk29aRTQmBzkPYOetPdF88=";
   };
 
   vendorSha256 = "sha256-mktq5Dnk1mBO2yy5SeMDxa/akXdO5i2WafMTGtH53H8=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
index a7d99fc5bd59..1c7a39d91bd7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-GfQjgtjFynYa8SfQyoGjsyXEv0XuaK8ZbTcMhQGkcTg=";
+    sha256 = "sha256-WcIcI+y8tTY0YfyuR/DUCjN1xbGpCOBWvEHBo+q2EV8=";
   };
-  vendorSha256 = "sha256-Xj9nC9ijLVmrSvgKq33yUyMO+RmeDkf7FKKCehP4GFE=";
+  vendorSha256 = "sha256-pSiJfQTvJ6OisdrWTH6mOcAn/wBA1OcVaGtOwBe1qvQ=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
index 739992e6bc0b..285e1db536de 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
@@ -3,7 +3,7 @@
 , makeWrapper
 , socat
 , iptables
-, iproute
+, iproute2
 , bridge-utils
 , conntrack-tools
 , buildGoPackage
@@ -19,6 +19,7 @@
 , fetchurl
 , fetchzip
 , fetchgit
+, zstd
 }:
 
 with lib;
@@ -43,9 +44,9 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.19.4+k3s2";     # k3s git tag
+  k3sVersion = "1.20.4+k3s1";     # k3s git tag
   traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
-  k3sRootVersion = "0.7.1";       # taken from ./scripts/download at the above k3s tag
+  k3sRootVersion = "0.8.1";       # taken from ./scripts/download at the above k3s tag
   k3sCNIVersion = "0.8.6-k3s1";   # taken from ./scripts/version.sh at the above k3s tag
   # bundled into the k3s binary
   traefikChart = fetchurl {
@@ -64,7 +65,7 @@ let
   k3sRoot = fetchzip {
     # Note: marked as apache 2.0 license
     url = "https://github.com/k3s-io/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar";
-    sha256 = "1wjg54816plbdwgv0dibq6dzmcakcmx0wiqijvr4f3gsxgk59zwf";
+    sha256 = "sha256-r3Nkzl9ccry7cgD3YWlHvEWOsWnnFGIkyRH9sx12gks=";
     stripRoot = false;
   };
   k3sPlugins = buildGoPackage rec {
@@ -95,7 +96,7 @@ let
     url = "https://github.com/k3s-io/k3s";
     rev = "v${k3sVersion}";
     leaveDotGit = true; # ./scripts/version.sh depends on git
-    sha256 = "1qxjdgnq8mf54760f0vngcqa2y3b048pcmfsf1g593b2ij1kg1zi";
+    sha256 = "0rmn3nh8a94axv6lb2xjnn3gpq0scnvj69bvcs74azvw62fvq016";
   };
   # Stage 1 of the k3s build:
   # Let's talk about how k3s is structured.
@@ -126,7 +127,12 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+    # Patch build scripts so that we can use them.
+    # This makes things more dynamically linked (because nix can deal with
+    # dynamically linked dependencies just fine), removes the upload at the
+    # end, and skips building runc + cni, since we have our own derivations for
+    # those.
+    patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
     nativeBuildInputs = [ git pkg-config ];
     buildInputs = [ libseccomp ];
@@ -166,9 +172,10 @@ let
 
     src = k3sRepo;
 
-    patches = [ ./patches/0001-Use-rm-from-path-in-go-generate.patch ./patches/0002-Add-nixpkgs-patches.patch ];
+    # See the above comment in k3sBuildStage1
+    patches = [ ./patches/0002-Add-nixpkgs-patches.patch ];
 
-    nativeBuildInputs = [ git pkg-config ];
+    nativeBuildInputs = [ git pkg-config zstd ];
     # These dependencies are embedded as compressed files in k3s at runtime.
     # Propagate them to avoid broken runtime references to libraries.
     propagatedBuildInputs = [ k3sPlugins k3sBuildStage1 runc ];
@@ -233,7 +240,7 @@ stdenv.mkDerivation rec {
     kmod
     socat
     iptables
-    iproute
+    iproute2
     bridge-utils
     ethtool
     util-linux
@@ -255,10 +262,12 @@ stdenv.mkDerivation rec {
   # Use a wrapper script to reference all the binaries that k3s tries to
   # execute, but that we didn't bundle with it.
   installPhase = ''
+    runHook preInstall
     mkdir -p "$out/bin"
     makeWrapper ${k3sBin}/bin/k3s "$out/bin/k3s" \
       --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \
       --prefix PATH : "$out/bin"
+    runHook postInstall
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch b/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
deleted file mode 100644
index c439241e8558..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/patches/0001-Use-rm-from-path-in-go-generate.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e79ddef65d08599ae3fe8ff39d202ea2416650b8 Mon Sep 17 00:00:00 2001
-From: Euan Kemp <euank@euank.com>
-Date: Sun, 31 May 2020 17:27:05 -0700
-Subject: [PATCH 1/2] Use 'rm' from path in go generate
-
-/bin/rm is less portable. On some distros, like nixos, it doesn't exist
-at all.
----
- main.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/main.go b/main.go
-index 62908bb7bb..0527222887 100644
---- a/main.go
-+++ b/main.go
-@@ -1,5 +1,5 @@
- //go:generate go run pkg/codegen/cleanup/main.go
--//go:generate /bin/rm -rf pkg/generated
-+//go:generate rm -rf pkg/generated
- //go:generate go run pkg/codegen/main.go
- //go:generate go fmt pkg/deploy/zz_generated_bindata.go
- //go:generate go fmt pkg/static/zz_generated_bindata.go
--- 
-2.25.4
-
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
index 11e2b0a29153..ee16f923b788 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.24.2";
+  version = "0.24.6";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "0cr7ap9yfd9flcph98rxap2f46fc3v689v31mc8n7vxi9jr07irh";
+    sha256 = "sha256-uqtjAvtsF+4cz3M60Xj9sCNotaoPzaeeTKnXQUB4CIo=";
   };
 
   buildFlagsArray = ''
@@ -18,7 +18,7 @@ buildGoModule rec {
       -X github.com/derailed/k9s/cmd.commit=${src.rev}
   '';
 
-  vendorSha256 = "01g50sfk0k7v60m3anfiq2w9pzl2wpa985s22ciq911h3fscka3f";
+  vendorSha256 = "sha256-/4Aof09MYHPc4VJJV2EyB7T9zNFtYY4JeDGJi67FQic=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
new file mode 100644
index 000000000000..683a91ffee85
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kconf";
+  version = "1.10.1";
+
+  src = fetchFromGitHub {
+    owner = "particledecay";
+    repo = "kconf";
+    rev = "v${version}";
+    sha256 = "NlTpHQFOJJcIt/xMT3fvdrlxANyg//wtYMmXzEtaFXo=";
+  };
+
+  vendorSha256 = "2d4o87wE9QZltk2YOHc20XVYF8n0EOrDf5mJ6i6EB0c=";
+
+  meta = with lib; {
+    description = "An opinionated command line tool for managing multiple kubeconfigs";
+    homepage = "https://github.com/particledecay/kconf";
+    license = licenses.mit;
+    maintainers = with maintainers; [ thmzlt ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
index ae9380c5139a..577e52ed49d6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kpt";
-  version = "0.37.1";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4SGCYkx9U6XNUrJfVPgNEhFA75CF8GOrtS4BSm6f7mM=";
+    sha256 = "sha256-MBZa4LdpCZnVVbjzkYpPi9/CYGqVLeYy2N/AS1PSYBE=";
   };
 
-  vendorSha256 = "sha256-y/l9k3oTrN+9OGgyiVzCyYi+6lJpcKaEygirytbn9aI=";
+  vendorSha256 = "sha256-P0cN8aw62nPD1OlUAw1E36YxptxtPqqruZfDDG4Ag2w=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
new file mode 100644
index 000000000000..78cbaca80ab1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kube-capacity";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "robscott";
+    repo = pname;
+    sha256 = "127583hmpj04y522wir76a39frm6zg9z7mb4ny5lxxjqhn0q0cd5";
+  };
+
+  vendorSha256 = "sha256-EgLWZs282IV1euCUCc5ucf267E2Z7GF9SgoImiGvuVM=";
+
+  meta = with lib; {
+    description =
+      "A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster";
+    homepage = "https://github.com/robscott/kube-capacity";
+    changelog = "https://github.com/robscott/kube-capacity/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
index 8e20093f5b21..586fc6cf806b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "kube-router";
-  version = "1.1.0";
+  version = "1.1.1";
 
   goPackagePath = "github.com/cloudnativelabs/kube-router";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nsd371w667qhgiygxcg4kmynwldb0pbip6x03rc7j854hg8l7k0";
+    sha256 = "sha256-U7vjWtVXmyEPYFS1fAPOgV3WILGPhWsmoawV7B0pZaE=";
   };
 
   buildFlagsArray = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
new file mode 100644
index 000000000000..76bd115a9b13
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kube-score";
+  version = "1.10.1";
+
+  src = fetchFromGitHub {
+    owner = "zegl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-TYsuSPWTiIlPscul/QO59+lt6sbjJdt7pJuJYO5R9Tc=";
+  };
+
+  vendorSha256 = "sha256-ob7mNheyeTcDWml4gi1SD3Pq+oWtJeySIUg2ZrCj0y0=";
+
+  meta = with lib; {
+    description = "Kubernetes object analysis with recommendations for improved reliability and security";
+    homepage    = "https://github.com/zegl/kube-score";
+    license     = licenses.mit;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
index 5bfceefad5a5..d0aa1029d632 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.0-k3s2" }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.5-k3s1" }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "4.2.0";
+  version = "4.4.1";
 
   excludedPackages = "tools";
 
@@ -10,20 +10,17 @@ buildGoModule rec {
     owner = "rancher";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-R2RbQlceOD/uY3IdLLiM23gESh/oWnsiTWxHeH/Si18=";
+    sha256 = "sha256-u9P+7qNomamd4BkqWBxA6rDom0hF6t10QfDTjqOMGeE=";
   };
 
   vendorSha256 = null;
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-w"
-    "-s"
-    "-X github.com/rancher/k3d/v4/version.Version=v${version}"
-    "-X github.com/rancher/k3d/v4/version.K3sVersion=v${k3sVersion}"
-  ];
+  preBuild = let t = "github.com/rancher/k3d/v4/version"; in
+    ''
+      buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.K3sVersion=v${k3sVersion}")
+    '';
 
   doCheck = false;
 
@@ -34,8 +31,17 @@ buildGoModule rec {
       --zsh <($out/bin/k3d completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/k3d --help
+    $out/bin/k3d version | grep "k3d version v${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/rancher/k3d";
+    changelog = "https://github.com/rancher/k3d/blob/v${version}/CHANGELOG.md";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container - k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
@@ -44,7 +50,7 @@ buildGoModule rec {
       multi-node k3s cluster on a single machine using docker.
     '';
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
index 561bcbf7ad3b..4fda7db9f198 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -1,6 +1,6 @@
 { lib, buildGoPackage, fetchFromGitHub, ... }:
 
-let version = "0.17.0"; in
+let version = "0.18.0"; in
 
 buildGoPackage {
   pname = "kubecfg";
@@ -10,7 +10,7 @@ buildGoPackage {
     owner = "bitnami";
     repo = "kubecfg";
     rev = "v${version}";
-    sha256 = "sha256-/91im204vBS3NjrMOvwTVO6tEBgdpirqJFqCnbIB+iQ=";
+    sha256 = "sha256-TJbuJZDj9ZwEaN8LV/M30+5+IgN8EZCTTBBDB0OgdEE=";
   };
 
   goPackagePath = "github.com/bitnami/kubecfg";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
new file mode 100644
index 000000000000..ca5e30154da4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubeconform";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "yannh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-lduHYYskEPUimEX54ymOyo5jY7GGBB42YTefDMNS4qo=";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "A FAST Kubernetes manifests validator, with support for Custom Resources!";
+    homepage    = "https://github.com/yannh/kubeconform/";
+    license     = licenses.asl20;
+    maintainers = [ maintainers.j4m3s ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
new file mode 100644
index 000000000000..5d056907264d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubectl-doctor";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "emirozer";
+    repo = pname;
+    rev = version;
+    sha256 = "0x784jbcwd34vzdnhg2yldh5ivkxvs2qlbsvaammbxkn04ch1ijz";
+  };
+
+  vendorSha256 = "04xq5kp1m7c98gb4fd0dni258vpfnhv535gl2qllfcp2mvk3mn55";
+
+  postInstall = ''
+    mv $out/bin/{cmd,kubectl-doctor}
+  '';
+
+  meta = with lib; {
+    description = "kubectl cluster triage plugin for k8s";
+    homepage = "https://github.com/emirozer/kubectl-doctor";
+    changelog = "https://github.com/emirozer/kubectl-doctor/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.zimbatm ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix
new file mode 100644
index 000000000000..04677cb4277f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubectl-example";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "seredot";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "18vp53cda93qjssxygwqp55yc80a93781839gf3138awngf731yq";
+  };
+
+  vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+  meta = with lib; {
+    description = "kubectl plugin for retrieving resource example YAMLs";
+    homepage = "https://github.com/seredot/kubectl-example";
+    changelog = "https://github.com/seredot/kubectl-example/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
index d7f829dc00e3..0a928ac9299f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "0.0.7";
+  version = "0.0.9";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jw8v6ff0iwkwxlhcr35cvhy4zg31dsm1s3q4fxgi901yj1wn6zy";
+    sha256 = "sha256-0+4hrC7A60dbf+1uvTVU2JRynvA3O/lXfgcra1fV9bI=";
   };
 
-  vendorSha256 = "0al8y65xvnwl34jkpqyf6zwr21xn30zswknlym9nnn1n47fyayxb";
+  vendorSha256 = "sha256-erGqCpWlAQanY1ghpNVRhzUEIXv3lCiBGRs888MmHN8=";
 
   buildFlagsArray = ''
     -ldflags=
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
index d4ec9cf5ef30..12127e223a3d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -20,19 +20,21 @@
 
 stdenv.mkDerivation rec {
   pname = "kubernetes";
-  version = "1.19.5";
+  version = "1.20.5";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "15bv620fj4x731f2z2a9dcdss18rk379kc40g49bpqsdn42jjx2z";
+    sha256 = "sha256-RDaD7tlTtAucW8ido9FumKb5E9n6F9H8HwxQ9TPyOLk=";
   };
 
   nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
 
   outputs = [ "out" "man" "pause" ];
 
+  patches = [ ./fixup-addonmanager-lib-path.patch ];
+
   postPatch = ''
     # go env breaks the sandbox
     substituteInPlace "hack/lib/golang.sh" \
@@ -53,7 +55,7 @@ stdenv.mkDerivation rec {
 
   postBuild = ''
     ./hack/update-generated-docs.sh
-    (cd build/pause && cc pause.c -o pause)
+    (cd build/pause/linux && cc pause.c -o pause)
   '';
 
   installPhase = ''
@@ -61,14 +63,19 @@ stdenv.mkDerivation rec {
       install -D _output/local/go/bin/''${p##*/} -t $out/bin
     done
 
-    install -D build/pause/pause -t $pause/bin
+    install -D build/pause/linux/pause -t $pause/bin
     installManPage docs/man/man1/*.[1-9]
 
-    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
+    # 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 ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh
+    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
 
     for tool in kubeadm kubectl; do
       installShellCompletion --cmd $tool \
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
new file mode 100644
index 000000000000..ef2904bdcfe7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
@@ -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
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
deleted file mode 100755
index 22a459f51349..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2014 The Kubernetes Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Generate Docker daemon options based on flannel env file.
-
-# exit on any error
-set -e
-
-usage() {
-  echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]
-
-Generate Docker daemon options based on flannel env file
-OPTIONS:
-    -f  Path to flannel env file. Defaults to /run/flannel/subnet.env
-    -d  Path to Docker env file to write to. Defaults to /run/docker_opts.env
-    -i  Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500
-    -c  Output combined Docker options into DOCKER_OPTS var
-    -k  Set the combined options key to this value (default DOCKER_OPTS=)
-    -m  Do not output --ip-masq (useful for older Docker version)
-" >/dev/stderr
-  exit 1
-}
-
-flannel_env="/run/flannel/subnet.env"
-docker_env="/run/docker_opts.env"
-combined_opts_key="DOCKER_OPTS"
-indiv_opts=false
-combined_opts=false
-ipmasq=true
-val=""
-
-while getopts "f:d:icmk:" opt; do
-  case $opt in
-    f)
-      flannel_env=$OPTARG
-      ;;
-    d)
-      docker_env=$OPTARG
-      ;;
-    i)
-      indiv_opts=true
-      ;;
-    c)
-      combined_opts=true
-      ;;
-    m)
-      ipmasq=false
-      ;;
-    k)
-      combined_opts_key=$OPTARG
-      ;;
-    \?)
-      usage
-      ;;
-  esac
-done
-
-if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then
-  indiv_opts=true
-  combined_opts=true
-fi
-
-if [[ -f "${flannel_env}" ]]; then
-  source "${flannel_env}"
-fi
-
-if [[ -n "$FLANNEL_SUBNET" ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET"
-fi
-
-if [[ -n "$FLANNEL_MTU" ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU"
-fi
-
-if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then
-  # shellcheck disable=SC2034  # Variable name referenced in OPT_LOOP below
-  DOCKER_OPT_IPMASQ="--ip-masq=false"
-fi
-
-eval docker_opts="\$${combined_opts_key}"
-docker_opts+=" "
-
-echo -n "" >"${docker_env}"
-
-# OPT_LOOP
-for opt in $(compgen -v DOCKER_OPT_); do
-  eval val=\$"${opt}"
-
-  if [[ "$indiv_opts" = true ]]; then
-    echo "$opt=\"$val\"" >>"${docker_env}"
-  fi
-
-  docker_opts+="$val "
-done
-
-if [[ "$combined_opts" = true ]]; then
-  echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}"
-fi
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
index f2071494f168..cf0c84514270 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-sUeXzmgSOkpqzqrX9+wNGj2X7gcf5QSpavXK4MJe8qE=";
+    sha256 = "sha256-wzaNFM/4V2mWqhkqeT70ieQuhgNK79U2b7PhxKqn/X0=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
index 28b3b7199974..af8e04667b7f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeval";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "instrumenta";
     repo = "kubeval";
     rev = version;
-    sha256 = "05li0qv4q7fy2lr50r6c1r8dhx00jb1g01qmgc72a9zqp378yiq0";
+    sha256 = "sha256-c5UESyWK1rfnD0etOuIroBUSqZQuu57jio7/ArItMP0=";
   };
 
-  vendorSha256 = "1kpwvi84i3h1yjprd6m6hn8l9j235931871y3qk9cl0g8q0hv9ja";
+  vendorSha256 = "sha256-SqYNAUYPUJYmHj4cFEYqQ8hEkYWmmpav9AGOSFDc/M4=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix
new file mode 100644
index 000000000000..0c8f7f1574ce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kuttl/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub}:
+
+buildGoModule rec {
+  name = "kuttl";
+  pname = "kuttl";
+  version = "0.9.0";
+  cli = "kubectl-kuttl";
+
+  src = fetchFromGitHub {
+    owner  = "kudobuilder";
+    repo   = "kuttl";
+    rev    = "v${version}";
+    sha256 = "sha256:1cji0py2340mvcpplwq3licdkzjx7q5f27fdjjxvbhrgksnyw6hs";
+  };
+
+  vendorSha256 = "sha256:1shra42ifa2knxp58fj5hn074jg89f3nqdqk4rqbp3ybir84ahsd";
+
+  subPackages = [ "cmd/kubectl-kuttl" ];
+
+  buildFlagsArray = ''
+    -ldflags=-s -w
+    -X  github.com/kudobuilder/kuttl/pkg/version.gitVersion=${version}
+  '';
+
+  meta = with lib; {
+    description = "The KUbernetes Test TooL (KUTTL) provides a declarative approach to testing production-grade Kubernetes operators";
+    homepage = "https://github.com/kudobuilder/kuttl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ diegolelis ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
index 656badfe5a0d..a4dac9dd6242 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/lens/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "lens";
-  version = "3.6.7";
+  version = "4.2.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.AppImage";
-    sha256 = "0var7d31ab6lq2vq6brk2dnhlnhqjp2gdqhygif567cdmcpn4vz8";
+    url = "https://github.com/lensapp/lens/releases/download/v${version}/Lens-${version}.x86_64.AppImage";
+    sha256 = "0g60d1h2dn41qdzdnqavwknqynjqil7s8kcqy01h021r81rdpn2q";
     name="${pname}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
index 81ca2283d204..79cfebd2aff4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,9 +11,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.17.1";
+  version = "1.18.1";
 
-  vendorSha256 = "1flny2f7n3vqhl9vkwsqxvzl8q3fv8v0h1p0d0qaqp9lgn02q3bh";
+  vendorSha256 = "sha256-rw1tqz+Y5iSXWIxXV4433Hwgyfz8jYMzKWurCi2hmhM=";
 
   doCheck = false;
 
@@ -21,7 +21,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "1m4kw77j4swwg3vqwmwrys7cq790w4g6y4gvdg33z9n1y9xzqys3";
+    sha256 = "sha256-8QI/Kn5LHSD3at7icmEDhjuYP811A4l+2KrRmKTwi8w=";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index 28f7b540722e..ef025dfc6a7f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -2,50 +2,58 @@
 , buildGoModule
 , fetchFromGitHub
 , makeWrapper
+, installShellFiles
 , buildkit
 , cni-plugins
-, extraPackages ? []
+, extraPackages ? [ ]
 }:
 
-let
-  binPath = lib.makeBinPath ([
-    buildkit
-  ] ++ extraPackages);
-in
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.5.0";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
-    owner = "AkihiroSuda";
+    owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lSvYiTh67gK9kJls7VsayV8T3H6RzFEEKe49BOWnUBw=";
+    sha256 = "sha256-4NIyit2HnDXWnHALGzz5KWxe4PU8CwMRwCoIlN/WX78=";
   };
 
-  vendorSha256 = "sha256-qywiaNoO3pI7sfyPbwWR8BLd86RvJ2xSWwCJUsm3RkM=";
+  vendorSha256 = "sha256-qwUAC8LURsn6C3zKzcsuFsOTurjPV9V8Z/1Y9G0eohk=";
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-w"
-    "-s"
-    "-X github.com/AkihiroSuda/nerdctl/pkg/version.Version=v${version}"
-    "-X github.com/AkihiroSuda/nerdctl/pkg/version.Revision=<unknown>"
-  ];
+  preBuild = let t = "github.com/containerd/nerdctl/pkg/version"; in
+    ''
+      buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.Revision=<unknown>")
+    '';
+
+  # Many checks require a containerd socket and running nerdctl after it's built
+  doCheck = false;
 
   postInstall = ''
     wrapProgram $out/bin/nerdctl \
-      --prefix PATH : "${binPath}" \
+      --prefix PATH : "${lib.makeBinPath ([ buildkit ] ++ extraPackages)}" \
       --prefix CNI_PATH : "${cni-plugins}/bin"
+
+    installShellCompletion --cmd nerdctl \
+      --bash <($out/bin/nerdctl completion bash)
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/nerdctl --help
+    $out/bin/nerdctl --version | grep "nerdctl version ${version}"
+    runHook postInstallCheck
   '';
 
   meta = with lib; {
+    homepage = "https://github.com/containerd/nerdctl/";
+    changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}";
     description = "A Docker-compatible CLI for containerd";
-    homepage = src.meta.homepage;
     license = licenses.asl20;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ jk ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
index 3885278f1f13..6515885fd8e2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/default.nix
@@ -2,7 +2,6 @@
 , poetry2nix
 , lib
 , overrides ? (self: super: {})
-, stdenv
 }:
 
 let
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
index 6d298b8df83e..3fc06b0bc73a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nixops/shell.nix
@@ -3,7 +3,7 @@
 pkgs.mkShell {
   buildInputs = [
     pkgs.poetry2nix.cli
-    pkgs.pkgconfig
+    pkgs.pkg-config
     pkgs.libvirt
     pkgs.poetry
   ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index ffc682ca4d90..e53a9c39ea7e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8qY99sEEOFY2eMfuZSWv49nw1LKVHn50P1gYQN6y2f4=";
+    sha256 = "sha256-GyWvwgLtE8N+HLmGKUOjv5HXl2sdnecjh5y6VCOs+/0=";
   };
 
   vendorSha256 = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
index 6ae59033835c..99c43aeeee46 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -6,6 +6,6 @@
 
 callPackage ./generic.nix {
   inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
-  version = "1.0.3";
-  sha256 = "142rwpli8mbyg4vhhybnym34rk9w1ns4ddfhqjr1ygmxb1rlsngi";
+  version = "1.0.4";
+  sha256 = "0znaxz9mzbqb59p6rwa5h89m344m2ci39jsx8dfh1v5fc17r0fcq";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
index ebf3cb417d69..0e97b541a5dc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/default.nix
@@ -1,38 +1,53 @@
-{ lib, stdenv, fetchurl }:
-let
-  version = "0.16.3";
+{ lib, stdenv, fetchzip }:
 
-  system = stdenv.hostPlatform.system;
+let
+  inherit (stdenv.hostPlatform) system;
   suffix = {
     x86_64-linux = "Linux-64bit";
     aarch64-linux = "Linux-arm64";
     x86_64-darwin = "macOS-64bit";
   }."${system}" or (throw "Unsupported system: ${system}");
-
   baseurl = "https://github.com/vmware-tanzu/octant/releases/download";
-  fetchsrc = sha256: fetchurl {
-    url = "${baseurl}/v${version}/octant_${version}_${suffix}.tar.gz";
-    sha256 = sha256."${system}";
-  };
+  fetchsrc = version: sha256: fetchzip {
+      url = "${baseurl}/v${version}/octant_${version}_${suffix}.tar.gz";
+      sha256 = sha256."${system}";
+    };
 in
 stdenv.mkDerivation rec {
   pname = "octant";
-  inherit version;
+  version = "0.18.0";
 
-  src = fetchsrc {
-    x86_64-linux = "1c6v7d8i494k32b0zrjn4fn1idza95r6h99c33c5za4hi7gqvy0x";
-    aarch64-linux = "153jd4wsq8qc598w7y4d30dy20ljyhrl68cc3pig1p712l5258zs";
-    x86_64-darwin = "0y2qjdlyvhrzwg0fmxsr3jl39kd13276a7wg0ndhdjfwxvdwpxkz";
+  src = fetchsrc version {
+    x86_64-linux = "sha256-D/pHOXR7XQoJCGqUep1lBAY4239HH35m+evFd21pcK0=";
+    aarch64-linux = "sha256-aL1axz3ebqrKQ3xK2UgDMQ+o6ZKgIvwy6Phici7WT2c=";
+    x86_64-darwin = "sha256-MFxOAAEnLur0LJJNU0SSlO+bH4f18zOfZNA49fKEQEw=";
   };
 
-  doCheck = false;
+  dontConfigure = true;
+  dontBuild = true;
 
   installPhase = ''
-    mkdir -p "$out/bin"
-    mv octant $out/bin
+    runHook preInstall
+    install -D octant $out/bin/octant
+    runHook postInstall
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/octant --help
+    $out/bin/octant version | grep "${version}"
+    runHook postInstallCheck
   '';
 
+  dontPatchELF = true;
+  dontPatchShebangs = true;
+
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
+    homepage = "https://octant.dev/";
+    changelog = "https://github.com/vmware-tanzu/octant/blob/v${version}/CHANGELOG.md";
     description = "Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.";
     longDescription = ''
       Octant is a tool for developers to understand how applications run on a Kubernetes cluster.
@@ -40,9 +55,8 @@ stdenv.mkDerivation rec {
       Octant offers a combination of introspective tooling, cluster navigation, and object management along with a
       plugin system to further extend its capabilities.
     '';
-    homepage = "https://octant.dev/";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ jk ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
index e956715d9b0c..988b2d02df98 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "starboard-octant-plugin";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-u+yxAGVVFsZpiexToNDUfQATsYOkKWHkYF9roK0OInY=";
+    sha256 = "sha256-wis2ECCVXQeD7GiCMJQai+wDM8QJ1j5dPnE5O/I3wpM=";
   };
 
-  vendorSha256 = "sha256-c5sel3xs4npTENqRQu8d9hUOK1OFQodF3M0ZpUpr1po=";
+  vendorSha256 = "sha256-T0wDbAl5GXphZIBrM36OwRCojnJ/cbXNqsjtCzUDZ6s=";
 
   buildFlagsArray = [ "-ldflags=" "-s" "-w" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh b/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh
new file mode 100755
index 000000000000..4ffe4aefb30c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/octant/update.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused gawk nix-prefetch
+
+set -euo pipefail
+
+ROOT="$(dirname "$(readlink -f "$0")")"
+NIX_DRV="$ROOT/default.nix"
+if [ ! -f "$NIX_DRV" ]; then
+  echo "ERROR: cannot find default.nix in $ROOT"
+  exit 1
+fi
+
+fetch_arch() {
+  VER="$1"; ARCH="$2"
+  URL="https://github.com/vmware-tanzu/octant/releases/download/v${VER}/octant_${VER}_${ARCH}.tar.gz"
+  nix-prefetch "{ stdenv, fetchzip }:
+stdenv.mkDerivation rec {
+  pname = \"octant\"; version = \"${VER}\";
+  src = fetchzip { url = \"$URL\"; };
+}
+"
+}
+
+replace_sha() {
+  sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV"
+}
+
+OCTANT_VER=$(curl -Ls -w "%{url_effective}" -o /dev/null https://github.com/vmware-tanzu/octant/releases/latest | awk -F'/' '{print $NF}' | sed 's/v//')
+
+OCTANT_LINUX_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-64bit")
+OCTANT_DARWIN_X64_SHA256=$(fetch_arch "$OCTANT_VER" "Linux-arm64")
+OCTANT_LINUX_AARCH64_SHA256=$(fetch_arch "$OCTANT_VER" "macOS-64bit")
+
+sed -i "s/version = \".*\"/version = \"$OCTANT_VER\"/" "$NIX_DRV"
+
+replace_sha "x86_64-linux" "$OCTANT_LINUX_X64_SHA256"
+replace_sha "x86_64-darwin" "$OCTANT_LINUX_AARCH64_SHA256"
+replace_sha "aarch64-linux" "$OCTANT_DARWIN_X64_SHA256"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
index 53209d2edd67..a1d4b1468376 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/openshift/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, buildGoPackage, which, go-bindata, rsync, util-linux
-, coreutils, kerberos, ncurses, clang, installShellFiles
+, coreutils, libkrb5, ncurses, clang, installShellFiles
 , components ? [
   "cmd/oc"
   "cmd/openshift"
@@ -33,7 +33,7 @@ in buildGoPackage rec {
 
   goPackagePath = "github.com/openshift/origin";
 
-  buildInputs = [ kerberos ncurses ];
+  buildInputs = [ libkrb5 ncurses ];
 
   nativeBuildInputs = [ which rsync go-bindata clang installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
new file mode 100644
index 000000000000..52c9c191218c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "pgo-client";
+  version = "4.6.2";
+
+  src = fetchFromGitHub {
+    owner = "CrunchyData";
+    repo = "postgres-operator";
+    rev = "v${version}";
+    sha256 = "sha256-zPFsLKbuVq2wMjFsqjBGiatPBwGR/X6q3mj8o5BE+r0=";
+  };
+
+  vendorSha256 = "sha256-DU1kc7YDQ+denj6tHVGt79s494aBFZ2KM7PVSn951KI=";
+
+  subPackages = [ "cmd/pgo" ];
+
+  meta = with lib; {
+    description = "A CLI client for Crunchy PostgreSQL Kubernetes Operator";
+    homepage = "https://github.com/CrunchyData/postgres-operator";
+    changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
index a4f15586ad0e..7bcd905c9997 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "qbec";
-  version = "0.13.4";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "splunk";
     repo = "qbec";
     rev = "v${version}";
-    sha256 = "sha256-jbGEkBBXb1dDv4E7vEPVyvDahz27Kpyo3taenCH/vfw=";
+    sha256 = "sha256-F5xnW9069Xrl6isvmeYtfTZUZSiSq47HLs5/p3HCf6E=";
   };
 
-  vendorSha256 = "sha256-rzxtLaGUl8hxcJ+GWlrkjN+f7mb0lXrtkHj/pBO8HzQ=";
+  vendorSha256 = "sha256-wtpXqIixjRYYSIPe43Q5627g6mu05WdvwCi9cXVgCBs=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
index f344b8c3eb97..8f4324f43435 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -5,7 +5,7 @@ let rev = "f6e19140201d6bf2f1274bf6567087bc25154210";
 in
 buildGoModule rec {
   pname = "sonobuoy";
-  version = "0.20.0"; # Do not forget to update `rev` above
+  version = "0.50.0"; # Do not forget to update `rev` above
 
   buildFlagsArray =
     let t = "github.com/vmware-tanzu/sonobuoy";
@@ -17,13 +17,13 @@ buildGoModule rec {
     '';
 
   src = fetchFromGitHub {
-    sha256 = "11qawsv82i1pl4mwfc85wb4fbq961bplvmygnjfm79m8z87863ri";
+    sha256 = "sha256-LhprsDlWZjNRE6pu7V9WBszy/+bNpn5KoRopIoWvdsg=";
     rev = "v${version}";
     repo = "sonobuoy";
     owner = "vmware-tanzu";
   };
 
-  vendorSha256 = "1kxzd4czv8992y7y47la5jjrbhk76sxcj3v5sx0k4xplgki7np6i";
+  vendorSha256 = "sha256-0Vx74nz0djJB12UPybo2Z8KVpSyKHuKPFymh/Rlpv88=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
index 071636ec4431..76230b8e1003 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
   };
 
-  buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre pythonPackages.python pythonPackages.numpy ]
     ++ optional RSupport R;
 
   untarDir = "${pname}-${version}-bin-without-hadoop";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
new file mode 100644
index 000000000000..364f7653efa3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
@@ -0,0 +1,44 @@
+From bea6307ec2a77d90d59c13940381d73ec0f05b70 Mon Sep 17 00:00:00 2001
+From: Graham Christensen <graham@grahamc.com>
+Date: Mon, 1 Mar 2021 10:57:44 -0500
+Subject: [PATCH] Disable NIC tests that fail in the Nix sandbox.
+
+---
+ agent/managedInstances/fingerprint/fingerprint_integ_test.go | 2 ++
+ agent/ssm/service_test.go                                    | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/agent/managedInstances/fingerprint/fingerprint_integ_test.go b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+index a1f969ff..631ea1f5 100644
+--- a/agent/managedInstances/fingerprint/fingerprint_integ_test.go
++++ b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+@@ -28,12 +28,14 @@ func TestHostnameInfo(t *testing.T) {
+ }
+ 
+ func TestPrimaryIpInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback IPs, causing this test to fail.");
+ 	ip, err := primaryIpInfo()
+ 	assert.NoError(t, err, "expected no error fetching the primary ip")
+ 	assert.NotEmpty(t, ip, "expected to fetch primary ip")
+ }
+ 
+ func TestMacAddrInfo(t *testing.T) {
++	t.Skip("The Nix build sandbox has no non-loopback interfaces, causing this test to fail.");
+ 	mac, err := macAddrInfo()
+ 	assert.NoError(t, err, "expected no error fetching the mac addr")
+ 	assert.NotEmpty(t, mac, "expected to fetch mac address")
+diff --git a/agent/ssm/service_test.go b/agent/ssm/service_test.go
+index f4b34f83..d8216dba 100644
+--- a/agent/ssm/service_test.go
++++ b/agent/ssm/service_test.go
+@@ -85,6 +85,7 @@ func (suite *SsmServiceTestSuite) TestUpdateEmptyInstanceInformation() {
+ // Test function for update instance information
+ // This function update the agent name, agent statuc, and agent version.
+ func (suite *SsmServiceTestSuite) TestUpdateInstanceInformation() {
++	suite.T().Skip("The Nix build sandbox has no interfaces for IP and MAC address reports.");
+ 	// Give mock value to test UpdateInstanceInformation, assert the error is nil, assert the log.Debug function get called.
+ 	response, err := suite.sdkService.UpdateInstanceInformation(suite.logMock, "2.2.3.2", "active", "Amazon-ssm-agent")
+ 	assert.Nil(suite.T(), err, "Err should be nil")
+-- 
+2.29.2
+
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
new file mode 100644
index 000000000000..234e510d3d17
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
@@ -0,0 +1,46 @@
+From 473e3f8544915a35b3a45c548743978b34e5310e Mon Sep 17 00:00:00 2001
+From: Cole Helbling <cole.e.helbling@outlook.com>
+Date: Tue, 2 Mar 2021 00:24:00 -0800
+Subject: [PATCH] version-gen: don't use unnecessary constants
+
+This prevents the tool from being built with Nix, because this project
+doesn't use Go modules (or something; I'm not really familiar with Go,
+much less Go + Nix).
+---
+ agent/version/versiongenerator/version-gen.go | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/agent/version/versiongenerator/version-gen.go b/agent/version/versiongenerator/version-gen.go
+index d710effc..55c9a001 100644
+--- a/agent/version/versiongenerator/version-gen.go
++++ b/agent/version/versiongenerator/version-gen.go
+@@ -22,8 +22,6 @@ import (
+ 	"path/filepath"
+ 	"strings"
+ 	"text/template"
+-
+-	"github.com/aws/amazon-ssm-agent/agent/appconfig"
+ )
+ 
+ const versiongoTemplate = `// This is an autogenerated file and should not be edited.
+@@ -59,7 +57,7 @@ func main() {
+ 	versionStr := strings.TrimSpace(string(versionContent))
+ 
+ 	fmt.Printf("Agent Version: %v", versionStr)
+-	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), appconfig.ReadWriteAccess); err != nil {
++	if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), 0600); err != nil {
+ 		log.Fatalf("Error writing to VERSION file. %v", err)
+ 	}
+ 
+@@ -108,7 +106,7 @@ func main() {
+ 
+ 	releaseNoteOutFile := strings.Join(releaseNoteLines, "\n")
+ 
+-	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), appconfig.ReadWriteAccess); err != nil {
++	if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), 0600); err != nil {
+ 		log.Fatalf("Error writing to RELEASENOTES.md file. %v", err)
+ 	}
+ 
+-- 
+2.30.0
+
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
index 928fb351c6a0..3aa583f3ae39 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -1,63 +1,110 @@
-{ lib, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
+{ lib
+, writeShellScriptBin
+, buildGoPackage
+, makeWrapper
+, fetchFromGitHub
+, coreutils
+, nettools
+, dmidecode
+, util-linux
+, bashInteractive
+}:
 
+let
+  # Tests use lsb_release, so we mock it (the SSM agent used to not
+  # read from our /etc/os-release file, but now it does) because in
+  # reality, it won't (shouldn't) be used when active on a system with
+  # /etc/os-release. If it is, we fake the only two fields it cares about.
+  fake-lsb-release = writeShellScriptBin "lsb_release" ''
+    . /etc/os-release || true
+
+    case "$1" in
+      -i) echo "''${NAME:-unknown}";;
+      -r) echo "''${VERSION:-unknown}";;
+    esac
+  '';
+in
 buildGoPackage rec {
-  pname   = "amazon-ssm-agent";
-  version = "2.3.1319.0";
+  pname = "amazon-ssm-agent";
+  version = "3.0.755.0";
 
   goPackagePath = "github.com/aws/${pname}";
-  subPackages   = [
-    "agent"
-    "agent/framework/processor/executer/outofproc/worker"
-    "agent/framework/processor/executer/outofproc/worker"
-    "agent/framework/processor/executer/outofproc/sessionworker"
-    "agent/session/logging"
-    "agent/cli-main"
-  ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
-    rev    = version;
-    owner  = "aws";
-    repo   = pname;
-    sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
+    rev = version;
+    owner = "aws";
+    repo = "amazon-ssm-agent";
+    hash = "sha256-yVQJL1MJ1JlAndlrXfEbNLQihlbLhSoQXTKzJMRzhao=";
   };
 
+  patches = [
+    # Some tests use networking, so we skip them.
+    ./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
+
+    # They used constants from another package that I couldn't figure
+    # out how to resolve, so hardcoded the constants.
+    ./0002-version-gen-don-t-use-unnecessary-constants.patch
+  ];
+
+  preConfigure = ''
+    rm -r ./Tools/src/goreportcard
+    printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh
+
+    substituteInPlace agent/platform/platform_unix.go \
+        --replace "/usr/bin/uname" "${coreutils}/bin/uname" \
+        --replace '"/bin", "hostname"' '"${nettools}/bin/hostname"' \
+        --replace '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"'
+
+    substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \
+        --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode
+
+    substituteInPlace agent/session/shell/shell_unix.go \
+        --replace '"script"' '"${util-linux}/bin/script"'
+
+    echo "${version}" > VERSION
+  '';
+
   preBuild = ''
-    mv go/src/${goPackagePath}/vendor strange-vendor
-    mv strange-vendor/src go/src/${goPackagePath}/vendor
+    cp -r go/src/${goPackagePath}/vendor/src go
 
-    cd go/src/${goPackagePath}
-    echo ${version} > VERSION
+    pushd go/src/${goPackagePath}
 
-    substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
-      --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+    # Note: if this step fails, please patch the code to fix it! Please only skip
+    # tests if it is not feasible for the test to pass in a sandbox.
+    make quick-integtest
 
-    go run agent/version/versiongenerator/version-gen.go
-    substituteInPlace agent/appconfig/constants_unix.go \
-      --replace /usr/bin/ssm-document-worker $bin/bin/ssm-document-worker \
-      --replace /usr/bin/ssm-session-worker $bin/bin/ssm-session-worker \
-      --replace /usr/bin/ssm-session-logger $bin/bin/ssm-session-logger
-    cd -
+    make pre-release
+    make pre-build
+
+    popd
   '';
 
   postBuild = ''
-    mv go/bin/agent go/bin/amazon-ssm-agent
-    mv go/bin/worker go/bin/ssm-document-worker
-    mv go/bin/sessionworker go/bin/ssm-session-worker
-    mv go/bin/logging go/bin/ssm-session-logger
-    mv go/bin/cli-main go/bin/ssm-cli
+    pushd go/bin
+
+    rm integration-cli versiongenerator generator
+
+    mv core amazon-ssm-agent
+    mv agent ssm-agent-worker
+    mv cli-main ssm-cli
+    mv worker ssm-document-worker
+    mv logging ssm-session-logger
+    mv sessionworker ssm-session-worker
+
+    popd
   '';
 
-  postInstall = ''
-    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
+  postFixup = ''
+    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin
   '';
 
   meta = with lib; {
     description = "Agent to enable remote management of your Amazon EC2 instance configuration";
-    homepage    = "https://github.com/aws/amazon-ssm-agent";
-    license     = licenses.asl20;
-    platforms   = platforms.unix;
+    homepage = "https://github.com/aws/amazon-ssm-agent";
+    license = licenses.asl20;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ copumpkin manveru ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
index 163deb1bef88..4fdcdf1ea2b1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "starboard";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZIAdYuJ8LS8x2h+VXQrkgdmKkw9VKl7FcnOVZNSnXM0=";
+    sha256 = "sha256-w+xaZPEMmJYDPQG4MuAlWMhwhEyeVcpaeDwqsnIbIHA=";
   };
 
   vendorSha256 = "sha256-aVKQcRZgxhIph+y28HhR15DUjwiz/4+t1bMrYXjPW7Q=";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
index 44ad3dfd72c7..8e7731590aad 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,20 +2,22 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-y2HhtYKgC9Y397dZ14eQoPZxqS1fTOXVD8B4wdLIHzM=";
+    sha256 = "sha256-ckXvDB3TU9HAXowAAr/fRmX3mylVvPKW8I74R/vUaRY=";
   };
 
   vendorSha256 = "sha256-vpm2y/CxRNWkz6+AOMmmZH5AjRQWAa6WD5Fnx5lqJYw=";
 
   doCheck = false;
 
-  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+  subPackages = [ "cmd/tk" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -extldflags \"-static\" -X github.com/grafana/tanka/pkg/tanka.CURRENT_VERSION=v${version}" ];
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -26,7 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Flexible, reusable and concise configuration for Kubernetes";
-    homepage = "https://github.com/grafana/tanka/";
+    homepage = "https://tanka.dev";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index 581af59f0c8f..c59c03714890 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -2,23 +2,20 @@
 
 buildGoModule rec {
   pname = "tektoncd-cli";
-  version = "0.16.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "tektoncd";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-IY9iJa4HcZ60jDPdP47jjC0FiOJesvf2vEENMAYVd4Q=";
+    sha256 = "sha256-xwUTSJ0rlNzQqGQp6jL03L4SuHUvvD3aWXxa1Xp0UyM=";
   };
 
   vendorSha256 = null;
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X github.com/tektoncd/cli/pkg/cmd/version.clientVersion=${version}")
+  '';
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -40,6 +37,14 @@ buildGoModule rec {
       --zsh <($out/bin/tkn completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/tkn --help
+    $out/bin/tkn version | grep "Client version: ${version}"
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://tekton.dev";
     changelog = "https://github.com/tektoncd/cli/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
index a5b6e7d2f5e7..313bd46a5194 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -1,24 +1,26 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-buildGoPackage rec {
+{ lib, buildGoModule, fetchFromGitHub }:
+buildGoModule rec {
   pname = "terraform-docs";
-  version = "0.9.1";
-
-  goPackagePath = "github.com/segmentio/${pname}";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
-    owner  = "segmentio";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "00sfzdqhf8g85m03r6mbzfas5vvc67iq7syb8ljcgxg8l1knxnjx";
+    owner = "terraform-docs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-zQFPuHxfFvfwPVV0vPeA+A6XCw2Vt4tY4S2JBGcqaBQ=";
   };
 
+  vendorSha256 = "sha256-HO2E8i5A/2Xi7Pq+Mqb/2ogK1to8IvZjRuDXfzGvOXk=";
+
+  subPackages = [ "." ];
+
   preBuild = ''
     buildFlagsArray+=("-ldflags" "-X main.version=${version}")
   '';
 
   meta = with lib; {
     description = "A utility to generate documentation from Terraform modules in various output formats";
-    homepage = "https://github.com/segmentio/terraform-docs/";
+    homepage = "https://github.com/terraform-docs/terraform-docs/";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 198a05621a52..329b1be682cc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -359,10 +359,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google",
     "repo": "terraform-provider-google",
-    "rev": "v3.47.0",
-    "sha256": "05xb0q56y9088qbyaf3vzjm9im1s2azxffhjffjpzi0i79k0g2p0",
-    "vendorSha256": "1h83p7ncv7b4ci7qdig7hb81zk9458fq9aqqbkryawf1w7wbaq2a",
-    "version": "3.47.0"
+    "rev": "v3.62.0",
+    "sha256": "0x0qp8nk88667hvlpgxrdjsgirw8iwv85gn3k9xb37a3lw7xs4qz",
+    "vendorSha256": "0w6aavj1c4blpvsy00vz4dcj8rnxx6a586b16lqp6s1flqmlqrbi",
+    "version": "3.62.0"
   },
   "google-beta": {
     "owner": "hashicorp",
@@ -398,10 +398,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v1.3.2",
-    "sha256": "0mpbf03483jqrwd9cx4pdn2pcv4swfs5nbp021gaqr0jf1w970x6",
+    "rev": "v2.0.2",
+    "sha256": "119zvlkwa7ygwsjxxdl7z8cqb0c4m6gy21356jnsasf4c3557rrb",
     "vendorSha256": null,
-    "version": "1.3.2"
+    "version": "2.0.2"
   },
   "heroku": {
     "owner": "terraform-providers",
@@ -504,16 +504,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v1.13.3",
-    "sha256": "01hkbb81r3k630s3ww6379p66h1fsd5cd1dz14jm833nsr142c0i",
-    "version": "1.13.3"
+    "rev": "v2.0.2",
+    "sha256": "129aylw6hxa44syfnb0kkkihwvlaa6d1jnxrcbwkql6xxhn9zizf",
+    "vendorSha256": null,
+    "version": "2.0.2"
   },
   "kubernetes-alpha": {
     "owner": "hashicorp",
+    "provider-source-address": "registry.terraform.io/hashicorp/kubernetes-alpha",
     "repo": "terraform-provider-kubernetes-alpha",
-    "rev": "nightly20200608",
-    "sha256": "1g171sppf3kq5qlp6g0qqdm0x8lnpizgw8bxjlhp9b6cl4kym70m",
-    "version": "nightly20200608"
+    "rev": "v0.3.2",
+    "sha256": "0lgh42fvfwvj6cw8i7800k016ay4babqiz38q0y7apq4s7vs62sb",
+    "vendorSha256": null,
+    "version": "0.3.2"
   },
   "launchdarkly": {
     "owner": "terraform-providers",
@@ -1071,9 +1074,9 @@
   "vultr": {
     "owner": "vultr",
     "repo": "terraform-provider-vultr",
-    "rev": "v1.5.0",
-    "sha256": "04qy366ignn53bbdj9s3032qr1x7h84q36qzl5ywydlw2va0qbsd",
-    "version": "1.5.0"
+    "rev": "v2.1.3",
+    "sha256": "sha256-fvqkzg3j2TYAMbPc8Ifh35sBe0D76LYH6Ut5Ugdyexg=",
+    "version": "2.1.3"
   },
   "wavefront": {
     "owner": "terraform-providers",
@@ -1083,10 +1086,11 @@
     "version": "2.3.0"
   },
   "yandex": {
-    "owner": "terraform-providers",
+    "owner": "yandex-cloud",
     "repo": "terraform-provider-yandex",
-    "rev": "v0.40.0",
-    "sha256": "0dymhdrdm00m9xn4xka3zbvjqnckhl06vz5zm6rqivkmw8m2q0mz",
-    "version": "0.40.0"
+    "rev": "v0.54.0",
+    "sha256": "0q9m7520zl7q1liri6x849xjp221wbc9l2w6dj19mmgfwspqv02l",
+    "vendorSha256": "0rzldsb8gyhvnsd26wg9byqngzzj64pi86v2hb4i63rlfmnn77xi",
+    "version": "0.54.0"
   }
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
index e1f1a0ef38a5..f97bbce83faa 100755
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i bash -p coreutils curl jq moreutils
+#! nix-shell -I nixpkgs=../../../../.. -i bash -p coreutils curl jq moreutils nix
 # shellcheck shell=bash
 # vim: ft=sh
 #
@@ -161,7 +161,8 @@ if [[ -z "$vendorSha256" ]]; then
       exit 1
     fi
     rm -f vendor_log.txt
-    vendorSha256=${BASH_REMATCH[1]}
+    # trim the results in case it they have a sha256: prefix or contain more than one line
+    vendorSha256=$(echo "${BASH_REMATCH[1]#sha256:}" | head -n 1)
     # Deal with nix unstable
     if [[ $vendorSha256 = sha256-* ]]; then
       vendorSha256=$(nix to-base32 "$vendorSha256")
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index 317666a2c7cd..6cd2cf52efc1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -117,7 +117,7 @@ let
         else
           lib.appendToName "with-plugins" (stdenv.mkDerivation {
             inherit (terraform) name meta;
-            buildInputs = [ makeWrapper ];
+            nativeBuildInputs = [ makeWrapper ];
 
             buildCommand = pluginDir + ''
               mkdir -p $out/bin/
@@ -157,9 +157,9 @@ in rec {
   });
 
   terraform_0_14 = pluggable (generic {
-    version = "0.14.6";
-    sha256 = "0ba3vd6lswy4pd0qywdbx8cf71j5z3p8p8kdjs9m4qbyrzsbq0fk";
-    vendorSha256 = "0pk5mgj19a8by7wbn5xd6kgr1kxrazhvg851fvs8mq3j0ayb32nb";
+    version = "0.14.10";
+    sha256 = "05vfb8hzma3qxq4w1h25mmgv96g90if214zlar0sm9fq8zsvb1yw";
+    vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile
new file mode 100644
index 000000000000..e6a4991e899d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem 'terraforming'
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock
new file mode 100644
index 000000000000..ae2a40cc35b0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/Gemfile.lock
@@ -0,0 +1,92 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    aws-eventstream (1.1.1)
+    aws-partitions (1.436.0)
+    aws-sdk-autoscaling (1.59.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-cloudwatch (1.50.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-core (3.113.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.239.0)
+      aws-sigv4 (~> 1.1)
+      jmespath (~> 1.0)
+    aws-sdk-dynamodb (1.60.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-ec2 (1.230.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-efs (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticache (1.54.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticloadbalancing (1.31.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-elasticloadbalancingv2 (1.61.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-iam (1.51.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-kms (1.43.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-rds (1.117.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-redshift (1.58.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-route53 (1.48.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.93.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sns (1.39.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sqs (1.38.0)
+      aws-sdk-core (~> 3, >= 3.112.0)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.3)
+      aws-eventstream (~> 1, >= 1.0.2)
+    jmespath (1.4.0)
+    multi_json (1.12.2)
+    terraforming (0.18.0)
+      aws-sdk-autoscaling (~> 1)
+      aws-sdk-cloudwatch (~> 1)
+      aws-sdk-dynamodb (~> 1.18)
+      aws-sdk-ec2 (~> 1)
+      aws-sdk-efs (~> 1, >= 1.13.0)
+      aws-sdk-elasticache (~> 1)
+      aws-sdk-elasticloadbalancing (~> 1)
+      aws-sdk-elasticloadbalancingv2 (~> 1)
+      aws-sdk-iam (~> 1)
+      aws-sdk-kms (~> 1)
+      aws-sdk-rds (~> 1)
+      aws-sdk-redshift (~> 1)
+      aws-sdk-route53 (~> 1)
+      aws-sdk-s3 (~> 1)
+      aws-sdk-sns (~> 1)
+      aws-sdk-sqs (~> 1)
+      multi_json (~> 1.12.1)
+      thor
+    thor (1.1.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  terraforming
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix
new file mode 100644
index 000000000000..85d522257cde
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/default.nix
@@ -0,0 +1,20 @@
+{ lib, bundlerApp, bundlerUpdateScript, ruby }:
+
+bundlerApp rec {
+  inherit ruby;
+
+  pname = "terraforming";
+  gemdir = ./.;
+  exes = [ "terraforming" ];
+
+  passthru.updateScript = bundlerUpdateScript "terraforming";
+
+  meta = with lib; {
+    inherit (ruby.meta) platforms;
+
+    description = "Export existing AWS resources to Terraform style (tf, tfstate)";
+    homepage    = "https://github.com/dtan4/terraforming";
+    license     = with licenses; mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix b/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix
new file mode 100644
index 000000000000..9882efc29e80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraforming/gemset.nix
@@ -0,0 +1,261 @@
+{
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jfki5ikfr8ln5cdgv4iv1643kax0bjpp29jh78chzy713274jh3";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gn09cafg2n6gdc3ja80r3xjllly05r0m7x3w3b3rywir6k6ai4f";
+      type = "gem";
+    };
+    version = "1.436.0";
+  };
+  aws-sdk-autoscaling = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0br6hfi2i5rri8ivamkmnx00p640s24pqmp8s67sm5asvdfzx4vr";
+      type = "gem";
+    };
+    version = "1.59.0";
+  };
+  aws-sdk-cloudwatch = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xga00dn925rfgz4p2zf734aaik00dqb9psll27lg5626jd6xr0c";
+      type = "gem";
+    };
+    version = "1.50.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1774xyfqf307qvh5npvf01948ayrviaadq576r4jxin6xvlg8j9z";
+      type = "gem";
+    };
+    version = "3.113.0";
+  };
+  aws-sdk-dynamodb = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dfsmkzv9cziykzc56g9pwxmbdqjpykxka3fq07b6iarzh38j1i3";
+      type = "gem";
+    };
+    version = "1.60.0";
+  };
+  aws-sdk-ec2 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c7qqly2f94db3643xwjj9mcb34vilx11awbv40v2f8z7xisvvz3";
+      type = "gem";
+    };
+    version = "1.230.0";
+  };
+  aws-sdk-efs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kmpz86sxkm6nzcf80nd65902fy29hz8lvx1kjwl5idx07ls8pnd";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-elasticache = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05kn2k437rnsf9nkwc1x5i2klrasjgyk1pj89f2gb0za86swjcza";
+      type = "gem";
+    };
+    version = "1.54.0";
+  };
+  aws-sdk-elasticloadbalancing = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j3px8dn2yxsnmy010kfkwa1a2flbdxachmly20f436ysi3ql3v3";
+      type = "gem";
+    };
+    version = "1.31.0";
+  };
+  aws-sdk-elasticloadbalancingv2 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16hknbqv5s1im04dch9kdbc79x072613imdih62w48mvsf12c1mm";
+      type = "gem";
+    };
+    version = "1.61.0";
+  };
+  aws-sdk-iam = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x2768blsy8lpib9pi2f2d67flabar3bq6chmbj07iqzpwvpz569";
+      type = "gem";
+    };
+    version = "1.51.0";
+  };
+  aws-sdk-kms = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01pd0f4srsa65zl4zq4014p9j5yrr2yy9h9ab17g3w9d0qqm2vsh";
+      type = "gem";
+    };
+    version = "1.43.0";
+  };
+  aws-sdk-rds = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hwxgcka6bmzdn5pazss0fv8xgbbgas4h2cwpzwhkjkwhh23dx6a";
+      type = "gem";
+    };
+    version = "1.117.0";
+  };
+  aws-sdk-redshift = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sp186v00lj517hia6rsn28ph8rqknz9r79vbkbyh5fgrbh2j6bd";
+      type = "gem";
+    };
+    version = "1.58.0";
+  };
+  aws-sdk-route53 = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p9g0scw9c6qancdwvaw3kkj3pywchy2vl3qz2rqpjncqvj04pn5";
+      type = "gem";
+    };
+    version = "1.48.0";
+  };
+  aws-sdk-s3 = {
+    dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iy2f9z43pc6fgwmga2cz8nf9gy2pwcw4jib141vp8z8dhylqj94";
+      type = "gem";
+    };
+    version = "1.93.0";
+  };
+  aws-sdk-sns = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pmxi871r2nkl6by89vsy05ahk8dr6hmkny56fycrby6r9kri9q4";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-sqs = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01m2l8y4q4fixjvl70w5bi1ihmmx2y4krms9kkjwd3ch21y14hif";
+      type = "gem";
+    };
+    version = "1.38.0";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d9zhmi3mpfzkkpg7yw7s9r1dwk157kh9875j3c7gh6cy95lmmaw";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x";
+      type = "gem";
+    };
+    version = "1.12.2";
+  };
+  terraforming = {
+    dependencies = ["aws-sdk-autoscaling" "aws-sdk-cloudwatch" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-efs" "aws-sdk-elasticache" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-iam" "aws-sdk-kms" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-s3" "aws-sdk-sns" "aws-sdk-sqs" "multi_json" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03fyhqx6bxpbn26pbcz748gz7rh7q3r9r0jimq7vj07fl454fmwh";
+      type = "gem";
+    };
+    version = "0.18.0";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18yhlvmfya23cs3pvhr1qy38y41b6mhr5q9vwv5lrgk16wmf3jna";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
index 9e2b9709afc2..eb230062feec 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,25 +2,30 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.28.4";
+  version = "0.28.18";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LilIwg3Zu7Zi7AhJeW0j2qUmSOGy1HHjvvB07FUcEeI=";
+    sha256 = "sha256-W0HjGILezhuc1lXvGCHw23h8Sx1uw4YLLsOOBZYGvU8=";
   };
 
-  vendorSha256 = "sha256-lRJerUYafpkXAGf8MEM8SeG3aB86mlMo7iLpeHFAnd4=";
+  vendorSha256 = "sha256-kcRM76xfajtQist1aJTmaRludxRlfvHQ9ucB3LOgnBk=";
 
   doCheck = false;
 
-  buildFlagsArray = [
-    "-ldflags="
-    "-s"
-    "-w"
-    "-X main.VERSION=v${version}"
-  ];
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-s -w -X main.VERSION=v${version}")
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/terragrunt --help
+    $out/bin/terragrunt --version | grep "v${version}"
+    runHook postInstallCheck
+  '';
 
   meta = with lib; {
     homepage = "https://terragrunt.gruntwork.io";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
index 415a895e523f..ccbe9d9a7ac0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.18.8";
+  version = "0.18.10";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-ICJrY4XUrxVeZlMx69SB/ounfIwLFSguf9bhLOpYP3E=";
+    sha256 = "sha256-SvvvHGR3UPyV61MaoFB68SaZKUT3ItYOPT1a7AddxlY=";
   };
   vendorSha256 = null;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
index 6b878cec9279..65826683d5f0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.5.3";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "vmware-tanzu";
     repo = "velero";
-    sha256 = "sha256-DZ6phJxc8n9LCSsER09K3j+pUJxkYrBZQaI4h+bcV94=";
+    sha256 = "sha256-YHBqIM3NV2L13w9WCzldUWmdBMec7ZndzYgGHblS8Dg=";
   };
 
   buildFlagsArray = ''
@@ -40,6 +40,6 @@ buildGoModule rec {
       "https://github.com/vmware-tanzu/velero/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.mbode maintainers.bryanasdev000 ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
index 3d62a1dcf29b..7675dc0de880 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -2,29 +2,45 @@
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.2.1";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bCvi5xIL6xAtQ9mgf4feh076sAmog/3eGBlgvcLXJyc=";
+    sha256 = "sha256-6sV2e/m0qVSRWgdvVZ9VxEL/J57nTcTClxHF5X8/8PQ=";
   };
 
   deleteVendor = true;
-  vendorSha256 = "sha256-ArebHOjP3zvpASVAoaPXpSbrG/jq+Jbx7+EaQ1uHSVY=";
+  vendorSha256 = "sha256-NPE3YHulqllWDGrxQgPmy/KKE7xFPOUorLQNIU8cP50=";
 
   nativeBuildInputs = [ go-bindata ];
 
   # GIT_{COMMIT,DIRTY} filled in blank to prevent trying to run git and ending up blank anyway
   buildPhase = ''
+    runHook preBuild
     make bin GIT_DESCRIBE="v${version}" GIT_COMMIT="" GIT_DIRTY=""
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     install -D waypoint $out/bin/waypoint
+    runHook postInstall
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    # `version` tries to write to ~/.config/waypoint
+    export HOME="$TMPDIR"
+
+    $out/bin/waypoint --help
+    $out/bin/waypoint version # | grep "Waypoint v${version}"
+    runHook postInstallCheck
+  '';
+
+  # Binary is static
   dontPatchELF = true;
   dontPatchShebangs = true;