Skip to main content

OCI Components

Reference for every Oracle Cloud Infrastructure (OCI) offer in the Fractal Cloud catalogue. Parameters and their required flags are sourced from the agent param contract; each offer includes a fully-parameterized JSON example.

APIManagement

APIManagement.CaaS.Ambassador

Ambassador is an open-source, Envoy-based API gateway deployed onto an OCI Kubernetes (OKE) cluster, providing edge routing, TLS termination, and authentication for containerized workloads.

ParameterDescriptionExample / possible valuesRequired
hostHostname the Ambassador edge serves traffic forambassador.example.comNo
hostOwnerEmailEmail address of the host owner, used for ACME certificate notificationsadmin@example.comYes
acmeProviderAuthorityACME certificate authority endpoint used to provision TLS certificateshttps://acme-v02.api.letsencrypt.org/directoryYes
tlsSecretNameKubernetes secret name holding the TLS certificate materialambassador-tls-secretYes
licenseKeyOptional Ambassador license key for commercial featureslicense-key-stringNo
namespaceKubernetes namespace where Ambassador is 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 deployed onto an OKE cluster, offering dynamic service discovery, TLS termination, OIDC-based authentication, and security-header enforcement.

ParameterDescriptionExample / possible valuesRequired
entryPointsList of network entry points (ports/protocols) Traefik listens on["web", "websecure"]Yes
hostnameHostname for the Traefik dashboard and routingtraefik.example.comNo
loadbalancerIpStatic IP 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 the OIDC client secretoidc-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 responses{}No
tlsCertificatesList of TLS certificate configurations[]No
tlsSettingsTLS settings such as minimum version and cipher suites{}No
tracingDistributed-tracing configuration{}No
namespaceKubernetes namespace where Traefik is deployedtraefikYes

Example (fully parameterized):

{
"type": "APIManagement.CaaS.Traefik",
"parameters": {
"entryPoints": ["web", "websecure"],
"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": {},
"tlsCertificates": [],
"tlsSettings": {},
"tracing": {},
"namespace": "traefik"
}
}

APIManagement.SaaS.Unmanaged

Represents an externally provisioned API-management resource that Fractal Cloud does not manage directly; it wires an out-of-band secret (e.g. a gateway endpoint or credential) into the live system.

ParameterDescriptionExample / possible valuesRequired
secretNameName under which the secret is storedapi-gateway-endpointNo
secretValueThe secret value to store (endpoint, token, or credential)https://gateway.example.comYes

Example (fully parameterized):

{
"type": "APIManagement.SaaS.Unmanaged",
"parameters": {
"secretName": "api-gateway-endpoint",
"secretValue": "https://gateway.example.com"
}
}

BigData

BigData.CaaS.MinioTenant

A MinIO tenant deployed onto an OKE cluster, providing S3-compatible object storage backed by per-server persistent volumes.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO image release tagRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO server pods in the tenant4No
volumesPerServerNumber of persistent volumes attached per server4No
volumeSizeSize of each persistent volume100GiNo
storageClassKubernetes storage class for the volumesoci-bvNo
cpuRequestCPU request per server pod500mNo
cpuLimitCPU limit per server pod2No
memoryRequestMemory request per server pod1GiNo
memoryLimitMemory limit per server pod4GiNo
requestAutoCertWhether MinIO should auto-generate TLS certificatestrueNo
namespaceKubernetes namespace where the tenant is deployedminioYes

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

A long-running Apache Spark cluster managed by the Spark Operator on an OKE cluster, with configurable driver and executor resourcing.

ParameterDescriptionExample / possible valuesRequired
sparkVersionApache Spark version3.5.3No
imageContainer image used for the Spark podsapache/spark:3.5.3No
driverCoresCPU cores for the Spark driver1No
driverMemoryMemory for the Spark driver1gNo
executorCoresCPU cores per Spark executor2No
executorMemoryMemory per Spark executor2gNo
executorInstancesNumber of Spark executor instances2No
sparkOperatorNameName of the Spark Operator instance that manages this clusterspark-operatorYes
namespaceKubernetes namespace where the cluster is deployedsparkYes

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 application (batch or scheduled) submitted via the Spark Operator on an OKE cluster. Supports one-shot and cron-scheduled execution with configurable driver/executor resourcing and retry behavior.

