1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- { config, pkgs, ... }:
- let
- buildBinPackage = options: pkgs.stdenv.mkDerivation {
- inherit (options) pname version;
- src = pkgs.fetchurl {
- inherit (options) url sha256;
- };
- unpackPhase = if options ? "binPath" then "unpackFile $src" else ":";
- installPhase = let
- binPath = if options ? "binPath" then options.binPath else "$src";
- completionCommands = if options ? hasCompletion then ''
- $out/bin/${options.pname} completion bash > $out/share/bash-completion/completions/${options.pname}
- $out/bin/${options.pname} completion zsh > $out/share/zsh/site-functions/_${options.pname}
- '' else "";
- in ''
- mkdir -p $out/bin $out/share/bash-completion/completions $out/share/zsh/site-functions
- cp ${binPath} $out/bin/${options.pname}
- chmod +x $out/bin/${options.pname}
- ${completionCommands}
- '';
- };
- argocd = buildBinPackage rec {
- pname = "argocd";
- version = "1.3.0";
- url = "https://github.com/argoproj/argo-cd/releases/download/v${version}/argocd-linux-amd64";
- sha256 = "1mspgjipalngbjl9rdi2pyvq3g8nh4w2sq5isz87l7fkj4cy4qvk";
- hasCompletion = true;
- };
- helm = buildBinPackage rec {
- pname = "helm";
- version = "3.0.0";
- url = "https://get.helm.sh/helm-v${version}-linux-amd64.tar.gz";
- sha256 = "10e1fdcca263062b1d7b2cb93a924be1ef3dd6c381263d8151dd1a20a3d8c0dc";
- binPath = "linux-amd64/helm";
- hasCompletion = true;
- };
- eksctl = buildBinPackage rec {
- pname = "eksctl";
- version = "0.10.2";
- url = "https://github.com/weaveworks/eksctl/releases/download/${version}/eksctl_Linux_amd64.tar.gz";
- sha256 = "d3e70cd101ca4756ca9b2fbbeb6edcf580ae4783d80004c8847fa177e7d32e03";
- binPath = "eksctl";
- hasCompletion = true;
- };
- k9s = buildBinPackage rec {
- pname = "k9s";
- version = "0.9.3";
- url = "https://github.com/derailed/k9s/releases/download/${version}/k9s_${version}_Linux_x86_64.tar.gz";
- sha256 = "af3608517684e59de94573ad123486edd6f392c8c319ddbde6223d3ac2d37bd9";
- binPath = "k9s";
- };
- kustomize = buildBinPackage rec {
- pname = "kustomize";
- version = "3.2.1";
- url = "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${version}/kustomize_kustomize.v${version}_linux_amd64";
- sha256 = "a91b38778945e8a63fe70bc7522703a94c1d572d5dcee245e96647359e1fd04b";
- };
- kubectl-argo-rollouts = buildBinPackage rec {
- pname = "kubectl-argo-rollouts";
- version = "0.6.0";
- url = "https://github.com/argoproj/argo-rollouts/releases/download/v${version}/kubectl-argo-rollouts-linux-amd64";
- sha256 = "1cad7038l2jpmkr1gn8293f3vg4jbypqxilix6qcvfdqkxda602p";
- };
- velero = buildBinPackage rec {
- pname = "velero";
- version = "1.2.0";
- url = "https://github.com/vmware-tanzu/velero/releases/download/v${version}/velero-v${version}-linux-amd64.tar.gz";
- sha256 = "4080a37b487a859b5bba8391e965267cd0fe29cd67fd070b6f695fed45619e2c";
- binPath = "velero-v${version}-linux-amd64/velero";
- };
- in {
- environment.systemPackages = with pkgs; [
- kubectl
- kubectx
- kops
- argocd
- helm
- eksctl
- k9s
- kustomize
- kubectl-argo-rollouts
- aws-iam-authenticator
- velero
- ];
- }
|