Service Discovery Proposal on Kubernetes

Yay! Good news for Apiman on Kubernetes. My first official contribution to Kubernetes was just merged in. The proposal speaks to using Kubernetes Service Annotations to determine endpoint information about a service API including a reference to a description document of the API. Some thing I’ve learned is that the namespace part of the annotation name should describe the structure, and the…

Read more

Kubernetes API Management importing a Camel with serious Swagger

Introduction Not too long ago Claus Ibsen demo’ed the camel-swagger module. The camel-swagger module allows you to describe your Camel REST service using Swagger DSL. In this blogpost we converted his example to run on Kubernetes using Fabric8. After deploying the service to Kubernetes we can then import the API into the API Manager that is Apiman. Once imported the SwaggerJSON DSL is prese…

Read more

Minimal Centos 7 Image for RaspberryPi2

Centos added the ARM 7 build to their release train. Download To download the Centos 7 minimal image for Raspberry Pi 2 go to https://wiki.centos.org/Download, and scroll down to the 'AltArch Releases' and select the armhfp (Arm32) for RaspberryPi2. Flash On my OSX box I issue: sudo dd bs=1m if=CentOS-Userland-7-armv7hl-Minimal-1511-RaspberryPi2.img of=/dev/disk2 Double check that your SD Card re…

Read more

How to call a Kubernetes Service on OpenShift

Summery - Every kubernets service has different endpoints for the same service. Four scenarios are outlined that explain when to use what endpoint, depending on if the client is deployed on the kubernetes cluster or externally and/or if an API manager is used. Introduction We use Openshift as our Kubernetes implementation. Before we talk about calling a service, let’s first talk about deplo…

Read more

Change the Kubernetes Domain on OpenShift

The KUBERNETES_DOMAIN is defaulted to vagrant.f8 in Fabric8, and if you forgot to set this system parametes before running the fabric8 install then you end up with routes containing the vagrant.f8 domain. To fix this you will have to reinstall the console. First export KUBERNETES_DOMAIN=<yourdomain> oc delete route fabric8 oc delete rc fabric8 systemctl stop openshift docker kill <fabric…

Read more

How to Compile Kubernetes for Raspberry Pi ARM

1. Golang on Pi (optional) If you have a Linux or OSX machine you can simply compile the Kubernetes Go libraries for ARM on that, but if you want to can install Golang one the Pi too. For that run apt-get update apt-get upgrade apt-get install gcc apt-get install make git clone https://go.googlesource.com/go cd go git fetch --all git checkout go1.4.3 cd src ./all.bash…

Read more

Build a Kubernetes Cloud on Raspberry Pi

Do you want your own your very own cloud? Now you can! You can create your own data-center-in-a-box using nothing but cheap open source hardware and open source software. In this article I used 4 Raspberry Pi 2’s and I spent about $200. I’m using the Kubernetes cloud operating system, and I’m using Fabric8 to build and deploy and manage my micro services. Fabric8 is an integrate…

Read more

Update 1: Proposal for Kubernetes Service Annotations.

1. This post is now old The final proposal got accepted, please see: https://kurtstam.github.io/2016/02/08/Service-Discovery-Proposal-on-Kubernetes.html https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/service-discovery.md 2. Original proposal The original proposal can be found at https://kurtstam.github.io/2015/09/22/Proposal-for-Kubernetes-Service-Annotations.html. This updat…

Read more

One click to run Apiman on Fabric8

Apiman is a API Management application that help you add policies to your service and set up and enforce contracts between service producers and consumers. Fabric8 is cloud infrastructure build on Kubernetes and Docker. If you already have fabric8 running you can skip to 'Run Apiman'. 1. Install Fabric8 1.1. Obtain the Fabric8 installer This first step is specfic to OSX, if you are running someth…

Read more

Protect a Fabric8 REST Service with Apiman

Apiman is a API Management application that help you add policies to your service and set up and enforce contracts between service producers and consumers. Fabric8 is cloud infrastructure build on Kubernetes and Docker. Please follow these steps to get Apiman running on Fabric8. In this post I will show you how to deploy a REST quickstart to Fabric8 and how to publish it as a Public Service on th…

Read more

Proposal for Kubernetes Service Annotations.

1. Updated version There is an updated version of this proposal, see https://kurtstam.github.io/2015/10/15/Update-1-Proposal-for-Kubernetes-Service-Annotations.html 2. Problem description Service URL - Every Service has one (or more) endpoint. As a rule the endpoint should be located at the root "/" of the localtion URL, i.e. http://172.100.1.52/. There are cases where this is not possible and th…

Read more

Bleeding edge, steps to Deploy Apiman to Fabric8

Apiman is a API Management application that help you add policies to your service and set up and enforce contracts between service producers and consumers. Fabric8 is cloud infrastructure build on Kubernetes and Docker. Fabric8 is fun to work with but Fabric8 is a fast moving train! If you want to be on it you need to hold on tight. In this post I list the minimal steps to get Apiman running on F…

Read more

Turn your Raspberry Pi 2 into a Hotspot

Required: Raspberri Pi 2 with a Wifi dongle, Hypriot, ethernet cable On most OSX you cannot reshare over wifi. You can however share it over the ethernet port. Raspberry Pi to the rescue :). Download and install hypriot, because it’s wonderfully small (384 MB). I used 0.4 Elizabeth. To install on your card see also Pi-oneering. On my mac I have the SD card plugged to the laptop and it comes…

Read more

Fabric8 Developer cheat sheet

A running list of commands and utilities to move around the fabric 1. Docker Log into a running docker container docker exec -it CONTAINER_NAME /bin/bash See the log for a docker container docker logs -f CONTAINER_NAME Get some live stats for on all your containers docker stats $(docker ps -q) 2. Maven & Fabric8 The following commands use the Maven Fabric8 Plugin Create a Docker image of your…

Read more

How to deploy the fabric8 console on docker

The fabric8 console is written in docker and the source lives on github at: https://github.com/fabric8io/fabric8-console. To package the console up as a docker container first run gulp site and then to create and deploy the docker container use docker build -t fabric8/fabric8-console:<version> . where <version> is the version you want it to have in your docker repository. Now you are…

Read more