<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Spinnaker – Triggers Overview</title>
    <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/</link>
    <description>Recent content in Triggers Overview on Spinnaker</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Triggering pipelines with Bitbucket Server</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/bitbucket-events/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/bitbucket-events/</guid>
      <description>
        
        
        &lt;h2 id=&#34;overview-of-supported-bitbucket-server-events&#34;&gt;Overview of supported Bitbucket Server events&lt;/h2&gt;
&lt;p&gt;Spinnaker supports the following Bitbucket Server webhook events:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Declined (pr:declined)&lt;/li&gt;
&lt;li&gt;Deleted (pr:deleted)&lt;/li&gt;
&lt;li&gt;Merged (pr:merged)&lt;/li&gt;
&lt;li&gt;Modified/Source branch updated (pr:from_ref_updated)&lt;/li&gt;
&lt;li&gt;Opened (pr:opened)&lt;/li&gt;
&lt;li&gt;Push (repo:refs_changed)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You are familiar with 
&lt;a href=&#34;https://confluence.atlassian.com/bitbucketserver/manage-webhooks-938025878.html&#34; target=&#34;_blank&#34;&gt;creating and triggering webhooks&lt;/a&gt;
 in Bitbucket Server.&lt;/li&gt;
&lt;li&gt;You have configured 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/features/notifications/#bitbucket-cloud&#34;&gt;Bitbucket notifications (webhooks)&lt;/a&gt;
 in Spinnaker and enabled the desired webhook events in your Bitbucket repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;add-a-bitbucket-webhook-event-as-a-pipeline-trigger&#34;&gt;Add a Bitbucket webhook event as a pipeline trigger&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In your pipeline, go to &lt;strong&gt;Configuration&lt;/strong&gt; &amp;gt; &lt;strong&gt;Automated Triggers&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure a new trigger with the following information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Type&lt;/strong&gt;: &lt;code&gt;Git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Repo Type&lt;/strong&gt;: &lt;code&gt;bitbucket&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Team or User&lt;/strong&gt;: enter your Bitbucket team or user name&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Repo name&lt;/strong&gt;: enter your Bitbucket repo name&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Branch&lt;/strong&gt;: enter your branch name (optional)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Artifact Constraints&lt;/strong&gt;: select a constraint (optional)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Trigger Enabled&lt;/strong&gt;: select the box&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;troubleshooting&#34;&gt;Troubleshooting&lt;/h2&gt;
&lt;p&gt;Check the Echo log for webhook activity.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Triggering pipelines on receiving CDEvents</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/cdevents/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/cdevents/</guid>
      <description>
        
        
        &lt;h2 id=&#34;about-cdevents&#34;&gt;About CDEvents&lt;/h2&gt;
&lt;p&gt;CDEvents is a common specification for Continuous Delivery events, it enables interoperability between the CI/CD tools.&lt;/p&gt;
&lt;p&gt;CDEvents builds upon 
&lt;a href=&#34;https://github.com/cloudevents/spec&#34; target=&#34;_blank&#34;&gt;CloudEvents&lt;/a&gt;
 by adding CI/CD specific extensions to CloudEvents 
&lt;a href=&#34;https://github.com/cloudevents/spec/blob/v1.0.1/spec.md#data&#34; target=&#34;_blank&#34;&gt;data&lt;/a&gt;
 object as a payload, more details on types of CDEvents and specification can be found in the Documentation at 
&lt;a href=&#34;http://cdevents.dev&#34; target=&#34;_blank&#34;&gt;http://cdevents.dev&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;In order to programmatically trigger pipelines, you can send a CDEvent via &lt;code&gt;POST&lt;/code&gt; request to Spinnaker at a preconfigured endpoint or create a subscription with this endpoint for a specific CDEvent type in the 
&lt;a href=&#34;https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageBroker.html&#34; target=&#34;_blank&#34;&gt;Message Broker&lt;/a&gt;
. You can use this to trigger pipelines from other CI/CD tools which supports Sending CDEvents through configured 
&lt;a href=&#34;https://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageBroker.html&#34; target=&#34;_blank&#34;&gt;Message Broker&lt;/a&gt;
, or from the command line, or from a third-party system.
The data payload will be available in the Pipeline&amp;rsquo;s execution.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;:  You can trigger multiple pipelines with one CDEvent message.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you&amp;rsquo;re triggering to a Spinnaker with authentication, see the
instructions 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/security/authorization/#automated-pipeline-triggers&#34;&gt;here&lt;/a&gt;
 to set up the
automated trigger.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Artifact support 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/artifacts/#enabling-artifact-support&#34;&gt;enabled&lt;/a&gt;
.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;adding-a-cdevents-trigger-to-a-pipeline&#34;&gt;Adding a CDEvents trigger to a pipeline&lt;/h2&gt;
&lt;p&gt;Assuming you&amp;rsquo;ve created a pipeline, under &lt;strong&gt;Configuration&lt;/strong&gt;, select &lt;strong&gt;Add
Trigger&lt;/strong&gt; and make its type selector &lt;strong&gt;CDEvents&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To assign an endpoint that must be hit, you can provide a value to the
&lt;strong&gt;Source&lt;/strong&gt; field as shown here:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./trigger_source.png&#34; alt=&#34;trigger_source.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Notice that in the above image below the &lt;strong&gt;Type&lt;/strong&gt; dropdown, the endpoint
configuration points out that we can send CDEvent to
&lt;code&gt;http://localhost:8084/webhooks/cdevents/artifactPublished&lt;/code&gt; to trigger the pipeline from localhost. The
endpoint depends on how you&amp;rsquo;ve configured your 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/security/&#34;&gt;Spinnaker endpoints&lt;/a&gt;
 &amp;ndash; in the above image it is showing a different endpoint where Spinnaker is running.&lt;/p&gt;
