+
+lowzoom_threads = node.cpu_cores - 1
+
+systemd_service "update-lowzoom@" do
+ description "Low zoom tile update service for %i layer"
+ user "tile"
+ exec_start_pre "+/bin/systemctl stop render-lowzoom.service"
+ exec_start "/bin/bash /usr/local/bin/update-lowzoom-%i"
+ runtime_directory "update-lowzoom-%i"
+ sandbox true
+ restrict_address_families "AF_UNIX"
+ read_write_paths [
+ "/srv/tile.openstreetmap.org/tiles/%i",
+ "/var/log/tile"
+ ]
+ restart "on-failure"
+end
+
+postgresql_version = node[:tile][:database][:cluster].split("/").first
+postgis_version = node[:tile][:database][:postgis]
+
+package "postgresql-#{postgresql_version}-postgis-#{postgis_version}"
+
+postgresql_user "jburgess" do
+ cluster node[:tile][:database][:cluster]
+ superuser true
+end
+
+postgresql_user "tomh" do
+ cluster node[:tile][:database][:cluster]
+ superuser true
+end
+
+postgresql_user "pnorman" do
+ cluster node[:tile][:database][:cluster]
+ superuser true
+end
+
+postgresql_user "tile" do
+ cluster node[:tile][:database][:cluster]
+end
+
+postgresql_user "www-data" do
+ cluster node[:tile][:database][:cluster]
+end
+
+postgresql_user "_renderd" do
+ cluster node[:tile][:database][:cluster]
+end
+
+postgresql_database "gis" do
+ cluster node[:tile][:database][:cluster]
+ owner "tile"
+end
+
+postgresql_extension "postgis" do
+ cluster node[:tile][:database][:cluster]
+ database "gis"
+end
+
+postgresql_extension "hstore" do
+ cluster node[:tile][:database][:cluster]
+ database "gis"
+ only_if { node[:tile][:database][:hstore] }
+end
+
+%w[geography_columns planet_osm_nodes planet_osm_rels planet_osm_ways raster_columns raster_overviews].each do |table|
+ postgresql_table table do
+ cluster node[:tile][:database][:cluster]
+ database "gis"
+ owner "tile"
+ permissions "tile" => :all
+ end
+end
+
+%w[geometry_columns planet_osm_line planet_osm_point planet_osm_polygon planet_osm_roads spatial_ref_sys].each do |table|
+ postgresql_table table do
+ cluster node[:tile][:database][:cluster]
+ database "gis"
+ owner "tile"
+ permissions "tile" => :all, "www-data" => :select, "_renderd" => :select
+ end
+end