Merge pull request #64242 from kampka/refactor_kops

kops: restructure package to maintain multiple versions in the future

authored by zimbatm.tngl.sh and committed by GitHub 8b772254 d109f684

+58 -35
+52 -34
pkgs/applications/networking/cluster/kops/default.nix
··· 1 - { stdenv, buildGoPackage, fetchFromGitHub, go-bindata }: 1 + { stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata }: 2 2 3 - buildGoPackage rec { 4 - name = "kops-${version}"; 5 - version = "1.12.1"; 6 - 3 + let 7 4 goPackagePath = "k8s.io/kops"; 8 5 9 - src = fetchFromGitHub { 10 - rev = version; 11 - owner = "kubernetes"; 12 - repo = "kops"; 13 - sha256 = "09rmgazdrmnh1lqaayzfbn0ld7mbj9whihs9ijv5gf6si9p0ml9y"; 14 - }; 6 + generic = { version, sha256, ...}@attrs: 7 + let attrs' = builtins.removeAttrs attrs ["version" "sha256"] ; in 8 + buildGoPackage { 9 + name = "kops-${version}"; 15 10 16 - buildInputs = [go-bindata]; 17 - subPackages = ["cmd/kops"]; 11 + inherit goPackagePath; 18 12 19 - buildFlagsArray = '' 20 - -ldflags= 21 - -X k8s.io/kops.Version=${version} 22 - -X k8s.io/kops.GitVersion=${version} 23 - ''; 13 + src = fetchFromGitHub { 14 + rev = version; 15 + owner = "kubernetes"; 16 + repo = "kops"; 17 + inherit sha256; 18 + }; 24 19 25 - preBuild = '' 26 - (cd go/src/k8s.io/kops 27 - go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...) 28 - ''; 20 + buildInputs = [go-bindata]; 21 + subPackages = ["cmd/kops"]; 29 22 30 - postInstall = '' 31 - mkdir -p $bin/share/bash-completion/completions 32 - mkdir -p $bin/share/zsh/site-functions 33 - $bin/bin/kops completion bash > $bin/share/bash-completion/completions/kops 34 - $bin/bin/kops completion zsh > $bin/share/zsh/site-functions/_kops 35 - ''; 23 + buildFlagsArray = '' 24 + -ldflags= 25 + -X k8s.io/kops.Version=${version} 26 + -X k8s.io/kops.GitVersion=${version} 27 + ''; 36 28 37 - meta = with stdenv.lib; { 38 - description = "Easiest way to get a production Kubernetes up and running"; 39 - homepage = https://github.com/kubernetes/kops; 40 - license = licenses.asl20; 41 - maintainers = with maintainers; [offline zimbatm]; 42 - platforms = platforms.unix; 29 + preBuild = '' 30 + (cd go/src/k8s.io/kops 31 + go-bindata -o upup/models/bindata.go -pkg models -prefix upup/models/ upup/models/...) 32 + ''; 33 + 34 + postInstall = '' 35 + mkdir -p $bin/share/bash-completion/completions 36 + mkdir -p $bin/share/zsh/site-functions 37 + $bin/bin/kops completion bash > $bin/share/bash-completion/completions/kops 38 + $bin/bin/kops completion zsh > $bin/share/zsh/site-functions/_kops 39 + ''; 40 + 41 + meta = with stdenv.lib; { 42 + description = "Easiest way to get a production Kubernetes up and running"; 43 + homepage = https://github.com/kubernetes/kops; 44 + license = licenses.asl20; 45 + maintainers = with maintainers; [offline zimbatm]; 46 + platforms = platforms.unix; 47 + }; 48 + } // attrs'; 49 + in rec { 50 + 51 + mkKops = generic; 52 + 53 + kops_1_12 = mkKops { 54 + version = "1.12.3"; 55 + sha256 = "0rpbaz54l5v1z7ab5kpxcb4jyakkl5ysgz1sxajqmw2d6dvf7xly"; 56 + }; 57 + 58 + kops_1_13 = mkKops { 59 + version = "1.13.0"; 60 + sha256 = "04kbbg3gqzwzzzq1lmnpw2gqky3pfwfk7pc0laxv2yssk9wac5k1"; 43 61 }; 44 62 }
+6 -1
pkgs/top-level/all-packages.nix
··· 23635 23635 23636 23636 kontemplate = callPackage ../applications/networking/cluster/kontemplate { }; 23637 23637 23638 - kops = callPackage ../applications/networking/cluster/kops { }; 23638 + inherit (callPackage ../applications/networking/cluster/kops {}) 23639 + mkKops 23640 + kops_1_12 23641 + kops_1_13 23642 + ; 23643 + kops = kops_1_13; 23639 23644 23640 23645 lguf-brightness = callPackage ../misc/lguf-brightness { }; 23641 23646