&lt;p&gt;Keeping track of that endpoint as &lt;code&gt;$ENDPOINT&lt;/code&gt; (it will depend on where
Spinnaker is installed), and save that pipeline.&lt;/p&gt;
&lt;p&gt;You can run the below curl command to send a specific type of CDEvent that is built upon CloudEvent.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl &lt;span style=&#34;color:#000&#34;&gt;$ENDPOINT&lt;/span&gt; -X POST -H &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Ce-Id: 123456789&amp;#34;&lt;/span&gt; -H &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Ce-Specversion: 1.0&amp;#34;&lt;/span&gt; -H &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Ce-Type: dev.cdevents.artifact.published.0.1.0&amp;#34;&lt;/span&gt; -H &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Ce-Source: https://ci-build.est.tech&amp;#34;&lt;/span&gt; -H &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; -d &lt;span style=&#34;color:#000&#34;&gt;$CDEVENTDATA&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;$CDEVENTDATA&lt;/code&gt; can be constructed as per 
&lt;a href=&#34;https://github.com/cdevents/spec/blob/main/spec.md&#34; target=&#34;_blank&#34;&gt;CDEvents-spec&lt;/a&gt;
, to trigger the pipeline with different Payload constraints and HTTP headers can be used to trigger the pipelines with matching Attribute constraints.&lt;/p&gt;
&lt;h3 id=&#34;attribute-constraints&#34;&gt;Attribute constraints&lt;/h3&gt;
&lt;p&gt;If you want to trigger the pipeline only when the specific headers are matching from the CDEvents webhook request, you can provide &lt;strong&gt;Attribute constraints&lt;/strong&gt; in the trigger configuration.&lt;/p&gt;
&lt;p&gt;For example, If we configure the pipeline as below,
&lt;img src=&#34;./attribute_constraints.png&#34; alt=&#34;attribute_constraints.png &#34;&gt;
The attribute constraints used here &lt;code&gt;ce-type = dev.cdevents.artifact.published.0.1.0&lt;/code&gt; and &lt;code&gt;ce-source = https://ci-build.est.tech&lt;/code&gt; from the request.&lt;/p&gt;
&lt;h3 id=&#34;payload-constraints&#34;&gt;Payload constraints&lt;/h3&gt;
&lt;p&gt;If you want to ensure that a pipeline triggers only when a certain payload
arrives, you can provide &lt;strong&gt;Payload Constraints&lt;/strong&gt; in the trigger. These are
key/value pairs where the key must be found in the incoming payload, and the
value must match using regex.&lt;/p&gt;
&lt;p&gt;For example, if we configured:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./payload_constraints.png&#34; alt=&#34;payload_constraints.png &#34;&gt;
The payload constraints used here &lt;code&gt;context.source = https://ci-build.est.tech&lt;/code&gt;, &lt;code&gt;customData.mykey = myvalue&lt;/code&gt;, &lt;code&gt;customData.bing = b.*p&lt;/code&gt; and &lt;code&gt;subject.type = ARTIFACT&lt;/code&gt;.&amp;quot;&lt;/p&gt;
&lt;p&gt;The following &lt;code&gt;$CDEVENTDATA&lt;/code&gt; payload would be accepted:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;context&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;123456789&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;dev.cdevents.artifact.published.0.1.0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://ci-build.est.tech&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;0.1.2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customData&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mykey&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;myvalue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;bing&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;boooop&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customDataContentType&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;subject&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ARTIFACT&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;pipelineName&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;test-1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;outcome&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;SUCCESS&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But this payload would be rejected (pipeline would not trigger):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;context&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;123456789&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;https://other-url.est.tech&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customData&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mykey&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;myvalue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customDataContentType&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;subject&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;PIPELINERUN&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;passing-parameters&#34;&gt;Passing parameters&lt;/h2&gt;
&lt;p&gt;Say your pipeline accepted some parameters (for example, the desired stack to
deploy to), you can make this explicit by adding a pipeline parameter on the
same configuration screen as the CDEvents Automated trigger:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./parameters.png&#34; alt=&#34;parameters.png &#34;&gt;
For more information on how to use pipeline parameters, see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/expressions&#34;&gt;pipeline expressions guide&lt;/a&gt;
.&amp;quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Warning: there are several reserved parameter keys (names) that cause unexpected behaviour and failures
if overwritten by a pipeline parameter definition.
See the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/expressions#list-of-reserved-parameter-and-evaluate-variable-key-names&#34;&gt;list of reserved parameter and evaluate variable key names&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you were to manually execute this pipeline, you would be prompted with the
following dialogue:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./manual-execution.png&#34; alt=&#34;manual-execution.png &#34;&gt;&lt;/p&gt;
&lt;p&gt;If instead you were to trigger this pipeline with a CDEvents Webhook request, you could supply each parameter a value inside a key/value map called &lt;code&gt;parameters&lt;/code&gt; with in the &lt;code&gt;customData&lt;/code&gt; of a &lt;code&gt;$CDEVENTDATA&lt;/code&gt; payload. Take the
following payload for example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;context&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;5fb38d7d-28dd-47e4-ade2-cb21153cc8dc&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customData&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;parameters&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;stack&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;prod&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customDataContentType&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;subject&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ARTIFACT&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you select the &lt;strong&gt;Required&lt;/strong&gt; checkbox for a parameter without
providing a default, the pipeline does not trigger if a parameter is not
present. The difference between this and the preconditions covered earlier is
that when a precondition isn&amp;rsquo;t met, Spinnaker doesn&amp;rsquo;t even try to run the
pipeline. However, when a required parameter doesn&amp;rsquo;t exist, Spinnaker tries
and fails to run a pipeline, surfacing a &amp;ldquo;Failed Execution&amp;rdquo; in the UI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;passing-artifacts&#34;&gt;Passing artifacts&lt;/h2&gt;
&lt;p&gt;If your pipeline requires artifacts (for example, a custom artifact stored in a specific location), you can make this explicit by defining an &lt;strong&gt;Expected Artifact&lt;/strong&gt;
and assigning it to the CDEvents Webhook as shown below:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./assign_artifact.png&#34; alt=&#34;assign_artifact.png &#34;&gt;
&lt;img src=&#34;./expected_artifact.png&#34; alt=&#34;expected_artifact.png &#34;&gt;&lt;/p&gt;
&lt;p&gt;In order to run this pipeline, you will need to supply the required artifact in the &lt;code&gt;customData&lt;/code&gt; of a &lt;code&gt;$CDEVENTDATA&lt;/code&gt; payload under a list of &lt;code&gt;artifacts&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;context&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;5fb38d7d-28dd-47e4-ade2-cb21153cc8dc&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customData&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;artifacts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;custom/object&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;image-cdevents&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1.0.1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;location&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;localhost:5000/cdevent/image-cdevents:v1.0.1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reference&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;custom/object/artifact&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;customDataContentType&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;application/json&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;subject&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ARTIFACT&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Docs: Receiving artifacts from GCS</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/gcs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/gcs/</guid>
      <description>
        
        
        &lt;p&gt;This functionality uses Google&amp;rsquo;s

