Skip to content

Commit

Permalink
Merge pull request #2200 from dirkmueller/memcache_issue
Browse files Browse the repository at this point in the history
memcache: lookup memcached servers port only on local node (SOC-10173)
  • Loading branch information
toabctl authored Aug 23, 2019
2 parents 41279a8 + 426949d commit e011472
Show file tree
Hide file tree
Showing 20 changed files with 37 additions and 119 deletions.
11 changes: 2 additions & 9 deletions chef/cookbooks/barbican/recipes/common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,6 @@

database_connection = fetch_database_connection_string(node[:barbican][:db])

memcached_servers = MemcachedHelper.get_memcached_servers(
if node[:barbican][:ha][:enabled]
CrowbarPacemakerHelper.cluster_nodes(node, "barbican-controller")
else
[node]
end
)

memcached_instance("barbican") if node["roles"].include?("barbican-controller")

template node[:barbican][:config_file] do
Expand All @@ -54,7 +46,8 @@
host_href: "#{barbican_protocol}://#{public_host}:#{node[:barbican][:api][:bind_port]}",
rabbit_settings: fetch_rabbitmq_settings,
keystone_settings: KeystoneHelper.keystone_settings(node, @cookbook_name),
memcached_servers: memcached_servers
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "barbican-controller"))
)
notifies :reload, resources(service: "apache2")
end
Expand Down
7 changes: 2 additions & 5 deletions chef/cookbooks/ceilometer/recipes/common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@
is_controller = node["roles"].include?("ceilometer-server")
ha_enabled = node[:ceilometer][:ha][:server][:enabled]

memcached_servers = MemcachedHelper.get_memcached_servers(
ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "ceilometer-server") : [node]
)

memcached_instance("ceilometer-server") if is_controller

keystone_settings = KeystoneHelper.keystone_settings(node, @cookbook_name)
Expand Down Expand Up @@ -85,7 +81,8 @@
rabbit_settings: fetch_rabbitmq_settings,
keystone_settings: keystone_settings,
monasca_project: monasca_project,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "ceilometer-server")),
bind_host: bind_host,
bind_port: bind_port,
metering_secret: node[:ceilometer][:metering_secret],
Expand Down
11 changes: 2 additions & 9 deletions chef/cookbooks/cinder/recipes/common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,6 @@
include_recipe "crowbar-openstack::common"
end

memcached_servers = MemcachedHelper.get_memcached_servers(
if node[:cinder][:ha][:enabled]
CrowbarPacemakerHelper.cluster_nodes(node, "cinder-controller")
else
[node]
end
)

memcached_instance("cinder") if node["roles"].include?("cinder-controller")

profiler_settings = KeystoneHelper.profiler_settings(node, @cookbook_name)
Expand Down Expand Up @@ -141,7 +133,8 @@
strict_ssh_host_key_policy: node[:cinder][:strict_ssh_host_key_policy],
default_availability_zone: node[:cinder][:default_availability_zone],
default_volume_type: node[:cinder][:default_volume_type],
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "cinder-controller")),
profiler_settings: profiler_settings
)
end
11 changes: 2 additions & 9 deletions chef/cookbooks/designate/recipes/common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,6 @@
# get Database data
sql_connection = fetch_database_connection_string(node[:designate][:db])

memcached_servers = MemcachedHelper.get_memcached_servers(
if node[:designate][:ha][:enabled]
CrowbarPacemakerHelper.cluster_nodes(node, "designate-server")
else
[node]
end
)

memcached_instance("designate") if node["roles"].include?("designate-server")

api_protocol = node[:designate][:api][:protocol]
Expand Down Expand Up @@ -74,7 +66,8 @@
sql_connection: sql_connection,
rabbit_settings: fetch_rabbitmq_settings,
keystone_settings: keystone_settings,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "designate-server")),
resource_project_id: resource_project_id
)
end
8 changes: 2 additions & 6 deletions chef/cookbooks/ec2-api/recipes/ec2api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,6 @@
bind_port_s3 = node[:nova][:ports][:ec2_s3]
end

# use memcached as a cache backend for ec2-api-metadata
memcached_servers = MemcachedHelper.get_memcached_servers(
ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "ec2-api") : [node]
)

memcached_instance "ec2-api"

crowbar_pacemaker_sync_mark "wait-ec2_api_database" if ha_enabled
Expand Down Expand Up @@ -219,7 +214,8 @@
bind_port_metadata: bind_port_metadata,
bind_port_s3: bind_port_s3,
nova_metadata_settings: nova_metadata_settings,
memcached_servers: memcached_servers
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "ec2-api"))
)
end

Expand Down
6 changes: 2 additions & 4 deletions chef/cookbooks/glance/recipes/api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,6 @@
network_settings = GlanceHelper.network_settings(node)

ha_enabled = node[:glance][:ha][:enabled]
memcached_servers = MemcachedHelper.get_memcached_servers(
ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "glance-server") : [node]
)

