<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Spinnaker – User Guides</title>
    <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/</link>
    <description>Recent content in User Guides on Spinnaker</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Get Started Using Spinnaker</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/get-started/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/get-started/</guid>
      <description>
        
        
        &lt;blockquote&gt;
&lt;p&gt;This article assumes you are new to Spinnaker. It contains basic information
about what to do after 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/&#34;&gt;Spinnaker is installed&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;before-you-get-going&#34;&gt;Before you get going&amp;hellip;&lt;/h2&gt;
&lt;p&gt;Whether you&amp;rsquo;re an operator or admin installing or managing Spinnaker or an
end user getting started using Spinnaker, here are some pointers to get you
started.&lt;/p&gt;
&lt;h3 id=&#34;operators-managing-spinnaker&#34;&gt;Operators (managing Spinnaker)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you want to install Spinnaker, 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/&#34;&gt;see the instructions here&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you want to find out more about tuning and maintaining Spinnaker, here are
some things to check out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/other_config/&#34;&gt;Advanced configuration&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/productionize/&#34;&gt;Productionize Spinnaker&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;users-deploying-with-spinnaker&#34;&gt;Users (deploying with Spinnaker)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you want to try out Spinnaker, please read the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/&#34;&gt;installation guide&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If Spinnaker is already installed in your organization, and you want to practice it
using some guided tutorials, here are

&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/tutorials/codelabs/&#34;&gt;codelabs&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you want a basic overview of how to use Spinnaker, the high-level
process is described below.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;using-spinnaker-the-high-level-process&#34;&gt;Using Spinnaker: the high-level process&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/applications/&#34;&gt;Create an application&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Typically, you&amp;rsquo;ll have one application per microservice.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Your application configuration affects what you can do with
Spinnaker—you can enable or disable some Spinnaker features.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Define the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/concepts/&#34;&gt;infrastructure&lt;/a&gt;
 the service will run on&lt;/p&gt;
&lt;p&gt;You define infrastructure for each application. Your pipelines deploy
services to the server groups you define.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This step is not a prerequisite for creating pipelines. In fact, you
can use pipelines to create infrastructure.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&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/&#34;&gt;Create a pipeline&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Create all the pipelines you need to deploy the service or services
covered by the application, in whatever ways you want to deploy.&lt;/p&gt;
&lt;p&gt;Learn more in the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/managing-pipelines/&#34;&gt;Managing pipelines
guide&lt;/a&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/guides/user/pipeline/triggers/&#34;&gt;Run your pipeline&lt;/a&gt;
 to deploy your service&lt;/p&gt;
&lt;p&gt;You can run a pipeline manually, but most pipelines are 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/triggers/&#34;&gt;triggered
automatically&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For practice, and to see some sample deployment scenarios, check out our

&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/tutorials/codelabs/&#34;&gt;codelabs&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;!--
## The advanced stuff

When you can create and run pipelines, you&#39;ve got the basics down, but there&#39;s a
lot more you can do with Spinnaker.

* [Configure and execute automated canary analysis](/docs/guides/user/canary/)
for your deployments

