1
0
Fork 0
Commit Graph

493 Commits (9736a6adc3054df4dcf500a949ea8641e300aa73)

Author SHA1 Message Date
q3k 9736a6adc3 OWNERS += implr
Change-Id: I41a2413ccc4a231e074b5f9ebe890c48b1fe14a9
2020-07-30 22:52:58 +02:00
q3k be89707ce1 bgpwtf/landing: import
This imports a snapshot of the current landing page (that used to be
versioned in a separate repository, but we want to pull into hscloud).

Change-Id: Ia98bca294ae64bfd57c4a4250d7d3a5a7e5f8145
2020-07-25 12:18:59 +02:00
q3k 5618a63278 app/matrix: disable password login in synapse
This should, according to a GH issue thread [1] fix some flows (like
session delete) with our CAS configuration.

Not deployed, untested.

[1] - https://github.com/matrix-org/synapse/issues/5667#issuecomment-632040218

Change-Id: Iaf041f07e26d1abfb92caba451ebfbbf899e9964
2020-07-17 11:12:57 +00:00
q3k ec221a0b85 app/matrix: bump synapse, riot-web
This has already been bumped in production, and this change makes it
reflect that.

This was supposed to fix iOS sign-in, but that didn't seem to have
worked.

Change-Id: I9278490e40b332a8439fdf1361f27df770b8cd9e
2020-07-17 12:50:53 +02:00
q3k 735ac9cc7f app/matrix: reflect current production status
At some point someone bumped appservice-irc to 0.17.1 without commiting
this to git. This fixes that, and also drive-by refactors the
appservice-irc image version to live next to all the other version
strings.

`kubecfg diff --diff-strategy=subset prod.jsonnet` now shows no diff.

Change-Id: I90a64d05cc72669de41fa68195672adca2eb37e8
2020-07-17 12:12:38 +02:00
implr 9fed3c95c7 implr/vpn: create
Change-Id: I2843ccb60d257ec10f305e8842a7ebb08c2b5e06
2020-07-09 15:13:42 +02:00
implr cae27ecd99 Replace rules_pip with rules_python; use bazel built upstream grpc
instead of Python packages

As usual with Python sadness, the @pydeps wheels are built on the bazel
host, so stuffing them inside a container_image (or py_image) will cause
new and unexpected kinds of misery.

Change-Id: Id4e4d53741cf2da367f01aa15c21c133c5cf0dba
2020-07-08 18:55:34 +02:00
informatic 97a6ca8a8b Merge "cluster/kube/lib/nginx: add gitea-prod ingress service" 2020-07-02 17:15:53 +00:00
informatic 0697e01144 cluster/kube/lib/registry: allow auth'd users to pull all images
"Anyone can pull all images" rule did only match on anonymous users. Now
it should match all users, including authenticated ones.

Change-Id: I2205299093feca51f30526ba305eadbaa0a68ecb
2020-07-02 18:45:42 +02:00
informatic f00edf6ee8 cluster/kube/lib/nginx: add gitea-prod ingress service
We would like gitea to have its ssh server exposed on TCP port 22 on the
same address as its web interface. We would also still like to use all
the automation around ingresses already in place (like cert-manager
integration).

To solve this, we create an additional LoadBalancer service for
nginx-ingress-controller and set up special tcp-services forwarding rule
to pass port 22 traffic to gitea-prod/gitea service, like we already do
in case of gerrit.

Change-Id: I5bfc901ebe858464f8e9c2f3b2216b254ccd6c4d
2020-07-02 18:30:38 +02:00
implr 7418a5a963 Add shallow_since to WORKSPACE git_repository rules
per bazel warning
DEBUG: Rule 'com_apt_itude_rules_pip' indicated that a canonical reproducible form can be obtained by modifying arguments shallow_since = "1564255337 -0400"

Change-Id: I6564e8325aa31bbd156ffdf85854f3f5459bd4df
2020-07-01 05:43:28 +02:00
q3k 0a48bc9e8c Merge "WORKSPACE: cleanup" 2020-06-28 16:40:06 +00:00
wasiumpks aca02f63d3 update to 1.16.1
Change-Id: Ia2051c518023260c8a30a9142213d2c536d3c0a7
2020-06-28 11:02:30 +02:00
q3k 0c3b9a570e WORKSPACE: cleanup
This removes some old skylib/zlib deps, moves all Go repositories to a
separate file, and in general does a small cleanup pass on external
repository magic.

Change-Id: Ic9700ee4c40cdb2e5a68e4fc7c6b3e386a109f8a
2020-06-25 19:54:25 +02:00
q3k 91e1a8c9c5 devtools: add sourcegraph
Change-Id: Ic3c40768c761e598e0f42b17a4b9f0d4ebcb2bb2
2020-06-25 12:27:34 +02:00
q3k b1aadd88ff k0: add q3k's personal s3 user
Change-Id: I5681774e1dca2cf4a865d9e1a24602ed4334f006
2020-06-24 17:19:36 +00:00
q3k 0037edaa5b cluster/tools/rook-s3cmd-config: build using bazel
This turns the existing script into a proper sh_binary, and injects
dependencies (kubectl and jq) as deps into it.

