Home

Awesome

Astarte Kubernetes Operator

CI Go Report Card License Docker Pulls

<img src="mascotte.svg" align="right" width="160px" /> 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 https://charts.jetstack.io
helm repo update
kubectl create namespace cert-manager
helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --version v1.13.3 \
  --set installCRDs=true

Installing the operator is as simple as:

helm repo add astarte https://helm.astarte-platform.org
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 VersionSupportedTested by CI
v1.25.x:large_orange_diamond::x:
v1.26.x:white_check_mark::white_check_mark:
v1.27.x:white_check_mark::white_check_mark:
v1.28.x:white_check_mark::white_check_mark:
v1.29.x:white_check_mark::white_check_mark:
v1.30.x:white_check_mark::white_check_mark:

Key:

Compatibility Matrix

Astarte Operator VersionAstarte VersionKubernetes Version
v22.11v1.0+v1.22+
v23.5v1.0+v1.22+
v24.5v1.0+v1.24+

Development

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

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