* [Choose a deployment strategy](/docs/concepts/#deployment-strategies)

* Get to know the [`spin` command-line interface](/docs/guides/spin/cli/)
--&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Application User Guide</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/applications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/applications/</guid>
      <description>
        
        
        &lt;p&gt;An application in Spinnaker is a construct that represents some service that you
are going to deploy (typically a microservice). It includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;the pipelines that process the service through to deployment in production&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the infrastructure on which the service is run:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;clusters&lt;/li&gt;
&lt;li&gt;server groups&lt;/li&gt;
&lt;li&gt;firewalls&lt;/li&gt;
&lt;li&gt;load balancers&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;canary configs&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;important-note-about-applications&#34;&gt;Important note about applications&lt;/h2&gt;
&lt;p&gt;When you first access a new instance of Spinnaker, you might notice that there
are already several applications visible when you click the &lt;strong&gt;Applications&lt;/strong&gt; tab.
This happens if you install Spinnaker on an existing Kubernetes cluster, using
the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/kubernetes/&#34;&gt;Kubernetes provider&lt;/a&gt;
. These applications
are derived from existing infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don&amp;rsquo;t delete any of them&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Also, don&amp;rsquo;t use any of them as applications in which to create pipelines or add
further infrastructure. Instead, create new applications for your deployment
pipelines.&lt;/p&gt;
&lt;h2 id=&#34;what-distinguishes-one-application-from-another&#34;&gt;What distinguishes one application from another?&lt;/h2&gt;
&lt;p&gt;By common practice, one application contains all of the above components for one
microservice.&lt;/p&gt;
&lt;p&gt;There is nothing in Spinnaker that enforces the level at which you divide up
your services into applications, but it would be messy to put too much into one
application, dealing not only with all the containers to bake, canary configs to
manage, and so on, but also all the infrastructure.&lt;/p&gt;
&lt;p&gt;For different reasons, you also don&amp;rsquo;t want to segregate different environments
(dev, staging, prod) into different applications. In many cases you will have
pipelines, which deploy into one environment, eventually trigger other pipelines
that promote the same service into the next environment.&lt;/p&gt;
&lt;h2 id=&#34;next&#34;&gt;Next&lt;/h2&gt;
&lt;p&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/applications/create/&#34;&gt;Create An Application&lt;/a&gt;
&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Using Spinnaker for Automated Canary Analysis</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/canary/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/canary/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Docs: General Purpose Tagging Guide</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/tagging/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/tagging/</guid>
      <description>
        
        
        &lt;p&gt;This guide provides an introduction to the provider-agnostic tagging capabilities of Spinnaker, otherwise referred to as &lt;em&gt;Entity Tags&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;requirements&#34;&gt;Requirements&lt;/h2&gt;
&lt;p&gt;This is an &lt;em&gt;optional&lt;/em&gt; feature of Spinnaker that requires&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Elasticsearch&lt;/strong&gt; (tested with 6.8.2)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Front50&lt;/strong&gt; (backed by SQL, S3 or GCS)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See 
&lt;a href=&#34;#configuration&#34;&gt;configuration&lt;/a&gt;
 for specific configuration details.&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;Spinnaker provides a provider-agnostic way of attaching additional attributes (&lt;em&gt;key/value pairs&lt;/em&gt;) to any managed entity.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Managed Entities&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Any object that is maintained (&lt;em&gt;or visualized&lt;/em&gt;) by Spinnaker.&lt;/p&gt;
&lt;p&gt;Includes (&lt;em&gt;but is not limited to&lt;/em&gt;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Applications&lt;/li&gt;
&lt;li&gt;Server Groups&lt;/li&gt;
&lt;li&gt;Load Balancers&lt;/li&gt;
&lt;li&gt;Instances&lt;/li&gt;
&lt;li&gt;Clusters&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are no restrictions on the size or quantity of these tags (&lt;em&gt;unlike limitations imposed by native cloud provider tags&lt;/em&gt;).&lt;/p&gt;
&lt;h3 id=&#34;current-limitations&#34;&gt;Current limitations&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Completely separate from any tag support on the underlying cloud provider
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Callers must make an additional API call to retrieve entity tags&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Limited lifecycle support
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Only server groups have a delete hook that will cleanup associated tags&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;These limitations will be addressed on an as needed basis.&lt;/p&gt;
&lt;p&gt;If they are blocking a particular use-case, please file an 
&lt;a href=&#34;https://github.com/spinnaker/spinnaker/issues&#34; target=&#34;_blank&#34;&gt;issue&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;common-use-cases&#34;&gt;Common use cases&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Server Group Alerts and Notices&lt;/li&gt;
&lt;li&gt;Server Group Attribution (&lt;em&gt;what pipeline / user created this server group&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Security (&lt;em&gt;restricting when particular IAM roles can be used&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;tag-namespaces&#34;&gt;Tag namespaces&lt;/h2&gt;
&lt;p&gt;All tags have an associated namespace (&lt;em&gt;&lt;code&gt;default&lt;/code&gt; will be used if unspecified&lt;/em&gt;) that provides a means of grouping tags by a logical owner.&lt;/p&gt;
&lt;p&gt;Tag names can be re-used across namespaces.&lt;/p&gt;
&lt;p&gt;Eventually Spinnaker will allow permissions to be defined per-namespace (ie. certain namespaces can only be modified by particular users or groups).&lt;/p&gt;
&lt;h2 id=&#34;implementation-details&#34;&gt;Implementation details&lt;/h2&gt;
&lt;p&gt;These provider-agnostic tags are stored in S3 or GCS (&lt;em&gt;via Front50&lt;/em&gt;) and indexed via Elasticsearch.&lt;/p&gt;
&lt;p&gt;They are made up of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;code&gt;Identifier&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;An &lt;code&gt;EntityRef&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;1..* Tags (&lt;code&gt;key&lt;/code&gt;/&lt;code&gt;value&lt;/code&gt; pairs with the &lt;code&gt;value&lt;/code&gt; being either a literal or object)&lt;/li&gt;
&lt;li&gt;1..* Tag Metadata (&lt;em&gt;last modified timestamps per tag&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;identifier&#34;&gt;Identifier&lt;/h3&gt;
&lt;p&gt;A unique identifier representing a tagged entity:
&lt;code&gt;{cloudProvider}:{entityType}:{entityId}:{accountId}:{region}&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;entityref&#34;&gt;EntityRef&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;cloudProvider&lt;/code&gt; The identifier of the cloud provider associated with this entity
&lt;code&gt;accountId&lt;/code&gt; The identifier of the account associated with this entity (supports &lt;code&gt;*&lt;/code&gt; wildcard)
&lt;code&gt;region&lt;/code&gt; The identifier of the region associated with this entity (supports &lt;code&gt;*&lt;/code&gt; wildcard)
&lt;code&gt;entityType&lt;/code&gt; The type of entity being tagged
&lt;code&gt;entityId&lt;/code&gt; The identifier of the entity being tagged
&lt;code&gt;application&lt;/code&gt; The identifier of the application associated with this entity&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Supported Entity Types&lt;/p&gt;
&lt;p&gt;Spinnaker has native support for the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;application&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;servergroup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iamrole&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;tags-structure&#34;&gt;tags structure&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    {
      &amp;#34;id&amp;#34;: &amp;#34;aws:servergroup:myservergroup-v001:100000000001:us-west-2&amp;#34;,
      &amp;#34;tags&amp;#34;: [
        {
          &amp;#34;name&amp;#34;: &amp;#34;spinnaker_ui_alert:autoscaling:ec2_instance_launch_error&amp;#34;,
          &amp;#34;namespace&amp;#34;: &amp;#34;my_namespace&amp;#34;,
          &amp;#34;value&amp;#34;: {
            &amp;#34;message&amp;#34;: &amp;#34;Insufficient capacity. Launching EC2 instance failed.&amp;#34;,
            &amp;#34;type&amp;#34;: &amp;#34;alert&amp;#34;
          },
          &amp;#34;valueType&amp;#34;: &amp;#34;object&amp;#34;
        }
      ],
      &amp;#34;tagsMetadata&amp;#34;: [
        {
          &amp;#34;name&amp;#34;: &amp;#34;spinnaker_ui_alert:autoscaling:ec2_instance_launch_error&amp;#34;,
          &amp;#34;lastModified&amp;#34;: 1484162291500,
          &amp;#34;lastModifiedBy&amp;#34;: &amp;#34;unknown&amp;#34;,
          &amp;#34;created&amp;#34;: 1484161809699,
          &amp;#34;createdBy&amp;#34;: &amp;#34;unknown&amp;#34;
        }
      ],
      &amp;#34;entityRef&amp;#34;: {
        &amp;#34;cloudProvider&amp;#34;: &amp;#34;aws&amp;#34;,
        &amp;#34;accountId&amp;#34;: &amp;#34;100000000001&amp;#34;,
        &amp;#34;region&amp;#34;: &amp;#34;us-west-2&amp;#34;,
        &amp;#34;entityType&amp;#34;: &amp;#34;servergroup&amp;#34;,
        &amp;#34;entityId&amp;#34;: &amp;#34;myservergroup-v001&amp;#34;,
        &amp;#34;application&amp;#34;: &amp;#34;app&amp;#34;
      }
    }
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;api&#34;&gt;API&lt;/h2&gt;
&lt;p&gt;The following APIs are exposed in &lt;code&gt;gate&lt;/code&gt; but are subject to change given the current &lt;strong&gt;release candidate&lt;/strong&gt; status.&lt;/p&gt;
&lt;h3 id=&#34;get-tags&#34;&gt;GET /tags&lt;/h3&gt;
&lt;p&gt;Fetch all tags. Parameters are case-sensitive.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;entityType&lt;/td&gt;
&lt;td&gt;Filter by Entity Type&lt;/td&gt;
&lt;td&gt;?entityType=servergroup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;entityId&lt;/td&gt;
&lt;td&gt;Filter by Entity Id&lt;/td&gt;
&lt;td&gt;?entityId=myservergroup-v001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;application&lt;/td&gt;
&lt;td&gt;Filter by Application&lt;/td&gt;
&lt;td&gt;?application=app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;tag&lt;/td&gt;
&lt;td&gt;Filter by Tag (specific value)&lt;br/&gt;Filter by Tag (any value)&lt;/td&gt;
&lt;td&gt;?tag:my_tag=my_value&lt;br /&gt;?tag:my_tag=*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;maxResults&lt;/td&gt;
&lt;td&gt;Maximum # of results to return (defaults to 100)&lt;/td&gt;
&lt;td&gt;?maxResults=1000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;post-tags&#34;&gt;POST /tags&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;entityType&lt;/td&gt;
&lt;td&gt;Entity Type&lt;/td&gt;
&lt;td&gt;?entityType=servergroup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;entityId&lt;/td&gt;
&lt;td&gt;Entity Id&lt;/td&gt;
&lt;td&gt;?entityId=myservergroup-v001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;application&lt;/td&gt;
&lt;td&gt;application&lt;/td&gt;
&lt;td&gt;?application=app&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;account&lt;/td&gt;
&lt;td&gt;Account Name&lt;/td&gt;
&lt;td&gt;?account=production&lt;br/&gt;?account=* (wildcard)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;region&lt;/td&gt;
&lt;td&gt;Region&lt;/td&gt;
&lt;td&gt;?region=us-west-2&lt;br/&gt;?region=* (wildcard)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cloudProvider&lt;/td&gt;
&lt;td&gt;cloudProvider&lt;/td&gt;
&lt;td&gt;?cloudProvider=aws&lt;br/&gt;?cloudProvider=* (wildcard)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;upsert-tags&#34;&gt;Upsert tags&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    curl -X &amp;#34;POST&amp;#34; &amp;#34;http://gate/tags?entityId=myservergroup-v001&amp;amp;entityType=servergroup&amp;amp;account=production&amp;amp;region=us-west-2&amp;amp;cloudProvider=aws&amp;amp;application=app&amp;#34; \
         -H &amp;#34;Content-Type: application/json&amp;#34; \
         -d $&amp;#39;[
      {
        &amp;#34;name&amp;#34;: &amp;#34;spinnaker_ui_alert:autoscaling:ec2_instance_launch_error&amp;#34;,
        &amp;#34;namespace&amp;#34;: &amp;#34;my_namespace&amp;#34;,
        &amp;#34;value&amp;#34;: {
          &amp;#34;message&amp;#34;: &amp;#34;Insufficient capacity. Launching EC2 instance failed.&amp;#34;,
          &amp;#34;type&amp;#34;: &amp;#34;alert&amp;#34;
        },
        &amp;#34;valueType&amp;#34;: &amp;#34;object&amp;#34;
      }
    ]&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;post-tasks&#34;&gt;POST /tasks&lt;/h3&gt;