&lt;a href=&#34;https://cloud.google.com/pubsub/docs/overview&#34; target=&#34;_blank&#34;&gt;Pub/Sub&lt;/a&gt;
 system for delivering
messages to Spinnaker and must be configured to send messages to
Spinnaker&amp;rsquo;s event bus as shown below.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;If you or your Spinnaker admin have already configured Spinnaker to listen to
Pub/Sub messages from the GCS bucket you plan to publish objects to, you can
skip this section. &lt;em&gt;One Pub/Sub subscription can be used to trigger as many
independent Spinnaker pipelines as needed&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;You need the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A billing enabled 
&lt;a href=&#34;https://cloud.google.com/storage/docs/projects&#34; target=&#34;_blank&#34;&gt;Google Cloud Platform (GCP)
project&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;This will be referred to as &lt;code&gt;$PROJECT&lt;/code&gt; from now on.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://cloud.google.com/sdk/gcloud/&#34; target=&#34;_blank&#34;&gt;gcloud&lt;/a&gt;
. Make sure to run &lt;code&gt;gcloud auth login&lt;/code&gt; if you have installed &lt;code&gt;gcloud&lt;/code&gt; for the first time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/&#34;&gt;A running Spinnaker instance&lt;/a&gt;
. This guide shows you how
to configure an existing one to accept GCS messages and download the files
referenced by the messages in your pipelines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Artifact support 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/artifacts/#enabling-artifact-support&#34;&gt;enabled&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point, we will configure Pub/Sub and a GCS artifact account. The
Pub/Sub messages will be received by Spinnaker whenever a file is uploaded or
changed, and the artifact account will allow you to download these where
necessary.&lt;/p&gt;
&lt;h2 id=&#34;1-configure-google-pubsub-for-gcs&#34;&gt;1. Configure Google Pub/Sub for GCS&lt;/h2&gt;
&lt;p&gt;Follow the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/triggers/google/&#34;&gt;Pub/Sub configuration&lt;/a&gt;
, in particular, pay
attention to the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/triggers/google/#receiving-messages-from-google-cloud-storage-gcs&#34;&gt;GCS
section&lt;/a&gt;

since this is where we&amp;rsquo;ll be publishing our files to.&lt;/p&gt;
&lt;h2 id=&#34;2-configure-a-gcs-artifact-account&#34;&gt;2. Configure a GCS artifact account&lt;/h2&gt;
&lt;p&gt;Follow the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/artifacts/gcs/&#34;&gt;GCS artifact configuration&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;3-apply-your-configuration-changes&#34;&gt;3. Apply your configuration changes&lt;/h2&gt;
&lt;p&gt;Once the Pub/Sub and artifact changes have been made deploy them 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install&#34;&gt;to Spinnaker&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;using-gcs-artifacts-in-pipelines&#34;&gt;Using GCS artifacts in pipelines&lt;/h2&gt;
&lt;p&gt;We will need either an existing or a new pipeline that we want to be triggered
on changes to GCS artifacts. If you do not have a pipeline, create one as shown
below.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./create-pipeline.png&#34;
         alt=&#34;You can create and edit pipelines in the Pipelines tab of Spinnaker&#34;/&gt;&lt;figcaption&gt;
            &lt;p&gt;You can create and edit pipelines in the &lt;strong&gt;Pipelines&lt;/strong&gt; tab of Spinnaker&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;configure-the-gcs-trigger&#34;&gt;Configure the GCS trigger&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s add a Pub/Sub trigger to run our pipeline.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./add-trigger.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;Next, we must configure the trigger:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;Pub/Sub&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pub/Sub System Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;Google&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subscription Name&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Depends on your Pub/Sub configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Attribute Constraints&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Must be configured to include the pair &lt;code&gt;eventType&lt;/code&gt;:&lt;code&gt;OBJECT_FINALIZE&lt;/code&gt; (See the 
