add kubernetes documentation
diff --git a/README.md b/README.md
index 5bde37d..6e3c820 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,11 @@
Prebuilt containers are posted on [Docker Hub](https://hub.docker.com/r/swisstxt/cloudstack-cloud-controller-manager).
-**TODO** Add an example Kubernetes deployment.
+### Kubernetes
+
+To deploy the ccm in the cluster see [deployment.yaml](https://github.com/swisstxt/cloudstack-cloud-controller-manager/blob/master/deployment.yaml) and configure your cloudstack and api server connection. See the comments.
+
+### Development
Make sure your apiserver is running locally and keep your cloudstack config ready:
diff --git a/deployment.yaml b/deployment.yaml
new file mode 100644
index 0000000..8ca11f1
--- /dev/null
+++ b/deployment.yaml
@@ -0,0 +1,79 @@
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: cloud-controller-manager
+ namespace: kube-system
+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: system:cloud-controller-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: cluster-admin
+subjects:
+- kind: ServiceAccount
+ name: cloud-controller-manager
+ namespace: kube-system
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: cloud-controller-manager-config
+ namespace: kube-system
+data:
+ cloud-config: |
+ [Global]
+ api-url = #(CLOUDSTACK API URL)#
+ api-key = #(CLOUDSTACK API KEY)#
+ secret-key = #(CLOUDSTACK API SECRET)#
+ project-id = #(CLOUDSTACK PROJECT UUID optional)#
+ zone = #(CLOUDSTACK ZONE NAME)#
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ k8s-app: cloud-controller-manager
+ name: cloud-controller-manager
+ namespace: kube-system
+spec:
+ selector:
+ matchLabels:
+ k8s-app: cloud-controller-manager
+ template:
+ metadata:
+ labels:
+ k8s-app: cloud-controller-manager
+ spec:
+ serviceAccountName: cloud-controller-manager
+ containers:
+ - name: cloud-controller-manager
+ image: swisstxt/cloudstack-cloud-controller-manager:v0.0.1
+ # Command line arguments: https://kubernetes.io/docs/reference/command-line-tools-reference/cloud-controller-manager/
+ command:
+ - /root/cloudstack-ccm
+ - --cloud-provider=external-cloudstack
+ - --cloud-config=/config/cloud-config
+ - --kubeconfig=/var/lib/kubelet/kubeconfig # Connection Params
+ - --v=4
+ volumeMounts:
+ - name: config-volume
+ mountPath: /config
+ - name: kubeconfig-volume
+ mountPath: /var/lib/kubelet/kubeconfig
+ - name: kubernetes-config-volume
+ mountPath: /var/lib/kubernetes
+ volumes:
+ - name: config-volume
+ configMap:
+ name: cloud-controller-manager-config
+ - name: kubeconfig-volume
+ hostPath:
+ path: /var/lib/kubelet/kubeconfig
+ - name: kubernetes-config-volume
+ hostPath:
+ path: /var/lib/kubernetes
+