Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix’s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn’t already open source.
Intro (The Problem) Container storage is a complex subject. Getting a hook into the right place to be able to do storage syscalls in Linux for a container requires orchestration help between the storage driver and the container orchestrator.
Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix’s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn’t already open source.
In Part 1, I discussed the current state of the art of container storage with the CSI+kubernetes, and its limitations.
In this Part 2, I’ll discuss why mounting storage is difficult in containers, especially in user namespaces are in use.
Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix’s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn’t already open source.
In Part 1, I discussed the current state of the art of container storage with the CSI+kubernetes, and its limitations.
In Part 2, I discuss the problem of mounting storage inside running containers, especially using user namespaces.
Disclaimer: This blog post is a deep dive in to the topic of Linux container storage, specifically looking at Netflix’s Open Source Titus container platform. Netflix happens to be my employer, but nothing in this blog post is secret or talk about anything that isn’t already open source.
In Part 1, I discussed the current state of the art of container storage with the CSI+kubernetes, and its limitations.
In Part 2, I the problem of mounting storage inside running containers, especially using user namespaces.
I recently bought a pair of Novostella 20W Smart LED Flood Lights. These lights are RGBCW (Red/Blue/Green/Cold/Warm) and use the ubiquitous ESP8266 controller on the Tuya TYLC4-IPEX.
From the previous blog post we learned that the ESP8266 is connected to the LED controller in the following way:
GPIO 04: PWM Channel 1 (Red) GPIO 05: PWM Channel 5 (Color Temp) GPIO 12: PWM Channel 2 (Green) GPIO 13: PWM Channel 4 (White) GPIO 14: PWM Channel 3 (Blue) GPIO 0-3,6,7,11,1: Not used My particular version of this Novostella Flood Light had the latest version of their software, which means I did have to break the glass and solder up a programmer to flash WLED on it.
I recently bought a pair of Novostella 20W Smart LED Flood Lights. These lights are RGBCW (Red/Blue/Green/Cold/Warm) and use the ubiquitous ESP8266 controller on the Tuya TYLC4-IPEX.
Based on other guides thought that I could use the tuya-convert tool to flash them with my own software OTA (over the air). Unfortunately the latest revision of these lights uses a patched firmware that tuya-convert does not understand. This means that these Flood Lamps cannot be re-flashed without being taken apart.
This is my “Sutro Cat Tower”, modeled after the real Sutro Tower in San Francisco CA.
It features:
7’ 3" (221cm) Tall 369 Individually addressable RGB LEDs ESP8266 programming (timers, dimming, “smart” features), code Fleece-lined platforms for the cats Modular wood construction Honestly it is too tall, I’ll have to come up with something to make it easier for the cats to jump up into the upper platforms.
The woodwork was difficult, requiring lots of angled cuts with the table saw.
I recently finished my MegaDesk project. Here are the specs:
11 feet wide x 39 inches deep finished butcher block top leg-less design with lots of wood infrastructure underneath to support it Supports that are anchored to the 2x6 studs Horizontal support anchored to studs More outlets (there was only 1 lone outlet in this office originally) Cat6 and Coax in keystone jacks Cable pass-through tubes for clean cable management Insulation!
For the purpose of this blog post, my definition of plugin is:
A method of extending the functionality of program without forking it
In particular, I’ll be looking at methods of extending Golang (go) programs.
Official Golang Plugins Official Golang Plugins are a native way of extending go codebases without forking them.
How They Work Official Golang Plugins work by compiling your plugin in a special way:
go build -buildmode=plugin This build mode can output a .