title | linkTitle | weight | description |
---|---|---|---|
Install the Scale Agent Plugin Using a Docker Image |
Install Plugin - Docker |
20 |
Learn how to install the Armory Scale Agent plugin using a Docker image.
|
{{% alert title="Warning" color="warning" %}} The Scale Agent plugin extends Clouddriver. When Halyard adds a plugin to a Spinnaker installation, it adds the plugin repository information to each service. This means that when you restart Spinnaker, each service restarts, downloads the plugin, and checks if an extension exists for that service. Each service restarting is not ideal for large Spinnaker installations due to service restart times. To avoid each service restarting and downloading the plugin, configure the plugin in Clouddriver’s local profile. {{% /alert %}}
-
Create a custom service setting that mounts an empty volume inside Clouddriver for the plugin image. Add the following to your
.hal/default/service-settings/clouddriver.yml
file:kubernetes: volumes: - id: kubesvc-plugin-vol type: emptyDir mountPath: /opt/clouddriver/lib/plugins
-
Define an init container for the plugin. In the
deploymentConfigurations.name.deploymentEnvironment.initContainers
section of your.hal/config
, add the following:spin-cloudriver: - name: kubesvc-plugin image: docker.io/armory/kubesvc-plugin:<version> volumeMounts: - mountPath: /opt/plugin/target name: kubesvc-plugin-vol
Be sure to use the plugin version compatible with your Spinnaker version.
-
Add the plugin to your
clouddriver-local.yml
.spinnaker: extensibility: plugins: Armory.Kubesvc: enabled: true extensions: armory.kubesvc: enabled: true pluginsRootPath: /opt/clouddriver/lib/plugins kubesvc: cluster: kubernetes kubernetes: enabled: true # enable Clouddriver Account Management if you are using Spinnaker 1.28+ account: storage: enabled: true
-
Apply your changes by running
hal deploy apply
.
-
Confirm the plugin Docker image exists locally.
docker images | grep kubesvc
Output is similar to:
armory/kubesvc-plugin 0.11.32
-
Find the name of the new Clouddriver pod.
kubectl -n spinnaker get pods
-
Confirm the Clouddriver service is using the Docker image.
kubectl -n spinnaker describe pod <clouddriver-pod-name> | grep Image:
Output is similar to:
Image: docker.io/armory/kubesvc-plugin:0.11.32
-
View the Clouddriver log to verify that the plugin has started.
kubectl -n spinnaker logs deployments/spin-clouddriver | grep "Plugin"
Output is similar to:
org.pf4j.AbstractPluginManager : Plugin '[email protected]' resolved org.pf4j.AbstractPluginManager : Start plugin '[email protected]' io.armory.kubesvc.KubesvcPlugin : Starting Kubesvc plugin...
You can find the Kustomize file plugin-container-patch.yml
in the spinnaker-patches-kustomize
repo.
Change the value for metadata.name
if your Armory CD service is called something other than “spinnaker”.
Then include the file under the patchesStrategicMerge
section of your kustomization file.
patchesStrategicMerge:
- <path>/plugin-container-patch.yml
Apply your changes.