A list of various open-source projects I created over the years, and the story behind them. If you would like to see contributions I made to other open-source projects follow this link.
A web UI and API for quickly starting and stopping AWS environments. I wrote this tool back in 2018 to help members of other teams easily manage the state of the environment(s) that I would build out for them in aws via our
ansible). Whether it was a sales team doing a pitch on various demo environments or a dev team working on various dev environments, this tool could accommodate it. The main goal was to reduce the aws bill ofcourse 🤑. While not as cheap as running
terraform destroy, shutting down the compute of an environment could save a ton of money. It also is much quicker to start/stop an environment then running through the infrastructure code to redeploy. I had a great time building this out, and was a great learning experience for using the aws api.
vSummary is an open source tool for collecting and displaying a summary of your vSphere Environment(s). Back in 2012, I was the sole member of the virtualization team. This meant that I was on the hook for the virtualization design, deployment, and support 😉. Over the next few years, I had grown the company from zero VMs up to about 4k. This was spread across 4 datacenters, 3 countries, 2 continents. At the time (vSphere 5) VMware did not have any tools for a single pane of glass view. So I originally wrote this tool back in 2015 in
php! It actually had a few components back then so it wasn’t entirely
php(the original poller was written in PowerShell). A year later in 2016 I open-sourced it on github. Then a couple years later in 2018 I redesigned and rewrote the whole thing as a perfect excuse to learn
go😎. Best decision ever, as
goquickly became my favorite language and put me in an incredible position to be able to contribute to many other popular open-source projects that are also written in
A deployment for Kubernetes without the use of any “magic” 🧙♂️ (this means no
kubeadmusage BTW). This repository is mainly for educational purposes (although I have occasionally used it for the purpose of testing a candidate’s knowledge of kubernetes during interviews). The goal being to fully understand how to deploy each component of the kubernetes infrastructure without the use of any magical tools like
kubeadm. From a security perspective, I also want to explore the use of my own PKI as well as to harden the system and tightly control network and ACLs.
Protego is a self-hosted REST API service, intended to be used in conjunction with nginx’s auth_request module, with the goal of providing transparent IP based ACLs to your existing HTTP service(s). protego_authorize_flow.png
Source Code Year Language(s) github.com/gbolo/protego 2020
I wanted to learn the ins-and-outs of OIDC, so I thought it would be a great idea to write my own OIDC client application and integrate it with various providers. I skimmed through a good portion of RFC 6749 and RFC 7636 as a reference when implemeting much of the functionality. I was really interested in the
private_key_jwtclient authentication type since it offers much strong authentication than
client_secretso I also spent a bunch of time on that too. It was really nice to see my client work well after I was done with it! I should also disclaimer that this client is for educational purposes only and you should probably not attempt to use it for anything else 😅.
I was a fairly early adopter of Docker. I kept a ton of Dockerfiles and docker-compose in this repo over the years as I worked on various things. I don’t really maintain much of the stuff I no longer use anymore. It seemed to get some stars over the years, so I guess it was useful to some.
I wrote a ton of ansible roles over the years. Most of them are very specific to my employer’s needs and are stored privately. However, there are a few generic ones I decided to share (although I don’t really maintain them anymore)
|sets up docker just the way I like it ;)
|sets up a hardened nginx on RHEL
|helps configure and maintain my desktops/laptops
|sets up NFS servers and clients on RHEL
|sets up mongodb on RHEL
|sets up multi-tenant ipfs
|bunch of roles to support container orchestration and fabric