teleport/integrations/kube-agent-updater
Hugo Shaka ba75bd9869
integrations: allow multiarch image builds (#23698)
* Remove unnecessary cgo and simplify image build

* Add a target outputting the buildbox image

* Use static distroless image as base image
2023-03-30 16:00:02 +00:00
..
cmd/teleport-kube-agent-updater kube-updater: Add StatefulSet controller (#23074) 2023-03-24 12:49:49 +00:00
hack kube-updater: add Dockerfile & GHA pipelines (#22983) 2023-03-22 13:05:02 +00:00
pkg kube-updater: Add StatefulSet controller (#23074) 2023-03-24 12:49:49 +00:00
Dockerfile integrations: allow multiarch image builds (#23698) 2023-03-30 16:00:02 +00:00
go.mod kube-updater: Add cosign image validator (#22516) 2023-03-17 14:19:31 +00:00
go.sum kube-updater: Add cosign image validator (#22516) 2023-03-17 14:19:31 +00:00
Makefile integrations: allow multiarch image builds (#23698) 2023-03-30 16:00:02 +00:00
README.md kube-updater: initial commit (#22067) 2023-03-06 18:40:28 +00:00
version.go Fix flaky test detetion for updater (#22690) 2023-03-07 04:49:01 +00:00

Teleport Kubernetes Agent Updater (teleport-kube-agent-updater)

The Teleport kubernetes updater is a controller in charge of updating Teleport Kubernetes agents. This alleviates the cost of updating all agents on large-scale deployments.

Note: Teleport Kubernetes agents are not limited to Kubernetes Access. The term applies to every Teleport instance running in a Kubernetes cluster and not running the Proxy nor Auth Service. Agents are typically deployed by the teleport-kube-agent chart.

Design

This updater was designed first for cloud customers but can be adapter to run for on-prem users as well.

See the cloud update RFD for more context.

If an update goes wrong, a temporary downtime is acceptable until a correct version is pushed (this risk is mitigated by multi-replica deployments). However, the failure mode in which the deployment is stuck and the user has to take manual action must not happen.

The updater validates the image provenance to protect against registry compromise.

The updater logic is the following:

  • check if maintenance is allowed
  • check if a new version is available and version change is valid
  • check if the new image can be validated