]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/tile/recipes/default.rb
Run expiry as a separate service for osm2pgsql replication
[chef.git] / cookbooks / tile / recipes / default.rb
index 41c63cd4f81f1b9c95f55252027be7035d3a3f65..4df7c25547dd60a14891c6a348a217006557f4ed 100644 (file)
@@ -596,24 +596,44 @@ if node[:tile][:replication][:engine] == "custom"
     subscribes :restart, "systemd_service[replicate]"
   end
 elsif node[:tile][:replication][:engine] == "osm2pgsql"
-  service "expire-tiles.path" do
-    action [:disable, :stop]
+  template "/usr/local/bin/expire-tiles" do
+    source "expire-tiles-osm2pgsql.erb"
+    owner "root"
+    group "root"
+    mode "755"
   end
 
-  systemd_path "expire-tiles" do
-    action :delete
+  directory "/var/lib/replicate/expire-queue" do
+    owner "tile"
+    group "_renderd"
+    mode "775"
+  end
+
+  systemd_service "expire-tiles" do
+    description "Tile dirtying service"
+    type "simple"
+    user "_renderd"
+    exec_start "/usr/local/bin/expire-tiles"
+    nice 10
+    sandbox true
+    restrict_address_families "AF_UNIX"
+    read_write_paths tile_directories + [
+                       "/var/lib/replicate/expire-queue"
+                     ]
   end
 
-  service "expire-tiles" do
-    action :stop
+  systemd_path "expire-tiles" do
+    description "Tile dirtying trigger"
+    directory_not_empty "/var/lib/replicate/expire-queue"
   end
 
-  systemd_service "expire-tiles" do
-    action :delete
+  service "expire-tiles.path" do
+    action [:enable, :start]
+    subscribes :restart, "systemd_path[expire-tiles]"
   end
 
-  template "/usr/local/bin/expire-tiles" do
-    source "expire-tiles-osm2pgsql.erb"
+  template "/usr/local/bin/replicate-post" do
+    source "replicate-post.erb"
     owner "root"
     group "root"
     mode "755"
@@ -635,11 +655,10 @@ elsif node[:tile][:replication][:engine] == "osm2pgsql"
     after "postgresql.service"
     wants "postgresql.service"
     user "tile"
-    exec_start "/bin/osm2pgsql-replication update --database gis --post-processing /usr/local/bin/expire-tiles -- #{osm2pgsql_arguments.join(' ')}"
+    exec_start "/bin/osm2pgsql-replication update --database gis --post-processing /usr/local/bin/replicate-post -- #{osm2pgsql_arguments.join(' ')}"
     sandbox :enable_network => true
     restrict_address_families "AF_UNIX"
-    read_write_paths tile_directories + [
-      "/srv/tile.openstreetmap.org/tiles",
+    read_write_paths [
       "/store/database/nodes",
       "/var/lib/replicate"
     ]