go: re-do the entire thing

This is a mega-change, but attempting to split this up further is
probably not worth the effort.

Summary:

1. Bump up bazel, rules_go, and others.
2. Switch to new go target naming (bye bye go_default_library)
3. Move go deps to go.mod/go.sum, use make gazelle generate from that
4. Bump up Python deps a bit

And also whatever was required to actually get things to work - loads of
small useless changes.

Tested to work on NixOS and Ubuntu 20.04:

   $ bazel build //...
   $ bazel test //...

Change-Id: I8364bdaa1406b9ae4d0385a6b607f3e7989f98a9
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1583
Reviewed-by: q3k <q3k@hackerspace.pl>
diff --git a/cluster/prodvider/BUILD.bazel b/cluster/prodvider/BUILD.bazel
index c462541..ff7f64b 100644
--- a/cluster/prodvider/BUILD.bazel
+++ b/cluster/prodvider/BUILD.bazel
@@ -2,7 +2,7 @@
 load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
 
 go_library(
-    name = "go_default_library",
+    name = "prodvider_lib",
     srcs = [
         "certs.go",
         "crdb.go",
@@ -14,39 +14,39 @@
     importpath = "code.hackerspace.pl/hscloud/cluster/prodvider",
     visibility = ["//visibility:private"],
     deps = [
-        "//cluster/prodvider/proto:go_default_library",
-        "@com_github_cloudflare_cfssl//config:go_default_library",
-        "@com_github_cloudflare_cfssl//csr:go_default_library",
-        "@com_github_cloudflare_cfssl//helpers:go_default_library",
-        "@com_github_cloudflare_cfssl//signer:go_default_library",
-        "@com_github_cloudflare_cfssl//signer/local:go_default_library",
-        "@com_github_golang_glog//:go_default_library",
-        "@in_gopkg_ldap_v3//:go_default_library",
-        "@io_k8s_api//core/v1:go_default_library",
-        "@io_k8s_api//rbac/v1:go_default_library",
-        "@io_k8s_apimachinery//pkg/api/errors:go_default_library",
-        "@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
-        "@io_k8s_client_go//kubernetes:go_default_library",
-        "@io_k8s_client_go//rest:go_default_library",
+        "//cluster/prodvider/proto",
+        "@com_github_cloudflare_cfssl//config",
+        "@com_github_cloudflare_cfssl//csr",
+        "@com_github_cloudflare_cfssl//helpers",
+        "@com_github_cloudflare_cfssl//signer",
+        "@com_github_cloudflare_cfssl//signer/local",
+        "@com_github_go_ldap_ldap_v3//:ldap",
+        "@com_github_golang_glog//:glog",
+        "@io_k8s_api//core/v1:core",
+        "@io_k8s_api//rbac/v1:rbac",
+        "@io_k8s_apimachinery//pkg/api/errors",
+        "@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
+        "@io_k8s_client_go//kubernetes",
+        "@io_k8s_client_go//rest",
         "@org_golang_google_grpc//:go_default_library",
-        "@org_golang_google_grpc//codes:go_default_library",
-        "@org_golang_google_grpc//credentials:go_default_library",
-        "@org_golang_google_grpc//status:go_default_library",
+        "@org_golang_google_grpc//codes",
+        "@org_golang_google_grpc//credentials",
+        "@org_golang_google_grpc//status",
     ],
 )
 
 go_binary(
     name = "prodvider",
-    embed = [":go_default_library"],
+    embed = [":prodvider_lib"],
     visibility = ["//visibility:public"],
 )
 
 container_layer(
     name = "layer_bin",
+    directory = "/cluster/prodvider/",
     files = [
         ":prodvider",
     ],
-    directory = "/cluster/prodvider/",
 )
 
 container_image(
@@ -59,8 +59,8 @@
 
 container_push(
     name = "push",
-    image = ":runtime",
     format = "Docker",
+    image = ":runtime",
     registry = "registry.k0.hswaw.net",
     repository = "q3k/prodvider",
     tag = "1680303245",
diff --git a/cluster/prodvider/crdb.go b/cluster/prodvider/crdb.go
index 348754c..13ff199 100644
--- a/cluster/prodvider/crdb.go
+++ b/cluster/prodvider/crdb.go
@@ -62,7 +62,7 @@
 	signerCert, _ := s.Certificate("", "")
 	req := &csr.CertificateRequest{
 		CN: username,
-		KeyRequest: &csr.BasicKeyRequest{
+		KeyRequest: &csr.KeyRequest{
 			A: "rsa",
 			S: 4096,
 		},
diff --git a/cluster/prodvider/hspki.go b/cluster/prodvider/hspki.go
index fabf84d..e3019c6 100644
--- a/cluster/prodvider/hspki.go
+++ b/cluster/prodvider/hspki.go
@@ -60,7 +60,7 @@
 	signerCert, _ := s.Certificate("", "")
 	req := &csr.CertificateRequest{
 		CN: principal,
-		KeyRequest: &csr.BasicKeyRequest{
+		KeyRequest: &csr.KeyRequest{
 			A: "rsa",
 			S: 4096,
 		},
diff --git a/cluster/prodvider/proto/BUILD.bazel b/cluster/prodvider/proto/BUILD.bazel
index 0817dfb..4abcd01 100644
--- a/cluster/prodvider/proto/BUILD.bazel
+++ b/cluster/prodvider/proto/BUILD.bazel
@@ -17,7 +17,7 @@
 )
 
 go_library(
-    name = "go_default_library",
+    name = "proto",
     embed = [":proto_go_proto"],
     importpath = "code.hackerspace.pl/hscloud/cluster/prodvider/proto",
     visibility = ["//visibility:public"],
diff --git a/cluster/prodvider/service.go b/cluster/prodvider/service.go
index 19f70ed..21b5f57 100644
--- a/cluster/prodvider/service.go
+++ b/cluster/prodvider/service.go
@@ -7,10 +7,10 @@
 	"regexp"
 	"strings"
 
+	ldap "github.com/go-ldap/ldap/v3"
 	"github.com/golang/glog"
 	"google.golang.org/grpc/codes"
 	"google.golang.org/grpc/status"
-	ldap "gopkg.in/ldap.v3"
 
 	pb "code.hackerspace.pl/hscloud/cluster/prodvider/proto"
 )