K8s.Discovery.Driver behaviour (k8s v2.7.0)

View Source

Driver behaviour for K8s.Discovery

Summary

Types

Errors returned by adapters should return an error tuple with an atom() describing the error or alternatively an "error" struct with more details.

Callbacks

List of Kubernetes APIResourceLists

List of Kubernetes apiVersions

Types

driver_error_t()

@type driver_error_t() :: {:error, atom() | struct()}

Errors returned by adapters should return an error tuple with an atom() describing the error or alternatively an "error" struct with more details.

Examples

{:error, :file_not_found}
{:error, %K8s.Discovery.Driver.MyDriver.FileNotFoundError{config: "path-to-file"}}

Callbacks

resources(api_version, conn)

@callback resources(api_version :: String.t(), conn :: K8s.Conn.t()) ::
  {:ok, [map()]} | driver_error_t()

List of Kubernetes APIResourceLists

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"
         }
       ]}

resources(api_version, conn, opts)

@callback resources(api_version :: String.t(), conn :: K8s.Conn.t(), opts :: Keyword.t()) ::
  {:ok, [map()]} | driver_error_t()

versions(conn)

@callback versions(conn :: K8s.Conn.t()) :: {:ok, [String.t()]} | driver_error_t()

List of Kubernetes apiVersions

Examples

iex> {:ok, conn} = K8s.Conn.from_file("test/support/kube-config.yaml")
...> K8s.Discovery.Driver.HTTP.api(conn)
{:ok, ["v1"]}

versions(conn, opts)

@callback versions(conn :: K8s.Conn.t(), opts :: Keyword.t()) ::
  {:ok, [String.t()]} | driver_error_t()