The following descibes a path to set up:
- your own Kubernetes cluster in Oracle Cloud Infrastructure, and
- deploy an application in it by running pipeline using GitHub actions, and
- have this application fronted by an API gateway (in our case APISIX.
I’d expect this to be a pretty much expected fairly standard production setup. Some items can be done simpler (e.g. no need for Tomcat in our application, or APISIX in overall deployment) but I wanted to keep this setup as close to production setup as possible while still keeping the setup free and purely using OpenSource components I actively used in the past.
Source code behind the project can be found here: https://github.com/dkambur/Ramblings.
Summary of steps:
Random notes
Why OCI and not AWS, Google Cloud etc
Most generous when it comes to free resources - see this: https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm. If you struggle getting resources, change your account to be pay-as-you-go but make sure to stick to free resources. There are mechanisms to control expenses.
Mixed hardware cloud
Following these instructions, you’ll end up with own Kubernetes cluster with 4 nodes, 2 of ARM and 2 of AMD64 :)
Ports, numbering, mapping
In all samples, we assumed that APISIX ports are mapped 1:1 to localhost for sake of simplicity.