Skip to main content

AWS Components

Reference for every AWS offer in the Fractal Cloud catalogue. Parameters and their required flags are sourced from the agent param contract (FRA-2955); each offer includes 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.

ParameterDescriptionExample / possible valuesRequired
hostThe hostname for the Ambassador serviceambassador.example.comNo
hostOwnerEmailEmail address of the host owner for certificate renewal notificationsadmin@example.comYes
acmeProviderAuthorityACME certificate authority endpoint for TLS certificate provisioninghttps://acme-v02.api.letsencrypt.org/directoryYes
tlsSecretNameKubernetes secret name containing TLS certificate dataambassador-tls-secretYes
licenseKeyOptional Ambassador license key for commercial featureslicense-key-stringNo
namespaceKubernetes namespace where Ambassador will be deployedambassadorYes

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": "",
"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.

ParameterDescriptionExample / possible valuesRequired
entryPointsList of network entry points (ports/protocols) where Traefik listens for incoming traffic["http:8080", "https:8443"]Yes
hostnameHostname for Traefik dashboard and routing configurationtraefik.example.comNo
loadbalancerIpStatic IP address to assign to the Traefik load balancer service10.0.1.100No
oidcIssuerUrlOpenID Connect issuer URL for authenticationhttps://auth.example.comConditional — part of the all-or-nothing OIDC config group
oidcClientIdOIDC client identifiertraefik-client-idConditional — part of the all-or-nothing OIDC config group
oidcClientSecretIdSecret identifier for OIDC client credentialsoidc-secret-idConditional — part of the all-or-nothing OIDC config group
forwardAuthSecretIdSecret identifier for forward authentication configurationforward-auth-secret-idConditional — part of the all-or-nothing OIDC config group
securityHeadersSettingsMap of HTTP security headers to apply to all responses{}No
tlsCertificatesList of TLS certificate configurations[]No
tlsSettingsTLS/SSL settings such as minimum version and cipher suites{}No
tracingDistributed tracing configuration for monitoring request flows{}No
namespaceKubernetes namespace where Traefik will be deployedtraefikYes

Example (fully parameterized):

{
"type": "APIManagement.CaaS.Traefik",
"parameters": {
"entryPoints": ["http:8080", "https:8443"],
"hostname": "",
"loadbalancerIp": "",
"oidcIssuerUrl": "",
"oidcClientId": "",
"oidcClientSecretId": "",
"forwardAuthSecretId": "",
"securityHeadersSettings": {},
"tlsCertificates": [],
"tlsSettings": {},
"tracing": {},
"namespace": "traefik"
}
}

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.

ParameterDescriptionExample / possible valuesRequired
originDomainThe domain name or IP address of the origin server where content is storedexample.com or api.example.comNo
commentHuman-readable description of the CloudFront distributionManaged by Fractal CloudNo

Example (fully parameterized):

