Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Astarte Kubernetes Operator

CI Go Report Card License Docker Pulls

Astarte Kubernetes Operator runs and manages an Astarte Cluster in a Kubernetes Cluster. It is meant to work on any Managed Kubernetes installation, and leverages a number of Kubernetes features to ensure Astarte runs as smooth as possible. It also handles upgrades, monitoring, and more.

Astarte Operator is the foundation of any Astarte installation, and you can find more information about it and how to use it once installed in the Astarte Operator guide.

Getting started

The preferred way to install and manage Astarte Operator leverages its Helm chart.

Astarte Operator requires cert-manager (v1.7+) to be installed in the cluster in its default configuration. If you are using cert-manager in your cluster already you don't need to take any action - otherwise, you will need to install it. A complete overview on prerequisites can be found here.

To install cert-manager simply run:

helm repo add jetstack
helm repo update
kubectl create namespace cert-manager
helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --version v1.7.0 \
  --set installCRDs=true

Installing the operator is as simple as:

helm repo add astarte
helm repo update
helm install astarte-operator astarte/astarte-operator

These instructions will take care of installing all needed components for the Operator to run. This includes all the RBAC roles, Custom Resource Definitions, Webhooks, and the Operator itself.

Moreover, Helm is responsible for upgrading the Astarte Operator. To do so, run:

helm upgrade astarte-operator astarte/astarte-operator

If you are interested in having a deeper understanding on how the Astarte Operator works you should follow the Astarte Operator Administration guide.

What's next?

Once your Astarte Operator is up and running in your cluster, it will be time to deploy your Astarte instance! All you have to do is Setting up the Cluster.

Kubernetes support

Kubernetes Version Supported Tested by CI
v1.21.x πŸ”Ά ⚠️ ❌
v1.22.x πŸ”Ά ❌
v1.23.x πŸ”Ά βœ…
v1.24.x βœ… βœ…
v1.25.x βœ… βœ…
v1.26.x βœ… βœ…
v1.27.x βœ… βœ…


  • βœ… : Supported and stable.
  • πŸ”Ά : Partially supported / known to run in production, but not being targeted by the release.
  • ❌ : Not supported. Run at your own risk.
  • ⚠️ : Kubernetes version supporting AstarteVoyagerIngress. Please, be aware that the AstarteVoyagerIngress is deprecated and the new AstarteDefaultIngress should be used.

Compatibility Matrix

Astarte Operator Version Astarte Version Kubernetes Version
v1.0.0 v0.11 - v1.0 v1.19+
v1.0.x v0.11 - v1.0 v1.19+
v22.11 v1.0+ v1.22+
v23.5 v1.0+ v1.22+


Astarte's Operator is written in Go and built upon Operator SDK. It depends on Go 1.19, requires Go Modules and Kubernetes v1.20+.

The project is built with kustomize v3.8.7, controller-gen v0.10.0 and conversion-gen v0.19.16.