ParameterDescriptionExample / possible valuesRequired
typeApplication language/typeJava, Scala, Python, RNo
modeSpark deploy modecluster, clientNo
imageContainer image used to run the jobapache/spark:3.5.3No
mainClassFully qualified main class (JVM jobs)com.example.MyJobNo
mainApplicationFilePath/URI to the application artifactlocal:///opt/app/job.jarNo
argumentsList of application arguments["--input", "s3://bucket/in"]No
sparkVersionApache Spark version3.5.3No
sparkConfMap of additional Spark configuration entries{"spark.sql.shuffle.partitions": "200"}No
driverCoresCPU cores for the Spark driver1No
driverMemoryMemory for the Spark driver1gNo
executorCoresCPU cores per Spark executor2No
executorMemoryMemory per Spark executor2gNo
executorInstancesNumber of Spark executor instances2No
restartPolicyRestart policy for the jobNever, Always, OnFailureNo
maxRetriesMaximum number of retry attempts on failure3No
scheduleCron expression; when set, runs the job as a scheduled job0 2 * * *No
concurrencyPolicyConcurrency policy for scheduled runsForbid, Allow, ReplaceNo
sparkOperatorNameName of the Spark Operator instance that runs this jobspark-operatorYes
namespaceKubernetes namespace where the job runssparkYes

Example (fully parameterized):

{
"type": "BigData.CaaS.SparkJob",
"parameters": {
"type": "Java",
"mode": "cluster",
"image": "apache/spark:3.5.3",
"mainClass": "com.example.MyJob",
"mainApplicationFile": "local:///opt/app/job.jar",
"arguments": ["--input", "s3://bucket/in"],
"sparkVersion": "3.5.3",
"sparkConf": {"spark.sql.shuffle.partitions": "200"},
"driverCores": "1",
"driverMemory": "1g",
"executorCores": "2",
"executorMemory": "2g",
"executorInstances": 2,
"restartPolicy": "Never",
"maxRetries": 3,
"schedule": "0 2 * * *",
"concurrencyPolicy": "Forbid",
"sparkOperatorName": "spark-operator",
"namespace": "spark"
}
}

BigData.CaaS.SparkMlExperiment

An MLflow tracking server deployed onto an OKE cluster for recording Spark ML experiments, with configurable backend store and artifact root.

ParameterDescriptionExample / possible valuesRequired
mlflowVersionMLflow version2.21.3No
backendStoreUriBackend store URI for experiment metadatasqlite:///mlflow/mlflow.dbNo
artifactRootRoot path/URI where artifacts are stored/mlflow/artifactsNo
replicasNumber of MLflow server replicas2No
cpuRequestCPU request per replica250mNo
cpuLimitCPU limit per replica1No
memoryRequestMemory request per replica512MiNo
memoryLimitMemory limit per replica1GiNo
servicePortPort the MLflow service listens on5000No
namespaceKubernetes namespace where MLflow is deployedmlflowYes

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

The Kubernetes Spark Operator deployed onto an OKE cluster. It manages the lifecycle of Spark clusters and jobs and is a prerequisite for the SparkCluster and SparkJob offers.

ParameterDescriptionExample / possible valuesRequired
operatorVersionSpark Operator chart/image version2.5.0No
sparkVersionDefault Apache Spark version the operator targets3.5.3No
enableWebhookWhether to enable the mutating admission webhooktrueNo
enableMetricsWhether to expose operator metricstrueNo
namespaceKubernetes namespace where the operator is deployedspark-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

A Unity Catalog server deployed onto an OKE cluster, providing a unified catalog/metastore for Spark data assets.

