Access etcd in OpenShift origin

How do you access the etcd that is being used by the OpenShift started by oc cluster up or using minishift. If you are using minishift then get docker environment access of the minishift VM by running following commands. eval $(minishift docker-env) && eval $(minishift oc-env) Exec into the container named origin that runs OpenShift and all the needed services. $ docker exec -it origin bash First install the etcdctl needed to talk to etcd. [root@surajd origin]$ yum -y install etcd Get into the directory where all the certs and keys are available. ...

July 11, 2018 · 1 min · Suraj Deshmukh

Change namespaces in Kubernetes

There is no easy way to change namespace in Kubernetes using kubectl command line utility. But here are some commands that you can alias in your bashrc file so that it’s just a single command that you can use to change the namespace in the Kubernetes cluster. Change namespace Let’s see step by step what goes in to change the namespace. So the first step is to find the context. A context element in a kubeconfig file is used to group access parameters under a convenient name. Each context has three parameters: cluster, namespace, and user. By default, the kubectl command-line tool uses parameters from the current context to communicate with the cluster. Read more. ...

July 2, 2018 · 3 min · Suraj Deshmukh

Prometheus with existing application on OpenShift

This post is very specific to OpenShift and how you can have an application exposing prometheus metrics to be scraped by a prometheus running in the same cluster. Requirements Setting up cluster I have done it using the oc cluster up, read about how to do this here. You could also setup a local OpenShift cluster by running minishift, read about setting up minishift here. Downloading Kedge The configurations defined for setting up this cluster is written in a format that is understood by a tool called Kedge. This makes configuration easier to understand and edit. So for using this setup download Kedge and put it in your path as explained here. ...

April 4, 2018 · 2 min · Suraj Deshmukh

Notes on talk - Advanced testing in golang by Mitchell Hashimoto

Test Fixtures “go test” sets pwd as package directory Test Helpers should never return an error they should access to the *testing.T object call t.Helper() in the beginning (works only for go1.9+) for things reqiuiring clean up return closures Configurability Unconfigurable behavior is often a point of difficulty for tests. e.g. ports, timeouts, paths. Over-parameterize structs to allow tests to fine-tune their behavior It’s ok to make these configs unexported so only tests can set them. Slides Video GopherCon 2017: Mitchell Hashimoto - Advanced Testing with Go by Mitchell Hashimoto

March 7, 2018 · 1 min · Suraj Deshmukh

Methods that satisfy interfaces in golang

Pointer receiver For a struct User with a method Work with pointer receiver. type User struct { Name string Period int } func (u *User) Work() { fmt.Println(u.Name, "has worked for", u.Period, "hrs.") } func main() { uval := User{"UserVal", 5} uval.Work() pval := &User{"UserPtr", 6} pval.Work() } See on go playground. output: UserVal has worked for 5 hrs. UserPtr has worked for 6 hrs. If we call this method on value type object uval it works, and obviously it works with pointer type object pval. ...

February 23, 2018 · 3 min · Suraj Deshmukh

vscode Shortcuts

This post has shortcuts that are generic and golang specific as well. This post will edited from time to time. Shortcuts Toggle side bar Ctrl + B Project explorer in side bar Ctrl + Shift + E Project wide search in side bar Ctrl + Shift + F Source control in side bar Ctrl + Shift + G Copy entire line Ctrl + C (without any selection) Delete entire line Ctrl + Shift + K ...

February 22, 2018 · 3 min · Suraj Deshmukh

Using private container registries from minikube

I am doing Kubernetes native development using minikube. And for doing that I had to download a Container image that is available in internally hosted private container registry. On the configuration side of doing that you will need to create Kubernetes Secret of type docker-registry. And now refer that secret you just created in your Pod manifest under pod.spec.imagePullSecrets. For more info follow the tutorial in Kubernetes docs on Pull an Image from a Private Registry. ...

October 6, 2017 · 2 min · Suraj Deshmukh

Static Pods using Kubelet on Fedora

I wanted to try out Standalone Kubelet Tutorial of Kelsey Hightower by myself but I could not follow it as it is, because it was firstly on GCE and secondly it uses CoreOS, but since I am very familiar to Fedora I thought of following that tutorial on it. To get a quick setup of a fresh Fedora machine use Vagrant. I have used Vagrantfile available here. This blog is only replacement of section Install the Standalone Kubelet in tutorial. ...

September 23, 2017 · 2 min · Suraj Deshmukh

Sharing Vagrant Box offline

If you have some box that was downloaded on your machine from Atlas but now you wanna share it on other machines and you don’t have internet to download it, how do you share it? You will need to export the box from machine that has it downloaded already. So on machine with boxes: $ vagrant box list centos/7 (libvirt, 1610.01) centos/7 (libvirt, 1704.01) fedora/25-cloud-base (libvirt, 20161122) fedora/26-cloud-base (libvirt, 20170705) I wanted to share fedora/26-cloud-base box to another machine. Run the following command: ...

September 18, 2017 · 2 min · Suraj Deshmukh

Add new Maps to Counter Strike

If you are playing Counter Strike on Steam on linux you might be wondering how do I install new maps in the game. So here are steps to install maps. All the game maps for Counter Strike - Condition Zero are stored in following path: ~/.local/share/Steam/steamapps/common/Half-Life/czero/maps Format of the map files is .bsp. So download the map files from over internet and then put in this location and now you should be able to see the maps in game. ...

September 1, 2017 · 1 min · Suraj Deshmukh