Mandrag

Deploy Elixir releases to Kubernetes via Distilerry and Helm

Requirements

Mandrag expects that you have docker, kubectl and helm binaries installed and configured. It also expects to you have a helm chart in the chart directory.

Installation

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

def deps do
  [
    {:mandrag, "~> 0.6.0"}
  ]
end

Configure

Mandrag doesn't require configuation, it'll introspect the parent mix config to derive configuration, and use it's own built-in Dockerfile, but you can override those values as seen below.

config :mandrag,
  # The name of the app and release. Defaults to the :app key in the parent mix project.
  app: :app_name,
  # The docker repo to push to. Defaults to `docker/app_name`.
  docker_repo: docker/another_name,
  # The path to the Dockerfile to be used.  Defaults to the Dockerfile inside this package.
  dockerfile_path: Dockerfile,
  # A map of values that are translated to `--build-arg` arguments.
  docker_build_args: %{key: "value"}

TODO:

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