ParameterDescriptionExample / possible valuesRequired
unityCatalogVersionUnity Catalog version0.3.0No
replicasNumber of catalog server replicas2No
cpuRequestCPU request per replica250mNo
cpuLimitCPU limit per replica1No
memoryRequestMemory request per replica512MiNo
memoryLimitMemory limit per replica1GiNo
namespaceKubernetes namespace where the catalog is deployedunity-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.SaaS.Unmanaged

Represents an externally provisioned big-data resource that Fractal Cloud does not manage directly; it wires an out-of-band secret (e.g. a connection string or token) into the live system.

ParameterDescriptionExample / possible valuesRequired
secretNameName under which the secret is storedbigdata-connectionNo
secretValueThe secret value to storejdbc://...Yes

Example (fully parameterized):

{
"type": "BigData.SaaS.Unmanaged",
"parameters": {
"secretName": "bigdata-connection",
"secretValue": "jdbc://..."
}
}

CustomWorkloads

CustomWorkloads.CaaS.KubernetesWorkload

A GitOps-driven custom workload deployed onto an OKE cluster. The agent syncs Kubernetes manifests from a Git repository (over SSH), wires in environment secrets and roles, and can enable OKE workload identity.

ParameterDescriptionExample / possible valuesRequired
sshRepositoryURISSH URI of the Git repository holding the workload manifestsgit@github.com:org/repo.gitYes
repoIdIdentifier of the repository within Fractal Cloudrepo-123Yes
branchNameGit branch to sync frommainYes
privateSSHKeySecretIdSecret id holding the private SSH keyssh-key-secret-idNo
privateSSHKeyEnvironmentSecretShortNameEnvironment secret short name for the private SSH keyssh-keyNo
privateSSHKeyPassphraseSecretIdSecret id holding the SSH key passphrasessh-passphrase-secret-idNo
privateSSHKeyPassphraseEnvironmentSecretShortNameEnvironment secret short name for the SSH key passphrasessh-passphraseNo
ciCdProfileShortNameShort name of the CI/CD profile to applydefault-cicdNo
environmentSecretShortNamesList of environment secret short names to inject["db-password", "api-token"]No
rolesList of roles to bind to the workload["reader", "writer"]No
workloadSecretIdKeyKey under which the workload secret id is referencedsecret-idNo
workloadSecretPasswordKeyKey under which the workload secret password is referencedsecret-passwordNo
workloadIdentityEnabledWhether OKE workload identity is enabledtrueNo
namespaceKubernetes namespace where the workload is deployedappsYes

Example (fully parameterized):

{
"type": "CustomWorkloads.CaaS.KubernetesWorkload",
"parameters": {
"sshRepositoryURI": "git@github.com:org/repo.git",
"repoId": "repo-123",
"branchName": "main",
"privateSSHKeySecretId": "ssh-key-secret-id",
"privateSSHKeyEnvironmentSecretShortName": "ssh-key",
"privateSSHKeyPassphraseSecretId": "ssh-passphrase-secret-id",
"privateSSHKeyPassphraseEnvironmentSecretShortName": "ssh-passphrase",
"ciCdProfileShortName": "default-cicd",
"environmentSecretShortNames": ["db-password", "api-token"],
"roles": ["reader", "writer"],
"workloadSecretIdKey": "secret-id",
"workloadSecretPasswordKey": "secret-password",
"workloadIdentityEnabled": true,
"namespace": "apps"
}
}

CustomWorkloads.SaaS.Unmanaged

Represents an externally provisioned custom workload that Fractal Cloud does not manage directly; it wires an out-of-band secret into the live system.

ParameterDescriptionExample / possible valuesRequired
secretNameName under which the secret is storedworkload-configNo
secretValueThe secret value to storesome-secret-valueYes

Example (fully parameterized):

{
"type": "CustomWorkloads.SaaS.Unmanaged",
"parameters": {
"secretName": "workload-config",
"secretValue": "some-secret-value"
}
}

