Skip to content

Instantly share code, notes, and snippets.

@sjenning
Last active August 1, 2017 15:28
Show Gist options
  • Save sjenning/03d83e81f572c1ea21ae4d0a105a8b53 to your computer and use it in GitHub Desktop.
Save sjenning/03d83e81f572c1ea21ae4d0a105a8b53 to your computer and use it in GitHub Desktop.
How to run service catalog on local kubernetes cluster
# THIS IS NOT RUNNABLE, JUST SUFFIXED WITH .SH FOR SYNTAX HIGHLIGHT
# tested on fedora 25 with kube 1.8
# setup env
dnf install git docker gcc -y
systemctl enable --now docker
curl -OL https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
# add following to $HOME/.bashrc
#export GOPATH=$HOME/go
#export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin:$GOPATH/src/k8s.io/kubernetes/third_party/etcd/:$GOPATH/src/k8s.io/kubernetes/_output/local/bin/linux/amd64
#export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig
. $HOME/.bashrc
go get github.com/cloudflare/cfssl/...
# build and start local kube cluster
go get -d github.com/kubernetes/kubernetes
cd $GOPATH/src
mkdir -p k8s.io
mv github.com/kubernetes/kubernetes k8s.io
cd k8s.io/kubernetes
hack/install-etcd.sh
hack/local-up-cluster.sh
# this should work before proceeding
kubectl get nodes
# build service catalog
go get -d github.com/kubernetes-incubator/service-catalog
cd $GOPATH/src/github.com/kubernetes-incubator/service-catalog
# docker builds will try to rsync out of container, prohibited by selinux
export NO_DOCKER=1
make build
make images
# install helm
cd $HOME
curl -OL https://storage.googleapis.com/kubernetes-helm/helm-v2.5.1-linux-amd64.tar.gz
tar -xf helm-v2.5.1-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin
# socat is required for "helm install" command to work
dnf install socat -y
helm init
kubectl create clusterrolebinding default-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
# start service catalog
cd $GOPATH/src/github.com/kubernetes-incubator/service-catalog
helm install charts/ups-broker --name ups-broker --namespace ups-broker
. contrib/svc-cat-apiserver-aggregation-tls-setup.sh
# TEMPORARY: make changes to charts/catalog/templates/controller-manager-deployment.yaml
# https://github.com/kubernetes-incubator/service-catalog/pull/1076/files#diff-008316e45722f05a8a60a071e3a5538e
helm install charts/catalog --name catalog --namespace catalog \
--set apiserver.image=apiserver:canary \
--set apiserver.imagePullPolicy=Never \
--set apiserver.auth.enabled=true \
--set controllerManager.image=controller-manager:canary \
--set controllerManager.imagePullPolicy=Never \
--set controllerManager.apiserverSkipVerify=false \
--set useAggregator=true \
--set apiserver.tls.ca=$(base64 --wrap 0 ${SC_SERVING_CA}) \
--set apiserver.tls.cert=$(base64 --wrap 0 ${SC_SERVING_CERT}) \
--set apiserver.tls.key=$(base64 --wrap 0 ${SC_SERVING_KEY})
# watch and wait until all containers are READY
kubectl get pod -n catalog -w
# should return empty but successful
kubectl get brokers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment