Chapter 8. Cartridge Events
OpenShift Enterprise provides a publish and subscribe system that enables a cartridge to act when a developer adds or removes another cartridge in an application.
The
Publishes
and Subscribes
elements in the $cartridge_name/metadata/manifest.yml
file detail support for cartridge events.
8.1. Cartridge Event Publishing
When OpenShift Enterprise adds a cartridge to an application, it uses entries in the
Publishes
section of the $cartridge_name/metadata/manifest.yml
file to construct events sent to other cartridges in the application. Define publish events in the manifest.yml
file using the following format:
Publishes: <event_name>: Type: "<event type>"
Example 8.1. PHP Cartridge Publishes Entry
Publishes: get-php-ini: Type: "FILESYSTEM:php-ini" publish-http-url: Type: "NET_TCP:httpd-proxy-info" publish-gear-endpoint: Type: "NET_TCP:gear-endpoint-info"
For each
Publishes
entry, OpenShift Enterprise runs a script named $cartridge_name/hooks/$event_name
.
OpenShift Enterprise joins lines of output that the
hooks/$event_name
script writes to stdout
with single spaces, then inputs the result to subscriber scripts in other cartridges that match the Type
of the publish event. The input to matching subscriber scripts is prefaced with hooks/<event_name> <gear_name> <namespace> <gear_uuid>
.