Tangible Bytes

A Web Developer’s Blog

Kubectrl Custom Columns

Kubernetes provides a wide variety of methods for formatting output

The custom columns output lets you print multiple values defined using jsonpath expressions in a tabular output

While outputting scalar values is reasonably intuitive, I couldn’t see in the docs where is says what the format for defining custom-columns is.

Read more ...

Kubernetes Multi Container Pod

So far on my Kubernetes journey I’ve only ever had one container per pod.

But I needed to run php-fpm fronted by nginx - with static assets served direct by nginx.

A lot of online examples skip this complexity by serving both php and static assets via Apache.

While it seemed complex at first - like a lot of Kubernetes it’s fairly straightforward once you have made the leap.

Read more ...

NextJS Multisite on Kubernetes

I am working on a NextJS project that has 9 websites with different content and themes but the exact same structure.

We want one codebase and one server to reduce costs (and the carbon footprint of our cloud) and also to streamline the process of releasing new features.

So we’re using middleware to detect which host the incoming request is for and add that as a parameter - which worked fine in development but I had some problems moving to our production system which is in Kubernetes.

Read more ...

Kubectrl Output Using Gotemplate

kubectl is the kubernetes swiss army knife - as well as being able to manipulate kubernetes it gives access to loads of data

But to make use of that data we need to format it - and one of the more powerful ways of doing this is using gotemplates

the help page just says

–template=’':

Template string or path to template file to use when -o=go-template, -o=go-template-file.

The template format is golang templates [http://golang.org/pkg/text/template/#pkg-overview].

which isn’t on it’s own terribly helpful

Read more ...

Next.js Environment Variables

I’m running Next.js apps in production using Kubernetes - and I’ve inherited some setup that I didn’t fully understand so I’ve been investigating what is going on with environment variables.

My inherited system used a build per environment and bakes in configuration at that point.

I dislike this because …

Read more ...