Last active
August 1, 2017 15:28
-
-
Save sjenning/03d83e81f572c1ea21ae4d0a105a8b53 to your computer and use it in GitHub Desktop.
How to run service catalog on local kubernetes cluster
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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