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>
148 files changed
tree: 10996f86e5266da3f9c7660bdf866ab33b09c4f4
  1. app/
  2. bgpwtf/
  3. bzl/
  4. cluster/
  5. dc/
  6. devtools/
  7. doc/
  8. games/
  9. gcp/
  10. go/
  11. hswaw/
  12. kube/
  13. nix/
  14. ops/
  15. personal/
  16. third_party/
  17. tools/
  18. .bazelrc
  19. .bazelversion
  20. .gitignore
  21. BUILD
  22. ci_presubmit.sh
  23. COPYING
  24. default.nix
  25. env.fish
  26. env.sh
  27. go.mod
  28. go.sum
  29. hackdoc.toml
  30. OWNERS
  31. README.md
  32. shell.nix
  33. WORKSPACE
README.md

hscloud is the main monorepo of the Warsaw Hackerspace infrastructure code.

Getting started

See //doc/codelabs for tutorials on how to use hscloud.

If you want to browse the source of hscloud in a web browser, use cs.hackerspace.pl.

If you want some other help, talk to q3k, informatic or your therapist.

Directory Structure

Directories you should care about:

  • app: external services that we host that are somewhat universal: matrix, covid-formity, etc.
  • bgpwtf: code related to our little ISP
  • cluster: code related to our Kubernetes cluster (k0.hswaw.net)
  • dc: code related to datacenter automation
  • devtools: code related to developer tooling, like gerrit or hackdoc
  • doc: high-level documentation that doesn't fit anywhere else, ie. codelabs
  • hswaw: Warsaw Hackerspace specific/internal services. The line between this and app is unfortunately blurry.
  • personal: user's personal (experimental) directories
  • kube, go: code specific to languages but general to the whole of hscloud

Licensing

Unless noted otherwise, code in hscloud is licensed under the BSD 0-clause license - see COPYING.