&lt;a href=&#34;https://cloud.google.com/storage/docs/pubsub-notifications#events&#34; target=&#34;_blank&#34;&gt;docs&lt;/a&gt;
)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Expected Artifacts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Must reference the artifact defined previously&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure&gt;&lt;img src=&#34;./pubsub-config.png&#34;/&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;configure-the-gcs-artifact&#34;&gt;Configure the GCS artifact&lt;/h2&gt;
&lt;p&gt;Now we need to declare that the Pub/Sub trigger expects that a specific artifact
matching some criteria is available before the pipeline starts executing. In
doing so, you guarantee that an artifact matching your description is present in
the pipeline&amp;rsquo;s execution context. If no artifact for this description is present,
the pipeline won&amp;rsquo;t start.&lt;/p&gt;
&lt;p&gt;To configure the artifact, go to the &lt;strong&gt;Artifact Constraints&lt;/strong&gt; dropdown for the
Pub/Sub trigger configuration, and select &lt;strong&gt;&amp;ldquo;Define a new artifact&amp;hellip;&amp;rdquo;&lt;/strong&gt; to bring
up the &lt;strong&gt;Expected Artifact&lt;/strong&gt; form.&lt;/p&gt;
&lt;p&gt;Enter a &lt;strong&gt;Display Name&lt;/strong&gt;, or leave the autogenerated default. In the &lt;strong&gt;Account&lt;/strong&gt;
dropdown, select your GCS account. Enter the fully qualified GCS path in the
&lt;strong&gt;Object path&lt;/strong&gt; field. Note: this path can be a regular expression. You can, for
example, set
the object path to be &lt;code&gt;gs://${BUCKET}/folder/.*&lt;/code&gt; to trigger on any change to an
object inside &lt;code&gt;folder&lt;/code&gt; in your &lt;code&gt;${BUCKET}&lt;/code&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./expected-artifact.png&#34;
         alt=&#34;${BUCKET} is a placeholder for the GCS bucket name that you have configured to receive Pub/Sub messages from above.&#34;/&gt;&lt;figcaption&gt;
            &lt;p&gt;&lt;code&gt;${BUCKET}&lt;/code&gt; is a placeholder for the GCS bucket name that you have configured to receive Pub/Sub messages from above.&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;test-the-pipeline&#34;&gt;Test the pipeline&lt;/h2&gt;
&lt;p&gt;If you upload a file to a path matching your configured &lt;strong&gt;Object path&lt;/strong&gt;,
the pipeline should execute. If it doesn&amp;rsquo;t, you can start by checking the logs
in the &lt;strong&gt;Echo&lt;/strong&gt; service.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Receiving artifacts from GitHub</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/github/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/github/</guid>
      <description>
        
        
        &lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;This functionality uses GitHub

&lt;a href=&#34;https://developer.github.com/webhooks/&#34; target=&#34;_blank&#34;&gt;Webhooks&lt;/a&gt;
 for delivering messages to
