Armory Agent for Kubernetes Quick Start Installation
Leearn how to install the Armory Agent in your Kubernetes and Spinnaker environments.
Scalability
watch
mechanism, the Agent detects changes to Kubernetes and streams them in real time over a single TCP connection per cluster to SpinnakerTM.Security
kubeconfig
files in one of the supported secret engines, or provision them via the method of your choice as Kubernetes secrets.Usability
Check out the Quick Start guide to deploy the Agent on your Kubernetes infrastructure.
In this mode, the Agent is installed as a new Spinnaker service (spin-kubesvc
) and can be configured like other services.
If you provision clusters automatically, the Agent can dynamically reload accounts when kubesvc.yaml
changes. You could, for example, configure accounts in a configMap
mounting to /opt/spinnaker/config/kubesvc-local.yaml
. The Agent reflects configMap
within seconds after etcd sync.
In infrastructure mode, multiple Agent deployments handle different groups of Kubernetes clusters. Each deployment is configured separately.
Account name must still be unique across all your infrastructure. Clouddriver will reject new accounts with a name that matches a different cluster.
In this mode, the Agent acts as a piece of infrastructure. It authenticates using a service account token. You use RBAC service account permissions to configure what the Agent is authorized to do.
If Spinnaker is unable to communicate with the Agent, Spinnaker attempts to reconnect during a defined grace period. If Spinnaker still can’t communicate with the Agent after the grace period has expired, the Agent’s cluster is removed from Spinnaker.
The Armory Agent does outbound calls only, except for a local health check, over a single gPRC connection to Clouddriver. The connection can be over TLS or mTLS. You can terminate TLS:
spin-clouddriver-grpc
as a network load balancer.spin-clouddriver-grpc
service.Spinnaker will use the bidirectional communication channel to receive changes from Kubernetes accounts as well as send operations to the Agent.
The Agent sends the following information about the cluster it is watching back to Spinnaker:
kubernetes.accounts[]
.kubernetes.accounts[].omitKinds
) or configure specific kinds to watch (kubernetes.accounts[].kinds
).The Agent always scrubs data from
Secret
in memory before it is sent and even before that data makes it onto the Agent’s memory heap.
Since the Armory Agent does outbound calls only, you can have agents running on-premises or in public clouds such as AWS, GCP, Azure, Oracle, or Alibaba.
What Spinnaker can do in the target cluster is limited by what it is running as:
serviceAccount
in Agent modekubeconfig
setup for infrastructure or Spinnaker service modeCommunications are secured with TLS and optionally mTLS.
Furthermore, in Agent mode, Spinnaker never gets credentials and account registration is dynamic.
Each Agent can scale to 100s of Kubernetes clusters. The more types of Kubernetes objects the Agent has to watch, the more memory it uses. Memory usage is bursty. You can control burst with budget
. See Agent options) for configuration information.
Scaling the Agent can mean:
Deployment
it is part of.You can also mix deployment strategies if you have complex Kubernetes infrastructure and permissions:
The Armory Agent is compatible with the Armory Platform and open source Spinnaker. It consists of a lightweight service that you deploy on Kubernetes and a plugin that you install into Spinnaker.
Armory (Spinnaker) Version | Armory Agent Plugin Version | Armory Agent Version |
---|---|---|
2.23.x (1.23.x) | 0.6.5 | 0.5.6 |
2.24.x (1.24.x) | 0.7.4 | 0.5.6 |
2.25.x (1.25.x) | 0.8.4 | 0.5.6 |
For a full list of previous releases, see this page.
Leearn how to install the Armory Agent in your Kubernetes and Spinnaker environments.
Learn how to configure the Armory Agent based on installation mode and environment restrictions. This guide contains a detailed list of configuration options.
This guide contains a detailed list of Armory Agent plugin configuration options for Clouddriver.
Learn how to configure Prometheus to get metrics from the Armory Agent and display them in a Grafana dashboard.
Successful installation and startup messages, common errors, tips, and gRPC endpoint testing.
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.