Messaging

Messaging.CaaS.Kafka

A Strimzi-managed Apache Kafka cluster deployed onto an OKE cluster, with configurable broker count, resourcing, and per-broker storage.

ParameterDescriptionExample / possible valuesRequired
replicasNumber of Kafka broker replicas5No
kafkaVersionApache Kafka version4.2.0No
memoryRequestMemory request per broker16GiNo
memoryLimitMemory limit per broker32GiNo
cpuRequestCPU request per broker4No
cpuLimitCPU limit per broker8No
storageSizePersistent storage size per broker1TiNo
namespaceKubernetes namespace where Kafka is deployedkafkaYes

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 provisioned on a managed Kafka cluster, with configurable partition count, replication factor, and retention.

ParameterDescriptionExample / possible valuesRequired
partitionsNumber of topic partitions50No
replicasReplication factor for the topic2No
retentionMsMessage retention in milliseconds172800000No
clusterNameName of the Kafka cluster that hosts the topickafkaYes
namespaceKubernetes namespace of the Kafka clusterkafkaYes

Example (fully parameterized):

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

Messaging.CaaS.KafkaUser

A Kafka user (principal) provisioned on a managed Kafka cluster, with an optional set of ACLs governing topic and group access.

ParameterDescriptionExample / possible valuesRequired
aclsList of ACL rules granted to the user[{"resource": "topic", "operation": "Read"}]No
clusterNameName of the Kafka cluster the user belongs tokafkaYes
namespaceKubernetes namespace of the Kafka clusterkafkaYes

Example (fully parameterized):

{
"type": "Messaging.CaaS.KafkaUser",
"parameters": {
"acls": [{"resource": "topic", "operation": "Read"}],
"clusterName": "kafka",
"namespace": "kafka"
}
}

Messaging.SaaS.Unmanaged

Represents an externally provisioned messaging resource that Fractal Cloud does not manage directly; it wires an out-of-band secret (e.g. a broker connection string) into the live system.

ParameterDescriptionExample / possible valuesRequired
secretNameName under which the secret is storedkafka-bootstrapNo
secretValueThe secret value to storebroker.example.com:9092Yes

Example (fully parameterized):

{
"type": "Messaging.SaaS.Unmanaged",
"parameters": {
"secretName": "kafka-bootstrap",
"secretValue": "broker.example.com:9092"
}
}

NetworkAndCompute

NetworkAndCompute.IaaS.OciComputeInstance

A native OCI compute (VM) instance. Shape, image, SSH key, and cloud-init user data are all configurable; when omitted, defaults are resolved at reconcile time.

ParameterDescriptionExample / possible valuesRequired
availabilityZoneAvailability domain to place the instance inAD-1No
shapeOCI compute shapeVM.Standard.E4.FlexNo
imageIdOCID of the image to boot fromocid1.image.oc1..exampleuniqueIDNo
keyNameName of the SSH key to injectmy-ssh-keyNo
userDataCloud-init user data (base64 or plain script)#!/bin/bash\necho helloNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.OciComputeInstance",
"parameters": {
"availabilityZone": "",
"shape": "VM.Standard.E4.Flex",
"imageId": "",
"keyName": "",
"userData": ""
}
}

NetworkAndCompute.IaaS.OciLoadBalancer

A native OCI Load Balancer. The bandwidth shape and public/private placement are configurable.

ParameterDescriptionExample / possible valuesRequired
lbTypeLoad balancer bandwidth shape100Mbps, 400Mbps, 8000MbpsNo
isPrivateWhether the load balancer is private (no public IP)falseNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.OciLoadBalancer",
"parameters": {
"lbType": "100Mbps",
"isPrivate": false
}
}

NetworkAndCompute.IaaS.OciNetworkSecurityGroup

A native OCI Network Security Group (NSG). Carries an optional description and a list of ingress rules; when the description is omitted it defaults to the component id.