&lt;p&gt;This API provides backwards compatibility with traditional Spinnaker tasks and can be used interchangeably with the &lt;code&gt;POST /tags&lt;/code&gt; API.&lt;/p&gt;
&lt;h4 id=&#34;upsert-tags-1&#34;&gt;Upsert tags&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    curl -X &amp;#34;POST&amp;#34; &amp;#34;http://gate/tasks&amp;#34; \
         -H &amp;#34;Content-Type: application/json&amp;#34; \
         -d $&amp;#39;{
      &amp;#34;application&amp;#34;: &amp;#34;spinnaker&amp;#34;,
      &amp;#34;job&amp;#34;: [
        {
          &amp;#34;type&amp;#34;: &amp;#34;upsertEntityTags&amp;#34;,
          &amp;#34;tags&amp;#34;: [
            {
              &amp;#34;name&amp;#34;: &amp;#34;spinnaker_ui_alert:autoscaling:ec2_instance_launch_error&amp;#34;,
              &amp;#34;namespace&amp;#34;: &amp;#34;my_namespace&amp;#34;,
              &amp;#34;value&amp;#34;: {
                &amp;#34;message&amp;#34;: &amp;#34;Insufficient capacity. Launching EC2 instance failed.&amp;#34;,
                &amp;#34;type&amp;#34;: &amp;#34;alert&amp;#34;
              },
              &amp;#34;valueType&amp;#34;: &amp;#34;object&amp;#34;
            }
          ],
          &amp;#34;entityRef&amp;#34;: {
            &amp;#34;cloudProvider&amp;#34;: &amp;#34;aws&amp;#34;,
            &amp;#34;entityType&amp;#34;: &amp;#34;servergroup&amp;#34;,
            &amp;#34;entityId&amp;#34;: &amp;#34;myservergroup-v001&amp;#34;,
            &amp;#34;region&amp;#34;: &amp;#34;us-west-2&amp;#34;,
            &amp;#34;account&amp;#34;: &amp;#34;production&amp;#34;,
            &amp;#34;application&amp;#34;: &amp;#34;app&amp;#34;            
          }
        }
      ],
      &amp;#34;description&amp;#34;: &amp;#34;Updating tags&amp;#34;
    }&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;delete-tagsidtagname&#34;&gt;DELETE /tags/:id/:tagName&lt;/h3&gt;
