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.
gbolo/aws-power-toggle
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
IaC
(terraform
+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 runningterraform 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.
Source Code | Year | Language(s) | Demo Link |
---|---|---|---|
github.com/gbolo/aws-power-toggle | 2018 | go , vue.js |
https://awspt-demo.linuxctl.com |
gbolo/vSummary
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 entirelyphp
(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 learngo
😎. Best decision ever, asgo
quickly 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 ingo
.
Source Code | Year | Language(s) | Demo Link |
---|---|---|---|
github.com/gbolo/vsummary | 2016 | go , javascript |
https://vsummary.linuxctl.com |
gbolo/muggle-k8s
A deployment for Kubernetes without the use of any “magic” 🧙♂️ (this means no
kubeadm
usage 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 likekubeadm
. 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.
Source Code | Year | Language(s) |
---|---|---|
github.com/gbolo/muggle-k8s | 2020 | ansible |
gbolo/protego
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 go
gbolo/muggle-oidc
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_jwt
client authentication type since it offers much strong authentication thanclient_secret
so 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 😅.
Source Code | Year | Language(s) |
---|---|---|
github.com/gbolo/muggle-oidc | 2021 | go |
Dockerfiles
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.
Source Code | Year | Purpose |
---|---|---|
github.com/gbolo/dockerfiles | 2016 | docker |
Ansible Roles
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)
Source Code | Year | Purpose |
---|---|---|
github.com/gbolo/ansible-role-docker | 2016 | sets up docker just the way I like it ;) |
github.com/gbolo/ansible-role-nginx | 2017 | sets up a hardened nginx on RHEL |
github.com/gbolo/ansible-role-desktop | 2017 | helps configure and maintain my desktops/laptops |
github.com/gbolo/ansible-nfs | 2016 | sets up NFS servers and clients on RHEL |
github.com/gbolo/ansible-role-mongodb | 2017 | sets up mongodb on RHEL |
github.com/gbolo/ansible-ipfs | 2016 | sets up multi-tenant ipfs |
github.com/gbolo/ansible-dev | 2016 | bunch of roles to support container orchestration and fabric |