ParameterDescriptionExample / possible valuesRequired
descriptionHuman-readable description of the NSGweb-tier-nsgNo
ingressRulesList of ingress security rules[{"protocol": "tcp", "fromPort": 443, "toPort": 443}]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.OciNetworkSecurityGroup",
"parameters": {
"description": "web-tier-nsg",
"ingressRules": [{"protocol": "tcp", "fromPort": 443, "toPort": 443}]
}
}

NetworkAndCompute.IaaS.OciSubnet

A native OCI subnet within a VCN. The CIDR block may be provided explicitly or resolved automatically via IPAM at reconcile time.

ParameterDescriptionExample / possible valuesRequired
cidrBlockCIDR range for the subnet; resolved by IPAM when blank10.0.1.0/24No
availabilityZoneAvailability domain to place the subnet inAD-1No

Example (fully parameterized):

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

NetworkAndCompute.IaaS.OciVcn

A native OCI Virtual Cloud Network (VCN). The CIDR block may be provided explicitly or resolved automatically via IPAM at reconcile time.

ParameterDescriptionExample / possible valuesRequired
cidrBlockCIDR range for the VCN; resolved by IPAM when blank10.0.0.0/16No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.OciVcn",
"parameters": {
"cidrBlock": ""
}
}

NetworkAndCompute.PaaS.Kubernetes

An abstract managed-Kubernetes offer satisfied by OCI Container Engine for Kubernetes (OKE). The agent provisions and reconciles the cluster; no parameters are read from the component map.

No configurable parameters.

Example (fully parameterized):

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

NetworkAndCompute.PaaS.OKE

OCI Container Engine for Kubernetes (OKE), Oracle's managed Kubernetes service. The agent provisions and reconciles the cluster; no parameters are read from the component map.

No configurable parameters.

Example (fully parameterized):

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

NetworkAndCompute.PaaS.OciContainerInstance

A native OCI Container Instance — a serverless way to run a single container image without managing a cluster. CPU, memory, networking, and restart behavior are configurable.

ParameterDescriptionExample / possible valuesRequired
imageUrlContainer image URL to runregion.ocir.io/tenancy/app:1.0Conditional — required at reconcile time; reconcile fails when blank
ocpusNumber of OCPUs allocated1.0No
memoryInGBsMemory allocated, in GB2.0No
shapeContainer instance shapeCI.Standard.E4.FlexNo
portPort the container exposes8080No
availabilityDomainAvailability domain to place the instance inAD-1No
assignPublicIpWhether to assign a public IPfalseNo
containerRestartPolicyRestart policy for the container instanceALWAYS, NEVER, ON_FAILURENo

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.OciContainerInstance",
"parameters": {
"imageUrl": "region.ocir.io/tenancy/app:1.0",
"ocpus": 1.0,
"memoryInGBs": 2.0,
"shape": "CI.Standard.E4.Flex",
"port": 8080,
"availabilityDomain": "",
"assignPublicIp": false,
"containerRestartPolicy": "ALWAYS"
}
}

NetworkAndCompute.SaaS.Unmanaged

Represents an externally provisioned network/compute resource that Fractal Cloud does not manage directly; it wires an out-of-band secret into the live system.

ParameterDescriptionExample / possible valuesRequired
secretNameName under which the secret is storedexternal-endpointNo
secretValueThe secret value to storehttps://service.example.comYes

Example (fully parameterized):

{
"type": "NetworkAndCompute.SaaS.Unmanaged",
"parameters": {
"secretName": "external-endpoint",
"secretValue": "https://service.example.com"
}
}

Observability

Observability.CaaS.Elastic

An Elasticsearch stack deployed onto an OKE cluster via the Elastic (ECK) operator, optionally with Kibana and APM, for log and observability data.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.13.0Yes
elasticInstancesNumber of Elasticsearch node instances3Yes
storagePersistent storage size per node100GiYes
storageClassNameKubernetes storage class for the volumesoci-bvNo
memoryMemory per node, in GB8No
cpuCPU per node, in cores8No
isApmRequiredWhether to deploy the APM serverfalseNo
isKibanaRequiredWhether to deploy KibanatrueNo
secretsMap of additional secrets to mount{}No
namespaceKubernetes namespace where the stack is deployedobservabilityYes