This change also pulls in BUILDfiles for jq, and a dep (oniguruma) into
//third_party, and adds buildable external repositories for them.

The jq/oniguruma BUILDfiles are lifted from
https://github.com/attilaolah/bazel-tools/.

Change-Id: If2e548bd60a8fd34e4f3be767ae59c6b2f2286d9
2020-06-13 22:46:41 +02:00
implr d9df5879e3 add radosgw bucket for spark
Change-Id: Id8ea8901ce038ccbf11afabe0e6272c358b32cf2
2020-06-13 21:31:56 +02:00
q3k 9b2ce179a8 Merge "cluster/kube: split up cluster.jsonnet" 2020-06-13 17:52:27 +00:00
q3k dbfa988c73 cluster/kube: split up cluster.jsonnet
It was getting large and unwieldy (to the point where kubecfg was slow).
In this change, we:

 - move the Cluster function to cluster.libsonnet
 - move the Cluster instantiation into k0.libsonnet
 - shuffle some fields around to make sure things are well split between
   k0-specific and general cluster configs.
 - add 'view' files that build on 'cluster.libsonnet' to allow rendering
   either the entire k0 state, or some subsets (for speed)
 - update the documentation, drive-by some small fixes and reindantation

Change-Id: I4b8d920b600df79100295267efe21b8c82699d5b
2020-06-13 19:51:58 +02:00
q3k 77f7ac6287 Merge "WORKSPACE: remove nixpkgs/rules_nix" 2020-06-11 20:29:58 +00:00
q3k c1364e8d8a ops/monitoring: add implr to owners
This will fix future reviews from him having to require my +2.

Change-Id: Icde1f64fe4387e92d19943d7469ce0569eb45257
2020-06-07 02:23:09 +02:00
q3k 66a26a8f02 WORKSPACE: remove nixpkgs/rules_nix
We're not using them for anything. Initially they were going to be used
for nixops, but nixops is not very good, so let's just drop them.

We still have a Nix dependency for clustercfg.py when provisioning
nodes, but rules_nix/nixpkgs in WORKSPACE were unrelated to that.

Change-Id: I28c249507d1be9c5dbbd1ee764deccd9ab038549
2020-06-07 02:22:14 +02:00
q3k 2022ac2338 ops/monitoring: split up jsonnet, add simple docs
Change-Id: I8120958a6862411de0446896875766834457aba9
2020-06-06 17:05:15 +02:00
q3k ce81c39081 ops/metrics: basic cluster setup with prometheus
We handwavingly plan on implementing monitoring as a two-tier system:

 - a 'global' component that is reponsible for global aggregation,
   long-term storage and alerting.
 - multiple 'per-cluster' components, that collect metrics from
   Kubernetes clusters and export them to the global component.

In addition, several lower tiers (collected by per-cluster components)
might also be implemented in the future - for instance, specific to some
subprojects.

Here we start sketching out some basic jsonnet structure (currently all
in a single file, with little parametrization) and a cluster-level
prometheus server that scrapes Kubernetes Node and cAdvisor metrics.

This review is mostly to get this commited as early as possible, and to
make sure that the little existing Prometheus scrape configuration is
sane.

Change-Id: If37ac3b1243b8b6f464d65fee6d53080c36f992c
2020-06-06 15:56:10 +02:00
patryk 30f9d03106 WORKSPACE: Shuffle things around to fix tools build on macOS
Change-Id: I281c1209620e9f3a017718fda1401d1ead9c52a4
2020-06-05 23:37:34 +02:00
q3k 0ae0728ea8 Merge "third_party/factorio: init" 2020-06-04 21:45:55 +00:00
q3k 7371b7288b tools/secretstore: add sync command, re-encrypt
This kills two birds with one stone:

 - update the secretstore tool to be slightly smarter about secrets, to
   the point where we can now just point it at a secret directory and
   ask it to 'sync' all secrets in there
 - runs the new fancy sync command on all keys to update them, which
   is a follow up to gerrit/328.

Change-Id: I0eec4a3e8afcd9481b0b248154983aac25657c40
2020-06-04 19:25:07 +00:00
patryk c410432d94 personal/patryk/arma3: create a S3 bucket account for Arma3 mods
Change-Id: Idd31b5f46fcaebfcd72334dc82fbc8df805203b1
2020-06-04 18:51:51 +02:00
wasiumpks 2a788d392a rename dockerfile for spigot and add dockerfile for paper
Change-Id: If70ee79f7aeba8c51a869a6b8b0f049bc08be357
2020-06-03 15:50:15 +02:00
q3k 75fd2f4a13 Merge "personal/q3k/minecraft: add and deploy bridge" 2020-06-01 12:30:29 +00:00
patryk d600ebb5c8 Re-enable cz2 gpg key in secretstore.py
Change-Id: Iccefecccafe3748c310e5922f366c86d5f2cf11d
2020-05-31 16:46:58 +00:00
informatic cb96eb6df6 Merge "crdb.k0: add sso client" 2020-05-31 12:26:04 +00:00
q3k de3d3fa641 bgpwtf/invoice: hide invoicee VAT number when not given
Also re-add go-bindata to WORKSPACE, something nuked it.

