Add allow_empty_roles to control aborting on roles with no hosts.
This added flexibility allows you to define base roles that might not necessarily exist in each deploy destination.
This commit is contained in:
@@ -91,3 +91,8 @@ registry:
|
||||
# Caution: there's no support for role renaming yet, so be careful to cleanup
|
||||
# the previous role on the deployed hosts.
|
||||
# primary_web_role: web
|
||||
|
||||
# Controls if we abort when see a role with no hosts. Disabling this may be
|
||||
# useful for more complex deploy configurations.
|
||||
#
|
||||
# allow_empty_roles: false
|
||||
|
||||
@@ -210,6 +210,11 @@ class Kamal::Configuration
|
||||
raw_config.primary_web_role || "web"
|
||||
end
|
||||
|
||||
def allow_empty_roles?
|
||||
raw_config.allow_empty_roles
|
||||
end
|
||||
|
||||
|
||||
def valid?
|
||||
ensure_destination_if_required && ensure_required_keys_present && ensure_valid_kamal_version
|
||||
end
|
||||
@@ -257,12 +262,6 @@ class Kamal::Configuration
|
||||
raise ArgumentError, "You must specify a password for the registry in config/deploy.yml (or set the ENV variable if that's used)"
|
||||
end
|
||||
|
||||
roles.each do |role|
|
||||
if role.hosts.empty?
|
||||
raise ArgumentError, "No servers specified for the #{role.name} role"
|
||||
end
|
||||
end
|
||||
|
||||
unless role_names.include?(primary_web_role)
|
||||
raise ArgumentError, "The primary_web_role #{primary_web_role} isn't defined"
|
||||
end
|
||||
@@ -271,6 +270,18 @@ class Kamal::Configuration
|
||||
raise ArgumentError, "Role #{primary_web_role} needs to have traefik enabled"
|
||||
end
|
||||
|
||||
if role(primary_web_role).hosts.empty?
|
||||
raise ArgumentError, "No servers specified for the #{primary_web_role} primary_web_role"
|
||||
end
|
||||
|
||||
unless allow_empty_roles?
|
||||
roles.each do |role|
|
||||
if role.hosts.empty?
|
||||
raise ArgumentError, "No servers specified for the #{role.name} role. You can ignore this with allow_empty_roles: true"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
true
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user