Example (fully parameterized):

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

Observability.CaaS.Jaeger

A Jaeger distributed-tracing stack deployed onto an OKE cluster, with configurable persistent storage.

ParameterDescriptionExample / possible valuesRequired
storageClassNameKubernetes storage class for Jaeger storageoci-bvNo
storageSettingsMap of additional storage configuration{"size": "50Gi"}No
namespaceKubernetes namespace where Jaeger is deployedobservabilityYes

Example (fully parameterized):

{
"type": "Observability.CaaS.Jaeger",
"parameters": {
"storageClassName": "",
"storageSettings": {"size": "50Gi"},
"namespace": "observability"
}
}

Observability.CaaS.Prometheus

A Prometheus monitoring stack deployed onto an OKE cluster, optionally configured with Grafana settings from a referenced secret.

ParameterDescriptionExample / possible valuesRequired
grafanaConfigSecretIdSecret id holding Grafana configurationgrafana-config-secretNo
namespaceKubernetes namespace where Prometheus is deployedobservabilityYes

Example (fully parameterized):

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

Observability.SaaS.Elastic

A reference to an externally hosted Elastic/Kibana deployment, wired into the live system by its Kibana endpoint and version.

ParameterDescriptionExample / possible valuesRequired
kibanaUriURI of the external Kibana instancehttps://kibana.example.comYes
versionElastic stack version8.13.0Yes
operatorVersionElastic operator version2.12.0Yes

Example (fully parameterized):

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

Observability.SaaS.Jaeger

A reference to an externally hosted Jaeger deployment, wired into the live system by its frontend URI and version.

ParameterDescriptionExample / possible valuesRequired
frontendUriURI of the external Jaeger frontendhttps://jaeger.example.comYes
versionJaeger version1.57.0Yes

Example (fully parameterized):

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

Observability.SaaS.Prometheus

A reference to an externally hosted Prometheus/Grafana deployment, wired into the live system by its API gateway URL and a Grafana config secret.

ParameterDescriptionExample / possible valuesRequired
apiGatewayUrlURL of the external Prometheus API gatewayhttps://prometheus.example.comYes
grafanaConfigSecretIdSecret id holding Grafana configurationgrafana-config-secretYes

Example (fully parameterized):

{
"type": "Observability.SaaS.Prometheus",
"parameters": {
"apiGatewayUrl": "https://prometheus.example.com",
"grafanaConfigSecretId": "grafana-config-secret"
}
}

Security

Security.CaaS.Ocelot

Ocelot is an API gateway / BFF-style security layer deployed onto an OKE cluster, providing host-based routing, CORS, cookie/session handling, and role-based access control.

