How to install IBM Cloud Private? [Updated]

It’s been some time since I wrote about IBM Cloud Private 2.1, although I’ve been heavily using it in my lab.

Improvements from version 1.2 to 2.1 were massive. We have also noticed the changes in the OpenEBS user community, according to our surveys usage of ICP increased dramatically. The Community Edition of the ICP 3.1 came out three weeks ago. CE container images were released with a slight delay of two weeks after the after the enterprise version came out. And I believe that it deserves an updated blog to talk about the steadily advancing developer experience (and my favorite new features).

In this blog, I will provide step-by-step instructions on how to configure a Kubernetes-based managed private cloud using ICP. I will also highlight the top improvements since the last version that makes me excited.

IBM Cloud Private Architecture

Continue reading

Git freedom on Kubernetes

Run GitLab on a K8s-based private cloud

After Microsoft announced the acquisition of GitHub, many developers raised concerns on social media about Microsoft’s history of unsuccessfully running the acquired businesses like Skype, Nokia’s handset business, Navision, and other 150 companies (you probably haven’t noticed) they have swallowed up over the years.

Other than keeping the developer’s life-support plugged, one of the biggest concern is that MS will use its power on GitHub repositories to analyze trends among software development in order to launch competing products. Fears that GitHub privacy may be in jeopardy have already led many developers to jump off the ship or consider alternatives. GitLab’s publicly available status graphs show spikes of 70x increase in imported repositories (average 100 vs 7.5K), a validation of increased user apprehension.

Whether you are considering moving your code out of GitHub or not, here is one of the fastest way to get your private repository with GitLab up and running on your Kubernetes environment – Let’s “Make DevOps lifecycle private again” (c) Continue reading

ARMing Kubernetes with OpenEBS #1

Running stateful containers on Le Potato

Why not! It’s fun and extremely efficient! I know many people (including me) used to run ownCloud on their desktop computers. I have finally decided to retire my old desktop computer and was looking ways to keep my ownCloud instance alive and maybe even improve it a bit.

First, I ran ownCloud on GKE Kubernetes cluster and came to a conclusion quickly that it’s not what I needed:

  • I am used to the speed of USB 3.0 for large uploads when needed. I wanted to keep the option of (40MB+/sec) using USB. Which means, if I choose a budget ARM SoC route, then the board should have non-shared bandwidth for LAN and USB.
  • 4 node GKE cluster using n1-standard-1 + 200GB storage costs ~$225/month, I would rather use Dropbox for $20/month = 240$/year (still doesn’t give me what I need).
  • Low-power, possibly solar-powered. I’ll share my power consumption findings in the series of blog articles.
  • Everything on Kubernetes is more fun, right?

I was looking into Raspberry Pi 3 Model B option and after a quick trial realized that shared USB/Ethernet bandwidth and lack of MicroSD UHS support is not going to give me the performance I need and found the AML-S905X-CC Le Potato board.

Continue reading

How to install OpenEBS on OpenShift?

What is OpenShift Origin?

OpenShift Origin is the upstream community project used in all deployment models provided by Red Hat OpenShift such as OpenShift Online, OpenShift Dedicated, and OpenShift Container Platform. Red Hat OpenShift is an enterprise container application platform that is based on a core of Docker container packaging, Kubernetes container cluster management and the OpenShift Origin project itself.

First, having more than one option sounds confusing, but they clearly differentiate from each other. Here is the summary of all available deployment options to start with OpenShift. Continue reading

How to Install OpenEBS using StackPointCloud Trusted Charts?

What is StackPointCloud Trusted Charts?

StackPointCloud (SPC) introduced a concept of Trusted Charts, a list of validated Helm Charts provided by its partners to quickly spin up a solution in a Kubernetes cluster. Helm Charts helps you define, install, and upgrade even the most complex Kubernetes application.

Previously, I wrote about few different ways of getting OpenEBS up and running on different cloud vendors. Using Helm Chart is one of the available options to deploy OpenEBS. OpenEBS Helm Charts were available since v.5.0 both on Github and as a packaged chart. Recently SPC included OpenEBS into their Trusted Charts repo and made it one-click easy for its customers.  Continue reading

How to deploy OpenShift Origin on a local VM

Blogging is fun and it takes time. Leaving aside the research part, preparing all prerequisites takes a lot of time – also fun and educational. I have a few permanent clusters spread across cloud vendors and little more than a half rack of servers in my garage. Development VMs and Kubernetes clusters on AWS, a bare-metal VMware cluster mostly used for NFV testing and few old applications on Windows VMs, an IBM Cloud private cluster, an OpenStack cluster for a various break and fix experiments, a scale-out NAS and SAN providing storage for all servers in the garage. Continue reading

How to deploy a Cassandra Cluster on Kubernetes with OpenEBS

Apache Cassandra is a distributed key-value store intended to run in a data center and also across multiple data centers. Initially it was designed as Facebook as an infrastructure for their messaging platform. Later it is open sourced, and today it’s one of the most active Apache projects.

If you are using eBay, Twitter, Spotify or Netflix you are consuming data provided by Cassandra. For example, Netflix uses Cassandra to keep track of your current place in a streaming video, as well as movie ratings, bookmarks and user history of 90+ million users.

Continue reading

How to deploy Jenkins on Kubernetes + OpenEBS

Modern IT infrastructure of a large enterprise requires Continuous Integration / Continuous Delivery (CI/CD) for software development, testing, and operations. It means building and validating the software on every commit ensuring that testing and production environments are always up-to-date. Such level of automation is a combination of extreme programming methodologies and practices, also known as DevOps. Through CI/CD pipelines, developers and operators frequently integrate new changes into IT infrastructure increasing organization’s ability to deliver applications and services at high velocity. One of the most popular open-source automation tools used in CI/CD environments is Jenkins. It serves as a workflow engine that ensures continuous integration of new changes.

Deploying Jenkins on Kubernetes provides the following benefits: Continue reading

Introduction to Container Storage Interface (CSI)

The Container Storage Interface (CSI) is a proposed new industry standard for cluster-wide volume plugins.


This will enable storage vendors (SP) to develop a plugin once and have it work across a number of container orchestration (CO) systems.

CSI started as a joint proposal from a group of people who work on Docker, Kubernetes, Mesosphere and Cloud Foundry. CSI is currently in the early draft stage and seeking feedback from the community. Continue reading