glance_stores = node.default[:glance][:glance_stores].dup
glance_stores += ["vmware"] unless node[:glance][:vsphere][:host].empty?
Expand All @@ -72,7 +69,8 @@
bind_host: network_settings[:api][:bind_host],
bind_port: network_settings[:api][:bind_port],
keystone_settings: keystone_settings,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "glance-server")),
rabbit_settings: fetch_rabbitmq_settings,
swift_api_insecure: swift_insecure,
cinder_api_insecure: cinder_insecure,
Expand Down
6 changes: 2 additions & 4 deletions chef/cookbooks/heat/recipes/server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,6 @@
end
end

memcached_servers = MemcachedHelper.get_memcached_servers(
ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "heat-server") : [node]
)
memcached_instance("heat-server")

keystone_settings = KeystoneHelper.keystone_settings(node, @cookbook_name)
Expand Down Expand Up @@ -389,7 +386,8 @@
debug: node[:heat][:debug],
rabbit_settings: fetch_rabbitmq_settings,
keystone_settings: keystone_settings,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "heat-server")),
database_connection: db_connection,
bind_host: bind_host,
api_port: api_port,
Expand Down
8 changes: 2 additions & 6 deletions chef/cookbooks/horizon/recipes/server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -368,11 +368,6 @@
neutron_ml2_type_drivers = "'*'"
end

# We're going to use memcached as a cache backend for Django
memcached_locations = MemcachedHelper.get_memcached_servers(
ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "horizon-server") : [node]
)

memcached_instance "openstack-dashboard"

crowbar_pacemaker_sync_mark "wait-horizon_config" if ha_enabled
Expand Down Expand Up @@ -445,7 +440,8 @@
help_url: node[:horizon][:help_url],
session_timeout: node[:horizon][:session_timeout],
secret_key: node["horizon"]["secret_key"],
memcached_locations: memcached_locations,
memcached_locations: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "horizon-server")),
can_set_mount_point: node["horizon"]["can_set_mount_point"],
can_set_password: node["horizon"]["can_set_password"],
multi_domain_support: multi_domain_support,
Expand Down
4 changes: 1 addition & 3 deletions chef/cookbooks/ironic/recipes/server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,6 @@

ironic_net_name = "ironic"

memcached_servers = MemcachedHelper.get_memcached_servers([node])

memcached_instance("ironic")

template node[:ironic][:config_file] do
Expand Down Expand Up @@ -206,7 +204,7 @@
api_port: api_port,
api_url: api_url,
auth_version: auth_version,
memcached_servers: memcached_servers
memcached_servers: MemcachedHelper.get_memcached_servers(node)
}
}
)
Expand Down
6 changes: 1 addition & 5 deletions chef/cookbooks/keystone/recipes/server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,6 @@
cluster_nodes = cluster_nodes.map { |n| Chef::Node.load(n) }
cluster_nodes.sort_by! { |n| n[:hostname] }

memcached_servers = MemcachedHelper.get_memcached_servers(
ha_enabled ? cluster_nodes : [node]
)

memcached_instance "keystone"

# resource to set a flag when apache2 is restarted so we now which cookbook was the
Expand Down Expand Up @@ -262,7 +258,7 @@
node[:keystone][:api][:protocol],
my_admin_host, node[:keystone][:api][:admin_port]
),
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node, cluster_nodes),
token_format: node[:keystone][:token_format],
token_expiration: node[:keystone][:token_expiration],
max_active_keys: max_active_keys,
Expand Down
6 changes: 2 additions & 4 deletions chef/cookbooks/magnum/recipes/common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@

ha_enabled = node[:magnum][:ha][:enabled]

memcached_servers = MemcachedHelper.get_memcached_servers(
ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "magnum-server") : [node]
)
memcached_instance("magnum-server")

include_recipe "database::client"
Expand Down Expand Up @@ -55,6 +52,7 @@
sql_connection: sql_connection,
rabbit_settings: fetch_rabbitmq_settings,
keystone_settings: KeystoneHelper.keystone_settings(node, :magnum),
memcached_servers: memcached_servers
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "magnum-server"))
)
end
11 changes: 2 additions & 9 deletions chef/cookbooks/manila/recipes/common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,6 @@
enabled_share_protocols = ["NFS", "CIFS"]
enabled_share_protocols << ["CEPHFS"] if ManilaHelper.has_cephfs_share? node

memcached_servers = MemcachedHelper.get_memcached_servers(
if node[:manila][:ha][:enabled]
CrowbarPacemakerHelper.cluster_nodes(node, "manila-server")
else
[node]
end
)

memcached_instance("manila") if node["roles"].include?("manila-server")

template node[:manila][:config_file] do
Expand Down Expand Up @@ -145,7 +137,8 @@
cinder_insecure: cinder_insecure,
cinder_admin_username: cinder_admin_username,
cinder_admin_password: cinder_admin_password,
memcached_servers: memcached_servers
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "manila-server"))
)
end

