Aruba Components
Reference for every Aruba Cloud offer in the Fractal Cloud catalogue. Each offer lists its parameters, required flags, and a fully-parameterized JSON example.
APIManagement
APIManagement.CaaS.ArubaAPIGateway
This offer exists so the catalogue can resolve the abstract APIManagement.CaaS.APIGateway service type to an Aruba-provided offer for listing purposes. The agent handler provisions nothing: selecting it in a Live System fails fast with an explicit error rather than appearing to succeed. Use a self-hosted gateway (APIManagement.CaaS.Ambassador, APIManagement.CaaS.Traefik) on the Aruba Kubernetes cluster until this is implemented.
Satisfies the APIManagement.CaaS.APIGateway service type. Depends on the Aruba Kubernetes offer.
No configurable parameters.
CustomWorkloads
CustomWorkloads.CaaS.ArubaWorkload
This offer exists so the catalogue can resolve the abstract CustomWorkloads.CaaS.Workload service type to an Aruba-provided offer for listing purposes. The agent handler provisions nothing: selecting it in a Live System fails fast with an explicit error rather than appearing to succeed. Use CustomWorkloads.CaaS.KubernetesWorkload on the Aruba Kubernetes cluster until this is implemented.
Satisfies the CustomWorkloads.CaaS.Workload service type. Depends on the Aruba Kubernetes offer.
No configurable parameters.
BigData
BigData.PaaS.SparkPlatform
A Fractal-managed Spark platform that satisfies the abstract distributed-data-processing blueprint by installing the kubeflow spark-operator Helm release onto the first Aruba KaaS cluster discovered in the LiveSystem. Aruba has no native managed Spark, so this offer runs the operator on Kubernetes.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
namespace | Kubernetes namespace where the Spark Operator is installed | spark-operator | No |
webhookEnabled | Enable the Spark Operator's mutating/validating webhook | true | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.SparkPlatform",
"parameters": {
"namespace": "spark-operator",
"webhookEnabled": true
}
}
BigData.PaaS.SparkPlatformCluster
Registers a Spark cluster spec (driver/executor sizing and base image) that downstream Spark jobs consume when they materialize a SparkApplication CR. The cluster itself does not create a long-running Kubernetes resource — the spec is purely metadata for jobs.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
driverCores | CPU cores for the Spark driver pod | 1 | No |
driverMemory | Memory for the Spark driver pod | 1g | No |
executorCores | CPU cores per executor pod | 1 | No |
executorMemory | Memory per executor pod | 1g | No |
executorInstances | Number of executor pods | 2 | No |
image | Container image URI for Spark pods | apache/spark:3.5.0 | No |
namespace | Kubernetes namespace where Spark jobs run | spark | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.SparkPlatformCluster",
"parameters": {
"driverCores": "1",
"driverMemory": "1g",
"executorCores": "1",
"executorMemory": "1g",
"executorInstances": 2,
"image": "apache/spark:3.5.0",
"namespace": "spark"
}
}
BigData.PaaS.SparkPlatformJob
Applies a ScheduledSparkApplication (when a cron schedule is set) or a one-shot SparkApplication CR to the Spark platform. Inherits driver/executor sizing from the linked Spark cluster spec; supports a JAR/Scala path and a Python wheel path (the agent wraps the wheel into an OCI image via kaniko when artifactUri is supplied).
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
namespace | Kubernetes namespace for the Spark application | spark | No |
schedule | Cron expression for periodic execution; blank runs the job once | 0 0 * * * | No |
jarUri | URI to the application JAR (Scala/Java path) | local:///opt/spark/examples/jars/app.jar | No |
mainClass | Fully qualified main class for the JAR path | org.apache.spark.examples.SparkPi | No |
image | Container image URI for the Spark application | apache/spark:3.5.0 | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.SparkPlatformJob",
"parameters": {
"namespace": "spark",
"schedule": "0 0 * * *",
"jarUri": "local:///opt/spark/examples/jars/app.jar",
"mainClass": "org.apache.spark.examples.SparkPi",
"image": "apache/spark:3.5.0"
}
}
BigData.PaaS.SparkPlatformMlExperiment
A Fractal-managed MLflow tracking service that satisfies the abstract ML-experiment blueprint by installing the mlflow Helm release onto the KaaS cluster. When a MinIO datalake is in the dependency chain, the agent automatically wires its S3 endpoint and admin credentials into MLflow for artifact storage.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
namespace | Kubernetes namespace where MLflow is installed | mlflow | No |
trackingUri | MLflow tracking URI; defaults to the in-cluster service URL | http://mlflow.mlflow.svc.cluster.local:5000 | No |
artifactRoot | Default artifact root for the MLflow server | s3://datalake/mlflow | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.SparkPlatformMlExperiment",
"parameters": {
"namespace": "mlflow",
"trackingUri": "http://mlflow.mlflow.svc.cluster.local:5000",
"artifactRoot": "s3://datalake/mlflow"
}
}
Messaging
Messaging.PaaS.ManagedKafka
A Fractal-managed Kafka broker that satisfies the abstract messaging-broker blueprint. Aruba has no native managed Kafka, so the agent installs the strimzi-kafka-operator (one per cluster) and applies a Kafka + KafkaNodePool CR pair in KRaft mode (single broker) onto the KaaS cluster.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
namespace | Kubernetes namespace for the Kafka cluster | kafka | No |
clusterName | Name of the Strimzi Kafka cluster; defaults to a sanitized component ID | events-broker | No |
Example (fully parameterized):
{
"type": "Messaging.PaaS.ManagedKafka",
"parameters": {
"namespace": "kafka",
"clusterName": "events-broker"
}
}
Messaging.PaaS.ManagedKafkaTopic
A Strimzi KafkaTopic CR scoped to the linked managed Kafka cluster. The topic name is derived from the component ID; retention defaults to 7 days.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
namespace | Kubernetes namespace; defaults to the linked cluster's namespace | kafka | No |
partitions | Number of topic partitions | 1 | No |
replicas | Topic replication factor | 1 | No |
Example (fully parameterized):
{
"type": "Messaging.PaaS.ManagedKafkaTopic",
"parameters": {
"namespace": "kafka",
"partitions": 1,
"replicas": 1
}
}
NetworkAndCompute
NetworkAndCompute.IaaS.ArubaCloudServer
An Aruba Cloud Server (virtual machine) provisioned into a subnet of a managed VPC. Boots from the configured boot volume and flavor, optionally injects user data, and attaches a linked SSH key pair when present.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
flavorName | Aruba Cloud Server flavor (size) | CSO2A4 | No |
bootVolume | URI of the boot volume image for the server | /.../images/ubuntu-22.04 | No |
userData | Cloud-init user data script | #!/bin/bash\necho hello | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaCloudServer",
"parameters": {
"flavorName": "CSO2A4",
"bootVolume": "/images/ubuntu-22.04",
"userData": "#!/bin/bash\necho hello"
}
}
NetworkAndCompute.IaaS.ArubaElasticIp
An Aruba Elastic IP — a static public IP address that can be associated with a Cloud Server. Provisioned in the configured region.
No configurable parameters.
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaElasticIp",
"parameters": {}
}
NetworkAndCompute.IaaS.ArubaSecurityGroup
An Aruba security group within a managed VPC. Framework-managed (tagged fractal-managed=true); traffic rules are derived from component links rather than configured directly.
No configurable parameters.
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaSecurityGroup",
"parameters": {}
}
NetworkAndCompute.IaaS.ArubaSshKeyPair
An Aruba SSH key pair used for Cloud Server access. Idempotent and reusable across servers. If a public key is supplied it is registered as-is; otherwise Aruba generates the key material.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
keyName | Name of the SSH key pair | prod-keypair | No |
publicKey | OpenSSH-format public key to register | ssh-ed25519 AAAA... | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaSshKeyPair",
"parameters": {
"keyName": "prod-keypair",
"publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleKeyMaterial user@host"
}
}
NetworkAndCompute.IaaS.ArubaSubnet
An Aruba subnet within a managed VPC for network segmentation. Provisioned one per availability zone. The CIDR block is typically allocated by the Fractal IPAM allocator.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
cidrBlock | CIDR block for the subnet | 10.0.1.0/24 | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaSubnet",
"parameters": {
"cidrBlock": "10.0.1.0/24"
}
}
NetworkAndCompute.IaaS.ArubaVpc
An Aruba Virtual Private Cloud providing network isolation. The foundation for subnets, security groups, Cloud Servers, and peerings. The CIDR block is typically allocated by the Fractal IPAM allocator.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
name | VPC name | prod-vpc | No |
location | Aruba region the VPC is created in | ITBG-Bergamo | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaVpc",
"parameters": {
"name": "prod-vpc",
"location": "ITBG-Bergamo"
}
}
NetworkAndCompute.IaaS.ArubaVpcPeering
A non-transitive VPC peering connection from a managed VPC to a remote VPC. Used to build the hub-and-spoke topology (spokes peer directly to the hub).
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
peerVpcId | ID of the remote VPC to peer with | vpc-0a1b2c3d | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaVpcPeering",
"parameters": {
"peerVpcId": "vpc-0a1b2c3d"
}
}
NetworkAndCompute.IaaS.ArubaVpnTunnel
A site-to-site IPsec VPN tunnel anchored on a managed VPC, used to connect the Aruba network to an external peer endpoint.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
peerPublicIp | Public IP address of the remote VPN peer | 203.0.113.10 | No |
presharedKey | Pre-shared key for the IPsec tunnel | super-secret-psk | No |
subnetCidr | Remote subnet CIDR reachable through the tunnel | 192.168.0.0/16 | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.IaaS.ArubaVpnTunnel",
"parameters": {
"peerPublicIp": "203.0.113.10",
"presharedKey": "super-secret-psk",
"subnetCidr": "192.168.0.0/16"
}
}
NetworkAndCompute.PaaS.ArubaContainerRegistry
An Aruba managed container registry. Deferred to v2 — the SDK model currently exposes no endpoint/hostname field, so this offer is not yet wired into the image-prefixing flow.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
size | Registry plan size | Small | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.PaaS.ArubaContainerRegistry",
"parameters": {
"size": "Small"
}
}
NetworkAndCompute.PaaS.Kubernetes
Aruba Managed Kubernetes (KaaS) — an HA control plane spread across three Bergamo availability zones. This is the substrate the Fractal-managed PaaS-on-KaaS offers (Spark, Kafka, MinIO datalake, MLflow) deploy onto. When a VPC/subnet is in the dependency chain the cluster is placed inside them; otherwise a preset cluster is created. The agent downloads the kubeconfig and stores it in Vault.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
kubernetesVersion | Kubernetes version for the cluster | 1.29 | No |
ha | Provision a highly-available control plane | true | No |
nodePoolFlavor | Aruba flavor for the default node pool; defaults to K2A4 | K2A4 | No |
nodePoolCount | Number of nodes in the default node pool | 3 | No |
Example (fully parameterized):
{
"type": "NetworkAndCompute.PaaS.Kubernetes",
"parameters": {
"kubernetesVersion": "1.29",
"ha": true,
"nodePoolFlavor": "K2A4",
"nodePoolCount": 3
}
}
Storage
Storage.IaaS.ArubaBlockStorage
An Aruba block storage volume that can be attached to a Cloud Server. Deferred to v2. Sized in gigabytes with a selectable performance tier.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
sizeGb | Volume size in gigabytes | 100 | No |
type | Block storage performance tier | Standard | No |
Example (fully parameterized):
{
"type": "Storage.IaaS.ArubaBlockStorage",
"parameters": {
"sizeGb": 100,
"type": "Standard"
}
}
Storage.PaaS.ArubaMsSqlDbms
An Aruba managed Microsoft SQL Server DBaaS instance (engine mssql-2022-web). Provisioned with 20 GB storage on the configured flavor; attaches to a VPC/subnet/security group when those peers are present.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
flavorName | Aruba DBaaS flavor (size); defaults to DBO1A2 | DBO1A2 | No |
Example (fully parameterized):
{
"type": "Storage.PaaS.ArubaMsSqlDbms",
"parameters": {
"flavorName": "DBO1A2"
}
}
Storage.PaaS.ArubaMySqlDbms
An Aruba managed MySQL DBaaS instance (engine mysql-8.0). Provisioned with 20 GB storage on the configured flavor; attaches to a VPC/subnet/security group when those peers are present.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
flavorName | Aruba DBaaS flavor (size); defaults to DBO1A2 | DBO1A2 | No |
Example (fully parameterized):
{
"type": "Storage.PaaS.ArubaMySqlDbms",
"parameters": {
"flavorName": "DBO1A2"
}
}
Storage.PaaS.ManagedDatalake
A Fractal-managed MinIO datalake that satisfies the abstract Datalake / FilesAndBlobs blueprints. The agent installs the minio-operator (one per cluster) plus a per-component MinIO Tenant exposing an S3-compatible endpoint on the KaaS cluster. The admin secret is auto-generated and persisted across reconcile cycles.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
namespace | Kubernetes namespace for the MinIO tenant | minio | No |
tenantName | Name of the MinIO tenant; defaults to a sanitized component ID | datalake-tenant | No |
bucketName | Initial bucket to create; defaults to datalake | datalake | No |
servers | Number of MinIO servers in the tenant | 4 | No |
volumesPerServer | Number of storage volumes per server | 4 | No |
volumeSize | Storage volume size per server (Kubernetes resource quantity) | 10Gi | No |
storageClass | Kubernetes storage class for persistent volumes | empty string (cluster default) | No |
requestAutoCert | Auto-generate self-signed TLS certificates for the tenant | false | No |
Example (fully parameterized):
{
"type": "Storage.PaaS.ManagedDatalake",
"parameters": {
"namespace": "minio",
"tenantName": "datalake-tenant",
"bucketName": "datalake",
"servers": 4,
"volumesPerServer": 4,
"volumeSize": "10Gi",
"storageClass": "block-storage",
"requestAutoCert": false
}
}
Storage.PaaS.ArubaObjectStorageAccount
An Aruba S3-compatible Object Storage account. Stubbed (NotImplemented) — the offer is registered in the catalogue but disabled pending confirmation of the Aruba legacy provisioning endpoint. The canonical data-lake offer for Aruba is Storage.PaaS.ManagedDatalake (MinIO on KaaS). The legacy Object Storage API has no resource-tag support, so Fractal ownership semantics cannot be enforced on it.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
accountName | Object Storage account name; defaults to a sanitized component ID | fct-datastore | No |
password | Account password (min 9 chars, upper + lower + digit) | Sup3rSecret! | Yes |
regionCode | Object Storage region code | it | No |
Example (fully parameterized):
{
"type": "Storage.PaaS.ArubaObjectStorageAccount",
"parameters": {
"accountName": "fct-datastore",
"password": "Sup3rSecret1",
"regionCode": "it"
}
}