Kubernetes on GCP

Kubernetes has come a long way over the last 2 years and I was so excited to learn about during CloudNativeCon/Kubecon Berlin this year. As of Today Kops the standard tool for installing Kubernetes on AWS doesn’t support GCP yet (it’s in the works). However you can still setup your cluster using good old kube-up.sh. There’s also a pretty good explanation on the k8s docs. Make sure you install the Google Cloud SDK with gcloud and all their utils. [Read More]


DC/OS is the commercialized Mesos distribution + extras maintained by Mesosphere. I found it very straight forward to setup in GCP with the out of the box Ansible scripts provided by Mesosphere. For starters I followed everything described in the README. Then, I had to modify the group_vars/all file in the playbook --- project: <my-gcp-project-id> subnet: default login_name: <my-gcp-login-id-with-no-email> bootstrap_public_ip: # This IP need to match the network in the zone zone: us-central1-c master_boot_disk_size: 200 # 200 is the recommended in GCP as of 05-2017 master_machine_type: n1-standard-1 master_boot_disk_type: pd-standard agent_boot_disk_size: 200 agent_machine_type: n1-standard-1 agent_boot_disk_type: pd-standard agent_instance_type: "MIGRATE" agent_type: private start_id: 0001 end_id: 0001 gcloudbin: gcloud image: 'centos-7-v20161027' image_project: 'centos-cloud' bootstrap_public_port: 8080 cluster_name: cluster_name scopes: "default=https://www. [Read More]

Parsing Deeply Nested JSON in Go

Parsing deeply nested json in Go is a bit challenging due to the fact that the language doesn’t provide many helpers to do so. If you do that in Ruby or Python it’s pretty straight forward running some like this in Python j = json.load(jsonstring) or in Ruby j = JSON.load(jsonstring). In go generally you have to prefine your structs and run through an Unmarshal function which means that most of the times you need to know ahead of time what the nest level and structure of your target json is to parse it. [Read More]

CloudNativeCon KubeCon Europe

This same blog entry is here. Thanks to the cncf folks who helped me put this together. I’ve attended many conferences before, but I was happy to get the diversity scholarship to attend CloudNativeCon + KubeCon Europe 2017 in Berlin as there is always so much more to learn. It was my first time attending an event organized by the Linux Foundation, and I hope to attend more in the future. [Read More]

LXC Playing

Over the last couple of years Docker has seen incredible growth across the tech industry. Its use ties together with deployment of Microservices in most Cloud based companies. Docker is easy to use and its in constant development. In the last month I decided to venture and try something different that has been around even before Docker but in a more primitive form. You see containers have been around before Docker for a long time and even before that with the introduction of chroot in 1979. [Read More]

Docker First Impressions

For the last few days I’ve been taking at crack at using the recent Docker container deployment tool that I’ve been hearing a lot buzz about. In essence, it’s a wrapper on top of Linux LXC containers, writen in the new friendly and not so popular yet Go language developed at Google. Just a little bit of background, for those of you not familiar with LXC containers, they are pretty much defined as chroot on steroids. [Read More]

Ansible Playbook for PaperTrail on Ubuntu

This posts describes how to create a simple Ansible task on how to setup PaperTrail on Ubuntu. It’s a follow up to a previous blog describing an Ansible Playbook to setup an HAProxy system. This Ansible task can be included in the HAProxy playbook as well as any other playbooks with something like this: --- PLAYBOOK: Install papertrail on Ubuntu --- - name: scout hosts: all user: <user-with-sudo> sudo: True tasks: - include: tasks/papertrail. [Read More]

Simple Clouformation With Multiple AWS Accounts

In this post I’ll describe how to create a simple AWS CloudFormation template so that we can deploy stack using multiple AWS accounts. In other words a common JSON CloudFormation template that can be use to bring up a stack in multiple accounts. The way we are able to do this is by having exact copies of the EC2 AMIs on all the accounts and regions where we are deploying our stack. [Read More]

Ansible Playbook for Scout on Ubuntu

This is a sample Ansible task (http://www.ansibleworks.com) on how to setup Scout (https://www.scoutapp.com) on Ubuntu. It needs to be included in an ansible playbook. It’s a follow up to a previous blog describing an Ansible Playbook to setup an HAProxy system. This Ansible task can be included in the HAProxy playbook as well as any other playbooks with something like this: --- PLAYBOOK: Install scout on Ubuntu --- - name: scout hosts: all user: user-with-sudo sudo: True vars: scout_key: YourScoutAPIKeyFromTheirWebsite tasks: - include: tasks/scout. [Read More]

Upgrade Linux Kernel on Chromebook

So after installing ChrUbuntu on my Acer C7 Chromebook, I’m very pleased that with the help of this blog I was able to upgrade the Linux Kernel to 3.8.11 raravena@chromebook:~/git/blog-src$ uname -a Linux chromebook 3.8.11 #3 SMP Thu Oct 17 07:41:20 PDT 2013 x86_64 x86_64 x86_64 GNU/Linux These are the modified steps: #!/bin/bash set -x # # Grab verified boot utilities from ChromeOS. # mkdir -p /usr/share/vboot mount -o ro /dev/sda3 /mnt cp /mnt/usr/bin/vbutil_* /usr/bin mkdir -p /usr/bin/old_bins cp /mnt/usr/bin/old_bins/vbutil_* /usr/bin/old_bins/. [Read More]