Packages

helijia Skylab deployment package

Current section

Files

Jump to
helijia_skylab lib mix deploy.ex
Raw

lib/mix/deploy.ex

defmodule Mix.Tasks.Skylab.Deploy do
@moduledoc """
创建并配置 k8s 配置文件。
"""
def run(args) do
args
|> parse_args()
|> Skylab.Deploy.run()
end
defp parse_args(args) do
{options, _, _} = OptionParser.parse(args, switches: [:dry_run, :verbose])
Keyword.merge(default(), options)
end
defp default() do
config = Skylab.Config.all() |> Keyword.get(:deploy)
env =
Mix.env()
|> to_string()
|> String.upcase()
[
registry: config[:image_registry],
namespace: config[:image_namespace],
k8s_namespace: config[:k8s_namespace],
pull_registry: config[:image_pull_registry],
kube_config_secret_url: System.get_env("#{env}_KUBE_CONFIG_SECRET_PATH"),
kube_skip_tls_verify: config[:kube_skip_tls_verify],
vault_token: System.get_env("VAULT_TOKEN")
]
end
end