diff --git a/flake.lock b/flake.lock index 1e43105..4d4308f 100644 --- a/flake.lock +++ b/flake.lock @@ -55,6 +55,29 @@ "type": "github" } }, + "gomod2nix": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1694616124, + "narHash": "sha256-c49BVhQKw3XDRgt+y+uPAbArtgUlMXCET6VxEBmzHXE=", + "owner": "nix-community", + "repo": "gomod2nix", + "rev": "f95720e89af6165c8c0aa77f180461fe786f3c21", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "gomod2nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -222,6 +245,7 @@ "root": { "inputs": { "flake-utils": "flake-utils", + "gomod2nix": "gomod2nix", "home-manager": "home-manager", "krops": "krops", "nix-pre-commit-hooks": "nix-pre-commit-hooks", diff --git a/flake.nix b/flake.nix index 3f94e05..2d5ee3c 100644 --- a/flake.nix +++ b/flake.nix @@ -28,12 +28,22 @@ nixpkgs.follows = "nixpkgs"; }; }; + + gomod2nix = { + url = "github:nix-community/gomod2nix"; + inputs = { + flake-utils.follows = "flake-utils"; + nixpkgs.follows = "nixpkgs"; + }; + }; + }; outputs = { self , nixpkgs , flake-utils , krops + , gomod2nix , home-manager , nur , nix-pre-commit-hooks @@ -124,7 +134,7 @@ }; }); }) // { - overlays.default = import ./pkgs; + overlays.default = import ./pkgs inputs; nixosConfigurations = nixpkgs.lib.mapAttrs (hostname: { system diff --git a/hosts/magnesium/secrets.yaml b/hosts/magnesium/secrets.yaml index fc00ca5..32a9318 100644 --- a/hosts/magnesium/secrets.yaml +++ b/hosts/magnesium/secrets.yaml @@ -1,5 +1,6 @@ wireguard_key_hetzner-ha: ENC[AES256_GCM,data:HEW+EalHg6/mq7pRKZkasGz0nqbkSppkf0H/uV5QMJnWwKw9a9W21Y77OSw=,iv:OA6yml1T5kVafX0RYd0Es7DHcGjJazUxP2M6a5Pwkag=,tag:lX5UPIseIQ136HLrHbzZyw==,type:str] turn-static-auth-secret: ENC[AES256_GCM,data:rzhixUemFPwKj1BcVPZd7KtUO9OA6A2R4qEQ1BZGVG0=,iv:uYHYe4Cywxovt3b/Ho1tQVHrpgVic+AKh9AjYMYSZcM=,tag:rr8RW/if06t38GpZCYQB4w==,type:str] +gitlab-runner_fablab-nea-hcloud-labsync: ENC[AES256_GCM,data:+znVO8cQxjDdhch7oUALZvt84iJmWnAx6lTM0+WGkGtaRWTCTPjgnst5waSJpw/Oysrd1PkXZKmLHyHuU7K/CHQij7sWH50G3ZcUum58klJc3dCPztlrLpDVHeSwyYiLpsqkQTfjqLPfrMkxuxBgTEVXlq2ZnFuyOGbFx9hubPxLeyQKakiW3qZWGjbFXYAps7Gl61AVdKJj3y1otX2JbCjG9x2i6FHZpl5ywwQCjKNM,iv:7v+I/oJtWDap6PNIJ4Qm3Si9dGs7a79SaMhnr/tbe1A=,tag:7jgoLtdWAEKMkWoXZ10owA==,type:str] sops: kms: [] gcp_kms: [] @@ -15,8 +16,8 @@ sops: Vlk3Y1luTTg3bkpqNTNPUGlNYmNtMW8K9dEUwAuzvDZZoVi8FPZQ7/h75EV0L+VM MlTGfEt38Hi7EOw+yfXvXYHse/OKypwcrPiJDT6IT/E+O9BJCjPKCA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2023-07-10T19:12:04Z" - mac: ENC[AES256_GCM,data:cDwrW1odloAedY7tdKLPg52UTehlTrs3+lAH0ksaGGDXzQCsVNlfzR86SRGQY2s98cu7+9j5azhWSU9slDZcTIk4VWL2i8ZtVpD8KFtut0WiwWaGf2/KLe80GGw3lr4Rm491YDvv7JcUsEuCG3lAQFZzAlZcfl0faFpzYvpTk30=,iv:yeyRjURArUaG0HzcVP0Wm9n0oVHb+u4zNdaQbrC+EaM=,tag:9uFNd3CSSFjToeawBtMNHg==,type:str] + lastmodified: "2023-10-13T18:27:53Z" + mac: ENC[AES256_GCM,data:8DPq0aGtoiMOdFyD+0NKGZ9OrDi1VXXS/6y3tH4DwlkLDpDqb2QsxunTDwoHlILQBu300nB2lUeGuGlp4/0FimFdiddlu2Ljq8vLh3wt+sz660RgfeaIcgWLSHtulyNIIQJ91wzzgbRADafFRCavVFvJALnIgeE+QDQa4ybLus0=,iv:T3xwELbHbqDszIkGs8BeJn9WV0LjagF1T+HLxCR/Aeo=,tag:NAIBPTRcnRtkGKhpWpe5Pw==,type:str] pgp: - created_at: "2023-06-22T12:44:23Z" enc: | diff --git a/hosts/magnesium/services/default.nix b/hosts/magnesium/services/default.nix index 4039a4d..0fd2a7f 100644 --- a/hosts/magnesium/services/default.nix +++ b/hosts/magnesium/services/default.nix @@ -1,6 +1,7 @@ { imports = [ ./coturn.nix + ./gitlab-runner.nix ./mosquitto.nix ./public-ip-tunnel.nix ./webserver.nix diff --git a/hosts/magnesium/services/gitlab-runner.nix b/hosts/magnesium/services/gitlab-runner.nix new file mode 100644 index 0000000..9f920eb --- /dev/null +++ b/hosts/magnesium/services/gitlab-runner.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +{ + sops.secrets.gitlab-runner_fablab-nea-hcloud-labsync = { + sopsFile = ../secrets.yaml; + }; + services.gitlab-runner = { + enable = true; + extraPackages = [ + #(pkgs.writeShellScriptBin "docker-machine" '' + # exec ${pkgs.docker-machine-gitlab}/bin/docker-machine --debug "$@" + #'') + pkgs.docker-machine-gitlab + ]; + #settings.log_level = "debug"; + services."fablab-nea-hcloud-labsync" = { + description = "FabLab NEA Hetzner Cloud - labsync image builder"; + limit = 5; + executor = "docker+machine"; + registrationConfigFile = config.sops.secrets.gitlab-runner_fablab-nea-hcloud-labsync.path; + dockerImage = "quay.io/official-images/alpine:latest"; + dockerPrivileged = true; + tagList = [ + "labsync-image" + ]; + maximumTimeout = 6 * 60 * 60; + registrationFlags = [ + "--docker-tlsverify" + "--machine-idle-nodes 0" + "--machine-idle-scale-factor 0.0" + "--machine-idle-count-min 0" + "--machine-idle-time 900" + "--machine-max-builds 100" + "--machine-machine-driver hetzner" + "--machine-machine-name gitlabrunner-%s" + ] ++ (map (o: "--machine-machine-options=" + o) [ + "hetzner-image=debian-12" + "hetzner-server-type=cx11" + "hetzner-server-location=nbg1" + ]); + }; + }; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index 08aa561..f3fd495 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,10 +1,16 @@ +{ ... }@inputs: + final: prev: let - inherit (prev) callPackage; + inherit (prev) callPackage system; in { ariang = callPackage ./ariang { }; asterisk-sounds-de = callPackage ./asterisk/sounds-de.nix { }; + docker-machine-driver-hetzner = callPackage ./docker-machine-driver-hetzner { + inherit (inputs.gomod2nix.legacyPackages.${system}) buildGoApplication; + }; + docker-machine-gitlab = callPackage ./docker-machine-gitlab { }; fpvout = callPackage ./fpvout { }; mute-indicator = callPackage ./mute-indicator { }; pretix = callPackage ./pretix/pretix.nix { }; diff --git a/pkgs/docker-machine-driver-hetzner/default.nix b/pkgs/docker-machine-driver-hetzner/default.nix new file mode 100644 index 0000000..83cfd12 --- /dev/null +++ b/pkgs/docker-machine-driver-hetzner/default.nix @@ -0,0 +1,15 @@ +{ lib, stdenv, buildGoApplication, fetchFromGitHub }: + +buildGoApplication rec { + pname = "docker-machine-driver-hetzner"; + version = "5.0.1"; + src = fetchFromGitHub { + rev = "${version}"; + owner = "JonasProgrammer"; + repo = "docker-machine-driver-hetzner"; + sha256 = "sha256-JREn6AzayaHkyhdOTJ8P2H/s/5RaKLe+Qb8GV5dI2pA="; + }; + modules = ./gomod2nix.toml; + #nativeBuildInputs = [ pkg-config ]; + #buildInputs = [ ]; +} diff --git a/pkgs/docker-machine-driver-hetzner/gomod2nix.toml b/pkgs/docker-machine-driver-hetzner/gomod2nix.toml new file mode 100644 index 0000000..d38264c --- /dev/null +++ b/pkgs/docker-machine-driver-hetzner/gomod2nix.toml @@ -0,0 +1,73 @@ +schema = 3 + +[mod] + [mod."github.com/Azure/go-ansiterm"] + version = "v0.0.0-20230124172434-306776ec8161" + hash = "sha256-17hCoOE3HBv6cjpcukfBS6/ULgTuoUZ7RNbi5korH2M=" + [mod."github.com/beorn7/perks"] + version = "v1.0.1" + hash = "sha256-h75GUqfwJKngCJQVE5Ao5wnO3cfKD9lSIteoLp/3xJ4=" + [mod."github.com/cespare/xxhash/v2"] + version = "v2.2.0" + hash = "sha256-nPufwYQfTkyrEkbBrpqM3C2vnMxfIz6tAaBmiUP7vd4=" + [mod."github.com/codegangsta/cli"] + version = "v1.22.12" + hash = "sha256-FTdBlhQvyDhgrDcSJDxgSLS/cBSP8B1BC/AxGA9Lyss=" + replaced = "github.com/urfave/cli" + [mod."github.com/cpuguy83/go-md2man/v2"] + version = "v2.0.2" + hash = "sha256-OvWCtDsVrYzM84SMQwOXPLBxnWnMC1hDm+KiI6zm3uk=" + [mod."github.com/docker/docker"] + version = "v20.10.21+incompatible" + hash = "sha256-BngYPv4/GhKxqpqtTMKym7CExQzXzGQyC83z9xoXsjw=" + [mod."github.com/docker/machine"] + version = "v0.16.2" + hash = "sha256-DGr0g+SKtZB7Dkg2V9bGQqMD1rBT44A4dV7yeuXxrH0=" + [mod."github.com/golang/protobuf"] + version = "v1.5.3" + hash = "sha256-svogITcP4orUIsJFjMtp+Uv1+fKJv2Q5Zwf2dMqnpOQ=" + [mod."github.com/hetznercloud/hcloud-go/v2"] + version = "v2.2.0" + hash = "sha256-4sOfDyy/VP/LSoIm/ydtJKxKljtfLCC7ZzgWh9NPuAc=" + [mod."github.com/matttproud/golang_protobuf_extensions"] + version = "v1.0.4" + hash = "sha256-uovu7OycdeZ2oYQ7FhVxLey5ZX3T0FzShaRldndyGvc=" + [mod."github.com/moby/term"] + version = "v0.0.0-20221205130635-1aeaba878587" + hash = "sha256-wX2ftzjEHzltzN68CsYVXMiaLPNU7V2phVyyPKv3mn8=" + [mod."github.com/pkg/errors"] + version = "v0.9.1" + hash = "sha256-mNfQtcrQmu3sNg/7IwiieKWOgFQOVVe2yXgKBpe/wZw=" + [mod."github.com/prometheus/client_golang"] + version = "v1.16.0" + hash = "sha256-P/b4/8m1ztF0fCLSJ+eRXN74Bncx2vjOJx7nFl2QEg4=" + [mod."github.com/prometheus/client_model"] + version = "v0.3.0" + hash = "sha256-vP+miJfsoK5UG9eug8z/bhAMj3bwg66T2vIh8WHoOKU=" + [mod."github.com/prometheus/common"] + version = "v0.42.0" + hash = "sha256-dJqoPZKtY2umWFWwMeRYY9I2JaFlpcMX4atkEcN5+hs=" + [mod."github.com/prometheus/procfs"] + version = "v0.10.1" + hash = "sha256-EJ8q8wux4964WE4X7UkHb+MXjLhX4TROJaoLIQvD/eQ=" + [mod."github.com/russross/blackfriday/v2"] + version = "v2.1.0" + hash = "sha256-R+84l1si8az5yDqd5CYcFrTyNZ1eSYlpXKq6nFt4OTQ=" + [mod."golang.org/x/crypto"] + version = "v0.12.0" + hash = "sha256-Wes72EA9ICTG8o0nEYWZk9xjpqlniorFeY6o26GExns=" + [mod."golang.org/x/net"] + version = "v0.12.0" + hash = "sha256-zQZBj42+wLLxXwS/e+KNbu8+SukMDxxW23WSi5XQXAA=" + [mod."golang.org/x/sys"] + version = "v0.11.0" + hash = "sha256-g/LjhABK2c/u6v7M2aAIrHvZjmx/ikGHkef86775N38=" + [mod."golang.org/x/term"] + version = "v0.11.0" + hash = "sha256-muSv/d8Qpl+NXiOB01n6LeFEzC+hrlGviDdfu+6QdQ4=" + [mod."golang.org/x/text"] + version = "v0.12.0" + hash = "sha256-aNQaW3EgCK9ehpnBzIAkZX6TmiUU1S175YlJUH7P5Qg=" + [mod."google.golang.org/protobuf"] + version = "v1.30.0" + hash = "sha256-Y07NKhSuJQ2w7F7MAINQyBf+/hdMHOrxwA3B4ljQQKs=" diff --git a/pkgs/docker-machine-gitlab/default.nix b/pkgs/docker-machine-gitlab/default.nix new file mode 100644 index 0000000..48469ea --- /dev/null +++ b/pkgs/docker-machine-gitlab/default.nix @@ -0,0 +1,35 @@ +{ lib, buildGoPackage, fetchFromGitLab, installShellFiles, docker-machine-driver-hetzner, makeWrapper, openssh }: + +buildGoPackage rec { + pname = "docker-machine-gitlab"; + version = "0.16.2-gitlab.22"; + + goPackagePath = "github.com/docker/machine"; + + src = fetchFromGitLab { + rev = "v${version}"; + group = "gitlab-org"; + owner = "ci-cd"; + repo = "docker-machine"; + sha256 = "sha256-WYnaY/0FJzXDiECms1gGNR1jN4DUQ3s296KG9r1c2io="; + }; + + nativeBuildInputs = [ + docker-machine-driver-hetzner + installShellFiles + makeWrapper + openssh + ]; + + postInstall = '' + pushd go/src/${goPackagePath}/contrib/completion + installShellCompletion --bash bash/* + installShellCompletion --zsh zsh/* + popd + wrapProgram $out/bin/docker-machine \ + --prefix PATH : ${lib.makeBinPath [ + docker-machine-driver-hetzner + openssh + ]} + ''; +} diff --git a/pkgs/docker-machine-gitlab/deps.nix b/pkgs/docker-machine-gitlab/deps.nix new file mode 100644 index 0000000..85bb418 --- /dev/null +++ b/pkgs/docker-machine-gitlab/deps.nix @@ -0,0 +1,408 @@ +# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix) +[ + { + goPackagePath = "cloud.google.com/go"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/google-cloud-go"; + rev = "5176ba42f92af23d3c0e7a0da2e196c311a956f0"; + sha256 = "0k8k03q95mhsxw3m9s1vfn8scw0c52sb9gnr5sjhrh0x49dg4snx"; + }; + } + { + goPackagePath = "github.com/Azure/azure-sdk-for-go"; + fetch = { + type = "git"; + url = "https://github.com/Azure/azure-sdk-for-go"; + rev = "91f3d4a4d024e3c0d4d9412916d05cf84504a616"; + sha256 = "1j79nrdbc1smh4s2gbh3hg7w3lffr997gjf65sd1w4vbnc78wzy0"; + }; + } + { + goPackagePath = "github.com/Azure/go-ansiterm"; + fetch = { + type = "git"; + url = "https://github.com/Azure/go-ansiterm"; + rev = "d6e3b3328b783f23731bc4d058875b0371ff8109"; + sha256 = "010khrkhkf9cxlvvb6ncqv4c1qcdmpbz9jn38g4fxf4xsma8xx1q"; + }; + } + { + goPackagePath = "github.com/Azure/go-autorest"; + fetch = { + type = "git"; + url = "https://github.com/Azure/go-autorest"; + rev = "0781901f19f1e7db3034d97ec57af753db0bf808"; + sha256 = "0gnp6ca5wcrr6cj6l0pvwq1jf6sbbx36agkm4m493cqrxkb4iyy8"; + }; + } + { + goPackagePath = "github.com/aws/aws-sdk-go"; + fetch = { + type = "git"; + url = "https://github.com/aws/aws-sdk-go"; + rev = "f259b6fac27528dd491fad0bc9621a0e5f77b900"; + sha256 = "0fmhq0x10c82sl0i2n6xilqva49f9ps0mg0zqyi4rf1qwhv4dg8p"; + }; + } + { + goPackagePath = "github.com/bugsnag/bugsnag-go"; + fetch = { + type = "git"; + url = "https://github.com/bugsnag/bugsnag-go"; + rev = "02e952891c52fbcb15f113d90633897355783b6e"; + sha256 = "0jrzmj17yilqbdw8fdhzp30jdjfq7q1x0d9v0ljkb0wvpnj1hjhg"; + }; + } + { + goPackagePath = "github.com/bugsnag/osext"; + fetch = { + type = "git"; + url = "https://github.com/bugsnag/osext"; + rev = "0dd3f918b21bec95ace9dc86c7e70266cfc5c702"; + sha256 = "02pczqml6p1mnfdrygm3rs02g0r65qx8v1bi3x24dx8wv9dr5y23"; + }; + } + { + goPackagePath = "github.com/bugsnag/panicwrap"; + fetch = { + type = "git"; + url = "https://github.com/bugsnag/panicwrap"; + rev = "aceac81c6e2f55f23844821679a0553b545e91df"; + sha256 = "1nwxpsjs3zp3kd089iaywiv39agh5lgaj5nvij716zsdi388g2mb"; + }; + } + { + goPackagePath = "github.com/cenkalti/backoff"; + fetch = { + type = "git"; + url = "https://github.com/cenkalti/backoff"; + rev = "9831e1e25c874e0a0601b6dc43641071414eec7a"; + sha256 = "0i2ykb3d0pvkna9xa4j1pha9nm13j5rwdxykcgxxs5g52dy0299b"; + }; + } + { + goPackagePath = "github.com/codegangsta/cli"; + fetch = { + type = "git"; + url = "https://github.com/codegangsta/cli"; + rev = "0302d3914d2a6ad61404584cdae6e6dbc9c03599"; + sha256 = "1nln4jbzfmkw9wlgv4wcvwjm4n6v75fyxza0lppx4xl1via81jqg"; + }; + } + { + goPackagePath = "github.com/davecgh/go-spew"; + fetch = { + type = "git"; + url = "https://github.com/davecgh/go-spew"; + rev = "5215b55f46b2b919f50a1df0eaa5886afe4e3b3d"; + sha256 = "15h9kl73rdbzlfmsdxp13jja5gs7sknvqkpq2qizq3qv3nr1x8dk"; + }; + } + { + goPackagePath = "github.com/dgrijalva/jwt-go"; + fetch = { + type = "git"; + url = "https://github.com/dgrijalva/jwt-go"; + rev = "24c63f56522a87ec5339cc3567883f1039378fdb"; + sha256 = "1xjb3cj9qa66dk6sfrlggfm4a66qirqrp4qds90xzjj5sx51j4zk"; + }; + } + { + goPackagePath = "github.com/digitalocean/godo"; + fetch = { + type = "git"; + url = "https://github.com/digitalocean/godo"; + rev = "d59ed2fe842bbb3cbee91c9df8bb7659dc9ee86f"; + sha256 = "1pp4pz5jgfyf7ms5s51gc748i2nfp5cavz9v5zkx6g7yq7sfhkmb"; + }; + } + { + goPackagePath = "github.com/docker/docker"; + fetch = { + type = "git"; + url = "https://github.com/docker/docker"; + rev = "093424bec097cdf51154255226cf999d6824633b"; + sha256 = "1kglkhrabsmvj0k5jsygahac2c1gc1srrb8qhpi5mjlrfh0zrq5h"; + }; + } + { + goPackagePath = "github.com/docker/go-units"; + fetch = { + type = "git"; + url = "https://github.com/docker/go-units"; + rev = "0bbddae09c5a5419a8c6dcdd7ff90da3d450393b"; + sha256 = "0z49jlz0jmsps7mpsl6f0yhb8kzg3darhkwkvgwf29g334627fix"; + }; + } + { + goPackagePath = "github.com/exoscale/egoscale"; + fetch = { + type = "git"; + url = "https://github.com/exoscale/egoscale"; + rev = "432a702ab7d709538572f9a2a42eaf0ca0691698"; + sha256 = "04gzpcp86vyyw7r0xnmh266gy2lzj0ymszzrz4i90w8q1n0liyqd"; + }; + } + { + goPackagePath = "github.com/golang/groupcache"; + fetch = { + type = "git"; + url = "https://github.com/golang/groupcache"; + rev = "8c9f03a8e57eb486e42badaed3fb287da51807ba"; + sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh"; + }; + } + { + goPackagePath = "github.com/golang/protobuf"; + fetch = { + type = "git"; + url = "https://github.com/golang/protobuf"; + rev = "ae97035608a719c7a1c1c41bed0ae0744bdb0c6f"; + sha256 = "1mh5fyim42dn821nsd3afnmgscrzzhn3h8rag635d2jnr23r1zhk"; + }; + } + { + goPackagePath = "github.com/google/go-querystring"; + fetch = { + type = "git"; + url = "https://github.com/google/go-querystring"; + rev = "30f7a39f4a218feb5325f3aebc60c32a572a8274"; + sha256 = "1zl8gkriksbdqxn4ijphh79blzfxncjdl2yqxh2v8an9880d2c42"; + }; + } + { + goPackagePath = "github.com/googleapis/gax-go"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/gax-go"; + rev = "bd5b16380fd03dc758d11cef74ba2e3bc8b0e8c2"; + sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx"; + }; + } + { + goPackagePath = "github.com/intel-go/cpuid"; + fetch = { + type = "git"; + url = "https://github.com/intel-go/cpuid"; + rev = "1a4a6f06a1c643c8fbd339bd61d980960627d09e"; + sha256 = "124i9l1i4ja3k1jq1pac6ric6z5q0n32gdbc252ix33l678lhsw8"; + }; + } + { + goPackagePath = "github.com/jinzhu/copier"; + fetch = { + type = "git"; + url = "https://github.com/jinzhu/copier"; + rev = "7e38e58719c33e0d44d585c4ab477a30f8cb82dd"; + sha256 = "03i7cz8aj42g0kp89myd0hdgzicyk0abfjxa7wcnpx5vlk6x0z0p"; + }; + } + { + goPackagePath = "github.com/jmespath/go-jmespath"; + fetch = { + type = "git"; + url = "https://github.com/jmespath/go-jmespath"; + rev = "c2b33e84"; + sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz"; + }; + } + { + goPackagePath = "github.com/mitchellh/mapstructure"; + fetch = { + type = "git"; + url = "https://github.com/mitchellh/mapstructure"; + rev = "740c764bc6149d3f1806231418adb9f52c11bcbf"; + sha256 = "0rlz93rmz465nr0wmzvq1n58yc0qdw7v1chr6zmj9jj9pix0a7cb"; + }; + } + { + goPackagePath = "github.com/pmezard/go-difflib"; + fetch = { + type = "git"; + url = "https://github.com/pmezard/go-difflib"; + rev = "792786c7400a136282c1664665ae0a8db921c6c2"; + sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; + }; + } + { + goPackagePath = "github.com/rackspace/gophercloud"; + fetch = { + type = "git"; + url = "https://github.com/rackspace/gophercloud"; + rev = "ce0f487f6747ab43c4e4404722df25349385bebd"; + sha256 = "1zr88fcinvlwb3ybimqnxd8fr7c076irp88cvkylm67kv3vfjm4x"; + }; + } + { + goPackagePath = "github.com/samalba/dockerclient"; + fetch = { + type = "git"; + url = "https://github.com/samalba/dockerclient"; + rev = "f661dd4754aa5c52da85d04b5871ee0e11f4b59c"; + sha256 = "0l8nklsnr45h9ng9la3hhrq7qhxqp9yma0fpppc1i5zg8r56rziv"; + }; + } + { + goPackagePath = "github.com/sirupsen/logrus"; + fetch = { + type = "git"; + url = "https://github.com/sirupsen/logrus"; + rev = "d682213848ed68c0a260ca37d6dd5ace8423f5ba"; + sha256 = "0nzyqwzx3k7nqfq8q7yv32gaf3ymq3bpwhkmw1hj2zakq5a93d8x"; + }; + } + { + goPackagePath = "github.com/skarademir/naturalsort"; + fetch = { + type = "git"; + url = "https://github.com/skarademir/naturalsort"; + rev = "69a5d87bef620f77ee8508db30c846b3b84b111e"; + sha256 = "00ibyghnqakbylwxfrlg9jfzgbsm5n73s5fsgr1rmsgdbyv4r5fj"; + }; + } + { + goPackagePath = "github.com/stretchr/objx"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/objx"; + rev = "1a9d0bb9f541897e62256577b352fdbc1fb4fd94"; + sha256 = "1n027ksls1rn1ja98kd0cd2kv1vwlzsl0d7xnh3yqf451vh0md50"; + }; + } + { + goPackagePath = "github.com/stretchr/testify"; + fetch = { + type = "git"; + url = "https://github.com/stretchr/testify"; + rev = "1f4a1643a57e798696635ea4c126e9127adb7d3c"; + sha256 = "0nam9d68rn8ha8ldif22kkgv6k6ph3y88fp26159wdrs63ca3bzl"; + }; + } + { + goPackagePath = "github.com/tent/http-link-go"; + fetch = { + type = "git"; + url = "https://github.com/tent/http-link-go"; + rev = "ac974c61c2f990f4115b119354b5e0b47550e888"; + sha256 = "1fph21b6vp4cm73fkkykffggi57m656x9fd1k369fr6jbvq5fffj"; + }; + } + { + goPackagePath = "github.com/vmware/govcloudair"; + fetch = { + type = "git"; + url = "https://github.com/vmware/govcloudair"; + rev = "66a23eaabc61518f91769939ff541886fe1dceef"; + sha256 = "0795k85j56kh35i94bjjk47bic4nmghnnkyh8cpjvpc1y09vf8zv"; + }; + } + { + goPackagePath = "github.com/vmware/govmomi"; + fetch = { + type = "git"; + url = "https://github.com/vmware/govmomi"; + rev = "9051bd6b44125d9472e0c148b5965692ab283d4a"; + sha256 = "0d8vsm6481746j3r446q5wgppnv2kvq522sd9896xvy32avxsrw3"; + }; + } + { + goPackagePath = "go.opencensus.io"; + fetch = { + type = "git"; + url = "https://github.com/census-instrumentation/opencensus-go"; + rev = "49838f207d61097fc0ebb8aeef306913388376ca"; + sha256 = "0gw4f7inf8y2ik00yfb36xganiq9rl4w2d1a41bsjqsh83ajz2km"; + }; + } + { + goPackagePath = "golang.org/x/crypto"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/crypto"; + rev = "51714a8c4ac1764f07ab4127d7f739351ced4759"; + sha256 = "1x1qj8lbf9034yw1m2hmlc2yp7lz4x3i45ky41ydpzpd0h8dfqnx"; + }; + } + { + goPackagePath = "golang.org/x/net"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/net"; + rev = "c8897c278d1087bda543ec7041384fcedc5e4036"; + sha256 = "0k52czlamank3nfzg47kxhj93gh1pyw8bhiwk29y2839xlvhpz9i"; + }; + } + { + goPackagePath = "golang.org/x/oauth2"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/oauth2"; + rev = "22b0adad7558c54bf49787666d8773cae1dd3e77"; + sha256 = "0vr8x9xk75qy1fgaw77dlgml0kp3llbig4c8cmyhydpd888gw2wr"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "49726bf1d181babaebde545fbf1353be26485fb0"; + sha256 = "1n1vmfz8alfa4chg4qppiybmnqqcrcrs3w3agbrjxmw02aj1csnj"; + }; + } + { + goPackagePath = "golang.org/x/text"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/text"; + rev = "75a595aef632b07c6eeaaa805adb6f0f66e4130e"; + sha256 = "082s9d7wnh1aa2v08g3h5z4if2f8hl4y01pb788qsvab9329lj0w"; + }; + } + { + goPackagePath = "google.golang.org/api"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/google-api-go-client"; + rev = "7fd7a5fcdd3f78a6c49556a5358164cb1405bd51"; + sha256 = "0vs0bnzljg5iib8x01sy49ndgsz3cl1sq53pvy3h6kzp7may0bpc"; + }; + } + { + goPackagePath = "google.golang.org/appengine"; + fetch = { + type = "git"; + url = "https://github.com/golang/appengine"; + rev = "6a436539be38c296a8075a871cc536686b458371"; + sha256 = "0fgxfpfb4mla89yk45rgpsmdkbjnb7ck8dkwc24x879bhpz545kh"; + }; + } + { + goPackagePath = "google.golang.org/genproto"; + fetch = { + type = "git"; + url = "https://github.com/googleapis/go-genproto"; + rev = "ab064af717059515c07699f55ae1133bf9cc7dcc"; + sha256 = "04wjhd8h9xvr3pkcdh7dqq4kz66lgk3dbzqilsm8612ic40xkf43"; + }; + } + { + goPackagePath = "google.golang.org/grpc"; + fetch = { + type = "git"; + url = "https://github.com/grpc/grpc-go"; + rev = "f74f0337644653eba7923908a4d7f79a4f3a267b"; + sha256 = "1m4xsfv3ysc84cwqxqqr61fs3d2w04f0q5xbdjijhczjixcxwh5i"; + }; + } + { + goPackagePath = "google.golang.org/protobuf"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/protobuf"; + rev = "3f7a61f89bb6813f89d981d1870ed68da0b3c3f1"; + sha256 = "0apfl42x166dh96zfq5kvv4b4ax9xljik6bq1mnvn2240ir3mc23"; + }; + } +]