AWS Components
Reference for every AWS offer in the Fractal Cloud catalogue. Each offer lists its parameters, required flags, and a fully-parameterized JSON example.
APIManagement
APIManagement.CaaS.Ambassador
Ambassador is an open-source API gateway built on Envoy that provides advanced traffic management, authentication, and routing capabilities for containerized workloads on Kubernetes.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
host | The hostname for the Ambassador service | ambassador.example.com | No |
hostOwnerEmail | Email address of the host owner for certificate renewal notifications | admin@example.com | Yes |
acmeProviderAuthority | ACME certificate authority endpoint for TLS certificate provisioning | https://acme-v02.api.letsencrypt.org/directory | Yes |
tlsSecretName | Kubernetes secret name containing TLS certificate data | ambassador-tls-secret | Yes |
licenseKey | Optional Ambassador license key for commercial features | license-key-string | No |
namespace | Kubernetes namespace where Ambassador will be deployed | ambassador | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "APIManagement.CaaS.Ambassador",
"parameters": {
"host": "ambassador.example.com",
"hostOwnerEmail": "admin@example.com",
"acmeProviderAuthority": "https://acme-v02.api.letsencrypt.org/directory",
"tlsSecretName": "ambassador-tls-secret",
"licenseKey": "amb-lic-9f8e7d6c5b4a3210",
"namespace": "ambassador"
}
}
APIManagement.CaaS.Traefik
Traefik is a modern reverse proxy and load balancer that automatically discovers services and provides dynamic routing, SSL/TLS termination, and advanced security features for cloud-native applications.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
entryPoints | List of network entry points (ports/protocols) where Traefik listens for incoming traffic | ["http:8080", "https:8443"] | Yes |
hostname | Hostname for Traefik dashboard and routing configuration | traefik.example.com | No |
loadbalancerIp | Static IP address to assign to the Traefik load balancer service | 10.0.1.100 | No |
oidcIssuerUrl | OpenID Connect issuer URL for authentication | https://auth.example.com | Conditional — part of the all-or-nothing OIDC config group |
oidcClientId | OIDC client identifier | traefik-client-id | Conditional — part of the all-or-nothing OIDC config group |
oidcClientSecretId | Secret identifier for OIDC client credentials | oidc-secret-id | Conditional — part of the all-or-nothing OIDC config group |
forwardAuthSecretId | Secret identifier for forward authentication configuration | forward-auth-secret-id | Conditional — part of the all-or-nothing OIDC config group |
securityHeadersSettings | Map of HTTP security headers to apply to all responses | {} | No |
tlsCertificates | List of TLS certificate configurations | [] | No |
tlsSettings | TLS/SSL settings such as minimum version and cipher suites | {} | No |
tracing | Distributed tracing configuration for monitoring request flows | {} | No |
namespace | Kubernetes namespace where Traefik will be deployed | traefik | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "APIManagement.CaaS.Traefik",
"parameters": {
"entryPoints": ["http:8080", "https:8443"],
"hostname": "traefik.example.com",
"loadbalancerIp": "10.0.1.100",
"oidcIssuerUrl": "https://auth.example.com",
"oidcClientId": "traefik-client-id",
"oidcClientSecretId": "oidc-secret-id",
"forwardAuthSecretId": "forward-auth-secret-id",
"securityHeadersSettings": { "X-Frame-Options": "DENY" },
"tlsCertificates": [],
"tlsSettings": { "minVersion": "VersionTLS12" },
"tracing": {},
"namespace": "traefik"
}
}
APIManagement.PaaS.AwsCloudFront
Amazon CloudFront distribution fronting an origin with a global edge network. SDK-canonical name for the same offer as APIManagement.PaaS.CloudFront; both route to the same agent handler.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
originDomain | Domain name of the origin the distribution pulls from. Blank → resolved from the component this distribution depends on. | origin.example.com | No |
comment | Free-text comment stored on the distribution | Managed by Fractal Cloud | No |
Example (fully parameterized):
{
"type": "APIManagement.PaaS.AwsCloudFront",
"parameters": {
"originDomain": "origin.example.com",
"comment": "Managed by Fractal Cloud"
}
}
APIManagement.PaaS.CloudFront
Amazon CloudFront is a content delivery network (CDN) service that caches and serves content from edge locations around the world, providing low-latency access and DDoS protection.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
originDomain | The domain name or IP address of the origin server where content is stored | example.com or api.example.com | No |
comment | Human-readable description of the CloudFront distribution | Managed by Fractal Cloud | No |
Example (fully parameterized):
{
"type": "APIManagement.PaaS.CloudFront",
"parameters": {
"originDomain": "api.example.com",
"comment": "Managed by Fractal Cloud"
}
}
APIManagement.SaaS.Unmanaged
A placeholder for external or pre-existing API management solutions not directly provisioned by Fractal Cloud. Stores connection details and credentials in a secret.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
secretName | Name or identifier of the secret storing credentials | api-mgmt-secret | No |
secretValue | The secret value (credentials, connection string, etc.) | secret-content | Yes |
secret | Reference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint. | {"$envSecret": "openai-api-key"} | Conditional — required when secretValue is not set |
Example (fully parameterized):
{
"type": "APIManagement.SaaS.Unmanaged",
"parameters": {
"secretName": "api-mgmt-secret",
"secretValue": "secret-content"
}
}
BigData
BigData.CaaS.MinioTenant
MinIO is a high-performance, S3-compatible object storage system deployable on Kubernetes. Provides distributed object storage with strong consistency and security.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
minioVersion | MinIO release version | RELEASE.2025-03-12T18-04-18Z | No |
servers | Number of MinIO servers in the distributed cluster | 4 | No |
volumesPerServer | Number of storage volumes per server | 4 | No |
volumeSize | Storage volume size per server (Kubernetes resource quantity) | 100Gi | No |
storageClass | Kubernetes storage class for persistent volumes | empty string (cluster default) | No |
cpuRequest | Requested CPU per MinIO pod | 500m | No |
cpuLimit | Maximum CPU per MinIO pod | 2 | No |
memoryRequest | Requested memory per MinIO pod | 1Gi | No |
memoryLimit | Maximum memory per MinIO pod | 4Gi | No |
requestAutoCert | Automatically generate self-signed TLS certificates | true | No |
namespace | Kubernetes namespace for MinIO deployment | minio | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "BigData.CaaS.MinioTenant",
"parameters": {
"minioVersion": "RELEASE.2025-03-12T18-04-18Z",
"servers": 4,
"volumesPerServer": 4,
"volumeSize": "100Gi",
"storageClass": "gp3",
"cpuRequest": "500m",
"cpuLimit": "2",
"memoryRequest": "1Gi",
"memoryLimit": "4Gi",
"requestAutoCert": true,
"namespace": "minio"
}
}
BigData.CaaS.SparkCluster
Apache Spark cluster for distributed data processing and analytics on Kubernetes. Provides driver and executor pods for parallel computation.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
sparkVersion | Apache Spark version | 3.5.3 | No |
image | Container image URI for Spark pods | apache/spark:3.5.3 | No |
driverCores | Number of CPU cores for the Spark driver pod | 1 | No |
driverMemory | Memory allocated to the Spark driver pod | 1g | No |
executorCores | Number of CPU cores per executor pod | 2 | No |
executorMemory | Memory allocated to each executor pod | 2g | No |
executorInstances | Number of executor pods to launch | 2 | No |
sparkOperatorName | Name of the Spark Operator deployment managing this cluster | spark-operator | Yes |
namespace | Kubernetes namespace for Spark cluster | spark | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "BigData.CaaS.SparkCluster",
"parameters": {
"sparkVersion": "3.5.3",
"image": "apache/spark:3.5.3",
"driverCores": "1",
"driverMemory": "1g",
"executorCores": "2",
"executorMemory": "2g",
"executorInstances": 2,
"sparkOperatorName": "spark-operator",
"namespace": "spark"
}
}
BigData.CaaS.SparkJob
A Spark job submission to a Spark cluster or standalone Spark operator, supporting batch processing, scheduled execution, and multiple application types.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
type | Spark application type | Java, Python, Scala | No |
mode | Spark deployment mode | cluster or client | No |
image | Container image URI for the Spark job | apache/spark:3.5.3 | No |
mainClass | Fully qualified class name for Java/Scala applications | com.example.MyApp | No |
mainApplicationFile | Path or URI to the application JAR, Python script, or other artifact | s3://bucket/app.jar | No |
arguments | List of command-line arguments passed to the application | ["arg1", "arg2"] | No |
sparkVersion | Apache Spark version | 3.5.3 | No |
sparkConf | Spark configuration properties as key-value pairs | {} | No |
driverCores | Number of CPU cores for the driver | 1 | No |
driverMemory | Memory for the driver | 1g | No |
executorCores | Number of CPU cores per executor | 2 | No |
executorMemory | Memory per executor | 2g | No |
executorInstances | Number of executors | 2 | No |
restartPolicy | Pod restart policy on failure | Never, OnFailure | No |
maxRetries | Maximum number of retries on failure | 3 | No |
schedule | Cron schedule for periodic execution (blank = one-time) | 0 0 * * * | No |
concurrencyPolicy | How to handle concurrent executions | Allow, Forbid, Replace | No |
sparkOperatorName | Name of the Spark Operator deployment | spark-operator | Yes |
namespace | Kubernetes namespace | spark | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "BigData.CaaS.SparkJob",
"parameters": {
"type": "Java",
"mode": "cluster",
"image": "apache/spark:3.5.3",
"mainClass": "com.example.MyApp",
"mainApplicationFile": "s3://bucket/app.jar",
"arguments": ["--input", "s3://bucket/data/input", "--output", "s3://bucket/data/output"],
"sparkVersion": "3.5.3",
"sparkConf": { "spark.executor.memoryOverhead": "512m" },
"driverCores": "1",
"driverMemory": "1g",
"executorCores": "2",
"executorMemory": "2g",
"executorInstances": 2,
"restartPolicy": "Never",
"maxRetries": 3,
"schedule": "0 0 * * *",
"concurrencyPolicy": "Forbid",
"sparkOperatorName": "spark-operator",
"namespace": "spark"
}
}
BigData.CaaS.SparkMlExperiment
MLflow experiment tracking service for machine learning workflows on Kubernetes. Provides artifact storage and metrics logging for ML experiments.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
mlflowVersion | MLflow server version | 2.21.3 | No |
backendStoreUri | Backend store URI for MLflow metadata (SQLite, PostgreSQL, etc.) | sqlite:///mlflow/mlflow.db | No |
artifactRoot | Root directory for storing artifacts | /mlflow/artifacts | No |
replicas | Number of MLflow server replicas | 2 | No |
cpuRequest | Requested CPU per MLflow pod | 250m | No |
cpuLimit | Maximum CPU per MLflow pod | 1 | No |
memoryRequest | Requested memory per MLflow pod | 512Mi | No |
memoryLimit | Maximum memory per MLflow pod | 1Gi | No |
servicePort | Port number for MLflow UI and API | 5000 | No |
namespace | Kubernetes namespace | mlflow | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "BigData.CaaS.SparkMlExperiment",
"parameters": {
"mlflowVersion": "2.21.3",
"backendStoreUri": "sqlite:///mlflow/mlflow.db",
"artifactRoot": "/mlflow/artifacts",
"replicas": 2,
"cpuRequest": "250m",
"cpuLimit": "1",
"memoryRequest": "512Mi",
"memoryLimit": "1Gi",
"servicePort": 5000,
"namespace": "mlflow"
}
}
BigData.CaaS.SparkOperator
Spark Operator manages Spark applications as Kubernetes custom resources. Provides cluster-wide Spark job orchestration and monitoring.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
operatorVersion | Spark Operator version | 2.5.0 | No |
sparkVersion | Default Spark version used by the operator | 3.5.3 | No |
enableWebhook | Enable Kubernetes webhook for Spark application validation | true | No |
enableMetrics | Enable Prometheus metrics collection from Spark jobs | true | No |
namespace | Kubernetes namespace for operator deployment | spark-operator | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "BigData.CaaS.SparkOperator",
"parameters": {
"operatorVersion": "2.5.0",
"sparkVersion": "3.5.3",
"enableWebhook": true,
"enableMetrics": true,
"namespace": "spark-operator"
}
}
BigData.CaaS.SparkUnityCatalog
Unity Catalog metadata layer for Apache Spark, providing centralized governance, data discovery, and access control across data lakes and warehouses.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
unityCatalogVersion | Unity Catalog version | 0.3.0 | No |
replicas | Number of Unity Catalog service replicas | 2 | No |
cpuRequest | Requested CPU per pod | 250m | No |
cpuLimit | Maximum CPU per pod | 1 | No |
memoryRequest | Requested memory per pod | 512Mi | No |
memoryLimit | Maximum memory per pod | 1Gi | No |
namespace | Kubernetes namespace | unity-catalog | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "BigData.CaaS.SparkUnityCatalog",
"parameters": {
"unityCatalogVersion": "0.3.0",
"replicas": 2,
"cpuRequest": "250m",
"cpuLimit": "1",
"memoryRequest": "512Mi",
"memoryLimit": "1Gi",
"namespace": "unity-catalog"
}
}
BigData.PaaS.AwsDatabricks
Managed Databricks workspace on AWS. SDK-canonical name for the same offer as BigData.PaaS.Databricks; both route to the same agent handler.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
accountId | Databricks account ID (cross-account metadata store) | 123456789012 | Conditional — required on first reconcile unless already published to the accountId output field |
pricingTier | Databricks pricing tier | premium (default) or standard | No |
credentialsId | AWS credentials configuration identifier registered with Databricks | databricks-creds-id | Yes |
storageConfigurationId | AWS storage configuration (S3 bucket) identifier registered with Databricks | storage-config-id | Yes |
networkId | VPC network configuration identifier, for a customer-managed private network | net-abc123def456 | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.AwsDatabricks",
"parameters": {
"accountId": "123456789012",
"pricingTier": "premium",
"credentialsId": "databricks-creds-id",
"storageConfigurationId": "storage-config-id",
"networkId": "net-abc123def456"
}
}
BigData.PaaS.AwsDatabricksCluster
Spark compute cluster inside an AWS Databricks workspace. SDK-canonical name for the same offer as BigData.PaaS.DatabricksCluster.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
clusterName | Cluster name as it appears in the workspace. Blank → derived from the component id. | analytics-cluster | No |
sparkVersion | Databricks runtime version. Blank → the workspace default. | 14.3.x-scala2.12 | No |
nodeTypeId | EC2 instance type backing each node. Blank → the workspace default. | i3.xlarge | No |
numWorkers | Fixed worker count. Ignored when autoscaling bounds are set. | 2 (default) | No |
minWorkers | Autoscaling floor | 1 (default) | No |
maxWorkers | Autoscaling ceiling | 8 (default) | No |
sparkConf | Spark configuration entries applied to the cluster | {"spark.sql.shuffle.partitions": "200"} | No |
pypiLibraries | PyPI packages installed on the cluster at start | ["pandas==2.2.0"] | No |
mavenLibraries | Maven coordinates installed on the cluster at start | ["org.apache.spark:spark-avro_2.12:3.5.0"] | No |
autoTerminationMinutes | Idle minutes before the cluster shuts itself down | 60 (default) | No |
dataSecurityMode | Access mode governing Unity Catalog isolation | SINGLE_USER (default), USER_ISOLATION, NONE | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.AwsDatabricksCluster",
"parameters": {
"clusterName": "analytics-cluster",
"sparkVersion": "14.3.x-scala2.12",
"nodeTypeId": "i3.xlarge",
"numWorkers": 2,
"minWorkers": 1,
"maxWorkers": 8,
"sparkConf": { "spark.sql.shuffle.partitions": "200" },
"pypiLibraries": ["pandas==2.2.0"],
"mavenLibraries": ["org.apache.spark:spark-avro_2.12:3.5.0"],
"autoTerminationMinutes": 60,
"dataSecurityMode": "SINGLE_USER"
}
}
BigData.PaaS.AwsDatabricksJob
Scheduled Databricks job on AWS. SDK-canonical name for the same offer as BigData.PaaS.DatabricksJob. Which artifact parameters are required depends on taskType.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
jobName | Job name as it appears in the workspace. Blank → derived from the component id. | nightly-etl | No |
taskType | Task the job runs | NOTEBOOK, PYTHON, SPARK_JAR, python_wheel | No |
notebookPath | Workspace path of the notebook to run | /Repos/acme/etl/nightly | Conditional — required for the NOTEBOOK task type |
pythonFile | Path or URI of the Python file to run | dbfs:/jobs/etl.py | Conditional — required for the PYTHON task type |
mainClassName | Fully-qualified entry class in the JAR | com.acme.etl.Nightly | Conditional — required for the SPARK_JAR task type |
jarUri | URI of the JAR to run | s3://acme-artifacts/etl.jar | No |
parameters | Positional arguments passed to the task | ["--date", "2026-01-01"] | No |
cronSchedule | Quartz cron expression for the schedule. Blank → the job runs only when triggered. | 0 0 2 * * ? | No |
maxRetries | Retry attempts on failure | 0 (default) | No |
existingCluster | Run on the cluster this job depends on instead of a job cluster | false (default) | No |
artifactType | Artifact packaging for the wheel task | wheel | No |
artifactUri | URI of the wheel artifact | s3://acme-artifacts/etl-1.0-py3-none-any.whl | No |
packageName | Python package name inside the wheel. Blank → the component id. | acme_etl | No |
entryPoint | Console-script entry point exposed by the wheel | run-nightly | Conditional — required for the python_wheel task |
entryPointArgs | Arguments passed to the wheel entry point | ["--full-refresh"] | No |
sparkVersion | Databricks runtime for the job cluster | 14.3.x-scala2.12 (default) | No |
nodeTypeId | EC2 instance type for the job cluster | i3.xlarge (default) | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.AwsDatabricksJob",
"parameters": {
"jobName": "nightly-etl",
"taskType": "python_wheel",
"artifactType": "wheel",
"artifactUri": "s3://acme-artifacts/etl-1.0-py3-none-any.whl",
"packageName": "acme_etl",
"entryPoint": "run-nightly",
"entryPointArgs": ["--full-refresh"],
"parameters": ["--date", "2026-01-01"],
"cronSchedule": "0 0 2 * * ?",
"maxRetries": 2,
"existingCluster": false,
"sparkVersion": "14.3.x-scala2.12",
"nodeTypeId": "i3.xlarge"
}
}
BigData.PaaS.AwsDatabricksMlflow
MLflow experiment inside an AWS Databricks workspace, for tracking runs, parameters, metrics and models. SDK-canonical name for the same offer as BigData.PaaS.DatabricksMlflowExperiment.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
experimentName | Experiment name as it appears in MLflow | churn-model | Yes |
artifactLocation | Object-storage location for run artifacts. Blank → the workspace default. | s3://acme-mlflow/churn | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.AwsDatabricksMlflow",
"parameters": {
"experimentName": "churn-model",
"artifactLocation": "s3://acme-mlflow/churn"
}
}
BigData.PaaS.AwsS3Datalake
S3 bucket used as a data lake: the raw, curated and checkpoint zones a DataProcessingJob reads and writes. Jobs declare which zone they use through a link setting, and the agent injects the matching URI into the job runtime.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
bucket | S3 bucket name backing the lake (globally unique) | acme-datalake-prod | Yes |
versioning | Enable object versioning | false (default) | No |
forceDestroy | Allow deletion of the bucket while it still holds objects | false (default) | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.AwsS3Datalake",
"parameters": {
"bucket": "acme-datalake-prod",
"versioning": true,
"forceDestroy": false
}
}
BigData.PaaS.Databricks
Managed Databricks workspace on AWS. Provides a unified analytics platform for data engineering, data science, and BI workloads.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
accountId | Databricks account ID (Cross-account metadata store) | 123456789012 | Conditional — required on first reconcile unless already published to the accountId output field |
pricingTier | Databricks pricing tier | premium or standard | No |
credentialsId | AWS credentials configuration identifier | databricks-creds-id | Yes |
storageConfigurationId | AWS storage configuration (S3 bucket) identifier | storage-config-id | Yes |
networkId | VPC network configuration identifier for private networks | `` | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.Databricks",
"parameters": {
"accountId": "123456789012",
"pricingTier": "premium",
"credentialsId": "databricks-creds-id",
"storageConfigurationId": "storage-config-id",
"networkId": "net-abc123def456"
}
}
BigData.PaaS.DatabricksCluster
A Databricks compute cluster for running Spark workloads. Supports autoscaling, data security modes, and custom configurations.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
clusterName | Friendly name for the cluster | prod-cluster | No |
sparkVersion | Databricks Runtime version (Spark + extensions) | 13.3.x-scala2.12 | No |
nodeTypeId | AWS instance type for cluster nodes | i3.xlarge | No |
numWorkers | Initial number of worker nodes | 2 | No |
minWorkers | Minimum workers for autoscaling | 1 | No |
maxWorkers | Maximum workers for autoscaling | 8 | No |
sparkConf | Spark configuration properties | {} | No |
pypiLibraries | List of PyPI package specifications | [] | No |
mavenLibraries | List of Maven coordinates for JVM libraries | [] | No |
autoTerminationMinutes | Minutes of inactivity before auto-shutdown | 60 | No |
dataSecurityMode | Data security mode for cluster | SINGLE_USER, USER_ISOLATION, NONE | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.DatabricksCluster",
"parameters": {
"clusterName": "prod-cluster",
"sparkVersion": "13.3.x-scala2.12",
"nodeTypeId": "i3.xlarge",
"numWorkers": 2,
"minWorkers": 1,
"maxWorkers": 8,
"sparkConf": { "spark.databricks.delta.preview.enabled": "true" },
"pypiLibraries": ["pandas==2.0.0", "numpy==1.26.0"],
"mavenLibraries": ["com.amazonaws:aws-java-sdk-s3:1.12.600"],
"autoTerminationMinutes": 60,
"dataSecurityMode": "SINGLE_USER"
}
}
BigData.PaaS.DatabricksJob
A job configured in Databricks for scheduled or triggered task execution. Supports multiple task types: notebook, Python, SQL, JAR, and wheel.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
jobName | Display name for the job | daily-etl | No |
taskType | Type of task to execute | NOTEBOOK, PYTHON, SQL, SPARK_JAR, python_wheel | No |
notebookPath | Path to notebook for NOTEBOOK task type | /Users/user@example.com/etl_notebook | Conditional — required for the NOTEBOOK task type |
pythonFile | Path to Python file for PYTHON task type | s3://bucket/script.py | Conditional — required for the PYTHON task type |
mainClassName | Main class for SPARK_JAR task type | com.example.Main | Conditional — required for the SPARK_JAR task type |
jarUri | S3 URI to JAR file | s3://bucket/app.jar | No |
parameters | Command-line parameters for the task | [] | No |
cronSchedule | Cron expression for scheduled execution | 0 0 * * * | No |
maxRetries | Maximum number of automatic retries | 0 | No |
existingCluster | Use existing cluster ID instead of provisioning | false | No |
artifactType | Type of artifact (wheel, jar, etc.) | wheel or jar | No |
artifactUri | S3 URI to artifact | s3://bucket/artifact.whl | No |
packageName | Package name for wheel artifacts | my_package | No |
entryPoint | Entry point function for python_wheel | my_module:main | Conditional — required for the python_wheel task |
entryPointArgs | Arguments for the entry point | [] | No |
sparkVersion | Spark version for job cluster | 14.3.x-scala2.12 | No |
nodeTypeId | Instance type for job cluster | i3.xlarge | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.DatabricksJob",
"parameters": {
"jobName": "daily-etl",
"taskType": "python_wheel",
"notebookPath": "/Users/user@example.com/etl_notebook",
"pythonFile": "s3://bucket/script.py",
"mainClassName": "com.example.Main",
"jarUri": "s3://bucket/app.jar",
"parameters": ["--date", "2026-07-03"],
"cronSchedule": "0 0 * * *",
"maxRetries": 0,
"existingCluster": false,
"artifactType": "wheel",
"artifactUri": "s3://bucket/artifact.whl",
"packageName": "my_package",
"entryPoint": "my_module:main",
"entryPointArgs": ["--env", "prod"],
"sparkVersion": "14.3.x-scala2.12",
"nodeTypeId": "i3.xlarge"
}
}
BigData.PaaS.DatabricksMlflowExperiment
An MLflow experiment within Databricks for tracking machine learning runs, metrics, and artifacts.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
experimentName | Fully qualified experiment name in Databricks | /Shared/my-experiment | Yes |
artifactLocation | DBFS or S3 path for storing experiment artifacts | /mnt/artifacts or s3://bucket/artifacts | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.DatabricksMlflowExperiment",
"parameters": {
"experimentName": "/Shared/my-experiment",
"artifactLocation": "s3://bucket/artifacts"
}
}
BigData.PaaS.S3
Amazon S3 object storage bucket for data storage and archival. Supports versioning and lifecycle policies.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
bucket | S3 bucket name (globally unique) | my-data-bucket-12345 | Yes |
versioning | Enable S3 object versioning | false | No |
forceDestroy | Allow deletion of non-empty bucket | false | No |
Example (fully parameterized):
{
"type": "BigData.PaaS.S3",
"parameters": {
"bucket": "my-data-bucket-12345",
"versioning": false,
"forceDestroy": false
}
}
BigData.SaaS.Unmanaged
A placeholder for external or pre-existing big data platforms not directly provisioned by Fractal Cloud.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
secretName | Name of the secret storing credentials | bigdata-secret | No |
secretValue | The secret value (connection string, credentials, etc.) | secret-content | Yes |
secret | Reference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint. | {"$envSecret": "openai-api-key"} | Conditional — required when secretValue is not set |
Example (fully parameterized):
{
"type": "BigData.SaaS.Unmanaged",
"parameters": {
"secretName": "bigdata-secret",
"secretValue": "secret-content"
}
}
CustomWorkloads
CustomWorkloads.CaaS.KubernetesWorkload
A Kubernetes workload (Deployment, StatefulSet, DaemonSet, etc.) deployed via GitOps from a Git repository. Supports environment-specific configuration and secret injection.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
sshRepositoryURI | SSH URI to the Git repository | git@github.com:org/repo.git | Yes |
repoId | Repository identifier for organization/filtering | repo-name | Yes |
branchName | Git branch to deploy from | main or production | Yes |
privateSSHKeySecretId | Secret ID for Git SSH private key | git-ssh-key-id | No |
privateSSHKeyEnvironmentSecretShortName | Environment variable name for SSH key path | SSH_KEY_PATH | No |
privateSSHKeyPassphraseSecretId | Secret ID for SSH key passphrase | ssh-passphrase-id | No |
privateSSHKeyPassphraseEnvironmentSecretShortName | Environment variable name for SSH passphrase | SSH_PASSPHRASE | No |
ciCdProfileShortName | CI/CD profile identifier for build/deploy configuration | default-profile | No |
environmentSecretShortNames | List of environment secret identifiers to inject | ["db-secret", "api-secret"] | No |
roles | List of RBAC roles to assign to the workload | [] | No |
workloadSecretIdKey | Secret key name for workload ID | WORKLOAD_ID | No |
workloadSecretPasswordKey | Secret key name for workload password | WORKLOAD_PASSWORD | No |
workloadIdentityEnabled | Enable Kubernetes workload identity for cloud authentication | true | No |
namespace | Kubernetes namespace for deployment | default | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "CustomWorkloads.CaaS.KubernetesWorkload",
"parameters": {
"sshRepositoryURI": "git@github.com:org/repo.git",
"repoId": "repo-name",
"branchName": "main",
"privateSSHKeySecretId": "git-ssh-key-id",
"privateSSHKeyEnvironmentSecretShortName": "SSH_KEY_PATH",
"privateSSHKeyPassphraseSecretId": "ssh-passphrase-id",
"privateSSHKeyPassphraseEnvironmentSecretShortName": "SSH_PASSPHRASE",
"ciCdProfileShortName": "default-profile",
"environmentSecretShortNames": ["db-secret", "api-secret"],
"roles": ["viewer", "deployer"],
"workloadSecretIdKey": "WORKLOAD_ID",
"workloadSecretPasswordKey": "WORKLOAD_PASSWORD",
"workloadIdentityEnabled": true,
"namespace": "default"
}
}
CustomWorkloads.FaaS.AwsLambda
AWS Lambda serverless function for event-driven compute. Supports container images and ZIP packages with configurable runtime, memory, and timeout.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
functionName | Name of the Lambda function | my-function | No |
runtime | Execution runtime | java21, python3.11, nodejs20.x | No |
handler | Handler function for ZIP packages | index.handler or com.example.Handler::handleRequest | Conditional — required for the zip-packaged path |
roleArn | IAM role ARN for Lambda execution | arn:aws:iam::123456789012:role/lambda-role | Conditional — required unless the environment supplies a Lambda execution role |
sourceArtifact | OCI artifact reference (image URI or S3 location) | 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-func:latest | Conditional — required unless the legacy codeBase64 inline zip is supplied |
packageType | Package type classification | image or zip | No |
codeBase64 | Base64-encoded ZIP file (deprecated) | UEsDBAoAA... | Conditional — deprecated legacy inline zip source; required unless sourceArtifact is supplied |
environment | Environment variables passed to the function | {"DB_HOST": "localhost"} | No |
memoryMb | Memory allocation for function | 128 to 10240 | No |
timeoutSeconds | Maximum execution time | 3 to 900 | No |
Example (fully parameterized):
{
"type": "CustomWorkloads.FaaS.AwsLambda",
"parameters": {
"functionName": "my-function",
"runtime": "java21",
"handler": "com.example.Handler::handleRequest",
"roleArn": "arn:aws:iam::123456789012:role/lambda-role",
"sourceArtifact": "123456789012.dkr.ecr.us-east-1.amazonaws.com/my-func:latest",
"packageType": "image",
"codeBase64": "UEsDBAoAAAAAAA...",
"environment": { "DB_HOST": "localhost" },
"memoryMb": 128,
"timeoutSeconds": 3
}
}
CustomWorkloads.PaaS.AwsEcsService
Long-running container workload on Amazon ECS. One blueprint workload maps to two live-system components: an ECS task definition (id ${workload.id}-task, carrying the image and sizing) and this service (id ${workload.id}, carrying the cluster and subnet dependencies plus the links), with the service depending on the task definition.
This offer provisions no infrastructure of its own. It exists so a Workload blueprint can say "run me as this cloud's managed container service" while keeping the dependency graph uniform across providers. The agent marks it Active on instantiation and Deleted on removal so dependents can proceed; the real resources come from the sub-components listed below.
Image, sizing, ports, replicas and environment are carried on the task definition (NetworkAndCompute.CaaS.ECSTaskDefinition); the running service is NetworkAndCompute.CaaS.ECSService. This component depends on those and carries the workload's links.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
region | AWS region the resource is created in. Blank → the environment region. Legacy alias: awsRegion. | us-east-1, eu-central-1 | No |
Example:
{
"type": "CustomWorkloads.PaaS.AwsEcsService",
"parameters": {}
}
CustomWorkloads.SaaS.Unmanaged
A placeholder for external or pre-existing serverless/workload platforms not directly provisioned by Fractal Cloud.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
secretName | Name of the secret storing credentials | workload-secret | No |
secretValue | The secret value (credentials, API key, etc.) | secret-content | Yes |
secret | Reference to an environment secret holding the external service's credential, as {"$envSecret": "<shortName>"}. The raw value never travels in the blueprint. | {"$envSecret": "openai-api-key"} | Conditional — required when secretValue is not set |
Example (fully parameterized):
{
"type": "CustomWorkloads.SaaS.Unmanaged",
"parameters": {
"secretName": "workload-secret",
"secretValue": "secret-content"
}
}
Messaging
Messaging.CaaS.Kafka
Apache Kafka message broker on Kubernetes for high-throughput, durable publish-subscribe messaging. Includes storage, replication, and consumer group management.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
replicas | Number of Kafka broker replicas in the cluster | 5 | No |
kafkaVersion | Kafka version | 4.2.0 | No |
memoryRequest | Requested memory per Kafka broker pod | 16Gi | No |
memoryLimit | Maximum memory per Kafka broker pod | 32Gi | No |
cpuRequest | Requested CPU per Kafka broker pod | 4 | No |
cpuLimit | Maximum CPU per Kafka broker pod | 8 | No |
storageSize | Size of persistent storage per broker | 1Ti | No |
namespace | Kubernetes namespace | kafka | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "Messaging.CaaS.Kafka",
"parameters": {
"replicas": 5,
"kafkaVersion": "4.2.0",
"memoryRequest": "16Gi",
"memoryLimit": "32Gi",
"cpuRequest": "4",
"cpuLimit": "8",
"storageSize": "1Ti",
"namespace": "kafka"
}
}
Messaging.CaaS.KafkaTopic
A Kafka topic for organizing messages by subject or stream. Configurable partitions, replication factor, and retention policies.
| Parameter | Description | Example / possible values | Required |
|---|---|---|---|
partitions | Number of partitions for parallel processing | 50 | No |
replicas | Replication factor for durability | 2 | No |
retentionMs | Message retention period in milliseconds | 172800000 (2 days) | No |
clusterName | Name of the Kafka cluster this topic belongs to | kafka-cluster | Yes |
namespace | Kubernetes namespace | kafka | Yes |
containerPlatform | Deprecated. The target cluster is derived from this component's dependency on the Kubernetes cluster; accepted only as a backward-compat fallback. | my-cluster | No |
Example (fully parameterized):
{
"type": "Messaging.CaaS.KafkaTopic",
"parameters": {
"partitions": 50,
"replicas": 2,
"retentionMs": 172800000,
"clusterName": "kafka-cluster",
"namespace": "kafka"
}
}