It looks like Top Down Config Sync is no longer valid?

The services are well functioning. The host’s check_command is the problem.

The host’s… check_command?

Yes:

object Host "my-server1" {
  address = "10.0.0.1"
  check_command = "hostalive"
}

What if you set the zone attribute on the Host and all Services as needed?

All service checks are fine then but host check_command is scheduled at the agent which does not make sense.

Hmm, it looks like I found a solution:

/etc/icinga2/zones.d/iatl.em.lan/host.conf:

object Host "iatl.em.lan" {
   address = "192.168.1.223"
   check_command = "hostalive4"
   zone = get_object(Zone, name).parent
   vars.os = "Linux"
}

/etc/icinga2/zones.d/global-templates/ssh.conf (example for being scheduled on parent):

apply Service "ssh" {
   check_command = "ssh"
   check_interval = 10s
   assign where host.vars.os == "Linux"
}

/etc/icinga2/zones.d/global-templates/cpuload.conf (example for being scheduled on agent):

apply Service "linux_cpuload" {
   check_command = "load"
   check_interval = 10s
   zone = host.name
   assign where host.vars.os == "Linux"
}

Can anybody confirm?