Spinnaker and must be configured to send messages to Spinnaker&amp;rsquo;s event bus as
shown below.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;If you (or your Spinnaker admin) have already configured Spinnaker to listen to
a GitHub webhooks from the repository you plan to publish commits to, you can
skip this section.&lt;/p&gt;
&lt;p&gt;You need the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A GitHub repository either under your user or in an organization or user&amp;rsquo;s
account that you have permission to publish commits to.&lt;/p&gt;
&lt;p&gt;This will be referred to as &lt;code&gt;$ORGANIZATION/$REPOSITORY&lt;/code&gt; from now on (for
example, &lt;code&gt;spinnaker/clouddriver&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/&#34;&gt;A running Spinnaker instance&lt;/a&gt;
. This guide shows you how to
update it to accept messages from GitHub.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Artifact support 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/artifacts/#enabling-artifact-support&#34;&gt;enabled&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this point, we will configure GitHub webhooks and a GitHub artifact account.
The webhook will be received by Spinnaker whenever a commit is made, and the
artifact account will allow you to download any pertinent files.&lt;/p&gt;
&lt;h2 id=&#34;1-configure-github-webhooks&#34;&gt;1. Configure GitHub webhooks&lt;/h2&gt;
&lt;p&gt;Follow the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/triggers/github/&#34;&gt;GitHub webhook configuration&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;2-configure-a-github-artifact-account&#34;&gt;2. Configure a GitHub artifact account&lt;/h2&gt;
&lt;p&gt;Follow the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/artifacts/github/&#34;&gt;GitHub artifact configuration&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;3-apply-your-configuration-changes&#34;&gt;3. Apply your configuration changes&lt;/h2&gt;
&lt;p&gt;Once the artifact changes have been made deploy them 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install&#34;&gt;to Spinnaker&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;using-github-artifacts-in-pipelines&#34;&gt;Using GitHub artifacts in pipelines&lt;/h2&gt;
&lt;p&gt;We will need either an existing or a new pipeline that we want to be triggered
on changes to GitHub artifacts. If you do not have a pipeline, create one as shown
below.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./create-pipeline.png&#34;
         alt=&#34;You can create and edit pipelines in the Pipelines tab of Spinnaker&#34;/&gt;&lt;figcaption&gt;
            &lt;p&gt;You can create and edit pipelines in the &lt;strong&gt;Pipelines&lt;/strong&gt; tab of Spinnaker&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;configure-the-github-trigger&#34;&gt;Configure the GitHub trigger&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s add a Git trigger to run our pipeline. To configure the trigger:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;Git&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Repo Type&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;GitHub&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Organization or User&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;$ORGANIZATION&lt;/code&gt; from above&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Project&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;$REPOSITORY&lt;/code&gt; from above&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Branch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;(optional) Can be used (via regular expressions) to describe which branches to listen to changes one&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Secret&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;(optional) &lt;em&gt;Strongly encouraged&lt;/em&gt; It must match the secret provided to the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/triggers/github/#configuring-your-github-webhook&#34;&gt;webhook configuration&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure&gt;&lt;img src=&#34;./git-config.png&#34;/&gt;
&lt;/figure&gt;

&lt;h2 id=&#34;configure-the-github-artifact&#34;&gt;Configure the GitHub artifact&lt;/h2&gt;
&lt;p&gt;Now we need to declare that the GitHub trigger expects that a specific artifact
matching some criteria is available before the pipeline starts executing. In
doing so, you guarantee that an artifact matching your description is present in
the pipeline&amp;rsquo;s execution context. If no artifact for this description is present,
the pipeline won&amp;rsquo;t start.&lt;/p&gt;
&lt;p&gt;To configure the artifact, go to the &lt;strong&gt;Artifact Constraints&lt;/strong&gt; dropdown for the
GitHub trigger configuration, and select &lt;strong&gt;&amp;ldquo;Define a new artifact&amp;hellip;&amp;rdquo;&lt;/strong&gt; to bring
up the &lt;strong&gt;Expected Artifact&lt;/strong&gt; form.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./expected-artifact.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;Enter the artifact information:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Enter a &lt;strong&gt;Display Name&lt;/strong&gt;, or leave the autogenerated default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Account&lt;/strong&gt; dropdown, select your GitHub account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter a value in the &lt;strong&gt;File path&lt;/strong&gt; field.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;☞ Note&lt;/strong&gt;: This path can be a regular expression. You can, for example,
set the object path to be &lt;code&gt;folder/.*\.yml&lt;/code&gt; to trigger on any change to a
YAML file inside &lt;code&gt;folder&lt;/code&gt; in your repository.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;test-the-pipeline&#34;&gt;Test the pipeline&lt;/h2&gt;
&lt;p&gt;If you add or modify a file matching your expected artifact to the configured
repository, it should execute. If it doesn&amp;rsquo;t, you can start by checking the
logs of the &lt;strong&gt;Echo&lt;/strong&gt; service.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Triggering pipelines with Jenkins</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/jenkins/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/jenkins/</guid>
      <description>
        
        
        &lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/ci/jenkins/&#34;&gt;Set up Jenkins&lt;/a&gt;
 as a continuous integration system in
your Spinnaker deployment.&lt;/li&gt;
&lt;li&gt;Enable 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/artifacts/#enabling-artifact-support&#34;&gt;artifact support&lt;/a&gt;
.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;adding-a-jenkins-trigger&#34;&gt;Adding a Jenkins trigger&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/managing-pipelines/#create-a-pipeline&#34;&gt;Create a pipeline&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Configuration&lt;/strong&gt; stage of your new pipeline,

&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/managing-pipelines/#add-a-trigger&#34;&gt;add a trigger&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Jenkins&lt;/strong&gt; from the &lt;strong&gt;Type&lt;/strong&gt; menu, which brings up the following
screen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;add-trigger.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select a Jenkins master from the &lt;strong&gt;Master&lt;/strong&gt; drop-down menu, then select a job from
the &lt;strong&gt;Job&lt;/strong&gt; drop-down.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add a property file, if desired. See the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/expressions/#property-files&#34;&gt;property
files&lt;/a&gt;
 section of the
Pipeline Expression Guide for more information about how to specify and use
property files.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;build-artifacts&#34;&gt;Build Artifacts&lt;/h2&gt;
&lt;p&gt;Jenkins has the ability to save files from a build as a build artifacts. These objects could be compiled binaries or kubernetes manifests or any other artifact created as part of the build process.&lt;/p&gt;
&lt;p&gt;Best practice dictates that these artifacts should be uploaded to a dedicated artifact repository such as GCR, DockerHub, Artifactory, Maven etc, however sometimes it&amp;rsquo;s easier to store the artifact as part of the build output.&lt;/p&gt;
&lt;p&gt;Here is an example of a Jenkins pipeline that stores artifacts&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;stages&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000&#34;&gt;stage&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;Generate Kubernetes Manifests&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;steps&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;sh&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;&amp;#39;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;    npm install
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;    npm run import
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;    npm run build
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;    echo &amp;#34;BUILD=${BUILD_NUMBER}&amp;#34; &amp;gt; build.properties
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;    &amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;post&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000&#34;&gt;always&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;archiveArtifacts&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;artifacts&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;dist/*.yaml&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fingerprint&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;archiveArtifacts&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;artifacts&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;build.properties&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;fingerprint&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This job will generate the following artifacts&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/dniasoff/spinnaker.io/raw/master/content/en/docs/guides/user/pipeline/triggers/jenkins/build-output.png&#34; alt=&#34;Jenkins Build Artifacts&#34;&gt;&lt;/p&gt;
&lt;p&gt;The line &lt;code&gt;echo &amp;quot;BUILD=${BUILD_NUMBER}&amp;quot; &amp;gt; build.properties&lt;/code&gt; adds a build number field to the build.properties which can be used later to generate the URL used to download the artifact using HTTP.&lt;/p&gt;
&lt;p&gt;The build.properties artifact should be added to the Jenkins trigger like this&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/dniasoff/spinnaker.io/raw/master/content/en/docs/guides/user/pipeline/triggers/jenkins/build-properties.png&#34; alt=&#34;Jenkins Build Trigger&#34;&gt;&lt;/p&gt;
&lt;p&gt;Finally to add the Jenkins build artifact as a Spinnaker artifact, do the following&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a HTTP File artifact account for Jenkins using the Jenkins base URL and credentials that has permissions to access the build artifact&lt;/li&gt;
&lt;li&gt;Right click on the build artifact displayed in the Jenkins Build Output above. This will give you the full URL for the build artifact - something like this &lt;code&gt;https://{jenkins-url}/job/DevToolStack/90/artifact/cdk8s/dist/terraform-operator.k8s.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add a new HTTP file artifact to the pipeline replacing the build number with the BUILD field from the properties using the following variable - &lt;code&gt;${trigger.properties[&#39;BUILD&#39;]}&lt;/code&gt; like this&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;https://github.com/dniasoff/spinnaker.io/raw/master/content/en/docs/guides/user/pipeline/triggers/jenkins/manifest-configuration.png&#34; alt=&#34;Manifest Configuration&#34;&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Triggering pipelines with Artifactory</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/artifactory/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/artifactory/</guid>
      <description>
        
        
        &lt;p&gt;This guide explains how to add a 
&lt;a href=&#34;https://jfrog.com/artifactory/&#34; target=&#34;_blank&#34;&gt;JFrog
Artifactory&lt;/a&gt;
 trigger to your pipeline.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Currently, the Artifactory trigger only works with Maven artifacts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Configure artifactory.  Add the following to &lt;code&gt;igor-local.yml&lt;/code&gt; for triggering/monitoring of repos:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;artifactory&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;searches&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;dev&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;username&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;password&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;password&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;accessToken&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;accessToken&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;More configuration properties are available in the 
&lt;a href=&#34;https://github.com/spinnaker/spinnaker/blob/main/igor/igor-monitor-artifactory/src/main/java/com/netflix/spinnaker/igor/artifactory/model/ArtifactorySearch.java&#34; target=&#34;_blank&#34;&gt;ArtifactorySearch&lt;/a&gt;
 class.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A Maven account configured in Spinnaker &lt;code&gt;clouddriver-local.yml&lt;/code&gt; (used for pulling a file from maven):&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;artifacts&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;maven&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;accounts&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;maven-central&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;repositoryUrl&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;https://repo1.maven.org/maven2/&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Configuration properties are available in the 
&lt;a href=&#34;https://github.com/spinnaker/spinnaker/blob/main/clouddriver/clouddriver-artifacts/clouddriver-artifacts-maven/src/main/java/com/netflix/spinnaker/clouddriver/artifacts/maven/MavenArtifactAccount.java&#34; target=&#34;_blank&#34;&gt;MavenArtifactAccount&lt;/a&gt;
.  Maven
artifacts do not support a lot of features at this time.  For additional options, please open PRs to add additional capabilities.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Artifact support 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/artifacts/#enabling-artifact-support&#34;&gt;enabled&lt;/a&gt;
.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;adding-an-artifactory-trigger&#34;&gt;Adding an Artifactory Trigger&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a pipeline.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Configuration&lt;/strong&gt; stage of your new pipeline, add a trigger.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Type&lt;/strong&gt; menu, select &lt;strong&gt;Artifactory&lt;/strong&gt;. This brings up the following
screen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;artifactory-trigger.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Artifactory Name&lt;/strong&gt; menu, select an Artifactory search.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Artifact Constraints&lt;/strong&gt; menu, select &lt;strong&gt;&amp;ldquo;Define a new artifact&lt;/strong&gt;.
This brings up the following screen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;expected-artifact.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter a name in the &lt;strong&gt;Display Name&lt;/strong&gt; field or leave the autogenerated
default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Account&lt;/strong&gt; menu, select a Maven account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;strong&gt;Maven Coordinate&lt;/strong&gt; field, enter the Maven coordinates of the
artifact.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Save Artifact&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Triggering on Pub/Sub Messages</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/pubsub/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/pubsub/</guid>
      <description>
        
        
        &lt;p&gt;In order to programmatically trigger pipelines, you can configure Spinnaker to
subscribe and listen to a Pub/Sub topic and push messages to the configured
topic. This can be used to trigger pipelines during CI jobs, from the command line,
or from a third-party system. The message payload will be available in the
Pipeline&amp;rsquo;s execution.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;:  It&amp;rsquo;s possible to configure multiple pipelines to trigger off of
a single Pub/Sub message.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Only Google and AWS Pub/Sub systems are supported. See the detailed instructions for

&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/triggers/google/&#34;&gt;Google Pub/Sub&lt;/a&gt;
 and 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/triggers/amazon/&#34;&gt;AWS SQS/SNS&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Artifact support 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/artifacts/#enabling-artifact-support&#34;&gt;enabled&lt;/a&gt;
.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;adding-a-pubsub-trigger-to-a-pipeline&#34;&gt;Adding a Pub/Sub trigger to a pipeline&lt;/h2&gt;
&lt;p&gt;Assuming you have created a pipeline, under &lt;strong&gt;Configuration&lt;/strong&gt;, select &lt;strong&gt;Add
Trigger&lt;/strong&gt; and make its type selector &lt;strong&gt;Pub/Sub&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To select a Pub/Sub subscription to trigger from, select values for
&lt;strong&gt;Pub/Sub System Type&lt;/strong&gt; and &lt;strong&gt;Subscription Name&lt;/strong&gt;. Note that the subscription
must be configured before it is available to select in the UI.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./basic-pubsub.png&#34;/&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;payload-constraints&#34;&gt;Payload constraints&lt;/h3&gt;
&lt;p&gt;If you want to ensure that a Pub/Sub trigger only fires when a certain message payload
arrives, you can provide &lt;strong&gt;Payload Constraints&lt;/strong&gt; in the trigger. These are
key/value pairs where the key must be found in the incoming message payload, and the
value must match using regex.&lt;/p&gt;
&lt;p&gt;For example, if we had configured:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./payload-constraints.png&#34;
         alt=&#34;For clarity, the constraints are mykey = myvalue and bing = b.*p.&#34;/&gt;&lt;figcaption&gt;
            &lt;p&gt;For clarity, the constraints are &lt;code&gt;mykey = myvalue&lt;/code&gt; and &lt;code&gt;bing = b.*p&lt;/code&gt;.&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The following message payload would be accepted:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mykey&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;myvalue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;bing&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;boooop&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But this message payload would be rejected (pipeline would not trigger):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mykey&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;myvalue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;passing-parameters&#34;&gt;Passing parameters&lt;/h2&gt;
&lt;p&gt;Say your pipeline accepted some parameters (for example, the desired stack to
deploy to), you can make this explicit by adding a pipeline parameter on the
same configuration screen as the Pub/Sub trigger:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./parameters.png&#34;
         alt=&#34;For more information on how to use pipeline parameters, see the pipeline expressions guide .&#34;/&gt;&lt;figcaption&gt;
            &lt;p&gt;For more information on how to use pipeline parameters, see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/expressions&#34;&gt;pipeline expressions guide&lt;/a&gt;
.&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;blockquote&gt;
&lt;p&gt;Warning: there are several reserved parameter keys (names) that cause unexpected behavior and failures
if overwritten by a pipeline parameter definition.
See the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/expressions#list-of-reserved-parameter-and-evaluate-variable-key-names&#34;&gt;list of reserved parameter and evaluate variable key names&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you were to manually execute this pipeline, you would be prompted with the
following dialogue:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./manual-execution.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;If instead you were to trigger this pipeline with a Pub/Sub Trigger, you could supply
each parameter a value inside a key/value map called &lt;code&gt;parameters&lt;/code&gt; in the message body. Take the
following message payload for example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;parameters&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;stack&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;prod&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;☞ Note&lt;/strong&gt;: If you had selected the &lt;strong&gt;Required&lt;/strong&gt; checkbox for a parameter
without providing a default, the pipeline doesn&amp;rsquo;t trigger if a parameter is
not present. The difference between this and the preconditions covered
earlier is that when a precondition isn&amp;rsquo;t met, Spinnaker will not even try to
run the pipeline. However, when a required parameter doesn&amp;rsquo;t exist, Spinnaker
will try and fail to run a pipeline, surfacing a &amp;ldquo;Failed Execution&amp;rdquo; in the
UI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;passing-artifacts&#34;&gt;Passing artifacts&lt;/h2&gt;
&lt;p&gt;If your pipeline requires artifacts (for example, a Kubernetes manifest file
stored in GCS), you can make this explicit by defining an &lt;strong&gt;Expected Artifact&lt;/strong&gt;
and assigning it to the Pub/Sub Trigger. Under &lt;strong&gt;Artifact Constraints&lt;/strong&gt;, select
&lt;strong&gt;Define a new artifact&amp;hellip;&lt;/strong&gt; and supply the artifact details, as shown below:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./pubsub-artifact.png&#34;/&gt;
&lt;/figure&gt;

&lt;figure&gt;&lt;img src=&#34;./artifact-constraints.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;In order for this to work, you need to supply the required artifact in the
Pub/Sub message payload, and configure Spinnaker so that it can translate the
Pub/Sub payload into a Spinnaker artifact.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re using GCR, you can use the &lt;code&gt;--message-format&lt;/code&gt; flag and Spinnaker will
translate the payload automatically:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;hal config pubsub google subscription edit my-gcr-subscription \
  --message-format GCR
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Otherwise, you need to supply a translation template so that Spinnaker can
translate the Pub/Sub payload into a Spinnaker artifact. To do this, create a

&lt;a href=&#34;http://jinja.pocoo.org/docs/2.10/templates&#34; target=&#34;_blank&#34;&gt;Jinja template&lt;/a&gt;
. Note that the
output of the Jinja transform must be a JSON list of Spinnaker artifacts. The
translation template itself can be any valid Jinja transform.&lt;/p&gt;
&lt;p&gt;Use the following &lt;code&gt;hal&lt;/code&gt; command to tell Spinnaker how to find the template:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;hal config pubsub google subscription edit my-gcs-subscription \
  --template-path /path/to/jinja/template
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;p&gt;Let&amp;rsquo;s say you have a message payload containing the following structure:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;location&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;gs://jtk54-artifacts/manifest.yml&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#a40000&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can use the following Jinja template to translate the above into the
Spinnaker artifact format:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[
  {
    &amp;#34;type&amp;#34;: &amp;#34;gcs/object&amp;#34;, # static type.
    &amp;#34;reference&amp;#34;: &amp;#34;{{&amp;#34;{{ location &amp;#34;}}}}&amp;#34;, # &amp;#39;location&amp;#39; in the Pub/Sub payload.
  }
]
&lt;/code&gt;&lt;/pre&gt;
      </description>
    </item>
    
    <item>
      <title>Docs: Triggering on Webhooks</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/webhooks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/webhooks/</guid>
      <description>
        
        
        &lt;p&gt;In order to programmatically trigger pipelines, you can send a &lt;code&gt;POST&lt;/code&gt; call to
Spinnaker at a preconfigured endpoint. You can use this to trigger pipelines
when a CI job finishes, from the command line, or from a third-party system.
The payload, whether it is one you are able to write or it is provided for
you, will be available in the Pipeline&amp;rsquo;s execution.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;:  You can configure multiple pipelines to trigger off of a single
webhook.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you&amp;rsquo;re triggering from a &lt;em&gt;GitHub&lt;/em&gt; webhook, see the instructions

&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/triggers/github/&#34;&gt;here&lt;/a&gt;
 to set up that webhook.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re triggering to a Spinnaker with authentication, see the
instructions 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/security/authorization/#automated-pipeline-triggers&#34;&gt;here&lt;/a&gt;
 to set up the
automated trigger.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Artifact support 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/artifacts/#enabling-artifact-support&#34;&gt;enabled&lt;/a&gt;
.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;adding-a-webhook-trigger-to-a-pipeline&#34;&gt;Adding a webhook trigger to a pipeline&lt;/h2&gt;
&lt;p&gt;Assuming you&amp;rsquo;ve created a pipeline, under &lt;strong&gt;Configuration&lt;/strong&gt;, select &lt;strong&gt;Add
Trigger&lt;/strong&gt; and make its type selector &lt;strong&gt;Webhook&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To assign an endpoint that must be hit, you can provide a value to the
&lt;strong&gt;Source&lt;/strong&gt; field as shown here:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./basic-webhook.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;Notice that in the above image below the &lt;strong&gt;Type&lt;/strong&gt; dropdown, the webhook
configuration points out that we can hit
&lt;code&gt;http://localhost:8084/webhooks/webhook/demo&lt;/code&gt; to trigger the pipeline. The
endpoint depends on how you&amp;rsquo;ve configured your 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/security/&#34;&gt;Spinnaker endpoints&lt;/a&gt;
 &amp;ndash; if you&amp;rsquo;re running on a different endpoint, for
example &lt;code&gt;https://api.spinnaker-prod.net&lt;/code&gt;, that&amp;rsquo;ll be shown instead.&lt;/p&gt;
&lt;p&gt;Keeping track of that endpoint as &lt;code&gt;$ENDPOINT&lt;/code&gt; (it will depend on where
Spinnaker is installed), save that pipeline, and run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl &lt;span style=&#34;color:#000&#34;&gt;$ENDPOINT&lt;/span&gt; -X POST -H &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;content-type: application/json&amp;#34;&lt;/span&gt; -d &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;{ }&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;payload-constraints&#34;&gt;Payload constraints&lt;/h3&gt;
&lt;p&gt;If you want to ensure that a webhook only triggers when a certain payload
arrives, you can provide &lt;strong&gt;Payload Constraints&lt;/strong&gt; in the trigger. These are
key/value pairs where the key must be found in the incoming payload, and the
value must match using regex.&lt;/p&gt;
&lt;p&gt;For example, if we configured:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./constraints-webhook.png&#34;
         alt=&#34;For clarity, the constraints are mykey = myvalue and bing = b.*p.&#34;/&gt;&lt;figcaption&gt;
            &lt;p&gt;For clarity, the constraints are &lt;code&gt;mykey = myvalue&lt;/code&gt; and &lt;code&gt;bing = b.*p&lt;/code&gt;.&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The following payload would be accepted:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mykey&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;myvalue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;bing&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;boooop&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But this payload would be rejected (pipeline would not trigger):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;mykey&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;myvalue&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;passing-parameters&#34;&gt;Passing parameters&lt;/h2&gt;
&lt;p&gt;Say your pipeline accepted some parameters (for example, the desired stack to
deploy to), you can make this explicit by adding a pipeline parameter on the
same configuration screen as the webhook trigger:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./parameters.png&#34;
         alt=&#34;For more information on how to use pipeline parameters, see the pipeline expressions guide .&#34;/&gt;&lt;figcaption&gt;
            &lt;p&gt;For more information on how to use pipeline parameters, see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/expressions&#34;&gt;pipeline expressions guide&lt;/a&gt;
.&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;blockquote&gt;
&lt;p&gt;Warning: there are several reserved parameter keys (names) that cause unexpected behavior and failures
if overwritten by a pipeline parameter definition.
See the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/expressions#list-of-reserved-parameter-and-evaluate-variable-key-names&#34;&gt;list of reserved parameter and evaluate variable key names&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you were to manually execute this pipeline, you would be prompted with the
following dialogue:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./manual-execution.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;If instead you were to trigger this pipeline with a Webhook, you could supply
each parameter a value inside a key/value map called &lt;code&gt;parameters&lt;/code&gt;. Take the
following payload for example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;parameters&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;stack&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;prod&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you select the &lt;strong&gt;Required&lt;/strong&gt; checkbox for a parameter without
providing a default, the pipeline does not trigger if a parameter is not
present. The difference between this and the preconditions covered earlier is
that when a precondition isn&amp;rsquo;t met, Spinnaker doesn&amp;rsquo;t even try to run the
pipeline. However, when a required parameter doesn&amp;rsquo;t exist, Spinnaker tries
and fails to run a pipeline, surfacing a &amp;ldquo;Failed Execution&amp;rdquo; in the UI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;passing-artifacts&#34;&gt;Passing artifacts&lt;/h2&gt;
&lt;p&gt;If your pipeline requires artifacts (for example, a Kubernetes manifest file
stored in GCS), you can make this explicit by defining an &lt;strong&gt;Expected Artifact&lt;/strong&gt;
and assigning it to the Webhook as shown below:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;./artifacts.png&#34;/&gt;
&lt;/figure&gt;

&lt;p&gt;In order to run this pipeline, you will need to supply the required artifact in
your payload under a list of &lt;code&gt;artifacts&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;artifacts&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;gcs/object&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;manifest.yml&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;&amp;#34;reference&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;gs://lw-artifacts/manifest.yml&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
  </channel>
</rss>
