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"}
]
endConfigure
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:
- Add default Helm chart for zero conifg standup. (or mabye just create a draft pack?)
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/mandrag.