Packages
k8s
2.4.0
2.8.0
2.7.0
2.6.2
2.6.1
2.6.0
2.5.0
2.4.2
2.4.1
2.4.0
2.3.0
2.2.0
2.1.1
2.1.0
2.0.3
2.0.2
2.0.1
2.0.0
2.0.0-rc.6
2.0.0-rc.5
2.0.0-rc.4
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
2.0.0-rc.0
1.2.1
1.2.0
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-rc1
0.5.2
0.5.1
0.5.0
0.5.0-rc.2
0.5.0-rc.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
retired
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.3
Kubernetes API Client for Elixir
Current section
Files
Jump to
Current section
Files
lib/k8s/discovery/driver.ex
defmodule K8s.Discovery.Driver do
@moduledoc "Driver behaviour for `K8s.Discovery`"
@typedoc """
Errors returned by adapters should return an error tuple with an `atom()` describing the error or alternatively an "error" struct with more details.
## Examples
```elixir
{:error, :file_not_found}
```
```elixir
{:error, %K8s.Discovery.Driver.MyDriver.FileNotFoundError{config: "path-to-file"}}
```
"""
@type driver_error_t :: {:error, atom() | struct()}
@doc """
List of Kubernetes `apiVersion`s
## Examples
iex> {:ok, conn} = K8s.Conn.from_file("test/support/kube-config.yaml")
...> K8s.Discovery.Driver.HTTP.api(conn)
{:ok, ["v1"]}
"""
@callback versions(conn :: K8s.Conn.t()) :: {:ok, list(String.t())} | driver_error_t
@callback versions(conn :: K8s.Conn.t(), opts :: Keyword.t()) ::
{:ok, list(String.t())} | driver_error_t
@doc """
List of Kubernetes `APIResourceList`s
## Examples
iex> {:ok, conn} = K8s.Conn.from_file("test/support/kube-config.yaml")
...> K8s.Discovery.Driver.HTTP.resources("autoscaling/v1", conn)
{:ok, [
%{
"kind" => "DaemonSet",
"name" => "daemonsets"
},
%{
"kind" => "Deployment",
"name" => "deployments"
},
%{
"kind" => "Deployment",
"name" => "deployments/status"
}
]}
"""
@callback resources(api_version :: String.t(), conn :: K8s.Conn.t()) ::
{:ok, list(map())} | driver_error_t
@callback resources(api_version :: String.t(), conn :: K8s.Conn.t(), opts :: Keyword.t()) ::
{:ok, list(map())} | driver_error_t
end