Liking cljdoc? Tell your friends :D

kubernetes-api

Kubernetes client API library for Clojure. Functions are generated using macros derived from offical swagger spec.

codox documentation available at http://joneisen.me/clj-kubernetes-api/

Installation

Add the dependency to your project.clj.

Clojars Project

Usage

First, run a kubernetes proxy with kubectl proxy --port=8080.

Each endpoint function returns a core.async channel. Under the covers, the http-kit http client is used.

(require '[kubernetes.api.v1 :as k8s]
         '[clojure.core.async :refer [<!!]])

;; Make a context for querying k8s
(def ctx (k8s/make-context "http://localhost:8080"))

;; List all nodes
(<!! (k8s/list-namespaced-node ctx))

;; Pass an optional parameter
(<!! (k8s/list-namespaced-node ctx {:namespace "default"}))

;; Create a pod
(<!! (k8s/create-namespaced-pod ctx
       {:kind "Pod" :metadata {:name "test"}
        :spec {:containers [{:name "nginx" :image "nginx"}]}}
       {:namespace "default"}))

;; Use a label selector when listing pods
(<!! (k8s/list-pod ctx {:label-selector "kube-system=true"}))

Testing

You need to have minikube running locally (minikube --bootstrapper=kubeadm --kubernetes-version=v1.10.2 start)

Start the kubernetes proxy to a running k8s cluster (kubectl proxy --port=8080)

lein test

License

See LICENSE file.

Can you improve this documentation? These fine people already did:
Jon Eisen, André Poleza, Renan Capaverde, Rafael Leal, Leonardo Schäffer, Bruno Luis Panuto Silva & Jesse B Miller
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close