OxDEAD Unicornz

Have you ever seen so many?

GCE and Self Hosted K8s 1.6 With Calico/Flannel NoRouteCreated

There is an annoying bug in Kubernetes 1.6 running on GCE with Calico/Flannel networking operating via CNI plugin interface. You may experience same issue if kubelet on your nodes runs with options

1
--network-plugin=cni --cloud-provider=gce

When a new node is added to the k8s cluster it’s recognized as ‘Ready’ but no pods except Calico/Flannel pod are being scheduled there.

I’ll Be Back Shasta

Sup guys I’m back and I have something for you nerdy hikers. If you’re impatient enough please feel free to skip to the bottom of the post to get the details.

Few weeks ago I’ve made an attempt to summit mt. Shasta in northern California – from Bunny flats, via Horse camp, 50/50, Helen lake, Red banks. Reached the bottom of Misery hill (4km point) and turned back.

Lessons learned:

Nginx: TLS Termination for RESTful Service Responding in JSON

This is quite common nowadays to have some TLS terminatin reverse proxy in front of your REST API. Nginx is being used frequently for this purpose.

The problem I faced and spent some time trying to resolve is that API backing Nginx responds in JSON, but if something is wrong with the request itself or Nginx can’t reach the backend Nginx returns error page in ‘text/html’.

Basically what I was trying to do is to make nginx respond ‘application/json’ on 502 errors, when no backends is reachable and on 400 errors, when someone tries to get plain HTTP response on 443 port. Other errors are expected to be reported by API itself.

Great Introductory Course on Docker and Kubernetes

Google container engine under the hood. Just in case – Google grants new customers with $300 credit for 2 month of trial to play with cloud services.

Here is another one, straight from developers. You don’t even have to install kubectl, everything runs in a virtual console. Yay!

Bash Chanllenge!

Awesome stuff to check if your BASH scripting skills rusted a bit.

Few Notes on Golang Application Packaging for GAE

Once I decided to refactor onetimergo application introducing separate methods for Memcache and Data storage interaction I walked into package initiation problem. Approach I was using with a single onetimergo package didn’t work.

Everything was good till I tried to import onetimergo into my onetimergo-sync application.

Few Notes on Local Golang Environment Configuration

Have Ubuntu 14.04 installed on the VM I use as a programming/testing environment.

Golang packages in Ubuntu 14.04 repo are a bit old:

1
2
3
4
5
dpkg -l | grep golang
ii  golang                                 2:1.3.3-1ubuntu4~ubuntu14.04.1   all          Go programming language compiler - metapackage
ii  golang-doc                             2:1.3.3-1ubuntu4~ubuntu14.04.1   all          Go programming language compiler - documentation
ii  golang-go                              2:1.3.3-1ubuntu4~ubuntu14.04.1   amd64        Go programming language comp
...