Skip to content
Zero Config Phoenix application deployments to Kubernetes via Distilerry and Helm.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci update ci image Sep 15, 2018
config new empty project Sep 4, 2017
lib default to namespace same as name May 4, 2019
priv update dockerfile to use deploy, which matches phx.new; Apr 19, 2018
test update readme Sep 15, 2018
.formatter.exs setup and run formatter Apr 14, 2018
.gitignore setup ci Aug 1, 2018
.tool-versions update helm upgrade to use better chart directory May 4, 2019
LICENSE clean branch Sep 4, 2017
README.md
mix.exs default to namespace same as name May 4, 2019
mix.lock

README.md

Mandrag

CircleCI

Zero Confing Elixir Deployments to Kubernetes via Distilerry and Helm

Requirements

Mandrag expects that you have docker, kubectl and helm binaries installed and configured. Currently, It also expects that 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.7.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 `app_name`.
  docker_repo: "docker_user_name/app_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"}
  # The kubernetes context, defaults to your current context
  k8s_context: "docker-for-desktop"

TODO for 1.0:

  • Add default Helm chart for zero conifg standup. (or mabye just create a draft pack?)

TODO for 1.x:

  • Enable clustering for deploys with multiple replicas

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

You can’t perform that action at this time.