ParameterDescriptionExample / possible valuesRequired
hostHostname the Ocelot gateway servesgateway.example.comYes
corsOriginsList of allowed CORS origins["https://app.example.com"]No
cookieMaxAgeSecSession cookie max age, in seconds900No
pathPrefixPath prefix the gateway routes on/*No
rolesList of roles for access control["admin", "user"]No
namespaceKubernetes namespace where Ocelot is deployedsecurityYes

Example (fully parameterized):

{
"type": "Security.CaaS.Ocelot",
"parameters": {
"host": "gateway.example.com",
"corsOrigins": ["https://app.example.com"],
"cookieMaxAgeSec": 900,
"pathPrefix": "/*",
"roles": ["admin", "user"],
"namespace": "security"
}
}

Security.SaaS.Unmanaged

Represents an externally provisioned security resource that Fractal Cloud does not manage directly; it wires an out-of-band secret into the live system.

ParameterDescriptionExample / possible valuesRequired
secretNameName under which the secret is storedidp-client-secretNo
secretValueThe secret value to storesome-secret-valueYes

Example (fully parameterized):

{
"type": "Security.SaaS.Unmanaged",
"parameters": {
"secretName": "idp-client-secret",
"secretValue": "some-secret-value"
}
}

Storage

Storage.CaaS.CnpgCluster

A CloudNativePG (CNPG) PostgreSQL cluster deployed onto an OKE cluster, with configurable instance count, resourcing, storage, and a bootstrap database.

ParameterDescriptionExample / possible valuesRequired
instancesNumber of PostgreSQL instances (1 primary + replicas)3No
postgresqlVersionPostgreSQL version17.2No
storageSizePersistent storage size per instance10GiNo
storageClassKubernetes storage class for the volumesoci-bvNo
cpuRequestCPU request per instance500mNo
cpuLimitCPU limit per instance1No
memoryRequestMemory request per instance512MiNo
memoryLimitMemory limit per instance1GiNo
databaseName of the bootstrap databaseappNo
databaseOwnerOwner role of the bootstrap databaseappNo
enableSuperuserAccessWhether to enable the PostgreSQL superuserfalseNo
namespaceKubernetes namespace where the cluster is deployeddatabasesYes

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": "databases"
}
}

Storage.CaaS.CnpgDatabase

An additional database created within an existing CloudNativePG (CNPG) cluster, with configurable owner, encoding, and locale.

ParameterDescriptionExample / possible valuesRequired
databaseNameName of the database to createappNo
databaseOwnerOwner role of the databaseappNo
encodingCharacter encodingUTF8No
localeCollateCollation localeen_US.UTF-8No
localeCTypeCharacter-type localeen_US.UTF-8No
cnpgClusterNameName of the parent CNPG clustermy-cnpg-clusterYes
namespaceKubernetes namespace of the CNPG clusterdatabasesYes

Example (fully parameterized):

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

Storage.CaaS.Elastic

An Elasticsearch stack deployed onto an OKE cluster via the Elastic (ECK) operator, used here as a storage/search backend, optionally with Kibana and APM.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.13.0Yes
elasticInstancesNumber of Elasticsearch node instances3Yes
storagePersistent storage size per node100GiYes
storageClassNameKubernetes storage class for the volumesoci-bvNo
memoryMemory per node, in GB8No
cpuCPU per node, in cores8No
isApmRequiredWhether to deploy the APM serverfalseNo
isKibanaRequiredWhether to deploy KibanatrueNo
secretsMap of additional secrets to mount{}No
namespaceKubernetes namespace where the stack is deployeddatabasesYes

Example (fully parameterized):

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

Storage.CaaS.MinioTenant

A MinIO tenant deployed onto an OKE cluster, providing S3-compatible object storage backed by per-server persistent volumes.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO image release tagRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO server pods in the tenant4No
volumesPerServerNumber of persistent volumes attached per server4No
volumeSizeSize of each persistent volume100GiNo
storageClassKubernetes storage class for the volumesoci-bvNo
cpuRequestCPU request per server pod500mNo
cpuLimitCPU limit per server pod2No
memoryRequestMemory request per server pod1GiNo
memoryLimitMemory limit per server pod4GiNo
requestAutoCertWhether MinIO should auto-generate TLS certificatestrueNo
namespaceKubernetes namespace where the tenant is deployedminioYes

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.SaaS.Unmanaged

Represents an externally provisioned storage resource that Fractal Cloud does not manage directly; it wires an out-of-band secret (e.g. a connection string) into the live system.

ParameterDescriptionExample / possible valuesRequired
secretNameName under which the secret is storeddb-connectionNo
secretValueThe secret value to storepostgres://user:pass@host:5432/dbYes

Example (fully parameterized):

{
"type": "Storage.SaaS.Unmanaged",
"parameters": {
"secretName": "db-connection",
"secretValue": "postgres://user:pass@host:5432/db"
}
}