Spinnaker Plugin (PF4J-based) that is a custom pipeline stage.
The pf4jStagePlugin creates a custom pipeline stage that waits a random number of seconds before signaling success.
This plugin implements the SimpleStage PF4J extension point in Orca.
The plugin consists of a random-wait-orca
Kotlin server component and a random-wait-deck
React UI component that uses the rollup.js plugin library.
This is for demo only and not meant to be used in a production environment.
Plugin | Spinnaker Platform |
---|---|
1.0.x | 1.19.x |
1.1.x | 1.20.x |
- Run
./gradlew releaseBundle
- Put the
/build/distributions/<project>-<version>.zip
into the configured plugins location for your service. - Configure the Spinnaker service. Put the following in the service yml to enable the plugin and configure the extension:
spinnaker:
extensibility:
plugins:
Armory.RandomWaitPlugin:
enabled: true
extensions:
armory.randomWaitStage:
enabled: true
config:
defaultMaxWaitTime: 60
Or use the examplePluginRepository to avoid copying the plugin .zip
artifact.
To debug the random-wait-orca
server component inside a Spinnaker service (like Orca) using IntelliJ Idea follow these steps:
- Run
./gradlew releaseBundle
in the plugin project. - Copy the generated
.plugin-ref
file underbuild
in the plugin project submodule for the service to theplugins
directory under root in the Spinnaker service that will use the plugin . - Link the plugin project to the service project in IntelliJ (from the service project use the
+
button in the Gradle tab and select the plugin build.gradle). - Configure the Spinnaker service the same way specified above.
- Create a new IntelliJ run configuration for the service that has the VM option
-Dpf4j.mode=development
and does aBuild Project
before launch. - Debug away...
Plugging into the UI
video walkthroughPlugging into Spinnaker Services
video walkthroughPlugin Build and Release
video walkthroughPlugin Delivery
video walkthrough