k8s v0.2.6 K8s.Resource

Manifest attribute helpers

Link to this section Summary

Functions

Create a list of resource Maps from a YAML file with multi object annotation.

Returns the value of a k8s resource's annotation.

Returns the annotations of k8s resource.

Create a resource Map from a YAML file.

Check if an annotation is present.

Check if a label is present.

Returns the kind of k8s resource.

Returns the value of a k8s resource's label.

Returns the labels of k8s resource.

Returns the metadata of k8s resource.

Returns the name of k8s resource.

Returns the namespace of k8s resource.

Link to this section Functions

Link to this function

all_from_file!(path, assigns)
all_from_file!(String.t(), keyword()) :: [map()] | no_return()

Create a list of resource Maps from a YAML file with multi object annotation.

Raises File.Error when the file does not exist.

Examples

iex> opts = [namespace: "default", name: "nginx", image: "nginx:nginx:1.7.9"]
...> K8s.Resource.all_from_file!("test/support/helm-chart.yaml", opts)
[
  %{
    "apiVersion" => "v1",
    "kind" => "Namespace",
    "metadata" => %{"name" => "default"}
  },
  %{
    "apiVersion" => "apps/v1",
    "kind" => "Deployment",
    "metadata" => %{
      "labels" => %{"app" => "nginx"},
      "name" => "nginx-deployment",
      "namespace" => "default"
    },
    "spec" => %{
      "replicas" => 3,
      "selector" => %{"matchLabels" => %{"app" => "nginx"}},
      "template" => %{
        "metadata" => %{"labels" => %{"app" => "nginx"}},
        "spec" => %{
          "containers" => [
            %{
              "image" => "nginx:nginx:1.7.9",
              "name" => "nginx",
              "ports" => [%{"containerPort" => 80}]
            }
          ]
        }
      }
    }
  }
]
Link to this function

annotation(resource, name)
annotation(map(), binary()) :: binary() | nil

Returns the value of a k8s resource's annotation.

Examples

iex> K8s.Resource.annotation(%{"metadata" => %{"annotations" => %{"env" => "test"}}}, "env")
"test"
Link to this function

annotations(resource)
annotations(map()) :: map()

Returns the annotations of k8s resource.

Examples

iex> K8s.Resource.annotations(%{"metadata" => %{"annotations" => %{"env" => "test"}}})
%{"env" => "test"}
Link to this function

from_file!(path, assigns)
from_file!(String.t(), keyword()) :: map() | no_return()

Create a resource Map from a YAML file.

Raises File.Error when the file does not exist.

Examples

iex> opts = [namespace: "default", name: "nginx", image: "nginx:nginx:1.7.9"]
...> K8s.Resource.from_file!("test/support/deployment.yaml", opts)
%{
  "apiVersion" => "apps/v1",
  "kind" => "Deployment",
  "metadata" => %{
    "labels" => %{"app" => "nginx"},
    "name" => "nginx-deployment",
    "namespace" => "default"
  },
  "spec" => %{
    "replicas" => 3,
    "selector" => %{"matchLabels" => %{"app" => "nginx"}},
    "template" => %{
      "metadata" => %{"labels" => %{"app" => "nginx"}},
      "spec" => %{
        "containers" => [
          %{
            "image" => "nginx:nginx:1.7.9",
            "name" => "nginx",
            "ports" => [%{"containerPort" => 80}]
          }
        ]
      }
    }
  }
}
Link to this function

has_annotation?(resource, name)
has_annotation?(map(), binary()) :: boolean()

Check if an annotation is present.

Examples

iex> K8s.Resource.has_annotation?(%{"metadata" => %{"annotations" => %{"env" => "test"}}}, "env")
true

iex> K8s.Resource.has_annotation?(%{"metadata" => %{"annotations" => %{"env" => "test"}}}, "foo")
false
Link to this function

has_label?(resource, name)
has_label?(map(), binary()) :: boolean()

Check if a label is present.

Examples

iex> K8s.Resource.has_label?(%{"metadata" => %{"labels" => %{"env" => "test"}}}, "env")
true

iex> K8s.Resource.has_label?(%{"metadata" => %{"labels" => %{"env" => "test"}}}, "foo")
false
Link to this function

kind(resource)
kind(map()) :: binary() | nil

Returns the kind of k8s resource.

Examples

iex> K8s.Resource.kind(%{"kind" => "Deployment"})
"Deployment"
Link to this function

label(resource, name)
label(map(), binary()) :: binary() | nil

Returns the value of a k8s resource's label.

Examples

iex> K8s.Resource.label(%{"metadata" => %{"labels" => %{"env" => "test"}}}, "env")
"test"
Link to this function

labels(resource)
labels(map()) :: map()

Returns the labels of k8s resource.

Examples

iex> K8s.Resource.labels(%{"metadata" => %{"labels" => %{"env" => "test"}}})
%{"env" => "test"}
Link to this function

metadata(resource)
metadata(map()) :: map() | nil

Returns the metadata of k8s resource.

Examples

iex> K8s.Resource.metadata(%{"metadata" => %{"name" => "nginx", "namespace" => "foo"}})
%{"name" => "nginx", "namespace" => "foo"}
Link to this function

name(resource)
name(map()) :: binary() | nil

Returns the name of k8s resource.

Examples

iex> K8s.Resource.name(%{"metadata" => %{"name" => "nginx", "namespace" => "foo"}})
"nginx"
Link to this function

namespace(resource)
namespace(map()) :: binary() | nil

Returns the namespace of k8s resource.

Examples

iex> K8s.Resource.namespace(%{"metadata" => %{"name" => "nginx", "namespace" => "foo"}})
"foo"