BBHoss

A brief history of my experiences in programming & system operations

Recent posts

Jul 30, 2020
Transparent SSH Access using Google Cloud's Identity-Aware Proxy
Jul 25, 2019
Announcing Cainophile Today I'm announcing Cainophile, a library to assist you in building change data capture (CDC) systems in Elixir.
Feb 13, 2018
Simple Secure Access to the Kubernetes Dashboard with RBAC The kubectl command line is great, but sometimes it’s nice to have a dashboard to click around and see basic graphs, view logs, etc. Out of the box, new Kubernetes clusters (I am using Google Kubernetes Engine here) have legacy authentication disabled, and RBAC is required. Having used Kubernetes prior to this, it wasn’t clear to me how to access the dashboard with RBAC. Starting out To begin, simply spin up the Kubernetes Proxy with kubectl proxy.…
Jan 14, 2016
Remote IEx Access via SSH I was excited when I read how easy it was to access a remote erlang node via ssh alone, as the traditional way can be a bit of a challenge. Naturally, I wondered if it was possible to do this with Elixir, and it’s quite easy! Essentially, follow the instructions on the post above (translating to Elixir). The main change is that you have to start the ssh application first (:ssh.…
Oct 8, 2015
Easy Pub-sub Event Dispatch with :gproc and Elixir Prologue I recently came across the need to do pubsub inside of one of my Elixir applications. Initially I hand-rolled a system using GenEvent, but after I finished I realized how brittle the system was, even with all of the handholding I was doing with add_mon_handler. I was already using :gproc for a process registry, when I remembered reading something about it being able to do pubsub. :gproc is Awesome For my application, I needed to publish a message and have it received by multiple subscribers.…
Mar 2, 2015
Ansible Filters With Items Today I ran into an issue where I needed to use Ansible’s with_items feature on the registered result of a previous task, one that also ran with_items. To be more clear, here’s what my object looked like (in JSON for clarity): { "changed": false, "msg": "All items completed", "results": [ { "machines": [ { "ip": "127.0.0.1", "name": "machine1" }, { "ip": "127.0.0.1", "name": "machine2" } ] }, { "machines": [ { "ip": "127.…