API Reference #
Packages #
- api.astarte-platform.org/v2alpha1
- flow.astarte-platform.org/v2alpha1
- ingress.astarte-platform.org/v2alpha1
api.astarte-platform.org/v2alpha1 #
Package v2alpha1 contains API Schema definitions for the api v2alpha1 API group
Resource Types #
Astarte #
Astarte is the Schema for the astartes API
Custom Astarte annotations Astarte support a set of custom annotations that can be used to toggle custom behaviors that are not directly supported by the CRD schema. This is often the case for features that are still experimental, or that are not expected to be widely used, and that would therefore add unnecessary complexity to the CRD schema.
Enable or disable the Astarte Dashboard sidebar
- Annotation:
api.astarte-platform.org/hide-dashboard-sidebar - Values:
"true"or"false"
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
api.astarte-platform.org/v2alpha1 |
||
kind string |
Astarte |
||
metadata
ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec
AstarteSpec |
|||
status
AstarteStatus |
AstarteAPISpec #
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
ssl boolean |
Enable or disable SSL for the Astarte API. Default: true. | Optional: {} |
|
host string |
AstarteAppengineAPISpec #
AstarteAppengineAPISpec configures the AppEngine API component.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, the component is deployed. When false, the component is removed (if already present) or skipped. All components default to true except Flow, which defaults to false and must be explicitly enabled. |
Optional: {} |
|
replicas integer |
The number of replicas for this component. | Optional: {} |
|
antiAffinity boolean |
When true, pods of this component are spread across nodes using podAntiAffinity. |
Optional: {} |
|
customAffinity
Affinity |
Custom affinity rules for this component. When set, overrides the default antiAffinity configuration entirely. |
Optional: {} |
|
deploymentStrategy
DeploymentStrategy |
The deployment strategy for this specific component. Overrides the global spec.deploymentStrategy. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. |
Optional: {} |
|
version string |
The Astarte version (image tag) for this specific component. Overrides the global spec.version. Useful for pinning a component to a different version during upgrades or debugging. |
Optional: {} |
|
image string |
The full container image reference (registry/name:tag) for this component. When set, overrides both the distributionChannel and version settings for this component. |
Optional: {} |
|
imagePullPolicy
PullPolicy |
The image pull policy for this component. Overrides the global spec.imagePullPolicy. Default: inherits from spec.imagePullPolicy. |
Optional: {} |
|
imagePullSecrets
LocalObjectReference array |
Additional image pull secrets for this component’s pods. These are appended to the global spec.imagePullSecrets. |
Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
additionalEnv
EnvVar array |
Additional environment variables for this Component. These are appended after the operator-managed environment variables and can override them. |
Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
autoscaler
AstarteGenericClusteredResourceAutoscalerSpec |
Autoscaling resources for this deployment/statefulset. If autoscaling is enabled, this will take precedence over the “Replicas” field. The autoscaling feature must be enabled globally via features.autoscaling. |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for this component. If not set, no startup probe is configured by default. |
Optional: {} |
|
disableAuthentication boolean |
When true, disables authentication for this API component. This is useful in development or when an external auth proxy is used. Do not disable authentication in production without an external auth mechanism. |
Optional: {} |
|
maxResultsLimit integer |
The maximum number of results returned by a single AppEngine API query. Must be at least 100. Defaults to 10000. |
Minimum: 100 Optional: {} |
|
roomEventsQueueName string |
Configures the name of the Room Events queue. Should be configured only in installations with a highly customized RabbitMQ. It is advised to leave empty unless you know exactly what you’re doing. |
Optional: {} |
|
roomEventsExchangeName string |
Configures the name of the Room Events exchange. Should be configured only in installations with a highly customized RabbitMQ. It is advised to leave empty unless you know exactly what you’re doing. |
Optional: {} |
AstarteCFSSLCARootConfigSigningCAConstraintSpec #
AstarteCFSSLCARootConfigSigningCAConstraintSpec defines constraints on the CA certificate.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
max_path_len integer |
|||
is_ca boolean |
|||
max_path_len_zero boolean |
AstarteCFSSLCARootConfigSigningDefaultSpec #
AstarteCFSSLCARootConfigSigningDefaultSpec defines the default signing parameters for the CFSSL CA.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
usages string array |
|||
expiry string |
|||
ca_constraint
AstarteCFSSLCARootConfigSigningCAConstraintSpec |
AstarteCFSSLCARootConfigSpec #
AstarteCFSSLCARootConfigSpec defines the root CA configuration for CFSSL.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
signingDefault
AstarteCFSSLCARootConfigSigningDefaultSpec |
AstarteCFSSLCSRRootCAKeySpec #
AstarteCFSSLCSRRootCAKeySpec defines the key algorithm and size for the CFSSL root CA.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
algo string |
The key algorithm (e.g. “rsa”, “ecdsa”). | ||
size integer |
The key size in bits (e.g. 2048, 4096). |
AstarteCFSSLCSRRootCANamesSpec #
AstarteCFSSLCSRRootCANamesSpec defines the distinguished name components for the CFSSL root CA certificate.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
C string |
|||
L string |
|||
O string |
|||
OU string |
|||
ST string |
AstarteCFSSLCSRRootCASpec #
AstarteCFSSLCSRRootCASpec defines the certificate signing request for the CFSSL root CA.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
CN string |
|||
key
AstarteCFSSLCSRRootCAKeySpec |
|||
names
AstarteCFSSLCSRRootCANamesSpec array |
|||
expiry string |
AstarteCFSSLDBConfigSpec #
AstarteCFSSLDBConfigSpec configures the database backend used by CFSSL.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
driver string |
The database driver (e.g. “sqlite3”, “postgres”). | ||
dataSource string |
The database data source name (connection string). |
AstarteCFSSLSpec #
AstarteCFSSLSpec configures CFSSL (Cloudflare’s PKI/TLS toolkit), the internal certificate authority used by Astarte for mutual TLS between components. By default, CFSSL is deployed and managed by the Operator.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, deploy CFSSL. When false, an external CFSSL instance must be provided via the url field. Default: true. |
Optional: {} |
|
url string |
The URL of the CFSSL instance. Can be manually set when deploy is false to use an external CFSSL. Default: http:// |
Optional: {} |
|
caExpiry string |
The expiry duration for the CA certificate (e.g. “87600h”). Only applies when CFSSL is deployed by the Operator. |
Optional: {} |
|
caSecret
LocalObjectReference |
A reference to a Kubernetes Secret containing an externally-managed CA certificate. The Secret must be in the same namespace as Astarte. When set, CFSSL uses this CA instead of generating a new one. |
Optional: {} |
|
certificateExpiry string |
The expiry duration for certificates issued by CFSSL (e.g. “8760h”). | Optional: {} |
|
dbConfig
AstarteCFSSLDBConfigSpec |
Database configuration for CFSSL’s certificate storage. | Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
version string |
The CFSSL container version (image tag) to use. Overrides the global spec.version for CFSSL specifically. |
Optional: {} |
|
image string |
The full CFSSL container image reference. Overrides the distributionChannel and version for CFSSL. |
Optional: {} |
|
storage
AstartePersistentStorageSpec |
Persistent storage configuration for CFSSL’s certificate database. | Optional: {} |
|
csrRootCa
AstarteCFSSLCSRRootCASpec |
Certificate signing request configuration for the root CA. | Optional: {} |
|
caRootConfig
AstarteCFSSLCARootConfigSpec |
Root CA configuration for signing certificates. | Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for CFSSL. If not set, a default HTTP GET probe is configured to check the /api/v1/cfssl/health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for CFSSL. If not set, a default HTTP GET probe is configured to check the /api/v1/cfssl/health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for CFSSL. If not set, no startup probe is configured by default. |
Optional: {} |
AstarteCassandraConnectionSpec #
AstarteCassandraConnectionSpec defines the connection to an external Cassandra/ScyllaDB cluster.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
sslConfiguration
GenericSSLConfigurationSpec |
SSL configuration for the connection. | Optional: {} |
|
credentialsSecret
LoginCredentialsSecret |
The secret containing Username and Password to login. Either this field or connectionStringSecret must be set. |
Optional: {} |
|
connectionStringSecret
ConnectionStringSecret |
The secret containing a connection string to the service. Either this field or credentialsSecret must be set.put as-is in the env. Therefore, setting this field is a no-op. Not using credentialsSecret WILL break your Astarte instance. |
Optional: {} |
|
nodes
HostAndPort array |
The list of Cassandra/ScyllaDB seed nodes. At least one node must be provided. | ||
poolSize integer |
The size of the connection pool to each Cassandra/ScyllaDB node. Adjust this value if you need to increase or limit the number of concurrent queries per node. |
Optional: {} |
|
enableKeepalive boolean |
Enable or disable the keepalive option for the xandra connection. Default: true. |
Optional: {} |
AstarteCassandraSpec #
AstarteCassandraSpec configures the Cassandra/ScyllaDB backend for Astarte.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
connection
AstarteCassandraConnectionSpec |
The Cassandra/ScyllaDB connection configuration. Required. | Required: {} |
|
astarteSystemKeyspace
AstarteSystemKeyspaceSpec |
The keyspace configuration for Astarte’s system keyspace. Required. | Required: {} |
AstarteClusterHealth #
Underlying type: string
AstarteClusterHealth represents the overall health of the cluster
Appears in:
| Field | Description |
|---|---|
red |
AstarteClusterHealthRed means the cluster is experiencing serious malfunctions or is down |
yellow |
AstarteClusterHealthYellow means the cluster is experiencing downtimes related to a single service |
green |
AstarteClusterHealthGreen means the cluster is healthy, up and running |
AstarteComponentsSpec #
AstarteComponentsSpec configures all Astarte service components.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
resources
ResourceRequirements |
Compute Resources shared across all components. Can be overridden per-component by setting the component’s own resources field. |
Optional: {} |
|
flow
AstarteGenericAPIComponentSpec |
Flow component configuration. Defaults to deploy: false. | Optional: {} |
|
housekeeping
AstarteGenericAPIComponentSpec |
Housekeeping component configuration. | Optional: {} |
|
realmManagement
AstarteGenericAPIComponentSpec |
RealmManagement component configuration. | Optional: {} |
|
pairing
AstarteGenericAPIComponentSpec |
Pairing component configuration. | Optional: {} |
|
dataUpdaterPlant
AstarteDataUpdaterPlantSpec |
DataUpdaterPlant component configuration. | Optional: {} |
|
appengineApi
AstarteAppengineAPISpec |
AppengineAPI component configuration. | Optional: {} |
|
triggerEngine
AstarteTriggerEngineSpec |
TriggerEngine component configuration. | Optional: {} |
|
dashboard
AstarteDashboardSpec |
Dashboard component configuration. | Optional: {} |
AstarteDashboardConfigAuthSpec #
AstarteDashboardConfigAuthSpec defines an authentication provider configuration for the Astarte Dashboard.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type string |
The authentication type (e.g. “token”, “oauth”). | ||
oauth_api_url string |
The OAuth API URL (only used when type is “oauth”). | Optional: {} |
AstarteDashboardConfigSpec #
AstarteDashboardConfigSpec configures the Astarte Dashboard UI settings.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
realmManagementApiUrl string |
The URL of the Realm Management API. When set, overrides the default (derived from the Astarte API host). |
Optional: {} |
|
appEngineApiUrl string |
The URL of the AppEngine API. When set, overrides the default. | Optional: {} |
|
pairingApiUrl string |
The URL of the Pairing API. When set, overrides the default. | Optional: {} |
|
flowApiUrl string |
The URL of the Flow API. When set, overrides the default. | Optional: {} |
|
defaultRealm string |
The default realm for the Dashboard. On first access, the Dashboard will pre-select this realm. |
Optional: {} |
|
defaultAuth string |
The default authentication method for the Dashboard. Default: “token”. | Optional: {} |
|
auth
AstarteDashboardConfigAuthSpec array |
Authentication provider configurations available in the Dashboard. If not set, defaults to a single “token” auth provider. |
Optional: {} |
AstarteDashboardSpec #
AstarteDashboardSpec configures the Astarte Dashboard component.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, the component is deployed. When false, the component is removed (if already present) or skipped. All components default to true except Flow, which defaults to false and must be explicitly enabled. |
Optional: {} |
|
replicas integer |
The number of replicas for this component. | Optional: {} |
|
antiAffinity boolean |
When true, pods of this component are spread across nodes using podAntiAffinity. |
Optional: {} |
|
customAffinity
Affinity |
Custom affinity rules for this component. When set, overrides the default antiAffinity configuration entirely. |
Optional: {} |
|
deploymentStrategy
DeploymentStrategy |
The deployment strategy for this specific component. Overrides the global spec.deploymentStrategy. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. |
Optional: {} |
|
version string |
The Astarte version (image tag) for this specific component. Overrides the global spec.version. Useful for pinning a component to a different version during upgrades or debugging. |
Optional: {} |
|
image string |
The full container image reference (registry/name:tag) for this component. When set, overrides both the distributionChannel and version settings for this component. |
Optional: {} |
|
imagePullPolicy
PullPolicy |
The image pull policy for this component. Overrides the global spec.imagePullPolicy. Default: inherits from spec.imagePullPolicy. |
Optional: {} |
|
imagePullSecrets
LocalObjectReference array |
Additional image pull secrets for this component’s pods. These are appended to the global spec.imagePullSecrets. |
Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
additionalEnv
EnvVar array |
Additional environment variables for this Component. These are appended after the operator-managed environment variables and can override them. |
Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
autoscaler
AstarteGenericClusteredResourceAutoscalerSpec |
Autoscaling resources for this deployment/statefulset. If autoscaling is enabled, this will take precedence over the “Replicas” field. The autoscaling feature must be enabled globally via features.autoscaling. |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for this component. If not set, no startup probe is configured by default. |
Optional: {} |
|
realmManagementApiUrl string |
The URL of the Realm Management API. When set, overrides the default (derived from the Astarte API host). |
Optional: {} |
|
appEngineApiUrl string |
The URL of the AppEngine API. When set, overrides the default. | Optional: {} |
|
pairingApiUrl string |
The URL of the Pairing API. When set, overrides the default. | Optional: {} |
|
flowApiUrl string |
The URL of the Flow API. When set, overrides the default. | Optional: {} |
|
defaultRealm string |
The default realm for the Dashboard. On first access, the Dashboard will pre-select this realm. |
Optional: {} |
|
defaultAuth string |
The default authentication method for the Dashboard. Default: “token”. | Optional: {} |
|
auth
AstarteDashboardConfigAuthSpec array |
Authentication provider configurations available in the Dashboard. If not set, defaults to a single “token” auth provider. |
Optional: {} |
AstarteDataUpdaterPlantSpec #
AstarteDataUpdaterPlantSpec configures the Data Updater Plant (DUP) component, which handles data ingestion from the MQTT broker into the database.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, the component is deployed. When false, the component is removed (if already present) or skipped. All components default to true except Flow, which defaults to false and must be explicitly enabled. |
Optional: {} |
|
replicas integer |
The number of replicas for this component. | Optional: {} |
|
antiAffinity boolean |
When true, pods of this component are spread across nodes using podAntiAffinity. |
Optional: {} |
|
customAffinity
Affinity |
Custom affinity rules for this component. When set, overrides the default antiAffinity configuration entirely. |
Optional: {} |
|
deploymentStrategy
DeploymentStrategy |
The deployment strategy for this specific component. Overrides the global spec.deploymentStrategy. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. |
Optional: {} |
|
version string |
The Astarte version (image tag) for this specific component. Overrides the global spec.version. Useful for pinning a component to a different version during upgrades or debugging. |
Optional: {} |
|
image string |
The full container image reference (registry/name:tag) for this component. When set, overrides both the distributionChannel and version settings for this component. |
Optional: {} |
|
imagePullPolicy
PullPolicy |
The image pull policy for this component. Overrides the global spec.imagePullPolicy. Default: inherits from spec.imagePullPolicy. |
Optional: {} |
|
imagePullSecrets
LocalObjectReference array |
Additional image pull secrets for this component’s pods. These are appended to the global spec.imagePullSecrets. |
Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
additionalEnv
EnvVar array |
Additional environment variables for this Component. These are appended after the operator-managed environment variables and can override them. |
Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
autoscaler
AstarteGenericClusteredResourceAutoscalerSpec |
Autoscaling resources for this deployment/statefulset. If autoscaling is enabled, this will take precedence over the “Replicas” field. The autoscaling feature must be enabled globally via features.autoscaling. |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for this component. If not set, no startup probe is configured by default. |
Optional: {} |
|
dataQueueCount integer |
Controls the number of data queues used by the Data Updater Plant. This corresponds to the AMQP queues from which DUP consumers pull data. Defaults to 128. You should change this only when fine-tuning a custom RabbitMQ setup. |
Optional: {} |
|
prefetchCount integer |
Controls the prefetch count for Data Updater Plant. When fine-tuning Astarte, this parameter can make a difference for what concerns Data Updater Plant ingestion performance. However, it can also degrade performance significantly and/or increase risk of data loss when misconfigured. Configure this value only if you know what you’re doing and you have experience with RabbitMQ. Defaults to 300 |
Optional: {} |
AstarteFDOSpec #
AstarteFDOSpec configures FDO (FIDO Device Onboarding) support in Astarte. Available as an opt-in feature starting from Astarte 1.3. From Astarte 1.4.0 onwards, FDO is mandatory and cannot be disabled.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enable boolean |
When true, enable FDO support. For Astarte < 1.4.0, this is optional. For Astarte >= 1.4.0, FDO is always enabled and this field cannot be set to false (validating webhook enforces this). |
Optional: {} |
|
rendezvousServer
AstarteRendezvousServerSpec |
The FDO Rendezvous Server configuration. Required when FDO is enabled. For Astarte >= 1.4.0, this is always required since FDO cannot be disabled. |
Optional: {} |
AstarteFeatures #
AstarteFeatures enables/disables selectively a set of global, opt-in features in Astarte. All features default to false (disabled) unless explicitly set.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
realmDeletion boolean |
Enable realm deletion support. When enabled, realms can be deleted through the Realm Management API. |
Optional: {} |
|
autoscaling boolean |
Enable horizontal pod autoscaling for Astarte components. When enabled, each component’s autoscaler configuration (if set) will be used to dynamically scale replicas based on resource utilization. Requires a metrics server to be installed in the cluster. |
Optional: {} |
|
astartePodPriorities
AstartePodPrioritiesSpec |
Configure pod priority classes for Astarte components. When enabled, the Operator creates three PriorityClasses (high, mid, low) and assigns them to components based on their priorityClass field. Note that enabling this feature might generate some counter-intuitive scheduling behaviour if not done properly. |
Optional: {} |
AstarteGenericAPIComponentSpec #
AstarteGenericAPIComponentSpec extends the base clustered resource with an option to disable authentication on the component. Used by all Astarte API components (Flow, Housekeeping, RealmManagement, Pairing, AppengineAPI).
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, the component is deployed. When false, the component is removed (if already present) or skipped. All components default to true except Flow, which defaults to false and must be explicitly enabled. |
Optional: {} |
|
replicas integer |
The number of replicas for this component. | Optional: {} |
|
antiAffinity boolean |
When true, pods of this component are spread across nodes using podAntiAffinity. |
Optional: {} |
|
customAffinity
Affinity |
Custom affinity rules for this component. When set, overrides the default antiAffinity configuration entirely. |
Optional: {} |
|
deploymentStrategy
DeploymentStrategy |
The deployment strategy for this specific component. Overrides the global spec.deploymentStrategy. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. |
Optional: {} |
|
version string |
The Astarte version (image tag) for this specific component. Overrides the global spec.version. Useful for pinning a component to a different version during upgrades or debugging. |
Optional: {} |
|
image string |
The full container image reference (registry/name:tag) for this component. When set, overrides both the distributionChannel and version settings for this component. |
Optional: {} |
|
imagePullPolicy
PullPolicy |
The image pull policy for this component. Overrides the global spec.imagePullPolicy. Default: inherits from spec.imagePullPolicy. |
Optional: {} |
|
imagePullSecrets
LocalObjectReference array |
Additional image pull secrets for this component’s pods. These are appended to the global spec.imagePullSecrets. |
Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
additionalEnv
EnvVar array |
Additional environment variables for this Component. These are appended after the operator-managed environment variables and can override them. |
Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
autoscaler
AstarteGenericClusteredResourceAutoscalerSpec |
Autoscaling resources for this deployment/statefulset. If autoscaling is enabled, this will take precedence over the “Replicas” field. The autoscaling feature must be enabled globally via features.autoscaling. |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for this component. If not set, no startup probe is configured by default. |
Optional: {} |
|
disableAuthentication boolean |
When true, disables authentication for this API component. This is useful in development or when an external auth proxy is used. Do not disable authentication in production without an external auth mechanism. |
Optional: {} |
AstarteGenericClusteredResource #
AstarteGenericClusteredResource is a base struct shared by all Astarte components that are deployed as either a Deployment or StatefulSet. It provides common configuration options such as replicas, affinity, probes, resources, and autoscaling that apply uniformly across components.
Appears in:
- AstarteAppengineAPISpec
- AstarteDashboardSpec
- AstarteDataUpdaterPlantSpec
- AstarteGenericAPIComponentSpec
- AstarteTriggerEngineSpec
- AstarteVerneMQSpec
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, the component is deployed. When false, the component is removed (if already present) or skipped. All components default to true except Flow, which defaults to false and must be explicitly enabled. |
Optional: {} |
|
replicas integer |
The number of replicas for this component. | Optional: {} |
|
antiAffinity boolean |
When true, pods of this component are spread across nodes using podAntiAffinity. |
Optional: {} |
|
customAffinity
Affinity |
Custom affinity rules for this component. When set, overrides the default antiAffinity configuration entirely. |
Optional: {} |
|
deploymentStrategy
DeploymentStrategy |
The deployment strategy for this specific component. Overrides the global spec.deploymentStrategy. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. |
Optional: {} |
|
version string |
The Astarte version (image tag) for this specific component. Overrides the global spec.version. Useful for pinning a component to a different version during upgrades or debugging. |
Optional: {} |
|
image string |
The full container image reference (registry/name:tag) for this component. When set, overrides both the distributionChannel and version settings for this component. |
Optional: {} |
|
imagePullPolicy
PullPolicy |
The image pull policy for this component. Overrides the global spec.imagePullPolicy. Default: inherits from spec.imagePullPolicy. |
Optional: {} |
|
imagePullSecrets
LocalObjectReference array |
Additional image pull secrets for this component’s pods. These are appended to the global spec.imagePullSecrets. |
Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
additionalEnv
EnvVar array |
Additional environment variables for this Component. These are appended after the operator-managed environment variables and can override them. |
Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
autoscaler
AstarteGenericClusteredResourceAutoscalerSpec |
Autoscaling resources for this deployment/statefulset. If autoscaling is enabled, this will take precedence over the “Replicas” field. The autoscaling feature must be enabled globally via features.autoscaling. |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for this component. If not set, no startup probe is configured by default. |
Optional: {} |
AstarteGenericClusteredResourceAutoscalerSpec #
AstarteGenericClusteredResourceAutoscalerSpec configures autoscaling for an Astarte component. Currently only horizontal autoscaling is supported.
Appears in:
- AstarteAppengineAPISpec
- AstarteDashboardSpec
- AstarteDataUpdaterPlantSpec
- AstarteGenericAPIComponentSpec
- AstarteGenericClusteredResource
- AstarteTriggerEngineSpec
- AstarteVerneMQSpec
| Field | Description | Default | Validation |
|---|---|---|---|
horizontal string |
Name of the HorizontalPodAutoscaler for this deployment/statefulset. This will take precedence over the “Replicas” field of the parent Astarte component. The HPA resource must exist in the same namespace as Astarte and the features.autoscaling flag must be enabled. |
Optional: {} |
AstarteList #
AstarteList contains a list of Astarte
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
api.astarte-platform.org/v2alpha1 |
||
kind string |
AstarteList |
||
metadata
ListMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
items
Astarte array |
AstartePersistentStorageSpec #
AstartePersistentStorageSpec configures persistent storage for Astarte components that require it (VerneMQ, CFSSL).
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
size
Quantity |
The size of the persistent volume. When not set, the Operator uses a sensible default size. |
Optional: {} |
|
className string |
The storage class name for the persistent volume. When not set, the global spec.storageClassName is used as fallback. |
Optional: {} |
|
volumeDefinition
Volume |
A complete volume definition that replaces the Operator-managed persistent volume claim. Use this to reference an externally-managed volume. When set, size and className are ignored. |
Optional: {} |
AstartePodPrioritiesSpec #
AstartePodPriorities allows to set different priorityClasses for Astarte pods. Note that enabling this feature might generate some counter-intuitive scheduling beahaviour if not done properly.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enable boolean |
Optional: {} |
||
astarteHighPriority integer |
The value of the highest PriorityClass for Astarte pods. Once the value is set, updating it will not have effect. |
1000 | Minimum: 0 Optional: {} |
astarteMidPriority integer |
The value of the medium PriorityClass for Astarte pods. Once the value is set, updating it will not have effect. |
100 | Minimum: 0 Optional: {} |
astarteLowPriority integer |
The value of the least PriorityClass for Astarte pods. Once the value is set, updating it will not have effect. |
10 | Minimum: 0 Optional: {} |
AstarteRabbitMQBaseConnectionSpec #
AstarteRabbitMQBaseConnectionSpec defines the host, port, credentials, and SSL settings for connecting to a RabbitMQ endpoint (AMQP or Management API).
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string |
The hostname or IP address of the service. | MinLength: 1 Required: {} |
|
port integer |
The port number the service listens on. | Maximum: 65535 Minimum: 1 Required: {} |
|
sslConfiguration
GenericSSLConfigurationSpec |
SSL configuration for the connection. | Optional: {} |
|
credentialsSecret
LoginCredentialsSecret |
The secret containing Username and Password to login. Either this field or connectionStringSecret must be set. |
Optional: {} |
|
connectionStringSecret
ConnectionStringSecret |
The secret containing a connection string to the service. Either this field or credentialsSecret must be set.put as-is in the env. Therefore, setting this field is a no-op. Not using credentialsSecret WILL break your Astarte instance. |
Optional: {} |
AstarteRabbitMQConnectionSpec #
AstarteRabbitMQConnectionSpec extends the base RabbitMQ connection with an optional virtual host for the AMQP connection.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string |
The hostname or IP address of the service. | MinLength: 1 Required: {} |
|
port integer |
The port number the service listens on. | Maximum: 65535 Minimum: 1 Required: {} |
|
sslConfiguration
GenericSSLConfigurationSpec |
SSL configuration for the connection. | Optional: {} |
|
credentialsSecret
LoginCredentialsSecret |
The secret containing Username and Password to login. Either this field or connectionStringSecret must be set. |
Optional: {} |
|
connectionStringSecret
ConnectionStringSecret |
The secret containing a connection string to the service. Either this field or credentialsSecret must be set.put as-is in the env. Therefore, setting this field is a no-op. Not using credentialsSecret WILL break your Astarte instance. |
Optional: {} |
|
virtualHost string |
The virtual host for the RabbitMQ AMQP connection. Default: “/”. | Optional: {} |
AstarteRabbitMQSpec #
AstarteRabbitMQSpec defines the RabbitMQ configuration for Astarte. Both the AMQP connection and the Management API connection are required.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
connection
AstarteRabbitMQConnectionSpec |
RabbitMQ AMQP connection details. Required. | Required: {} |
|
managementConnection
AstarteRabbitMQBaseConnectionSpec |
RabbitMQ management APIs connection details. Required. | Required: {} |
|
dataQueuesPrefix string |
Configures the data queues prefix on RabbitMQ. You should change this setting only in custom RabbitMQ installations. |
Optional: {} |
|
eventsExchangeName string |
Configures the events exchange name on RabbitMQ. You should change this setting only in custom RabbitMQ installations. |
Optional: {} |
AstarteRendezvousServerConnectionSpec #
AstarteRendezvousServerConnectionSpec defines the connection to an FDO Rendezvous Server.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string |
The hostname or IP address of the service. | MinLength: 1 Required: {} |
|
port integer |
The port number the service listens on. | Maximum: 65535 Minimum: 1 Required: {} |
|
sslConfiguration
GenericSSLConfigurationSpec |
SSL configuration for the Rendezvous Server connection. | Optional: {} |
AstarteRendezvousServerSpec #
AstarteRendezvousServerSpec configures the FDO Rendezvous Server connection.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
connection
AstarteRendezvousServerConnectionSpec |
The Rendezvous Server connection details. | Optional: {} |
AstarteSpec #
AstarteSpec defines the desired state of Astarte
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
version string |
The Astarte version for this Resource. This field is required and must be a valid semver string (e.g. “1.3.0” or “1.4.1”). The Operator uses this version to determine which images to pull and what features to enable. |
||
features
AstarteFeatures |
Features allows enabling or disabling a set of global, opt-in Astarte features. | Optional: {} |
|
imagePullPolicy
PullPolicy |
The default image pull policy for all Astarte services. Can be overridden per-component by setting the component’s imagePullPolicy field. Default: “IfNotPresent”. |
IfNotPresent | Optional: {} |
imagePullSecrets
LocalObjectReference array |
Image pull secrets that will be added to all Astarte pods. Each component can add additional secrets through its own imagePullSecrets field. |
Optional: {} |
|
distributionChannel string |
The distribution channel (container registry prefix) for Astarte images. This setting can be overridden by explicitly setting the ‘image’ value for each service. Defaults to “astarte”. |
astarte | Optional: {} |
deploymentStrategy
DeploymentStrategy |
The global default deployment strategy for Astarte components. Can be overridden per-component by setting the component’s deploymentStrategy field. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. When left unset, defaults to RollingUpdate. |
Optional: {} |
|
storageClassName string |
The default storage class name for persistent storage claims. When a component requires a persistent volume and does not specify its own className, this value is used as a fallback. |
Optional: {} |
|
api
AstarteAPISpec |
API defines the external API host and SSL configuration for Astarte services. The Host field is required. |
||
rabbitmq
AstarteRabbitMQSpec |
RabbitMQ connection and management configuration for the Astarte message broker. | Optional: {} |
|
cassandra
AstarteCassandraSpec |
Cassandra/ScyllaDB connection configuration for the Astarte database. The connection and astarteSystemKeyspace fields are required. |
Optional: {} |
|
vernemq
AstarteVerneMQSpec |
VerneMQ broker configuration including networking, storage, and device heartbeat settings. | ||
vault
AstarteVaultSpec |
Vault is used to connect to a OpenBao or HashiCorp Vault instance. Setting this field is supported and mandatory for Astarte version 1.4 and later. The field is ignored for Astarte 1.3. |
Optional: {} |
|
fdo
AstarteFDOSpec |
FDO (FIDO Device Onboarding) configuration. Available as an opt-in feature starting from Astarte 1.3. From Astarte 1.4.0 onwards, FDO is mandatory and cannot be disabled. |
Optional: {} |
|
cfssl
AstarteCFSSLSpec |
CFSSL (Cloudflare’s PKI/TLS toolkit) configuration. CFSSL is an internal certificate authority used by Astarte for mutual TLS. By default, CFSSL is deployed automatically (deploy=true). |
Optional: {} |
|
components
AstarteComponentsSpec |
Components configures the individual Astarte services (Flow, Housekeeping, RealmManagement, Pairing, DataUpdaterPlant, AppengineAPI, TriggerEngine, Dashboard). Each component can override its image, resources, replicas, and other settings. |
Optional: {} |
|
astarteInstanceID string |
AstarteInstanceID is the unique ID that is associated with an Astarte instance. This parameter is used to let different Astarte instances employ a shared database infrastructure. Once set, the AstarteInstanceID cannot be changed. Defaults to “”. |
Optional: {} Pattern: ^[a-z]?[a-z0-9]\{0,47\}$ |
|
manualMaintenanceMode boolean |
ManualMaintenanceMode pauses all reconciliation activities but still computes the resource status. It should be used only when the managed Astarte resources requires manual intervention and the Operator cannot break out of the problem by itself. Do not set this field unless you know exactly what you are doing. |
false | Optional: {} |
AstarteStatus #
AstarteStatus defines the observed state of Astarte. The Operator updates this subresource as it reconciles the CR, providing visibility into the current reconciliation phase, cluster health, and connection endpoints.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
phase
ReconciliationPhase |
The current reconciliation phase of the Astarte resource. | ||
astarteVersion string |
The Astarte version currently deployed. | ||
operatorVersion string |
The version of the Astarte Operator managing this resource. | ||
health
AstarteClusterHealth |
The overall health status of the Astarte cluster (red, yellow, or green). | ||
baseAPIURL string |
The base URL for Astarte API endpoints (derived from spec.api.host and SSL setting). | ||
brokerURL string |
The broker URL for MQTT connections (derived from spec.vernemq.host and port). |
AstarteSystemKeyspaceSpec #
AstarteSystemKeyspaceSpec configures the ScyllaDB/Cassandra keyspace for Astarte.
By configuring these fields, you control the replication strategy, replication factor, and (for multi-datacenter deployments) the replica distribution per datacenter. These settings take effect only upon keyspace creation.
Fields:
- ReplicationStrategy chooses the replication strategy for the keyspace.
- ReplicationFactor (for SimpleStrategy or for default replication factor with NetworkTopologyStrategy).
- DataCenterReplication (for flexible NetworkTopologyStrategy configurations).
These fields must be set at the first apply of the CR and cannot be changed later on, for this reason no default is provided: the user shall make a conscious choice.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
replicationStrategy string |
ReplicationStrategy specifies the Cassandra/ScyllaDB replication strategy for the keyspace. Must be either “SimpleStrategy” or “NetworkTopologyStrategy” (for production deployments and/or multi-datacenter deployments). |
Enum: [SimpleStrategy NetworkTopologyStrategy] Required: {} |
|
replicationFactor integer |
ReplicationFactor sets the total number of replicas for the keyspace when using SimpleStrategy. Must be at least 1. Must be odd. Defaults to 1. Shall be set if and only if replicationStrategy is SimpleStrategy (checked with Admission Webhooks). This field is ignored if ReplicationStrategy is set to NetworkTopologyStrategy. |
Minimum: 1 Optional: {} |
|
dataCenterReplication string |
DataCenterReplication specifies custom replication factors per datacenter when using NetworkTopologyStrategy. If set, this string must be a comma-separated list of (e.g., “dc1:3,dc2:5”). Shall be set if and only if replicationStrategy is NetworkTopologyStrategy (checked with Admission Webhooks) This field is ignored if ReplicationStrategy is set to SimpleStrategy. |
Optional: {} |
AstarteTriggerEngineSpec #
AstarteTriggerEngineSpec configures the Trigger Engine component, which processes Astarte triggers (user-defined rules) and dispatches events.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, the component is deployed. When false, the component is removed (if already present) or skipped. All components default to true except Flow, which defaults to false and must be explicitly enabled. |
Optional: {} |
|
replicas integer |
The number of replicas for this component. | Optional: {} |
|
antiAffinity boolean |
When true, pods of this component are spread across nodes using podAntiAffinity. |
Optional: {} |
|
customAffinity
Affinity |
Custom affinity rules for this component. When set, overrides the default antiAffinity configuration entirely. |
Optional: {} |
|
deploymentStrategy
DeploymentStrategy |
The deployment strategy for this specific component. Overrides the global spec.deploymentStrategy. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. |
Optional: {} |
|
version string |
The Astarte version (image tag) for this specific component. Overrides the global spec.version. Useful for pinning a component to a different version during upgrades or debugging. |
Optional: {} |
|
image string |
The full container image reference (registry/name:tag) for this component. When set, overrides both the distributionChannel and version settings for this component. |
Optional: {} |
|
imagePullPolicy
PullPolicy |
The image pull policy for this component. Overrides the global spec.imagePullPolicy. Default: inherits from spec.imagePullPolicy. |
Optional: {} |
|
imagePullSecrets
LocalObjectReference array |
Additional image pull secrets for this component’s pods. These are appended to the global spec.imagePullSecrets. |
Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
additionalEnv
EnvVar array |
Additional environment variables for this Component. These are appended after the operator-managed environment variables and can override them. |
Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
autoscaler
AstarteGenericClusteredResourceAutoscalerSpec |
Autoscaling resources for this deployment/statefulset. If autoscaling is enabled, this will take precedence over the “Replicas” field. The autoscaling feature must be enabled globally via features.autoscaling. |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for this component. If not set, no startup probe is configured by default. |
Optional: {} |
|
eventsQueueName string |
Configures the name of the Events queue. Should be configured only in installations with a highly customized RabbitMQ. It is advised to leave empty unless you know exactly what you’re doing. |
Optional: {} |
|
eventsRoutingKey string |
Configures the routing key for Trigger Events. Should be configured only in installations with a highly customized RabbitMQ and a custom Trigger Engine setup. It is advised to leave empty unless you know exactly what you’re doing, misconfiguring this value can cause heavy breakage within Trigger Engine. |
Optional: {} |
AstarteVaultConnectionSpec #
AstarteVaultConnectionSpec defines the connection to an OpenBao or HashiCorp Vault instance.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string |
The hostname or IP address of the service. | MinLength: 1 Required: {} |
|
port integer |
The port number the service listens on. | Maximum: 65535 Minimum: 1 Required: {} |
|
sslConfiguration
GenericSSLConfigurationSpec |
SSL configuration for the Vault connection. | Optional: {} |
|
connectionStringSecret
ConnectionStringSecret |
The secret containing a token to login. The Secret must be in the same namespace as the Astarte resource. |
Optional: {} |
AstarteVaultSpec #
AstarteVaultSpec configures the OpenBao/HashiCorp Vault integration. Required for Astarte >= 1.4.0. Ignored for Astarte 1.3.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
connection
AstarteVaultConnectionSpec |
The Vault connection details. | Optional: {} |
|
baseNamespace string |
Base vault namespace prefix under which Astarte will create further sub-namespaces | Optional: {} |
AstarteVerneMQSpec #
AstarteVerneMQSpec configures the VerneMQ MQTT broker component.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, the component is deployed. When false, the component is removed (if already present) or skipped. All components default to true except Flow, which defaults to false and must be explicitly enabled. |
Optional: {} |
|
replicas integer |
The number of replicas for this component. | Optional: {} |
|
antiAffinity boolean |
When true, pods of this component are spread across nodes using podAntiAffinity. |
Optional: {} |
|
customAffinity
Affinity |
Custom affinity rules for this component. When set, overrides the default antiAffinity configuration entirely. |
Optional: {} |
|
deploymentStrategy
DeploymentStrategy |
The deployment strategy for this specific component. Overrides the global spec.deploymentStrategy. Note that DataUpdaterPlant, TriggerEngine, and Flow always use Recreate regardless of this setting. |
Optional: {} |
|
version string |
The Astarte version (image tag) for this specific component. Overrides the global spec.version. Useful for pinning a component to a different version during upgrades or debugging. |
Optional: {} |
|
image string |
The full container image reference (registry/name:tag) for this component. When set, overrides both the distributionChannel and version settings for this component. |
Optional: {} |
|
imagePullPolicy
PullPolicy |
The image pull policy for this component. Overrides the global spec.imagePullPolicy. Default: inherits from spec.imagePullPolicy. |
Optional: {} |
|
imagePullSecrets
LocalObjectReference array |
Additional image pull secrets for this component’s pods. These are appended to the global spec.imagePullSecrets. |
Optional: {} |
|
resources
ResourceRequirements |
Compute Resources for this Component. | Optional: {} |
|
additionalEnv
EnvVar array |
Additional environment variables for this Component. These are appended after the operator-managed environment variables and can override them. |
Optional: {} |
|
podLabels object (keys:string, values:string) |
Additional labels for this Component’s pod(s). Label keys can’t be of the form “app”, “component”, “astarte-”, “flow-” |
Optional: {} |
|
autoscaler
AstarteGenericClusteredResourceAutoscalerSpec |
Autoscaling resources for this deployment/statefulset. If autoscaling is enabled, this will take precedence over the “Replicas” field. The autoscaling feature must be enabled globally via features.autoscaling. |
Optional: {} |
|
priorityClass string |
The PriorityClass for this component. Must be one of “high”, “mid”, “low” or unspecified. Ignored if astartePodPriorities is not enabled. |
Enum: [high mid low ] Optional: {} |
|
livenessProbe
Probe |
Override the default Liveness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
readinessProbe
Probe |
Override the default Readiness probe for this component. If not set, a default HTTP GET probe is configured to check the /health endpoint on the http port. Default settings: InitialDelaySeconds=10, TimeoutSeconds=5, PeriodSeconds=30, FailureThreshold=5 (15 for Housekeeping). Note: VerneMQ uses different defaults: /metrics endpoint on port 8888, InitialDelaySeconds=60, PeriodSeconds=20, FailureThreshold=3. |
Optional: {} |
|
startupProbe
Probe |
Override the default Startup probe for this component. If not set, no startup probe is configured by default. |
Optional: {} |
|
host string |
The hostname or IP address of the service. | MinLength: 1 Required: {} |
|
port integer |
The port number the service listens on. | Maximum: 65535 Minimum: 1 Required: {} |
|
caSecret string |
The name of a Kubernetes Secret containing the CA certificate for VerneMQ internal TLS communication (for Astarte >= 1.2). The Secret must be in the same namespace as the Astarte resource. |
Optional: {} |
|
storage
AstartePersistentStorageSpec |
Persistent storage configuration for VerneMQ. If not set, the default storage size and class (from spec.storageClassName) are used. |
Optional: {} |
|
deviceHeartbeatSeconds integer |
Controls the device heartbeat from the broker to Astarte. The heartbeat is sent periodically to prevent Astarte from keeping up stale connections from Devices in case the broker misbehaves and does not send disconnection events. You should usually not tweak this value. Moreover, keep in mind that when a lot of devices are connected simultaneously, having a short heartbeat time might cause performance issues. When not set, no heartbeat env var is passed and the VerneMQ container default (1 hour) is used. |
Optional: {} |
|
maxOfflineMessages integer |
The maximum number of QoS 1 or 2 messages to hold in the offline queue. Defaults to 1000000. Set to -1 for no maximum (not recommended). Set to 0 if no messages should be stored offline. |
Optional: {} |
|
persistentClientExpiration string |
This option allows persistent clients ( = clean session set to false) to be removed if they do not reconnect within ‘persistent_client_expiration’. This is a non-standard option. As far as the MQTT specification is concerned, persistent clients persist forever. The expiration period should be an integer followed by one of ’d’, ‘w’, ’m’, ‘y’ for day, week, month, and year. Default: 1 year |
Optional: {} |
|
mirrorQueue string |
Configures the mirror queue for VerneMQ. When set, all MQTT messages are forwarded to the specified queue for audit/logging purposes. Leave empty unless you have a specific mirror queue setup. |
Optional: {} |
|
sslListener boolean |
This option allows, when true, to handle SSL termination at VerneMQ level. Default: false |
Optional: {} |
|
sslListenerCertSecretName string |
Reference the name of the secret containing the TLS certificate for VerneMQ. The secret must be present in the same namespace in which Astarte resides. The field will be used only if SSLListener is set to true. |
Optional: {} |
ConnectionStringSecret #
ConnectionStringSecret references a Kubernetes Secret containing a connection string (e.g. a full URL or DSN) for an external service.
Appears in:
- AstarteCassandraConnectionSpec
- AstarteRabbitMQBaseConnectionSpec
- AstarteRabbitMQConnectionSpec
- AstarteVaultConnectionSpec
- GenericConnectionSpec
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
The name of the Kubernetes Secret. | MinLength: 1 |
|
key string |
The key within the Secret that holds the connection string. | MinLength: 1 |
GenericConnectionSpec #
GenericConnectionSpec holds common connection configuration for external services (Cassandra, RabbitMQ, Vault). It supports either username/password credentials or a raw connection string.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
sslConfiguration
GenericSSLConfigurationSpec |
SSL configuration for the connection. | Optional: {} |
|
credentialsSecret
LoginCredentialsSecret |
The secret containing Username and Password to login. Either this field or connectionStringSecret must be set. |
Optional: {} |
|
connectionStringSecret
ConnectionStringSecret |
The secret containing a connection string to the service. Either this field or credentialsSecret must be set.put as-is in the env. Therefore, setting this field is a no-op. Not using credentialsSecret WILL break your Astarte instance. |
Optional: {} |
GenericSSLConfigurationSpec #
GenericSSLConfigurationSpec configures SSL/TLS for connections to external services.
Appears in:
- AstarteCassandraConnectionSpec
- AstarteRabbitMQBaseConnectionSpec
- AstarteRabbitMQConnectionSpec
- AstarteRendezvousServerConnectionSpec
- AstarteVaultConnectionSpec
- GenericConnectionSpec
| Field | Description | Default | Validation |
|---|---|---|---|
enable boolean |
When true, enable SSL for the connection. Default: false. | Optional: {} |
|
customCASecret
LocalObjectReference |
A reference to a Kubernetes Secret containing a custom CA certificate to validate the server’s TLS certificate. The Secret must be in the same namespace as the Astarte resource. |
Optional: {} |
|
sni boolean |
When false, disable SNI (Server Name Indication) for the connection. Default: true (SNI is enabled). |
Optional: {} |
|
customSNI string |
A custom SNI hostname to use for the connection. When set, overrides the default hostname-based SNI. |
Optional: {} |
HostAndPort #
HostAndPort represents a network endpoint with a hostname and port.
Appears in:
- AstarteCassandraConnectionSpec
- AstarteRabbitMQBaseConnectionSpec
- AstarteRabbitMQConnectionSpec
- AstarteRendezvousServerConnectionSpec
- AstarteVaultConnectionSpec
- AstarteVerneMQSpec
| Field | Description | Default | Validation |
|---|---|---|---|
host string |
The hostname or IP address of the service. | MinLength: 1 Required: {} |
|
port integer |
The port number the service listens on. | Maximum: 65535 Minimum: 1 Required: {} |
LoginCredentialsSecret #
LoginCredentialsSecret references a Kubernetes Secret containing login credentials (username and password) for connecting to an external service.
Appears in:
- AstarteCassandraConnectionSpec
- AstarteRabbitMQBaseConnectionSpec
- AstarteRabbitMQConnectionSpec
- GenericConnectionSpec
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
The name of the Kubernetes Secret. | MinLength: 1 |
|
usernameKey string |
The key within the Secret that holds the username. | MinLength: 1 |
|
passwordKey string |
The key within the Secret that holds the password. | MinLength: 1 |
ReconciliationPhase #
Underlying type: string
ReconciliationPhase describes the reconciliation phase the Resource is in
Appears in:
| Field | Description |
|---|---|
| `` | ReconciliationPhaseUnknown represents an Unknown Phase of the Resource. When in this state, it might have never been reconciled |
Reconciling |
ReconciliationPhaseReconciling means the Resource is currently in the process of being reconciled |
Upgrading |
ReconciliationPhaseUpgrading means the Resource is currently in the process of being upgraded to a new Astarte version. When successful, the Resource will transition to ReconciliationPhaseReconciling |
Reconciled |
ReconciliationPhaseReconciled means the Resource is currently reconciled and stable. The resource should stay in this state for most of the time. |
Disabled, in Manual Maintenance Mode |
ReconciliationPhaseManualMaintenanceMode means the Resource is currently not being reconciled as the resource is in Manual Maintenance Mode. This happens only when the user explicitly requires that. |
Failed |
ReconciliationPhaseFailed means the Resource failed to reconcile. If this state persists, a manual intervention might be necessary. |
flow.astarte-platform.org/v2alpha1 #
Package v2alpha1 contains API Schema definitions for the flow v2alpha1 API group
Resource Types #
BlockWorker #
BlockWorker defines a Worker for a Container Block
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
id string |
|||
dataProvider
DataProvider |
ContainerBlockSpec #
ContainerBlockSpec defines a Container Block in a Flow
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
id string |
|||
image string |
|||
imagePullSecrets
LocalObjectReference array |
Optional: {} |
||
environment
EnvVar array |
Optional: {} |
||
resources
ResourceRequirements |
Optional: {} |
||
config string |
Configuration represents the JSON string carrying the user configuration for this block | ||
workers
BlockWorker array |
MinItems: 1 |
DataProvider #
DataProvider is a struct which defines which Data Providers (e.g. Brokers) are available for a Worker
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
rabbitmq
RabbitMQDataProvider |
Optional: {} |
Flow #
Flow is the Schema for the flows API
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
flow.astarte-platform.org/v2alpha1 |
||
kind string |
Flow |
||
metadata
ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec
FlowSpec |
|||
status
FlowStatus |
FlowList #
FlowList contains a list of Flow
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
flow.astarte-platform.org/v2alpha1 |
||
kind string |
FlowList |
||
metadata
ListMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
items
Flow array |
FlowSpec #
FlowSpec defines the desired state of Flow
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
astarte
LocalObjectReference |
|||
astarteRealm string |
|||
nativeBlocks integer |
Defines the amount of non-container blocks in the Flow | ||
nativeBlocksResources
ResourceList |
Defines the overall resources consumed by Native Blocks | ||
flowPool
LocalObjectReference |
EE Only: Defines the Flow Pool in which the Flow will be allocated. | ||
blocks
ContainerBlockSpec array |
FlowState #
Underlying type: string
FlowState describes the global state of a Flow
Appears in:
| Field | Description |
|---|---|
| `` | FlowStateUnknown represents an Unknown State of the Flow. When in this state, it might have never been reconciled. |
Unstable |
FlowStateUnstable means the Flow is either reconciling or restarting some of its blocks. It usually transitions to this State before moving to Flowing. |
Unhealthy |
FlowStateUnhealthy means the Flow is currently having some non-transient or unrecoverable errors. Manual intervention might be required. |
Flowing |
FlowStateFlowing means the Flow is currently active and all of its blocks are stable. A healthy flow should stay in this state for most of its lifecycle. |
FlowStatus #
FlowStatus defines the observed state of Flow
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
state
FlowState |
State defines the overall state of the Flow | ||
totalContainerBlocks integer |
Represents the total number of the Container Blocks in the Flow | ||
readyContainerBlocks integer |
Represents the total number of Ready Container Blocks in the Flow. In a healthy Flow, this matches the number of Total Container Blocks. |
||
resources
ResourceList |
The overall resources allocated in the cluster for this Block | ||
failingContainerBlocks integer |
Represents the total number of Container Blocks with non temporary failures. Present only if any of the Blocks is in such state. When present, manual intervention is most likely required. |
Optional: {} |
|
unrecoverableFailures
ContainerState array |
UnrecoverableFailures lists all the ContainerStates of failing containers, for further inspection. | Optional: {} |
RabbitMQConfig #
RabbitMQConfig represents configuration for RabbitMQ
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string |
|||
port integer |
Maximum: 65535 Minimum: 1 Optional: {} |
||
ssl boolean |
Optional: {} |
||
username string |
|||
password string |
RabbitMQDataProvider #
RabbitMQDataProvider is a representation of a Data Provider based upon RabbitMQ
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
queues string array |
Optional: {} |
||
exchange
RabbitMQExchange |
Optional: {} |
||
rabbitmq
RabbitMQConfig |
RabbitMQConfig is an optional field which allows to specify configuration for an external RabbitMQ broker. If not specified, Astarte’s main Broker will be used. |
Optional: {} |
RabbitMQExchange #
RabbitMQExchange is a representation of a RabbitMQ Exchange
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
|||
routingKey string |
ingress.astarte-platform.org/v2alpha1 #
Package v2alpha1 contains API Schema definitions for the ingress v2alpha1 API group
Resource Types #
AstarteDefaultIngress #
AstarteDefaultIngress is the Schema for the astartedefaultingresses API
Custom ADI annotations
Custom Content-Security-Policy
- Annotation:
ingress.astarte-platform.org/content-security-policy - Values:
string(valid Content-Security-Policy header value) - Description: This annotation allows you to specify a custom Content Security Policy for the Astarte Operator’s ingress. If this annotation is set, it wil override the default Content Security Policy defined by the Astarte Operator and any value set in the
custom-frame-ancestorsannotation.
Custom frame-ancestors
- Annotation:
ingress.astarte-platform.org/frame-ancestors - Values:
string(valid frame-ancestors directive value) - Description: This annotation allows you to specify custom frame ancestors for the Astarte Operator’s ingress. If not set, the default value is
frame-ancestors 'self'.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
ingress.astarte-platform.org/v2alpha1 |
||
kind string |
AstarteDefaultIngress |
||
metadata
ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec
AstarteDefaultIngressSpec |
|||
status
AstarteDefaultIngressStatus |
AstarteDefaultIngressAPISpec #
AstarteDefaultIngressAPISpec defines how the Astarte APIs are served.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, deploy the API ingress. | ||
tlsSecret string |
The secret containing the TLS certificates and keys used to access the Astarte API. The secret must be present in the namespace in which Astarte resides. If set, this secret overrides the TLSSecret field contained in AstarteDefaultIngressSpec. |
||
cors boolean |
When true, enable Cross-Origin Resource Sharing (CORS). Default: false. | ||
exposeHousekeeping boolean |
When true, the housekeeping endpoint is publicly exposed. Default: true. |
AstarteDefaultIngressBrokerSpec #
AstarteDefaultIngressBrokerSpec defines how the Astarte Broker is served.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, expose the Broker. | ||
serviceType
ServiceType |
Set the type of service employed to expose the broker. Supported values are “NodePort” and “LoadBalancer”. The AstarteDefaultIngress handles TLS termination at VerneMQ level and, as such, no TLSSecret is needed to configure the broker service. Default: “LoadBalancer” kubebuilder:validation:Enum:=LoadBalancer,NodePort kubebuilder:validation:Default:=LoadBalancer |
||
loadBalancerIP string |
Set the LoadBalancerIP if and only if the broker service is of type “LoadBalancer”. This feature depends on whether the cloud provider supports specifying the LoadBalancerIP when a load balancer is created. |
||
serviceAnnotations object (keys:string, values:string) |
Additional annotations for the service exposing this broker. |
AstarteDefaultIngressDashboardSpec #
AstarteDefaultIngressDashboardSpec defines how the Astarte Dashboard is served.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deploy boolean |
When true, deploy the Ingress for the Dashboard. | ||
ssl boolean |
When true, enable TLS authentication for the Dashboard. | ||
host string |
The host handling requests addressed to the dashboard. When deploy is true and host is not set, the dashboard will be exposed at the following URL: https:// |
||
tlsSecret string |
The secret containing the TLS certificates and keys used to access the Astarte Dashboard. The secret must be present in the namespace in which Astarte resides. If set, this secret overrides the TLSSecret field contained in AstarteDefaultIngressSpec. |
AstarteDefaultIngressList #
AstarteDefaultIngressList contains a list of AstarteDefaultIngress
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
ingress.astarte-platform.org/v2alpha1 |
||
kind string |
AstarteDefaultIngressList |
||
metadata
ListMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
items
AstarteDefaultIngress array |
AstarteDefaultIngressSpec #
AstarteDefaultIngressSpec defines the desired state of AstarteDefaultIngress
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
astarte string |
The name of the Astarte instance served by the AstarteDefaultIngress. | ||
ingressClass string |
In clusters with more than one ingress controllers, all instances of the controllers must be aware of which Ingress object they must serve. The ingressClass field of a ingress object is the way to let the controller know about that. If empty, admission webhooks set default IngressClass based on Ingress Controller selection defined in the annotation ingress.astarte-platform.org/ingress-controller-selector.If the annotation is not set, HAProxy Ingress Controller is assumed by default. |
||
api
AstarteDefaultIngressAPISpec |
Define the desired state of the AstarteDefaultIngressAPISpec resource. | ||
dashboard
AstarteDefaultIngressDashboardSpec |
Define the desired state of the AstarteDefaultIngressDashboardSpec resource. | ||
broker
AstarteDefaultIngressBrokerSpec |
Define the desired state of the AstarteDefaultIngressBrokerSpec resource. | ||
tlsSecret string |
The secret containing the TLS certificates and keys used to connect to Astarte. The secret must be present in the namespace in which Astarte resides and it will be used to authenticate requests for API and Dashboard. If specific configurations are required, the TLSSecret can be overridden by setting the secret in any of AstarteDefaultIngressAPISpec and AstarteDefaultIngressDashboardSpec. |
AstarteDefaultIngressStatus #
AstarteDefaultIngressStatus defines the observed state of AstarteDefaultIngress
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
api
IngressStatus |
|||
broker
ServiceStatus |
AstarteFDOIngress #
AstarteFDOIngress is the Schema for the astartefdoingresses API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
ingress.astarte-platform.org/v2alpha1 |
||
kind string |
AstarteFDOIngress |
||
metadata
ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
spec
AstarteFDOIngressSpec |
|||
status
AstarteFDOIngressStatus |
AstarteFDOIngressList #
AstarteFDOIngressList contains a list of AstarteFDOIngress.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
ingress.astarte-platform.org/v2alpha1 |
||
kind string |
AstarteFDOIngressList |
||
metadata
ListMeta |
Refer to Kubernetes API documentation for fields of metadata. |
||
items
AstarteFDOIngress array |
AstarteFDOIngressSpec #
AstarteFDOIngressSpec defines the desired state of AstarteFDOIngress.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
astarte string |
The name of the Astarte instance for which the FDO Ingress is being created. | ||
ingressClass string |
In clusters with more than one ingress controllers, all instances of the controllers must be aware of which Ingress object they must serve. The ingressClass field of a ingress object is the way to let the controller know about that. If the annotation is not set, HAProxy Ingress Controller is assumed by default. |
haproxy | |
tlsSecret string |
The secret containing the TLS certificates and keys used to connect to Astarte FDO Ingress. The secret must be present in the namespace in which Astarte resides and it will be used to authenticate requests to Astarte Pairing using FDO. |
AstarteFDOIngressStatus #
AstarteFDOIngressStatus defines the observed state of AstarteFDOIngress.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
loadBalancer
IngressLoadBalancerStatus |
loadBalancer contains the current status of the load-balancer. |