K8s

K8s - Kubernetes API Client for Elixir

Build Status Coverage Status Hex.pm Documentation Hex.pm

Installation

If available in Hex, the package can be installed by adding k8s to your list of dependencies in mix.exs:

def deps do
  [
    {:k8s, "~> 0.2"}
  ]
end

Usage

Check out the Usage Guide for in-depth examples.

Most functions are also written using doctests.

Features

  • A client API for humans
  • Kubernetes resources, groups, and CRDs are autodiscovered at boot time. No swagger file to include or override.
  • Client supports standard HTTP calls, async batches, wait on status, and watchers
  • Supports multiple clusters
  • Supports multiple authentication credentials
  • Supports multiple kubernetes API
  • Tested against kubernetes swagger specs: 1.10+ and master
  • CRD support
  • Kubernetes resource and version helper functions
  • Kube config file parsing
  • Certificate and service account based auth
  • Pluggable auth providers
  • Macro free; fast compile & fast startup

Non-features

  • Modules for every kubernetes resource.
  • Assume the "default" namespaces. Always provide a namespace when a namespace is applicable.
  • Support for the deprecated Watch API.

Docs

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/k8s.