&lt;h4 id=&#34;delete-tags&#34;&gt;Delete tags&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    curl -X &amp;#34;DELETE&amp;#34; &amp;#34;http://gate/tags/myservergroup-v001:100000000001:us-west-2/spinnaker_ui_alert:autoscaling:ec2_instance_launch_error&amp;#34; \
         -H &amp;#34;Content-Type: application/json&amp;#34; \
         -d $&amp;#39;{}&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;feature-server-group-alerts-and-notices&#34;&gt;FEATURE: Server group alerts and notices&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Server Group Alerts and Notices&lt;/em&gt; is a Spinnaker feature is built upon entity tags.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;alert.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;add-alert&#34;&gt;Add alert&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    curl -X &amp;#34;POST&amp;#34; &amp;#34;http://gate/tags?entityId=spintest-v003&amp;amp;entityType=servergroup&amp;amp;account=test&amp;amp;region=us-west-2&amp;amp;cloudProvider=aws&amp;amp;application=app&amp;#34; \
         -H &amp;#34;Content-Type: application/json&amp;#34; \
         -d $&amp;#39;[
      {
        &amp;#34;name&amp;#34;: &amp;#34;spinnaker_ui_alert:autoscaling:ec2_instance_launch_error&amp;#34;,
        &amp;#34;namespace&amp;#34;: &amp;#34;my_namespace&amp;#34;,
        &amp;#34;value&amp;#34;: {
          &amp;#34;message&amp;#34;: &amp;#34;You have exceeded the number of VPC security groups allowed per instance. Launching EC2 instance failed.&amp;#34;,
          &amp;#34;type&amp;#34;: &amp;#34;alert&amp;#34;
        },
        &amp;#34;valueType&amp;#34;: &amp;#34;object&amp;#34;
      }
    ]&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;add-notice&#34;&gt;Add notice&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    curl -X &amp;#34;POST&amp;#34; &amp;#34;http://gate/tags?entityId=spintest-v003&amp;amp;entityType=servergroup&amp;amp;account=test&amp;amp;region=us-west-2&amp;amp;cloudProvider=aws&amp;amp;application=app&amp;#34; \
         -H &amp;#34;Content-Type: application/json&amp;#34; \
         -d $&amp;#39;[
      {
        &amp;#34;name&amp;#34;: &amp;#34;spinnaker_ui_notice:my_favorite_notice&amp;#34;,
        &amp;#34;namespace&amp;#34;: &amp;#34;my_namespace&amp;#34;,
        &amp;#34;value&amp;#34;: {
          &amp;#34;message&amp;#34;: &amp;#34;This is an example notice!&amp;#34;,
          &amp;#34;type&amp;#34;: &amp;#34;notice&amp;#34;
        },
        &amp;#34;valueType&amp;#34;: &amp;#34;object&amp;#34;
      }
    ]&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;delete-alert-or-notice&#34;&gt;Delete alert (or notice)&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;    curl -X &amp;#34;DELETE&amp;#34; &amp;#34;http://gate/tags/aws:servergroup:spintest-v003:100000000001:us-west-2/spinnaker_ui_alert:autoscaling:ec2_instance_launch_error&amp;#34; \
         -H &amp;#34;Content-Type: application/json&amp;#34; \
         -d $&amp;#39;{}&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;configuration&#34;&gt;Configuration&lt;/h2&gt;
&lt;p&gt;The following configuration changes are necessary to enable entity tags on your Spinnaker installation:&lt;/p&gt;
&lt;h4 id=&#34;clouddriver-localyml&#34;&gt;clouddriver-local.yml&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;elasticSearch:
  activeIndex: &amp;#34;tags_v2&amp;#34;
  connection: http://my-elastic-search-cluster:port
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;decksettings-localjs&#34;&gt;deck/settings-local.js&lt;/h4&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;window.spinnakerSettings.entityTags = {};
window.spinnakerSettings.feature.entityTags=true;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;elasticsearch-index-template&#34;&gt;elasticsearch index template&lt;/h4&gt;
&lt;p&gt;Make a &lt;code&gt;POST&lt;/code&gt; request to &lt;code&gt;http://my-elastic-search-cluster:port/_template&lt;/code&gt; with 
&lt;a href=&#34;https://github.com/spinnaker/clouddriver/blob/master/clouddriver-elasticsearch/elasticsearch_index_template.json&#34; target=&#34;_blank&#34;&gt;this template&lt;/a&gt;
 template&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Customizing Instance Links</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/instance-links/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/instance-links/</guid>
      <description>
        
        
        &lt;p&gt;Spinnaker makes it easy to give users links to common features of their applications (logs, health, etc.), which are accessible from the instance details panel:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;1.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;There are two basic approaches to customizing links: organization-wide links (links that apply to every instance managed by Spinnaker), and application-specific links (links that are common to every instance of your application).&lt;/p&gt;
