Packages
mandrag
0.2.0
1.0.0-pre.0
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.1
0.5.0
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.4
0.2.1
retired
0.2.0
retired
0.1.1
0.1.0
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Build and Deploy Elixir releases to Kubernetes via Helm
Retired package: Release invalid
Current section
Files
Jump to
Current section
Files
lib/mandrag.ex
defmodule Mandrag do
@moduledoc """
Documentation for Mandrag.
"""
def image, do: Application.get_env(:mandrag, :image) || name()
defp name, do: Mix.Project.config[:app] |> Atom.to_string
def docker(args), do: Mix.Shell.IO.cmd("docker " <> args)
def kubectl(args), do: Mix.Shell.IO.cmd("kutectl " <> args)
def latest, do: "#{image()}:latest"
def current, do: "#{image()}:#{Mix.Project.config[:version]}"
def pod do
{output, _} = System.cmd("kubectl", ~w"get pods")
output |> String.split("\n") |> Enum.find(&match/1) |> pod_name
end
defp match(line), do: line =~ name()
defp pod_name(nil), do: nil
defp pod_name(pod_line), do: pod_line |> String.split(" ") |> Enum.at(0)
end