Set up a CI server #14

Closed
opened 2019-01-19 04:08:17 +00:00 by raucao · 5 comments
Owner

We already have configs for deploying Drone CI on GKE. That one works with Gitea out of the box, so I'd propose to set up drone.kosmos.org and configure it so users of gitea.kosmos.org can use it for their repos.

Update July 20, 2020: Since we're not using k18s anymore, I think we should now just run the normal Drone Docker setup on Centaurus or Draco.

~~We already have configs for deploying Drone CI on GKE. That one works with Gitea out of the box, so I'd propose to set up `drone.kosmos.org` and configure it so users of `gitea.kosmos.org` can use it for their repos.~~ Update July 20, 2020: Since we're not using k18s anymore, I think we should now just run the normal Drone Docker setup on Centaurus or Draco.
Author
Owner

I just looked into this again and found out that the current configs use the GKE/GCE load balancer service. Which costs ~$18.30/month per service for the first 5 forwarding rules (Gitea needs 3).

I find that a bit pricey to just throw up something that would actually not require more resources otherwise, because I think the cluster can still handle another Drone without adding nodes. And even then, the money should go towards adding nodes that actually do something worthwile, like running builds, imo.

Kubernetes has a thing called Ingress, which we haven't learned enough about yet, but it would allow us to run our own inbound lb/proxy using e.g. Nginx. We could then also use OpenResty for auto-TLS, like we already do at 5apps e.g..

@gregkare Have you checked out Ingress in the meantime, and if not, is it on your list somewhere?

I just looked into this again and found out that the current configs use the GKE/GCE load balancer service. Which costs ~$18.30/month per service for the first 5 forwarding rules (Gitea needs 3). I find that a bit pricey to just throw up something that would actually not require more resources otherwise, because I think the cluster can still handle another Drone without adding nodes. And even then, the money should go towards adding nodes that actually do something worthwile, like running builds, imo. Kubernetes has a thing called Ingress, which we haven't learned enough about yet, but it would allow us to run our own inbound lb/proxy using e.g. Nginx. We could then also use OpenResty for auto-TLS, like we already do at 5apps e.g.. @gregkare Have you checked out Ingress in the meantime, and if not, is it on your list somewhere?
Owner

I didn't realize the load balancers were so expensive. I have only read an introduction to Ingress so far (https://kubernetes.io/docs/concepts/services-networking/ingress/). It seems complex, but worth learning about.

The current state of the art for certs appears to be cert-manager (https://github.com/jetstack/cert-manager/blob/master/docs/tutorials/quick-start/index.rst)

It is on my list of things to learn more about

I didn't realize the load balancers were so expensive. I have only read an introduction to Ingress so far (https://kubernetes.io/docs/concepts/services-networking/ingress/). It seems complex, but worth learning about. The current state of the art for certs appears to be cert-manager (https://github.com/jetstack/cert-manager/blob/master/docs/tutorials/quick-start/index.rst) It is on my list of things to learn more about
Author
Owner

I'd prefer not to use Helm (and esp. not to give cluster admin privileges to its daemon), but other than that the tutorial is a great resource to get an overview of how the pieces work in combination. Nice find!

I'd prefer not to use Helm (and esp. not to give cluster admin privileges to its daemon), but other than that the tutorial is a great resource to get an overview of how the pieces work in combination. Nice find!
raucao self-assigned this 2019-03-03 06:26:04 +00:00
raucao added this to the Production readiness milestone 2019-03-03 06:26:12 +00:00
raucao removed this from the Production readiness milestone 2019-03-03 06:26:17 +00:00
Author
Owner

Just FYI: We have access to Digital Ocean's Kubernetes beta. Load balancers over there support Let's Encrypt out of the box and cost $10/month. 2GB nodes also cost $10/month. There's no additional charge for managing either of those with Kubernetes (same as GKE).

Just FYI: We have access to Digital Ocean's Kubernetes beta. [Load balancers](https://www.digitalocean.com/products/load-balancer/) over there support Let's Encrypt out of the box and cost $10/month. 2GB nodes also cost $10/month. There's no additional charge for managing either of those with Kubernetes (same as GKE).
Author
Owner

The Gitea OAuth provider has been merged. So now it can be implemented in Drone...

The Gitea OAuth provider [has been merged](https://github.com/go-gitea/gitea/pull/5378). So now it can be implemented in Drone...
raucao removed their assignment 2019-08-07 14:43:38 +00:00
raucao added this to the Production readiness milestone 2020-02-15 16:07:52 +00:00
This repo is archived. You cannot comment on issues.
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kosmos/gitea.kosmos.org#14
No description provided.