&lt;h2 id=&#34;default-links&#34;&gt;Default links&lt;/h2&gt;
&lt;p&gt;At Netflix, we use a common base server, which adds a number of default endpoints to every running instance. These are configured in Deck&amp;rsquo;s &lt;code&gt;settings.js&lt;/code&gt; file:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;window.spinnakerSettings = {
  // ...
  defaultInstanceLinks: [
        {
            title: &amp;#39;Logs&amp;#39;,
            links: [
                { title: &amp;#39;catalina.out&amp;#39;, path: &amp;#39;:7000/Logs/catalina.out&amp;#39;},
                { title: &amp;#39;Log File Archive&amp;#39;, path: &amp;#39;:7000/Logs/all&amp;#39;},
                { title: &amp;#39;Thread dumps&amp;#39;, path: &amp;#39;:7000/Logs/threadDumps&amp;#39;},
                { title: &amp;#39;Admin Proxy Info&amp;#39;, path: &amp;#39;:7000/ProxyInfo&amp;#39;},
                { title: &amp;#39;Admin Proxy Status&amp;#39;, path: &amp;#39;:7000/ProxyStatus&amp;#39;},
                { title: &amp;#39;GC Visualization&amp;#39;, path: &amp;#39;:7000/GCVisualization&amp;#39;},
            ]
        },
        {
            title: &amp;#39;Netflix Configuration&amp;#39;,
            links: [
                { title: &amp;#39;Properties Console&amp;#39;, path: &amp;#39;:8088/props&amp;#39;},
                { title: &amp;#39;Libraries Console&amp;#39;, path: &amp;#39;:8088/libraries&amp;#39;},
                { title: &amp;#39;Machine Readable Properties&amp;#39;, path: &amp;#39;:8088/machineProperties&amp;#39;},
                { title: &amp;#39;Manifest&amp;#39;, path: &amp;#39;/manifest&amp;#39;},
            ]
        }
    ]
  // ...
};
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When users create a new application, these links are available in each instance in Spinnaker with no additional input from the application owner.&lt;/p&gt;
&lt;h2 id=&#34;customizing-application-links&#34;&gt;Customizing application links&lt;/h2&gt;
&lt;p&gt;These links are customizable via the application&amp;rsquo;s Config tab in Spinnaker. If configured in &lt;code&gt;settings.js&lt;/code&gt;, the default links are displayed. Users can then customize the links for their particular application.&lt;/p&gt;
&lt;p&gt;Links support templating based on the instance&amp;rsquo;s attributes by wrapping the value in two curly braces, e.g. &lt;code&gt;{{ &amp;quot;{{id&amp;quot;}}}}&lt;/code&gt;. Common attributes available in templates are listed below.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Templating only applies to the path portion of the link - the title must be a hard-coded value.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Most links will be endpoints on your running server. These will be resolved using the public IP address of the instance if available, falling back to the private IP address. If you&amp;rsquo;ve specified an instance port in the application attributes, that will be used to generate the link. If the link should point to a different port, the &lt;code&gt;path&lt;/code&gt; should start with a colon, then the port.&lt;/p&gt;
&lt;p&gt;If no instance port is configured for the application, port 80 will be used for links (unless the path starts with a colon).&lt;/p&gt;
&lt;p&gt;Some example paths:
&lt;em&gt;An application configured with a default port of 9000, and an instance (id: &amp;lsquo;i-1234&amp;rsquo;) with an IP address of 104.156.81.74&lt;/em&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;path&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;/help&lt;/td&gt;
&lt;td&gt;http://104.156.81.74:9000/help&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;:9001/admin&lt;/td&gt;
&lt;td&gt;http://104.156.81.74:9001/admin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;a href=&#34;https://my.company/trafficFrom?instance=%7b%7b%22%7b%7bid%22%7d%7d%7d%7d&#34; target=&#34;_blank&#34;&gt;https://my.company/trafficFrom?instance={{&amp;#34;{{id&amp;#34;}}}}&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;a href=&#34;https://my.company/trafficFrom?instance=i-1234&#34; target=&#34;_blank&#34;&gt;https://my.company/trafficFrom?instance=i-1234&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;https://{{&amp;quot;{{publicIpAddress&amp;quot;}}}}:9090/secureAdmin&lt;/td&gt;
&lt;td&gt;https://104.156.81.74:9090/secureAdmin&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;available-template-fields&#34;&gt;Available template fields&lt;/h2&gt;
&lt;p&gt;This is not a comprehensive list of fields - just the most common ones. Not all fields will be available for every instance, as some are VPC-only, and some depend on subnet, launch configuration, and other factors. Trial and error is a good way to figure out what&amp;rsquo;s going to work for your application.&lt;/p&gt;
&lt;h3 id=&#34;aws&#34;&gt;AWS&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;description&lt;/th&gt;
&lt;th&gt;example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;account&lt;/td&gt;
&lt;td&gt;account owner of the instance&lt;/td&gt;
&lt;td&gt;prod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;availabilityZone&lt;/td&gt;
&lt;td&gt;zone where instance resides&lt;/td&gt;
&lt;td&gt;us-east-1a&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cloudProvider&lt;/td&gt;
&lt;td&gt;&amp;ldquo;aws&amp;rdquo;&lt;/td&gt;
&lt;td&gt;&amp;ldquo;aws&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;clientToken&lt;/td&gt;
&lt;td&gt;see AWS Documentation&lt;/td&gt;
&lt;td&gt;(string)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cluster&lt;/td&gt;
&lt;td&gt;cluster name&lt;/td&gt;
&lt;td&gt;myapp-staging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;instance ID&lt;/td&gt;
&lt;td&gt;i-12345678&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;imageId&lt;/td&gt;
&lt;td&gt;ID of the AMI running on this instance&lt;/td&gt;
&lt;td&gt;ami-123456&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;instanceId&lt;/td&gt;
&lt;td&gt;same as id&lt;/td&gt;
&lt;td&gt;i-12345678&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;instanceType&lt;/td&gt;
&lt;td&gt;AWS instance type&lt;/td&gt;
&lt;td&gt;m3.medium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ipAddress&lt;/td&gt;
&lt;td&gt;convenience field for private IP address (internal subnets) or publicDnsName (external subnets)&lt;/td&gt;
&lt;td&gt;104.156.81.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;keyName&lt;/td&gt;
&lt;td&gt;See AWS Documentation&lt;/td&gt;
&lt;td&gt;my-keypair-for-this-account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;launchTime&lt;/td&gt;
&lt;td&gt;timestamp of when instance launched&lt;/td&gt;
&lt;td&gt;1486146739000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;privateDnsName&lt;/td&gt;
&lt;td&gt;internal DNS name associated by AWS to this instance&lt;/td&gt;
&lt;td&gt;ip-104-156-81-74.ec2.internal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;privateIpAddress&lt;/td&gt;
&lt;td&gt;internal IP address (within AWS)&lt;/td&gt;
&lt;td&gt;104.156.81.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;publicDnsName&lt;/td&gt;
&lt;td&gt;external DNS name (for instances in external subnets only)&lt;/td&gt;
&lt;td&gt;ip-104-156-81-74.ec2.external&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;region&lt;/td&gt;
&lt;td&gt;region where instance resides&lt;/td&gt;
&lt;td&gt;us-east-1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;serverGroup&lt;/td&gt;
&lt;td&gt;ASG name&lt;/td&gt;
&lt;td&gt;myapp-v002&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;subnetId&lt;/td&gt;
&lt;td&gt;subnet where instance resides&lt;/td&gt;
&lt;td&gt;subnet-1abcde2f&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;vpcId&lt;/td&gt;
&lt;td&gt;vpc where instance resides&lt;/td&gt;
&lt;td&gt;vpc-1234567&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;zone&lt;/td&gt;
&lt;td&gt;alias of availabilityZone&lt;/td&gt;
&lt;td&gt;us-east-1c&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;google-compute-engine&#34;&gt;Google Compute Engine&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;description&lt;/th&gt;
&lt;th&gt;example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;account&lt;/td&gt;
&lt;td&gt;account owner of the instance&lt;/td&gt;
&lt;td&gt;prod&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;availabilityZone&lt;/td&gt;
&lt;td&gt;zone where instance resides&lt;/td&gt;
&lt;td&gt;us-central1-f&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cloudProvider&lt;/td&gt;
&lt;td&gt;cloud provider abbreviation&lt;/td&gt;
&lt;td&gt;gce&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;externalIpAddress&lt;/td&gt;
&lt;td&gt;external IP address&lt;/td&gt;
&lt;td&gt;104.156.81.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;id&lt;/td&gt;
&lt;td&gt;instance id&lt;/td&gt;
&lt;td&gt;app-stack-detail-v000-e20p&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;instanceType&lt;/td&gt;
&lt;td&gt;GCE instance type&lt;/td&gt;
&lt;td&gt;f1-micro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;internalDnsName&lt;/td&gt;
&lt;td&gt;internal DNS name associated by GCE to the instance&lt;/td&gt;
&lt;td&gt;app-stack-detail-v000-e20p&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;internalIpAddress&lt;/td&gt;
&lt;td&gt;internal IP address (within GCE)&lt;/td&gt;
&lt;td&gt;104.156.81.74&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;launchTime&lt;/td&gt;
&lt;td&gt;timestamp of when instance launched&lt;/td&gt;
&lt;td&gt;1485801280421&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;network&lt;/td&gt;
&lt;td&gt;network where instance resides&lt;/td&gt;
&lt;td&gt;default&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;region&lt;/td&gt;
&lt;td&gt;region where instance resides&lt;/td&gt;
&lt;td&gt;us-central1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;serverGroup&lt;/td&gt;
&lt;td&gt;name of Spinnaker server group (GCE managed instance group) where instance resides&lt;/td&gt;
&lt;td&gt;app-stack-detail-v000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;subnet&lt;/td&gt;
&lt;td&gt;subnet where instance resides&lt;/td&gt;
&lt;td&gt;default-b13fe48693219e49&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Kubernetes</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/kubernetes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/kubernetes/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Docs: Managed Delivery</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/managed-delivery/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/managed-delivery/</guid>
      <description>
        
        
        &lt;h2 id=&#34;getting-started&#34;&gt;Getting started&lt;/h2&gt;
&lt;p&gt;When you&amp;rsquo;re ready to give Managed Delivery a try, check out the 
&lt;a href=&#34;getting-started/&#34;&gt;Getting started&lt;/a&gt;
 page.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Pipeline User Guide</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/pipeline/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Docs: Plugin User Guide</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/plugins-users/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/plugins-users/</guid>
      <description>
        
        
        &lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;
&lt;p&gt;Spinnaker uses 
&lt;a href=&#34;https://github.com/pf4j/pf4j-update&#34; target=&#34;_blank&#34;&gt;PF4J-Update&lt;/a&gt;
 to load and manage plugins. These plugins can implement a PF4J extension point or be Spring components. See the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/&#34;&gt;Plugin Creators Guide&lt;/a&gt;
 for details.&lt;/p&gt;
&lt;h2 id=&#34;terms&#34;&gt;Terms&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;plugins.json&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;required file&lt;/li&gt;
&lt;li&gt;defines one to many plugins in a plugin repository&lt;/li&gt;
&lt;li&gt;each plugin definition has an id, description, provider, and a collection of releases (version, date, requires, sha512sum, state, url)&lt;/li&gt;
&lt;li&gt;the plugin developer provides access to this file&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;repositories.json&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;optional file&lt;/li&gt;
&lt;li&gt;defines one to many plugin repositories&lt;/li&gt;
&lt;li&gt;each repository definition consists of a unique identifier and the path to a &lt;code&gt;plugins.json&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;the plugin developer may supply this file&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;plugin-requirements&#34;&gt;Plugin requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The plugin is either a 
&lt;a href=&#34;https://github.com/pf4j/pf4j&#34; target=&#34;_blank&#34;&gt;Plugin Framework for Java&lt;/a&gt;
(PF4J) plugin or a Spring plugin&lt;/li&gt;
&lt;li&gt;The plugin repository is a web location that Spinnaker can access, like a GitHub repository&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-to-add-a-plugin-to-spinnaker&#34;&gt;How to add a plugin to Spinnaker&lt;/h2&gt;
&lt;p&gt;Adding a plugin to Spinnaker consists of the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;a href=&#34;#add-a-plugin-repository&#34;&gt;Add a plugin repository&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#add-a-plugin-repository&#34;&gt;Add a plugin&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#add-a-deck-proxy-to-gate&#34;&gt;Add a Deck proxy to Gate&lt;/a&gt;
 (Optional)&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;#redeploy-spinnaker&#34;&gt;Redeploy Spinnaker&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;add-a-plugin-repository&#34;&gt;Add a plugin repository&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Note: Your plugins.json and repository.json files must be in a location that Spinnaker can access. Token authentication
to private repositories is not supported. Consider storing your plugins and repository files in an AWS S3 bucket (or
similar) instead of a private repository.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When you configure a repository, you tell Spinnaker where to find the &lt;code&gt;plugins.json&lt;/code&gt; file that defines the plugins you
want to use. Each plugin repository entry in Spinnaker consists of a unique name and a URL.&lt;/p&gt;
&lt;p&gt;If you want a repository to point to a single &lt;code&gt;plugins.json&lt;/code&gt; file, you add it like this:&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-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;spinnaker&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;extensibility&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;repositories&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;observabilityy-plugin&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;url&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://raw.githubusercontent.com/armory-plugins/armory-observability-plugin-releases/master/plugins.json&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;It&amp;rsquo;s common to set this in the &lt;code&gt;spinnaker-local.yml&lt;/code&gt; but it can be set on a per service basis for specific
services.&lt;/p&gt;
&lt;p&gt;If you want a single plugin repository entry to point to multiple &lt;code&gt;plugins.json&lt;/code&gt; files, you need to create a
&lt;code&gt;repositories.json&lt;/code&gt; file that defines a collection of plugin repositories. The file format is:&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:#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;&amp;lt;unique-repo-name&amp;gt;&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;url&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;&amp;lt;url-of-plugins.json-file&amp;gt;&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;p&gt;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:#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;spinnaker-plugin-examples&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;url&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://raw.githubusercontent.com/spinnaker-plugin-examples/examplePluginRepository/master/plugins.json&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;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;my-company-internal-plugins&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;url&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://&amp;lt;my-company-internal-github&amp;gt;/&amp;lt;repo-name&amp;gt;/plugins.json&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;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;my-plugins&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;url&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://github.com/aimeeu/pluginRepository/blob/master/plugins.json&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;p&gt;Save your &lt;code&gt;repositories.json&lt;/code&gt; file in a web location that Spinnaker can access. Then you can add a new plugin repository
using the &lt;code&gt;repositories.json&lt;/code&gt; file:&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-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;spinnaker&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;extensibility&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;repositories&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;all-the-plugins&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;url&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://raw.githubusercontent.com/aimeeu/all-the-plugins/master/repositories.json&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;Don&amp;rsquo;t forget to apply your configuration changes by redeploying spinnaker.&lt;/p&gt;
&lt;h2 id=&#34;add-a-plugin&#34;&gt;Add a plugin&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: when added to spinnaker-local.yml, each service attempts to load the plugin. This
means that when you restart Spinnaker, each service restarts, downloads the plugin, and checks if an
extension exists for that service.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After you have added your plugin repository, you can add your plugin to Spinnaker.&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-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;spinnaker&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;extensibility&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;repositories&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;observabilityy-plugin&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;url&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://raw.githubusercontent.com/armory-plugins/armory-observability-plugin-releases/master/repositories.json&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;deck-proxy&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;plugins&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;Armory.ObservabilityPlugin&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;version&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:#0000cf;font-weight:bold&#34;&gt;0.1.1&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;plugins&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;Armory.ObservabilityPlugin&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;version&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:#0000cf;font-weight:bold&#34;&gt;1.5.0&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;config.metrics&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;prometheus&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;meterRegistryConfig&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;armoryRecommendedFiltersEnabled&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;false&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;The plugin distributor should provide you with the plugin id LIKE &lt;code&gt;Armory.ObservabilityPlugin&lt;/code&gt; and supported &lt;code&gt;version&lt;/code&gt;
and If you have to hunt for these values, you can find &lt;code&gt;id&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; in
the &lt;code&gt;plugins.json&lt;/code&gt; file, but you have to look at the code to find the value for
&lt;code&gt;extensions&lt;/code&gt;. Search for the deprecated &lt;code&gt;@ExtensionConfiguration&lt;/code&gt; or the
current &lt;code&gt;@PluginConfiguration&lt;/code&gt; annotation. Both take a value, which is the extension name.&lt;/p&gt;
&lt;p&gt;Example of the deprecated &lt;code&gt;@ExtensionConfiguration&lt;/code&gt; annotation in the 
&lt;a href=&#34;https://github.com/spinnaker-plugin-examples/pf4jStagePlugin/blob/master/random-wait-orca/src/main/kotlin/io/armory/plugin/stage/wait/random/RandomWaitConfig.kt&#34; target=&#34;_blank&#34;&gt;pf4jStagePlugin&lt;/a&gt;
, which is written in Kotlin:&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-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;io.armory.plugin.stage.wait.random&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#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;import&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;com.netflix.spinnaker.kork.plugins.api.ExtensionConfiguration&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#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:#5c35cc;font-weight:bold&#34;&gt;@ExtensionConfiguration&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;armory.randomWaitStage&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;data&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;RandomWaitConfig&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;defaultMaxWaitTime&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;Int&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;Example of the &lt;code&gt;@PluginConfiguration&lt;/code&gt; annotation in the 
&lt;a href=&#34;https://github.com/spinnaker-plugin-examples/notificationPlugin/blob/master/notification-agent-echo/src/main/kotlin/io/armory/plugin/example/echo/notificationagent/HTTPNotificationConfig.kt#L5&#34; target=&#34;_blank&#34;&gt;Notification Plugin&lt;/a&gt;
, which is also written in Kotlin:&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-kotlin&#34; data-lang=&#34;kotlin&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;package&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;io.armory.plugin.example.echo.notificationagent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#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;import&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;com.netflix.spinnaker.kork.plugins.api.PluginConfiguration&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#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:#5c35cc;font-weight:bold&#34;&gt;@PluginConfiguration&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;armory.httpNotificationService&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;data&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;HTTPNotificationConfig&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;val&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;url&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;String&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;Plugin configuration variables are passed into the primary class constructor. If the plugin developer doesn&amp;rsquo;t specify
configuration details, you can find key and type, or a configuration tree, by looking at the primary class constructor.&lt;/p&gt;
&lt;p&gt;Another example using the Random Wait Plugin:&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-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;spinnaker&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;extensibility&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;plugins&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;Armory.RandomWaitPlugin&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;id&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;Armory.RandomWaitPlugin&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;version&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:#0000cf;font-weight:bold&#34;&gt;1.1.14&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;extensions&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;armory.randomWaitStage&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;id&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;armory.randomWaitStage&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;config&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;defaultMaxWaitTime&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:#0000cf;font-weight:bold&#34;&gt;60&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;h3 id=&#34;plugin-configuration&#34;&gt;Plugin configuration&lt;/h3&gt;
&lt;p&gt;To avoid each service restarting
and downloading the plugin, &lt;em&gt;do not&lt;/em&gt; add the plugin to the &lt;code&gt;spinnaker-local.yml&lt;/code&gt;. Instead, configure the plugin in the service&amp;rsquo;s local file. For example, if your plugin extends Orca, add configuration to your &lt;code&gt;orca-local.yml&lt;/code&gt; file.&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-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;spinnaker&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;extensibility&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;plugins&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;&amp;lt;unique-plugin-id&amp;gt;&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;id&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;&amp;lt;unique-plugin-id&amp;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:#000&#34;&gt;&amp;lt;true-false&amp;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;version&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;&amp;lt;version&amp;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;extensions&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;&amp;lt;extension-name&amp;gt;&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;id&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;&amp;lt;extension-name&amp;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:#000&#34;&gt;&amp;lt;true-false&amp;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;config&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:#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;h2 id=&#34;add-a-deck-proxy-to-gate&#34;&gt;Add a Deck proxy to Gate&lt;/h2&gt;
&lt;p&gt;If your plugin has a Deck component, you need to configure a &lt;code&gt;deck-proxy&lt;/code&gt; so Gate knows where to find the plugin.&lt;/p&gt;
&lt;p&gt;In your &lt;code&gt;gate-local.yml&lt;/code&gt; add:&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-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;spinnaker&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;extensibility&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;deck-proxy&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;plugins&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;&amp;lt;unique-plugin-id&amp;gt;&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;version&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;&amp;lt;version&amp;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;repositories&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;&amp;lt;unique-repo-name&amp;gt;&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;url&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;&amp;lt;url-to-repositories.json-or-plugins.json&amp;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;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;unique-plugin-id&lt;/code&gt;: the plugin ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unique-repo-name&lt;/code&gt;: the plugin repository ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;url&lt;/code&gt;: the location of the plugin repository&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;redeploy-spinnaker&#34;&gt;Redeploy Spinnaker&lt;/h2&gt;
&lt;p&gt;Remember to apply your manifest changes after you have finished configuring your plugin.&lt;/p&gt;
&lt;h2 id=&#34;deployment-example&#34;&gt;Deployment example&lt;/h2&gt;
&lt;p&gt;See the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/guides/user/plugins-users/plugin-deploy-example/&#34;&gt;pf4jStagePlugin Deployment Example&lt;/a&gt;
 page for a walkthrough and troubleshooting.&lt;/p&gt;
&lt;h2 id=&#34;resources&#34;&gt;Resources&lt;/h2&gt;
&lt;p&gt;A central 
&lt;a href=&#34;https://github.com/spinnaker/plugins&#34; target=&#34;_blank&#34;&gt;repository for all Spinnaker plugins&lt;/a&gt;
 is available as an example but is no longer maintained or used.&lt;/p&gt;
&lt;p&gt;You can ask for help with plugins in the 
&lt;a href=&#34;https://join.slack.com/t/spinnakerteam/shared_invite/zt-3f4dqg66a-hX~tWeWPL3Sfnj3F8Ie2xg/&#34; target=&#34;_blank&#34;&gt;Spinnaker Slack&lt;/a&gt;
 &lt;code&gt;#plugins&lt;/code&gt; channel.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
