Skip to content

yanatan16/clj-kubernetes-api

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

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