Expand Down
10 changes: 3 additions & 7 deletions chef/cookbooks/memcached/libraries/helpers.rb
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
module MemcachedHelper
def self.get_memcached_servers(memcached_nodes)
def self.get_memcached_servers(node, memcached_nodes = [])
memcached_nodes = [node] if memcached_nodes.empty?
memcached_servers = memcached_nodes.map do |n|
node_admin_ip = Chef::Recipe::Barclamp::Inventory.get_network_by_type(n,
"admin").address
port = if n.key?(:memcached) && n[:memcached].key?(:port)
n[:memcached][:port]
else
memcached_nodes.first[:memcached][:port]
end
"#{node_admin_ip}:#{port}"
"#{node_admin_ip}:#{node[:memcached][:port]}"
end
memcached_servers.sort!
memcached_servers
Expand Down
11 changes: 2 additions & 9 deletions chef/cookbooks/monasca/recipes/monasca_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,6 @@

keystone_settings = KeystoneHelper.keystone_settings(node, @cookbook_name)

memcached_servers = MemcachedHelper.get_memcached_servers(
if node[:monasca][:ha][:enabled]
CrowbarPacemakerHelper.cluster_nodes(node, "monasca-server")
else
[node]
end
)

memcached_instance("monasca") if node["roles"].include?("monasca-server")

# get Database data
Expand All @@ -46,7 +38,8 @@
mode "0640"
variables(
keystone_settings: keystone_settings,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "monasca-server")),
kafka_host: monasca_net_ip,
tsdb_host: monasca_net_ip,
sql_connection: sql_connection,
Expand Down
11 changes: 2 additions & 9 deletions chef/cookbooks/monasca/recipes/monasca_log_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,6 @@
monasca_node = search(:node, "roles:monasca-server")[0]
monasca_net_ip = MonascaHelper.get_host_for_monitoring_url(monasca_node)

memcached_servers = MemcachedHelper.get_memcached_servers(
if node[:monasca][:ha][:enabled]
CrowbarPacemakerHelper.cluster_nodes(node, "monasca-server")
else
[node]
end
)

memcached_instance("monasca") if node["roles"].include?("monasca-server")

template "/etc/monasca/log-api.conf" do
Expand All @@ -44,7 +36,8 @@
mode "0640"
variables(
keystone_settings: keystone_settings,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "monasca-server")),
kafka_url: "#{monasca_net_ip}:#{node[:monasca][:kafka][:port]}"
)
end
Expand Down
6 changes: 2 additions & 4 deletions chef/cookbooks/neutron/recipes/common_config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,6 @@
profiler_settings = KeystoneHelper.profiler_settings(node, @cookbook_name)

ha_enabled = node[:neutron][:ha][:server][:enabled]
memcached_servers = MemcachedHelper.get_memcached_servers(
ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "neutron-server") : [node]
)

memcached_instance("neutron-server") if is_neutron_server

Expand Down Expand Up @@ -167,7 +164,8 @@
rabbit_settings: CrowbarOpenStackHelper.rabbitmq_settings(neutron, "neutron"),
keystone_settings: keystone_settings,
profiler_settings: profiler_settings,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "neutron-server")),
ssl_enabled: neutron[:neutron][:api][:protocol] == "https",
ssl_cert_file: neutron[:neutron][:ssl][:certfile],
ssl_key_file: neutron[:neutron][:ssl][:keyfile],
Expand Down
8 changes: 2 additions & 6 deletions chef/cookbooks/nova/recipes/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,6 @@
glance_insecure = CrowbarOpenStackHelper.insecure(glance_config) || keystone_settings["insecure"]
Chef::Log.info("Glance server at #{glance_server_host}")

# use memcached as a cache backend for nova-novncproxy
memcached_servers = MemcachedHelper.get_memcached_servers(
api_ha_enabled ? CrowbarPacemakerHelper.cluster_nodes(node, "nova-controller") : [node]
)

memcached_instance "nova" if is_controller

directory "/etc/nova" do
Expand Down Expand Up @@ -388,7 +383,8 @@
vncproxy_cert_file: api_novnc_ssl_certfile,
vncproxy_key_file: api_novnc_ssl_keyfile,
serialproxy_public_host: public_api_host,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "nova-controller")),
neutron_protocol: neutron_protocol,
neutron_server_host: neutron_server_host,
neutron_server_port: neutron_server_port,
Expand Down
11 changes: 2 additions & 9 deletions chef/cookbooks/sahara/recipes/common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,6 @@

use_ceilometer = !Barclamp::Config.load("openstack", "ceilometer").empty?

memcached_servers = MemcachedHelper.get_memcached_servers(
if node[:sahara][:ha][:enabled]
CrowbarPacemakerHelper.cluster_nodes(node, "sahara-server")
else
[node]
end
)

memcached_instance("sahara") if node["roles"].include?("sahara-server")

template node[:sahara][:config_file] do
Expand All @@ -65,7 +57,8 @@
keystone_settings: KeystoneHelper.keystone_settings(node, :sahara),
cinder_insecure: cinder_insecure,
heat_insecure: heat_insecure,
memcached_servers: memcached_servers,
memcached_servers: MemcachedHelper.get_memcached_servers(node,
CrowbarPacemakerHelper.cluster_nodes(node, "sahara-server")),
neutron_insecure: neutron_insecure,
nova_insecure: nova_insecure,
use_ceilometer: use_ceilometer
Expand Down
Loading

0 comments on commit e011472

Please sign in to comment.