Change-Id: I723ebee7f843d0135a3e1121e2e93ae5fe56bc4b
2020-05-31 00:12:11 +02:00
q3k e55493f635 calico: fix access to resources from controller
This fixes even more networking issues.

Change-Id: I754656a01e3de8a34055280908b343a1a25a4707
2020-05-30 17:57:05 +02:00
q3k ba375e62b2 calico: fix node name selection
This was an attempt to make new calico nodes use a full FQDN. However,
this change seemingly also makes the calico control plane use the FQDN
for all existing nodes, as such breaking CNI for new pods.

We revert this change, thereby keeping all calico nodes names as
hostnames. We could fix this by editing /var/lib/calico/nodename on
hosts to FQDNs, but it might not be worth the effort.

See https://github.com/projectcalico/calico/issues/1093 for more
context.

Change-Id: I52bfb00f604053d57d3009aebd6c50db7dc74f58
2020-05-30 16:18:13 +02:00
informatic 42da0e9aec crdb.k0: add sso client
Change-Id: I7490a3594694d61a19910e436983937667ed34bd
2020-05-30 14:34:33 +02:00
q3k d81bf72d7f calico: upgrade to 3.14, fix calicoctl
We still use etcd as the data store (and as such didn't set up k8s CRDs
for Calico), but that's okay for now.

Change-Id: If6d66f505c6b40f2646ffae7d33d0d641d34a963
2020-05-28 16:47:16 +02:00
vuko d13df642c5 Merge "personal/vuko/shells initial commit" 2020-05-22 20:04:32 +00:00
vuko 6c678e391e personal/vuko/shells initial commit
Change-Id: Icba91e8d4ffe53fc8a7ab7946f3a1b45daf20290
2020-05-22 22:02:22 +02:00
q3k 5786d5245d third_party/java: actually commit
this unfucks master, whoops

Change-Id: I118b9d32aaf53e598333960b959bfb3c0fe33681
2020-05-18 23:48:49 +02:00
q3k f316932930 personal/q3k/minecraft: add and deploy bridge
Change-Id: Ie191690414840668f31f3de4cdf809b35c610248
2020-05-18 23:47:37 +02:00
q3k 7fa92b4029 personal/q3k/minecraft: expose port 2137 (gRPC plugin)
Change-Id: I0816d63f0307c6ca7cafcd752e93e857e6a41f7f
2020-05-17 23:07:19 +00:00
q3k 32f8a58236 personal/q3k: add minecraft plugins
Also drive-by modify WORKSPACE to add required deps.

Also drive-by update deps in WORKSPACE.

Also drive-by remove old stackb/proto library from WORKSPACE (only used
in cccampix, which is dead, and stackb/proto should be replaceable by
the main grpc lib by this point).

Change-Id: I7ac7fe2237e859dc1c45bf41a016174ed8e9ee71
2020-05-17 23:06:42 +00:00
q3k 480505768d third_party/factorio: init
We turn the existing experimental BUILD file into a nicely abstracted
starlark rule generator, for generating both external repositories and
container build rules from a single source of truth.

We also add 0.18.22 (which we already pushed via :push_latest).

Change-Id: I521d6e5cb9447eaf6f237671b7ef07d621cd9c77
2020-05-18 00:46:31 +02:00
Rafał Hirsz 12ab93ac7e personal/q3k/minecraft: add worldedit+worldguard
This assumes that a new Docker image will be built at tag spigot-1.15.2-r3.

Change-Id: Ia230510d2400faa3631bde99a96366d72e69a4bd
2020-05-16 21:09:04 +02:00
q3k 6a0b75bd84 personal/q3k/minecraft: enforce whitelist on main server
Change-Id: I7edf0babd476b7aeb92551ea62ccffa2c79a13a1
2020-05-16 21:05:09 +02:00
q3k 1223cde4d4 cluster: fix nuke's personal storage
Change-Id: I422a6d9f7a483e7c44cc8dfd8c0d8a98d9e17e46
2020-05-16 17:38:23 +02:00
q3k 741c08f66c cluster: add nuke's personal storage
He needs some personal backup space, and we have enough best effort
spare capacity for that.

Change-Id: I75ed6f62e79d33907c0974ec5f2839389ce62543
2020-05-14 18:13:53 +00:00
q3k a168c50132 SECURITY: cluster: limit api objects modifiable by namespace admins
This previous allowed all namespace admins (ie. personal-$user namespace
users) to create any sort of obejct they wanted within that namespace.

This could've been exploited to allow creation of a RoleBinding that
would then allow to bind a serviceaccount to the insecure
podsecuritypolicy, thereby allowing escalation to root on nodes.

As far as I've checked, this hasn't been exploited, and the access to
the k8s cluster has so far also been limited to trusted users.

This has been deployed to production.

Change-Id: Icf8747d765ccfa9fed843ec9e7b0b957ff27d96e
2020-05-11 20:49:31 +02:00