Liking cljdoc? Tell your friends :D

kubernetes-api

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

cljdoc documentation

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, Thiago Kenji Okada, 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