Configuring post-environment hooks

Post-environment hooks can trigger custom actions after deploying an environment.

To configure a list of hooks to run after Code Manager deploys code to an environment, specify the post_environment_hook parameter in Hiera. This parameter accepts an array of hashes with the url and use-client-ssl keys.

The url key specifies an HTTPS URL to send a POST request to. The request includes a JSON-formatted body containing information about the environment deployment, such as:

{
     "deploy-signature":"482f8d3adc76b5197306c5d4c8aa32aa8315694b",
     "file-sync":{
       "environment-commit":"6939889b679fdb1449545c44f26aa06174d25c21",
       "code-commit":"ce5f7158615759151f77391c7b2b8b497aaebce1"},
     "environment":"production",
     "id":3,
     "status":"complete"
   }

The use-client-ssl key is a Boolean specifying whether to use the client's SSL configuration for HTTPS connections.

By default, use-client-ssl is set to false, which means that when the HTTP client makes a request, it uses certificates from the Puppet Enterprise Java trust store file, which is located at:

/opt/puppetlabs/server/apps/java/lib/jvm/java/jre/lib/security/cacerts)
When you upgrade PE, any certificates you added to this trust store file, are cleared. If the certificates are still required, you must add them again.

Set use-client-ssl to true only if the url destination is a server that uses the Puppet certificate authority.

For example, the following settings instruct Code Manager to update classes in the console after deploying code to environments:

puppet_enterprise::master::code_manager::post_environment_hooks: 
  - url: 'https://console.example.com:4433/classifier-api/v1/update-classes' 
    use-client-ssl: true 

If you wanted to configure multiple post-environment hooks, you would add more hashes to the array.

Related information