Added network configuration option to application, proxy and accessory sections

This commit is contained in:
Igor Alexandrov
2024-10-09 09:53:17 +04:00
parent 7b48648bf2
commit f04cae529a
5 changed files with 24 additions and 5 deletions

View File

@@ -1,7 +1,7 @@
class Kamal::Commands::Accessory < Kamal::Commands::Base
attr_reader :accessory_config
delegate :service_name, :image, :hosts, :port, :files, :directories, :cmd,
:publish_args, :env_args, :volume_args, :label_args, :option_args,
:network_args, :publish_args, :env_args, :volume_args, :label_args, :option_args,
:secrets_io, :secrets_path, :env_directory,
to: :accessory_config
@@ -15,7 +15,7 @@ class Kamal::Commands::Accessory < Kamal::Commands::Base
"--name", service_name,
"--detach",
"--restart", "unless-stopped",
"--network", "kamal",
*network_args,
*config.logging_args,
*publish_args,
*env_args,
@@ -64,7 +64,7 @@ class Kamal::Commands::Accessory < Kamal::Commands::Base
docker :run,
("-it" if interactive),
"--rm",
"--network", "kamal",
*network_args,
*env_args,
*volume_args,
image,

View File

@@ -18,7 +18,7 @@ class Kamal::Commands::App < Kamal::Commands::Base
"--detach",
"--restart unless-stopped",
"--name", container_name,
"--network", "kamal",
*config.network_args,
*([ "--hostname", hostname ] if hostname),
"-e", "KAMAL_CONTAINER_NAME=\"#{container_name}\"",
"-e", "KAMAL_VERSION=\"#{config.version}\"",

View File

@@ -11,7 +11,7 @@ module Kamal::Commands::App::Execution
docker :run,
("-it" if interactive),
"--rm",
"--network", "kamal",
*config.network_args,
*role&.env_args(host),
*argumentize("--env", env),
*config.volume_args,

View File

@@ -18,6 +18,7 @@ class Kamal::Configuration
PROXY_HTTP_PORT = 80
PROXY_HTTPS_PORT = 443
PROXY_LOG_MAX_SIZE = "10m"
NETWORK = "kamal"
class << self
def create_from(config_file:, destination: nil, version: nil)
@@ -193,6 +194,10 @@ class Kamal::Configuration
logging.args
end
def network_args
argumentize "--network", network
end
def readiness_delay
raw_config.readiness_delay || 7
@@ -297,6 +302,10 @@ class Kamal::Configuration
end
private
def network
raw_config["network"] || NETWORK
end
# Will raise ArgumentError if any required config keys are missing
def ensure_destination_if_required
if require_destination? && destination.nil?

View File

@@ -1,6 +1,8 @@
class Kamal::Configuration::Accessory
include Kamal::Configuration::Validation
NETWORK = "kamal"
delegate :argumentize, :optionize, to: Kamal::Utils
attr_reader :name, :accessory_config, :env
@@ -38,6 +40,10 @@ class Kamal::Configuration::Accessory
end
end
def network_args
argumentize "--network", network
end
def publish_args
argumentize "--publish", port if port
end
@@ -173,4 +179,8 @@ class Kamal::Configuration::Accessory
accessory_config["roles"].flat_map { |role| config.role(role).hosts }
end
end
def network
accessory_config["network"] || NETWORK
end
end