Sorry, that part of the systemd.special(7) manpage doesn't actually explain the problem with network.target. The problem is described here:
SPECIAL PASSIVE SYSTEM UNITS
A number of special system targets are defined that can be used to
properly order boot-up of optional services. These targets are
generally not part of the initial boot transaction, unless they are
explicitly pulled in by one of the implementing services. Note
specifically that these passive target units are generally not pulled
in by the consumer of a service, but by the provider of the service.
This means: a consuming service should order itself after these targets
(as appropriate), but not pull it in. A providing service should order
itself before these targets (as appropriate) and pull it in (via a
Wants= type dependency).
network.target is one of these "special passive system units".
Locally fixing these bugs in cloud-init and ifupdown does not unblock the networkless boot.
Sorry, that part of the systemd.special(7) manpage doesn't actually explain the problem with network.target. The problem is described here:
SPECIAL PASSIVE SYSTEM UNITS
A number of special system targets are defined that can be used to
properly order boot-up of optional services. These targets are
generally not part of the initial boot transaction, unless they are
explicitly pulled in by one of the implementing services. Note
specifically that these passive target units are generally not pulled
in by the consumer of a service, but by the provider of the service.
This means: a consuming service should order itself after these targets
(as appropriate), but not pull it in. A providing service should order
itself before these targets (as appropriate) and pull it in (via a
Wants= type dependency).
network.target is one of these "special passive system units".
Locally fixing these bugs in cloud-init and ifupdown does not unblock the networkless boot.