Install the Armory Scale Agent in an Existing Armory CD Instance
kubectlto deploy the Scale Agent components.
Before you begin
This guide assumes you want to evaluate the Scale Agent with an existing Armory CD test instance that you deployed using the Armory Operator and Kustomize patches (
spinnaker-kustomize-patches repo). With that in mind:
Your Armory CD test instance is running in the
Your Clouddriver service uses a SQL backend. The Scale Agent plugin uses the SQL database to store cache data and dynamically created Kubernetes accounts.
You have Kubernetes accounts configured in Clouddriver so you can evaluate account migration.
You are going to deploy the Scale Agent service in the same cluster and namespace as your Armory CD test instance.
You are not going to configure mTLS, so the Scale Agent service and plugin are not going to communicate securely.
Choose the Scale Agent version that is compatible with your Armory CD version.
Armory CD (Spinnaker) Version Scale Agent Plugin Version Scale Agent Service Version 2.28.x (1.28.x) 0.11.47 1.0.66 1.29.x 0.12.10 1.0.66 2.30.x (1.30.x) 0.13.9 1.0.66
MySQL PostgreSQL 5.7; AWS Aurora 10+
Scale Agent Features Limitation
The following Scale Agent features require Armory CD 2.28+ and Clouddriver Account Management:
- Automated scanning for newly created accounts in Clouddriver and migrating those accounts to Scale Agent management
- Intercepting and processing requests sent to Clouddriver’s
If your Armory CD version is earlier than 2.28, see the Configure the plugin section for how to disable Clouddriver Account Management.
- Read about options for migrating Kubernetes accounts.
- Access the latest Scale Agent installation files.
- Update your local
- Configure the plugin.
- Configure the service
- Install the Scale Agent
Options for migrating Kubernetes accounts
In Armory CD, you can configure Kubernetes accounts in multiple places:
- Clouddriver configuration files:
- Clouddriver database:
- Spring Cloud Config Server reading accounts from Git, Vault, or another supported backend
You have the following options for migrating accounts to the Scale Agent:
- You can configure the Scale Agent service to manage specific accounts by adding those accounts to a ConfigMap. This approach means you should remove the accounts from the Clouddriver credential source before you deploy the service.
- You can dynamically migrate accounts after the service has been deployed. This requires
kubectlaccess to the cluster so you can port-forward the endpoint to your local machine.
This guide shows you how to statically add an accounts to the Scale Agent service configuration before deployment.
Access the installation files
You can find the files that install the Scale Agent in the
spinnaker-kustomize-patches/targets/kubernetes/scale-agent repo. Update your local copy from
master to get the latest updates.
Update your Kustomization recipe
Configure the plugin
Set the plugin version that is compatible with your Armory CD version
plugin-config.yml, check that the version listed is compatible with your Armory CD version. If it isn’t, replace with a plugin version that is.
spec: spinnakerConfig: profiles: clouddriver: spinnaker: extensibility: repositories: armory-agent-k8s-spinplug-releases: enabled: true url: https://raw.githubusercontent.com/armory-io/agent-k8s-spinplug-releases/master/repositories.json plugins: Armory.Kubesvc: enabled: true version: 0.11.32 # Replace with a version compatible with your Armory CD version extensions: armory.kubesvc: enabled: true
(Optional) Disable Clouddriver Account Management if your Armory CD version is earlier than 2.28.
spec: spinnakerConfig: profiles: clouddriver: account: storage: enabled: true
Configure the service
The Scale Agent service version is set in
spinnaker-kustomize-patches/targets/kubernetes/scale-agent/scale-agent-deployment.yml. You don’t have to configure a version in the
spec.template.spec.containers.image field. The manifest pulls the latest version, which is compatible with Armory CD 2.26+ and corresponding plugin versions.
You should configure a Kubernetes account for the Scale Agent service to manage. You do this in
targets/kubernetes/scale-agent/armory-agent.yml. The Kubernetes account should not exist in Clouddriver.
Add your Kubernetes accounts to the
kubernetes.accounts section. For example:
kubernetes: accounts: - kubeconfigFile: /kubeconfigfiles/kubeconfig name: agent-demo
Install the Scale Agent
Execute all commands from the root of
spinnaker-kustomize-patches. The following commands assume your Kustomization recipe is named
kustomization.yml and is in the root of your
(Optional) Verify the Kustomize build output.
kubectl kustomize kustomization.yml
This prints out the contents of the manifest file that Kustomize built based on your
Apply the manifest.
kubectl apply -k .
Verify the installation.
kubectl -n spinnaker get spinsvc && echo "" && kubectl -n spinnaker get pods
You can also access the Clouddriver log to verify that the plugin is running and communicating with the service.
kubectl -n spinnaker logs deployment/spin-clouddriver | grep -E "Start plugin|Starting Kubesvc plugin|Registering agent with"
Create a pipeline with a
Deploy manifest stage. You should see your target cluster available in the
Accounts list. Deploy a static manifest.
- Dynamic Accounts Architecture and Features
- Migrate Clouddriver Kubernetes Accounts to the Armory Scale Agent
- Troubleshoot the Armory Scale Agent Service and Plugin page if you run into issues.
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.
Last modified March 3, 2023: (2d069084)