{
"type": "APIManagement.PaaS.CloudFront",
"parameters": {
"originDomain": "",
"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.

ParameterDescriptionExample / possible valuesRequired
secretNameName or identifier of the secret storing credentialsapi-mgmt-secretNo
secretValueThe secret value (credentials, connection string, etc.)secret-contentYes

Example (fully parameterized):

{
"type": "APIManagement.SaaS.Unmanaged",
"parameters": {
"secretName": "",
"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.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO release versionRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO servers in the distributed cluster4No
volumesPerServerNumber of storage volumes per server4No
volumeSizeStorage volume size per server (Kubernetes resource quantity)100GiNo
storageClassKubernetes storage class for persistent volumesempty string (cluster default)No
cpuRequestRequested CPU per MinIO pod500mNo
cpuLimitMaximum CPU per MinIO pod2No
memoryRequestRequested memory per MinIO pod1GiNo
memoryLimitMaximum memory per MinIO pod4GiNo
requestAutoCertAutomatically generate self-signed TLS certificatestrueNo
namespaceKubernetes namespace for MinIO deploymentminioYes

Example (fully parameterized):

{
"type": "BigData.CaaS.MinioTenant",
"parameters": {
"minioVersion": "RELEASE.2025-03-12T18-04-18Z",
"servers": 4,
"volumesPerServer": 4,
"volumeSize": "100Gi",
"storageClass": "",
"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.

ParameterDescriptionExample / possible valuesRequired
sparkVersionApache Spark version3.5.3No
imageContainer image URI for Spark podsapache/spark:3.5.3No
driverCoresNumber of CPU cores for the Spark driver pod1No
driverMemoryMemory allocated to the Spark driver pod1gNo
executorCoresNumber of CPU cores per executor pod2No
executorMemoryMemory allocated to each executor pod2gNo
executorInstancesNumber of executor pods to launch2No
sparkOperatorNameName of the Spark Operator deployment managing this clusterspark-operatorYes
namespaceKubernetes namespace for Spark clustersparkYes

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.

ParameterDescriptionExample / possible valuesRequired
typeSpark application typeJava, Python, ScalaNo
modeSpark deployment modecluster or clientNo
imageContainer image URI for the Spark jobapache/spark:3.5.3No
mainClassFully qualified class name for Java/Scala applicationscom.example.MyAppNo
mainApplicationFilePath or URI to the application JAR, Python script, or other artifacts3://bucket/app.jarNo
argumentsList of command-line arguments passed to the application["arg1", "arg2"]No
sparkVersionApache Spark version3.5.3No
sparkConfSpark configuration properties as key-value pairs{}No
driverCoresNumber of CPU cores for the driver1No
driverMemoryMemory for the driver1gNo
executorCoresNumber of CPU cores per executor2No
executorMemoryMemory per executor2gNo
executorInstancesNumber of executors2No
restartPolicyPod restart policy on failureNever, OnFailureNo
maxRetriesMaximum number of retries on failure3No
scheduleCron schedule for periodic execution (blank = one-time)0 0 * * *No
concurrencyPolicyHow to handle concurrent executionsAllow, Forbid, ReplaceNo
sparkOperatorNameName of the Spark Operator deploymentspark-operatorYes
namespaceKubernetes namespacesparkYes

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": [],
"sparkVersion": "3.5.3",
"sparkConf": {},
"driverCores": "1",
"driverMemory": "1g",
"executorCores": "2",
"executorMemory": "2g",
"executorInstances": 2,
"restartPolicy": "Never",
"maxRetries": 3,
"schedule": "",
"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.

ParameterDescriptionExample / possible valuesRequired
mlflowVersionMLflow server version2.21.3No
backendStoreUriBackend store URI for MLflow metadata (SQLite, PostgreSQL, etc.)sqlite:///mlflow/mlflow.dbNo
artifactRootRoot directory for storing artifacts/mlflow/artifactsNo
replicasNumber of MLflow server replicas2No
cpuRequestRequested CPU per MLflow pod250mNo
cpuLimitMaximum CPU per MLflow pod1No
memoryRequestRequested memory per MLflow pod512MiNo
memoryLimitMaximum memory per MLflow pod1GiNo
servicePortPort number for MLflow UI and API5000No
namespaceKubernetes namespacemlflowYes

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.

ParameterDescriptionExample / possible valuesRequired
operatorVersionSpark Operator version2.5.0No
sparkVersionDefault Spark version used by the operator3.5.3No
enableWebhookEnable Kubernetes webhook for Spark application validationtrueNo
enableMetricsEnable Prometheus metrics collection from Spark jobstrueNo
namespaceKubernetes namespace for operator deploymentspark-operatorYes

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.

ParameterDescriptionExample / possible valuesRequired
unityCatalogVersionUnity Catalog version0.3.0No
replicasNumber of Unity Catalog service replicas2No
cpuRequestRequested CPU per pod250mNo
cpuLimitMaximum CPU per pod1No
memoryRequestRequested memory per pod512MiNo
memoryLimitMaximum memory per pod1GiNo
namespaceKubernetes namespaceunity-catalogYes

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.Databricks

Managed Databricks workspace on AWS. Provides a unified analytics platform for data engineering, data science, and BI workloads.

ParameterDescriptionExample / possible valuesRequired
accountIdDatabricks account ID (Cross-account metadata store)123456789012Conditional — required on first reconcile unless already published to the accountId output field
pricingTierDatabricks pricing tierpremium or standardNo
credentialsIdAWS credentials configuration identifierdatabricks-creds-idYes
storageConfigurationIdAWS storage configuration (S3 bucket) identifierstorage-config-idYes
networkIdVPC network configuration identifier for private networks``No

Example (fully parameterized):

{
"type": "BigData.PaaS.Databricks",
"parameters": {
"accountId": "",
"pricingTier": "premium",
"credentialsId": "databricks-creds-id",
"storageConfigurationId": "storage-config-id",
"networkId": ""
}
}

BigData.PaaS.DatabricksCluster

A Databricks compute cluster for running Spark workloads. Supports autoscaling, data security modes, and custom configurations.

ParameterDescriptionExample / possible valuesRequired
clusterNameFriendly name for the clusterprod-clusterNo
sparkVersionDatabricks Runtime version (Spark + extensions)13.3.x-scala2.12No
nodeTypeIdAWS instance type for cluster nodesi3.xlargeNo
numWorkersInitial number of worker nodes2No
minWorkersMinimum workers for autoscaling1No
maxWorkersMaximum workers for autoscaling8No
sparkConfSpark configuration properties{}No
pypiLibrariesList of PyPI package specifications[]No
mavenLibrariesList of Maven coordinates for JVM libraries[]No
autoTerminationMinutesMinutes of inactivity before auto-shutdown60No
dataSecurityModeData security mode for clusterSINGLE_USER, USER_ISOLATION, NONENo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksCluster",
"parameters": {
"clusterName": "",
"sparkVersion": "",
"nodeTypeId": "",
"numWorkers": 2,
"minWorkers": 1,
"maxWorkers": 8,
"sparkConf": {},
"pypiLibraries": [],
"mavenLibraries": [],
"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.

ParameterDescriptionExample / possible valuesRequired
jobNameDisplay name for the jobdaily-etlNo
taskTypeType of task to executeNOTEBOOK, PYTHON, SQL, SPARK_JAR, python_wheelNo
notebookPathPath to notebook for NOTEBOOK task type/Users/user@example.com/etl_notebookConditional — required for the NOTEBOOK task type
pythonFilePath to Python file for PYTHON task types3://bucket/script.pyConditional — required for the PYTHON task type
mainClassNameMain class for SPARK_JAR task typecom.example.MainConditional — required for the SPARK_JAR task type
jarUriS3 URI to JAR files3://bucket/app.jarNo
parametersCommand-line parameters for the task[]No
cronScheduleCron expression for scheduled execution0 0 * * *No
maxRetriesMaximum number of automatic retries0No
existingClusterUse existing cluster ID instead of provisioningfalseNo
artifactTypeType of artifact (wheel, jar, etc.)wheel or jarNo
artifactUriS3 URI to artifacts3://bucket/artifact.whlNo
packageNamePackage name for wheel artifactsmy_packageNo
entryPointEntry point function for python_wheelmy_module:mainConditional — required for the python_wheel task
entryPointArgsArguments for the entry point[]No
sparkVersionSpark version for job cluster14.3.x-scala2.12No
nodeTypeIdInstance type for job clusteri3.xlargeNo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksJob",
"parameters": {
"jobName": "",
"taskType": "",
"notebookPath": "",
"pythonFile": "",
"mainClassName": "",
"jarUri": "",
"parameters": [],
"cronSchedule": "",
"maxRetries": 0,
"existingCluster": false,
"artifactType": "",
"artifactUri": "",
"packageName": "",
"entryPoint": "",
"entryPointArgs": [],
"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.

ParameterDescriptionExample / possible valuesRequired
experimentNameFully qualified experiment name in Databricks/Shared/my-experimentYes
artifactLocationDBFS or S3 path for storing experiment artifacts/mnt/artifacts or s3://bucket/artifactsNo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksMlflowExperiment",
"parameters": {
"experimentName": "/Shared/my-experiment",
"artifactLocation": ""
}
}

BigData.PaaS.S3

Amazon S3 object storage bucket for data storage and archival. Supports versioning and lifecycle policies.

ParameterDescriptionExample / possible valuesRequired
bucketS3 bucket name (globally unique)my-data-bucket-12345Yes
versioningEnable S3 object versioningfalseNo
forceDestroyAllow deletion of non-empty bucketfalseNo

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.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsbigdata-secretNo
secretValueThe secret value (connection string, credentials, etc.)secret-contentYes

Example (fully parameterized):

{
"type": "BigData.SaaS.Unmanaged",
"parameters": {
"secretName": "",
"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.

ParameterDescriptionExample / possible valuesRequired
sshRepositoryURISSH URI to the Git repositorygit@github.com:org/repo.gitYes
repoIdRepository identifier for organization/filteringrepo-nameYes
branchNameGit branch to deploy frommain or productionYes
privateSSHKeySecretIdSecret ID for Git SSH private keygit-ssh-key-idNo
privateSSHKeyEnvironmentSecretShortNameEnvironment variable name for SSH key pathSSH_KEY_PATHNo
privateSSHKeyPassphraseSecretIdSecret ID for SSH key passphrasessh-passphrase-idNo
privateSSHKeyPassphraseEnvironmentSecretShortNameEnvironment variable name for SSH passphraseSSH_PASSPHRASENo
ciCdProfileShortNameCI/CD profile identifier for build/deploy configurationdefault-profileNo
environmentSecretShortNamesList of environment secret identifiers to inject["db-secret", "api-secret"]No
rolesList of RBAC roles to assign to the workload[]No
workloadSecretIdKeySecret key name for workload IDWORKLOAD_IDNo
workloadSecretPasswordKeySecret key name for workload passwordWORKLOAD_PASSWORDNo
workloadIdentityEnabledEnable Kubernetes workload identity for cloud authenticationtrueNo
namespaceKubernetes namespace for deploymentdefaultYes

Example (fully parameterized):

{
"type": "CustomWorkloads.CaaS.KubernetesWorkload",
"parameters": {
"sshRepositoryURI": "git@github.com:org/repo.git",
"repoId": "repo-name",
"branchName": "main",
"privateSSHKeySecretId": "",
"privateSSHKeyEnvironmentSecretShortName": "",
"privateSSHKeyPassphraseSecretId": "",
"privateSSHKeyPassphraseEnvironmentSecretShortName": "",
"ciCdProfileShortName": "",
"environmentSecretShortNames": [],
"roles": [],
"workloadSecretIdKey": "",
"workloadSecretPasswordKey": "",
"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.

ParameterDescriptionExample / possible valuesRequired
functionNameName of the Lambda functionmy-functionNo
runtimeExecution runtimejava21, python3.11, nodejs20.xNo
handlerHandler function for ZIP packagesindex.handler or com.example.Handler::handleRequestConditional — required for the zip-packaged path
roleArnIAM role ARN for Lambda executionarn:aws:iam::123456789012:role/lambda-roleConditional — required unless the environment supplies a Lambda execution role
sourceArtifactOCI artifact reference (image URI or S3 location)123456789012.dkr.ecr.us-east-1.amazonaws.com/my-func:latestConditional — required unless the legacy codeBase64 inline zip is supplied
packageTypePackage type classificationimage or zipNo
codeBase64Base64-encoded ZIP file (deprecated)UEsDBAoAA...Conditional — deprecated legacy inline zip source; required unless sourceArtifact is supplied
environmentEnvironment variables passed to the function{"DB_HOST": "localhost"}No
memoryMbMemory allocation for function128 to 10240No
timeoutSecondsMaximum execution time3 to 900No

Example (fully parameterized):

{
"type": "CustomWorkloads.FaaS.AwsLambda",
"parameters": {
"functionName": "",
"runtime": "java21",
"handler": "",
"roleArn": "",
"sourceArtifact": "",
"packageType": "",
"codeBase64": "",
"environment": {},
"memoryMb": 128,
"timeoutSeconds": 3
}
}

CustomWorkloads.SaaS.Unmanaged

A placeholder for external or pre-existing serverless/workload platforms not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsworkload-secretNo
secretValueThe secret value (credentials, API key, etc.)secret-contentYes

Example (fully parameterized):

{
"type": "CustomWorkloads.SaaS.Unmanaged",
"parameters": {
"secretName": "",
"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.

ParameterDescriptionExample / possible valuesRequired
replicasNumber of Kafka broker replicas in the cluster5No
kafkaVersionKafka version4.2.0No
memoryRequestRequested memory per Kafka broker pod16GiNo
memoryLimitMaximum memory per Kafka broker pod32GiNo
cpuRequestRequested CPU per Kafka broker pod4No
cpuLimitMaximum CPU per Kafka broker pod8No
storageSizeSize of persistent storage per broker1TiNo
namespaceKubernetes namespacekafkaYes

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.

ParameterDescriptionExample / possible valuesRequired
partitionsNumber of partitions for parallel processing50No
replicasReplication factor for durability2No
retentionMsMessage retention period in milliseconds172800000 (2 days)No
clusterNameName of the Kafka cluster this topic belongs tokafka-clusterYes
namespaceKubernetes namespacekafkaYes

Example (fully parameterized):

{
"type": "Messaging.CaaS.KafkaTopic",
"parameters": {
"partitions": 50,
"replicas": 2,
"retentionMs": 172800000,
"clusterName": "kafka-cluster",
"namespace": "kafka"
}
}

Messaging.CaaS.KafkaUser

A Kafka user account with ACL (Access Control List) permissions. Configures authentication and authorization for client access.

ParameterDescriptionExample / possible valuesRequired
aclsList of ACL rules defining topic/group access[]No
clusterNameName of the Kafka clusterkafka-clusterYes
namespaceKubernetes namespacekafkaYes

Example (fully parameterized):

{
"type": "Messaging.CaaS.KafkaUser",
"parameters": {
"acls": [],
"clusterName": "kafka-cluster",
"namespace": "kafka"
}
}

Messaging.SaaS.Unmanaged

A placeholder for external or pre-existing messaging platforms not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsmessaging-secretNo
secretValueThe secret value (connection string, credentials, etc.)secret-contentYes

Example (fully parameterized):

{
"type": "Messaging.SaaS.Unmanaged",
"parameters": {
"secretName": "",
"secretValue": "secret-content"
}
}

NetworkAndCompute

NetworkAndCompute.CaaS.ECSService

AWS ECS (Elastic Container Service) service that manages containerized workload replicas across an ECS cluster. Handles task placement and scaling.

ParameterDescriptionExample / possible valuesRequired
desiredCountNumber of task replicas to maintain1No
launchTypeCompute launch typeFARGATE, EC2No
assignPublicIpAssign public IP addresses to tasksfalseNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.CaaS.ECSService",
"parameters": {
"desiredCount": 1,
"launchType": "FARGATE",
"assignPublicIp": false
}
}

NetworkAndCompute.CaaS.ECSTaskDefinition

ECS task definition that specifies container images, resource allocation, logging, and environment configuration for containerized tasks.

ParameterDescriptionExample / possible valuesRequired
cpuCPU units allocated per task256, 512, 1024, 2048No
memoryMemory in MB allocated per task512, 1024, 2048No
networkModeDocker network modebridge, host, awsvpcNo
containerNameName of the container within the taskapp-containerNo
containerImageContainer image URI123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latestNo
containerPortPort number exposed by the container8080No
executionRoleArnIAM role ARN for ECS task executionarn:aws:iam::123456789012:role/ecsTaskExecutionRoleNo
taskRoleArnIAM role ARN for application inside containerarn:aws:iam::123456789012:role/ecsTaskRoleNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.CaaS.ECSTaskDefinition",
"parameters": {
"cpu": "256",
"memory": "512",
"networkMode": "awsvpc",
"containerName": "",
"containerImage": "",
"containerPort": 8080,
"executionRoleArn": "",
"taskRoleArn": ""
}
}

NetworkAndCompute.IaaS.AwsLoadBalancer

AWS Elastic Load Balancer (ALB/NLB) for distributing traffic across targets. Supports multiple availability zones and health checking.

ParameterDescriptionExample / possible valuesRequired
lbTypeLoad balancer typeapplication (ALB), network (NLB), classic (ELB)No
lbSchemeLoad balancer schemeinternet-facing, internalNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsLoadBalancer",
"parameters": {
"lbType": "",
"lbScheme": ""
}
}

NetworkAndCompute.IaaS.AwsSecurityGroup

AWS security group for controlling inbound and outbound network traffic. Framework-managed; custom rules are derived from component links.

ParameterDescriptionExample / possible valuesRequired
descriptionHuman-readable description of the security groupWeb tier accessNo
ingressRulesPre-defined ingress rules (custom rules via links)[]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsSecurityGroup",
"parameters": {
"description": "",
"ingressRules": []
}
}

NetworkAndCompute.IaaS.AwsSubnet

AWS VPC subnet for logical network segmentation. Configurable CIDR block and availability zone.

ParameterDescriptionExample / possible valuesRequired
cidrBlockCIDR block for the subnet10.0.1.0/24No
availabilityZoneAWS availability zoneus-east-1aNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsSubnet",
"parameters": {
"cidrBlock": "",
"availabilityZone": ""
}
}

NetworkAndCompute.IaaS.AwsVpc

AWS Virtual Private Cloud for network isolation and control. Provides the foundation for all VPC-based resources.

ParameterDescriptionExample / possible valuesRequired
cidrBlockCIDR block for the VPC10.0.0.0/16No
enableDnsSupportEnable DNS resolution within the VPCtrueNo
enableDnsHostnamesEnable DNS hostnames for EC2 instancestrueNo
instanceTenancyVPC tenancy modedefault, dedicated, hostNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.AwsVpc",
"parameters": {
"cidrBlock": "",
"enableDnsSupport": true,
"enableDnsHostnames": true,
"instanceTenancy": ""
}
}

NetworkAndCompute.IaaS.EC2

AWS EC2 virtual machine instance. Configurable instance type, AMI, and network settings.

ParameterDescriptionExample / possible valuesRequired
amiIdAmazon Machine Image IDami-0a123456789abcdefYes
instanceTypeEC2 instance typet3.medium, m5.large, c5.xlargeYes
keyNameEC2 key pair name for SSH accessmy-keypairNo
userDataUser data script (base64 or plain text)#!/bin/bash\necho "Hello"No
iamInstanceProfileIAM instance profile name/ARNec2-app-profileNo
associatePublicIpAssign public IP address to instancefalseNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.EC2",
"parameters": {
"amiId": "ami-0a123456789abcdef",
"instanceType": "t3.medium",
"keyName": "",
"userData": "",
"iamInstanceProfile": "",
"associatePublicIp": false
}
}

NetworkAndCompute.PaaS.ECS

AWS ECS cluster providing the orchestration platform for containerized workloads. Manages compute capacity and task scheduling.

No configurable parameters.

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.ECS",
"parameters": {}
}

NetworkAndCompute.PaaS.EKS

AWS Elastic Kubernetes Service (EKS) for managed Kubernetes orchestration. Handles control plane operations and node provisioning.

ParameterDescriptionExample / possible valuesRequired
kubernetesVersionKubernetes version1.28, 1.29, 1.30No
networkPolicyProviderNetwork policy enforcementcalico, cilium, aws-vpc-cniNo
nodePoolsList of node pool configurations[]No
workloadIdentityEnabledEnable IRSA (IAM Roles for Service Accounts)trueNo
privateClusterDisabledDisable private endpoint access to control planefalseNo
serviceIpRangeCIDR range for Kubernetes services10.100.0.0/16No
addonsList of EKS add-ons to install["vpc-cni", "kube-proxy", "coredns"]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.EKS",
"parameters": {
"kubernetesVersion": "",
"networkPolicyProvider": "",
"nodePools": [],
"workloadIdentityEnabled": true,
"privateClusterDisabled": false,
"serviceIpRange": "",
"addons": []
}
}

NetworkAndCompute.PaaS.Kubernetes

Generic Kubernetes cluster specification. Supports EKS and other managed Kubernetes services with consistent configuration.

ParameterDescriptionExample / possible valuesRequired
kubernetesVersionKubernetes version1.28, 1.29, 1.30No
networkPolicyProviderNetwork policy enforcementcalico, cilium, aws-vpc-cniNo
nodePoolsList of node pool configurations[]No
workloadIdentityEnabledEnable workload identity for pod authenticationtrueNo
privateClusterDisabledDisable private endpoint access to control planefalseNo
serviceIpRangeCIDR range for Kubernetes services10.100.0.0/16No
addonsList of add-ons to install[]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.Kubernetes",
"parameters": {
"kubernetesVersion": "",
"networkPolicyProvider": "",
"nodePools": [],
"workloadIdentityEnabled": true,
"privateClusterDisabled": false,
"serviceIpRange": "",
"addons": []
}
}

NetworkAndCompute.SaaS.Unmanaged

A placeholder for external or pre-existing compute/network solutions not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsnetwork-secretNo
secretValueThe secret value (credentials, connection string, etc.)secret-contentYes

Example (fully parameterized):

{
"type": "NetworkAndCompute.SaaS.Unmanaged",
"parameters": {
"secretName": "",
"secretValue": "secret-content"
}
}

Observability

Observability.CaaS.Elastic

Elasticsearch cluster on Kubernetes for indexing and searching large volumes of log and event data.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.10.0Yes
elasticInstancesNumber of Elasticsearch nodes3Yes
storageStorage size per node100GiYes
storageClassNameKubernetes storage class for persistent volumescluster defaultNo
memoryMemory in GB per Elasticsearch pod8No
cpuCPU cores per Elasticsearch pod8No
isApmRequiredDeploy APM (Application Performance Monitoring) serverfalseNo
isKibanaRequiredDeploy Kibana for visualizationtrueNo
secretsSecrets configuration map{}No
namespaceKubernetes namespaceelasticYes

Example (fully parameterized):

{
"type": "Observability.CaaS.Elastic",
"parameters": {
"elasticVersion": "8.10.0",
"elasticInstances": 3,
"storage": "100Gi",
"storageClassName": "",
"memory": 8,
"cpu": 8,
"isApmRequired": false,
"isKibanaRequired": true,
"secrets": {},
"namespace": "elastic"
}
}

Observability.CaaS.Jaeger

Jaeger distributed tracing system on Kubernetes for monitoring microservice interactions and latency analysis.

ParameterDescriptionExample / possible valuesRequired
storageClassNameKubernetes storage class for backend storagecluster defaultNo
storageSettingsBackend storage configuration (elasticsearch, cassandra){}No
namespaceKubernetes namespacejaegerYes

Example (fully parameterized):

{
"type": "Observability.CaaS.Jaeger",
"parameters": {
"storageClassName": "",
"storageSettings": {},
"namespace": "jaeger"
}
}

Observability.CaaS.Prometheus

Prometheus monitoring server on Kubernetes for scraping metrics and triggering alerts based on time-series data.

ParameterDescriptionExample / possible valuesRequired
grafanaConfigSecretIdSecret ID containing Grafana configurationgrafana-config-secretNo
namespaceKubernetes namespaceprometheusYes

Example (fully parameterized):

{
"type": "Observability.CaaS.Prometheus",
"parameters": {
"grafanaConfigSecretId": "",
"namespace": "prometheus"
}
}

Observability.SaaS.Elastic

Managed Elasticsearch service (e.g., Elastic Cloud) for log storage and analysis without self-hosting.

ParameterDescriptionExample / possible valuesRequired
kibanaUriURI to the Kibana dashboardhttps://kibana.example.comYes
versionElasticsearch version running on the service8.10.0Yes
operatorVersionOperator version managing the deployment2.8.0Yes

Example (fully parameterized):

{
"type": "Observability.SaaS.Elastic",
"parameters": {
"kibanaUri": "https://kibana.example.com",
"version": "8.10.0",
"operatorVersion": "2.8.0"
}
}

Observability.SaaS.Jaeger

Managed Jaeger service (e.g., Jaeger Cloud) for distributed tracing as a managed service.

ParameterDescriptionExample / possible valuesRequired
frontendUriURI to the Jaeger UIhttps://jaeger.example.comYes
versionJaeger version1.48.0Yes

Example (fully parameterized):

{
"type": "Observability.SaaS.Jaeger",
"parameters": {
"frontendUri": "https://jaeger.example.com",
"version": "1.48.0"
}
}

Observability.SaaS.Prometheus

Managed Prometheus service (e.g., AWS AMP - Amazon Managed Prometheus) for metrics collection and querying.

ParameterDescriptionExample / possible valuesRequired
apiGatewayUrlAPI endpoint for metrics ingestion and querieshttps://aps.us-east-1.amazonaws.com/Yes
grafanaConfigSecretIdSecret ID containing Grafana datasource configurationgrafana-amp-configYes

Example (fully parameterized):

{
"type": "Observability.SaaS.Prometheus",
"parameters": {
"apiGatewayUrl": "https://aps.us-east-1.amazonaws.com/",
"grafanaConfigSecretId": "grafana-amp-config"
}
}

Security

Security.CaaS.Ocelot

Ocelot API gateway on Kubernetes providing routing, authentication, rate limiting, and request/response transformation.

ParameterDescriptionExample / possible valuesRequired
hostHostname for the Ocelot gatewayapi.example.comYes
corsOriginsList of allowed CORS origins["https://example.com", "https://app.example.com"]No
cookieMaxAgeSecSession cookie max age in seconds900No
pathPrefixURL path prefix for routing/* or /api/*No
rolesList of authorization roles[]No
namespaceKubernetes namespaceocelotYes

Example (fully parameterized):

{
"type": "Security.CaaS.Ocelot",
"parameters": {
"host": "api.example.com",
"corsOrigins": [],
"cookieMaxAgeSec": 900,
"pathPrefix": "/*",
"roles": [],
"namespace": "ocelot"
}
}

Security.SaaS.Unmanaged

A placeholder for external or pre-existing security solutions not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialssecurity-secretNo
secretValueThe secret value (credentials, API key, etc.)secret-contentYes

Example (fully parameterized):

{
"type": "Security.SaaS.Unmanaged",
"parameters": {
"secretName": "",
"secretValue": "secret-content"
}
}

Storage

Storage.CaaS.CnpgCluster

CloudNativePG (CNPG) PostgreSQL cluster on Kubernetes. Provides HA PostgreSQL with automated backup, recovery, and failover.

ParameterDescriptionExample / possible valuesRequired
instancesNumber of PostgreSQL replicas3No
postgresqlVersionPostgreSQL version17.2No
storageSizePersistent volume size per instance10GiNo
storageClassKubernetes storage classcluster defaultNo
cpuRequestRequested CPU per PostgreSQL pod500mNo
cpuLimitMaximum CPU per PostgreSQL pod1No
memoryRequestRequested memory per PostgreSQL pod512MiNo
memoryLimitMaximum memory per PostgreSQL pod1GiNo
databaseDefault database nameappNo
databaseOwnerDefault database owner userappNo
enableSuperuserAccessEnable superuser access for the database ownerfalseNo
namespaceKubernetes namespacecnpgYes

Example (fully parameterized):

{
"type": "Storage.CaaS.CnpgCluster",
"parameters": {
"instances": 3,
"postgresqlVersion": "17.2",
"storageSize": "10Gi",
"storageClass": "",
"cpuRequest": "500m",
"cpuLimit": "1",
"memoryRequest": "512Mi",
"memoryLimit": "1Gi",
"database": "app",
"databaseOwner": "app",
"enableSuperuserAccess": false,
"namespace": "cnpg"
}
}

Storage.CaaS.CnpgDatabase

A database within a CNPG PostgreSQL cluster. Configurable name, owner, and locale settings.

ParameterDescriptionExample / possible valuesRequired
databaseNameName of the databaseapp or myapp_prodNo
databaseOwnerDatabase owner user nameapp_userNo
encodingCharacter encodingUTF8, LATIN1No
localeCollateCollation localeen_US.UTF-8No
localeCTypeCharacter type localeen_US.UTF-8No
cnpgClusterNameName of the parent CNPG clusterpostgres-clusterYes
namespaceKubernetes namespacecnpgYes

Example (fully parameterized):

{
"type": "Storage.CaaS.CnpgDatabase",
"parameters": {
"databaseName": "app",
"databaseOwner": "app",
"encoding": "UTF8",
"localeCollate": "",
"localeCType": "",
"cnpgClusterName": "postgres-cluster",
"namespace": "cnpg"
}
}

Storage.CaaS.Elastic

Elasticsearch cluster on Kubernetes for storage and indexing of documents and logs.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.10.0Yes
elasticInstancesNumber of Elasticsearch nodes3Yes
storageStorage size per node100GiYes
storageClassNameKubernetes storage classcluster defaultNo
memoryMemory in GB per Elasticsearch pod8No
cpuCPU cores per Elasticsearch pod8No
isApmRequiredInclude APM Server componentfalseNo
isKibanaRequiredInclude Kibana UI componenttrueNo
secretsAdditional secrets for configuration{}No
namespaceKubernetes namespaceelasticYes

Example (fully parameterized):

{
"type": "Storage.CaaS.Elastic",
"parameters": {
"elasticVersion": "8.10.0",
"elasticInstances": 3,
"storage": "100Gi",
"storageClassName": "",
"memory": 8,
"cpu": 8,
"isApmRequired": false,
"isKibanaRequired": true,
"secrets": {},
"namespace": "elastic"
}
}

Storage.CaaS.MinioTenant

MinIO object storage tenant on Kubernetes for S3-compatible distributed storage.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO release versionRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO servers4No
volumesPerServerNumber of volumes per server4No
volumeSizeStorage volume size100GiNo
storageClassKubernetes storage classcluster defaultNo
cpuRequestRequested CPU per server500mNo
cpuLimitMaximum CPU per server2No
memoryRequestRequested memory per server1GiNo
memoryLimitMaximum memory per server4GiNo
requestAutoCertAuto-generate TLS certificatestrueNo
namespaceKubernetes namespaceminioYes

Example (fully parameterized):

{
"type": "Storage.CaaS.MinioTenant",
"parameters": {
"minioVersion": "RELEASE.2025-03-12T18-04-18Z",
"servers": 4,
"volumesPerServer": 4,
"volumeSize": "100Gi",
"storageClass": "",
"cpuRequest": "500m",
"cpuLimit": "2",
"memoryRequest": "1Gi",
"memoryLimit": "4Gi",
"requestAutoCert": true,
"namespace": "minio"
}
}

Storage.PaaS.PostgreSqlDatabase

An RDS-managed PostgreSQL database within a DBMS instance. Configurable at the database level.

No configurable parameters.

Example (fully parameterized):

{
"type": "Storage.PaaS.PostgreSqlDatabase",
"parameters": {}
}

Storage.PaaS.PostgreSqlDbms

AWS RDS PostgreSQL database management system instance. Provides the managed database server with HA and backups.

No configurable parameters.

Example (fully parameterized):

{
"type": "Storage.PaaS.PostgreSqlDbms",
"parameters": {}
}

Storage.PaaS.S3

Amazon S3 object storage bucket for data persistence and archival.

ParameterDescriptionExample / possible valuesRequired
bucketS3 bucket name (globally unique identifier)my-data-bucket-12345Yes
versioningEnable object versioningfalseNo
forceDestroyAllow deletion of bucket with contentsfalseNo

Example (fully parameterized):

{
"type": "Storage.PaaS.S3",
"parameters": {
"bucket": "my-data-bucket-12345",
"versioning": false,
"forceDestroy": false
}
}

Storage.SaaS.Unmanaged

A placeholder for external or pre-existing storage systems not directly provisioned by Fractal Cloud.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the secret storing credentialsstorage-secretNo
secretValueThe secret value (credentials, connection string, etc.)secret-contentYes

Example (fully parameterized):

{
"type": "Storage.SaaS.Unmanaged",
"parameters": {
"secretName": "",
"secretValue": "secret-content"
}
}