Skip to content

yanatan16/clj-kubernetes-api

Repository files navigation

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

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

lein test

License

See LICENSE file.

About

Kubernetes API Client library in Clojure

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •