<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Plugin Creator Guide on Spinnaker</title>
		<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/</link>
		<description>Recent content in Plugin Creator Guide on Spinnaker</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<atom:link href="https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Backend Service Extension Points</title>
				<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/plugin-backend/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/plugin-backend/</guid>
				<description>&lt;h2 id=&#34;project-setup&#34;&gt;Project Setup&lt;/h2&gt;&#xA;&lt;p&gt;To enable plugins for a service, you only need to do two things:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Add &lt;code&gt;implementation(&amp;quot;com.netflix.spinnaker.kork:kork-plugins&amp;quot;)&lt;/code&gt; to your &lt;code&gt;{service}-core&lt;/code&gt; module.&lt;/li&gt;&#xA;&lt;li&gt;Add &lt;code&gt;@Import(PluginsAutoConfiguration::class)&lt;/code&gt; on your &lt;code&gt;Main&lt;/code&gt; class or somewhere that will always be loaded.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Once the plugin framework is installed, you must create an API module to home your service extension points.&lt;/p&gt;&#xA;&lt;h3 id=&#34;api-module&#34;&gt;API Module&lt;/h3&gt;&#xA;&lt;p&gt;Plugins are all about the API. Ensure your project has a &lt;code&gt;{service}-api&lt;/code&gt; module (called &amp;ldquo;&lt;em&gt;the API module&lt;/em&gt;&amp;rdquo; from now on). The API module &lt;strong&gt;MUST NOT&lt;/strong&gt; have other project module dependencies: Your &lt;code&gt;{service}-core&lt;/code&gt; module (called the &amp;ldquo;&lt;em&gt;core service module&lt;/em&gt;&amp;rdquo;) will actually &lt;em&gt;depend on&lt;/em&gt; the API module, as it is the core&amp;rsquo;s and other modules&amp;rsquo; responsibility to marshal between internal data structures and objects and the external API contracts.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Frontend Plugin Development</title>
				<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/plugin-frontend/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/plugin-frontend/</guid>
				<description>&lt;h2 id=&#34;overview-of-frontend-plugins&#34;&gt;Overview of Frontend plugins&lt;/h2&gt;&#xA;&lt;p&gt;Frontend plugins provide a way to change the behavior of Deck, Spinnaker&amp;rsquo;s UI&#xA;service. You can add configuration and validation for new stages provided by&#xA;Orca plugins, override existing components with your own implementation, or add&#xA;new Kubernetes &lt;code&gt;kind&lt;/code&gt; definitions for custom resources in your environment. Spinnaker loads plugins at runtime through Gate.&lt;/p&gt;&#xA;&lt;p&gt;You can write plugins in any JavaScript-compatible language, but the development tooling is designed for JavaScript and TypeScript.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Plugin Compatibility Testing</title>
				<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/testing/compatibility-testing/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/testing/compatibility-testing/</guid>
				<description>&lt;p&gt;A plugin can be executed inside of a Spinnaker version that is&#xA;different than the version it was compiled against. For example, a plugin&#xA;compiled against Spinnaker &lt;code&gt;1.20&lt;/code&gt; might be compatible with Spinnaker versions up&#xA;to &lt;code&gt;1.23&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This range is important for plugin developers so that they can support users&#xA;across Spinnaker versions; it&amp;rsquo;s important for plugin consumers so that they can&#xA;safely install and upgrade plugins. Fortunately, testing can resolve this compatibility range automatically.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Plugin Project Configuration</title>
				<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/project-config/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/project-config/</guid>
				<description>&lt;p&gt;Plugins are an evolving feature. The easiest way to set up a new plugin&#xA;project is to copy one of the&#xA;&#xA;&lt;a href=&#34;https://github.com/spinnaker-plugin-examples&#34; target=&#34;_blank&#34;&gt;spinnaker-plugin-examples&lt;/a&gt;&#xA;&#xA;projects that most closely resembles what you want to do.&lt;/p&gt;&#xA;&lt;h3 id=&#34;gradle-configuration&#34;&gt;Gradle configuration&lt;/h3&gt;&#xA;&lt;p&gt;Some important aspects of your project&amp;rsquo;s gradle build:&lt;/p&gt;&#xA;&lt;h4 id=&#34;gradleproperties&#34;&gt;gradle.properties&lt;/h4&gt;&#xA;&lt;p&gt;Organizing these values into gradle.properties is optional, but these versions are very much mandatory.&lt;/p&gt;&#xA;&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;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-properties&#34; data-lang=&#34;properties&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c4a000&#34;&gt;spinnakerGradleVersion&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;8.10.1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c4a000&#34;&gt;pf4jVersion&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;3.2.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c4a000&#34;&gt;korkVersion&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;7.99.1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c4a000&#34;&gt;orcaVersion&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;2.19.0-20210209140018&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c4a000&#34;&gt;kotlinVersion&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;1.3.50&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note that managing the version of your plugin here (&lt;code&gt;version=1.2.3&lt;/code&gt;) requires&#xA;modifying this file for each release. There are fancier ways (the example&#xA;project uses a git tag strategy and additional gradle plugins) but those are&#xA;outside the scope of this documentation.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Test a Pipeline Stage Plugin</title>
				<link>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/testing/plugin-deck-test/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://deploy-preview-637--spinnaker-io.netlify.app/docs/guides/developer/plugin-creator/testing/plugin-deck-test/</guid>
				<description>&lt;h2 id=&#34;overview&#34;&gt;Overview&lt;/h2&gt;&#xA;&lt;h1 id=&#34;this-document-is-deprecated-and-out-of-date--halyard-is-no-longer-supported-but-the-document-is-being-left-as-a-useful-reference&#34;&gt;This document is deprecated and out of date.  Halyard is no longer supported but the document is being left as a useful reference&lt;/h1&gt;&#xA;&lt;p&gt;This guide explains how to set up a local Spinnaker environment on your Mac or Windows environment so you can test the &lt;code&gt;pf4jStagePlugin&lt;/code&gt;, which has both Orca and Deck components. Spinnaker services running locally communicate with the other Spinnaker services running in a local VM. Although this guide is specific to the &lt;code&gt;pf4jStagePlugin&lt;/code&gt;, you can adapt its contents to test your own plugin.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
