Projects

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 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.

Source Code Year Language(s) Demo Link
github.com/gbolo/aws-power-toggle 2018 go, vue.js https://awspt-demo.linuxctl.com

AWS-PT Main View AWS-PT Toggle an Environment AWS-PT Expand an Environment AWS-PT Filtered View

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 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 go 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 in go.

Source Code Year Language(s) Demo Link
github.com/gbolo/vsummary 2016 go, javascript https://vsummary.linuxctl.com

vSummary VM View vSummary Adding a Poller vSummary Original PHP Design

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 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.

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

Protego Authorization Flow Protego Challenge UI

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 than client_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
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo, using a modified version of the Stack theme.