Skip to main content

GCP Components

Reference for every GCP 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 a Kubernetes-native API gateway deployed as a containerized workload, providing edge routing, TLS termination, and authentication services.

ParameterDescriptionExample / possible valuesRequired
hostHostname for the Ambassador service endpointapi.example.comNo
hostOwnerEmailEmail address of the host owner for certificate renewal notificationsadmin@example.comYes
acmeProviderAuthorityACME certificate authority URL for TLS automationhttps://acme-v02.api.letsencrypt.org/directoryYes
tlsSecretNameKubernetes secret name containing TLS certificate and keyambassador-tlsYes
licenseKeyAmbassador license key for commercial featureslicense-xxxx-xxxxNo
namespaceKubernetes namespace where Ambassador will be deployedambassadorYes

Example (fully parameterized):

{
"type": "APIManagement.CaaS.Ambassador",
"parameters": {
"host": "api.example.com",
"hostOwnerEmail": "admin@example.com",
"acmeProviderAuthority": "https://acme-v02.api.letsencrypt.org/directory",
"tlsSecretName": "ambassador-tls",
"licenseKey": "license-xxxx-xxxx",
"namespace": "ambassador"
}
}

APIManagement.CaaS.Traefik

Traefik is a modern reverse proxy and load balancer deployed as a Kubernetes workload, supporting dynamic routing, TLS termination, and OIDC-based authentication.

ParameterDescriptionExample / possible valuesRequired
entryPointsList of network endpoints (ports/protocols) for ingress traffic["http:8080", "https:8443"]Yes
hostnameHostname for the Traefik dashboard and servicetraefik.example.comNo
loadbalancerIpFixed IP address for the load balancer (if applicable)203.0.113.10No
oidcIssuerUrlOIDC provider issuer URL for authenticationConditional — part of the all-or-nothing OIDC config group
oidcClientIdOIDC application client IDConditional — part of the all-or-nothing OIDC config group
oidcClientSecretIdSecret manager reference for OIDC client secretConditional — part of the all-or-nothing OIDC config group
forwardAuthSecretIdSecret manager reference for forward authentication credentialsConditional — part of the all-or-nothing OIDC config group
securityHeadersSettingsMap of HTTP security headers to add to responses{}No
tlsCertificatesList of TLS certificate configurations[]No
tlsSettingsMap of TLS protocol and cipher settings{}No
tracingMap of distributed tracing configuration (Jaeger/Zipkin){}No
namespaceKubernetes namespace where Traefik will be deployedtraefikYes

Example (fully parameterized):

{
"type": "APIManagement.CaaS.Traefik",
"parameters": {
"entryPoints": ["http:8080", "https:8443"],
"hostname": "traefik.example.com",
"loadbalancerIp": "203.0.113.10",
"oidcIssuerUrl": "https://auth.example.com",
"oidcClientId": "traefik-client-id",
"oidcClientSecretId": "projects/my-project/secrets/traefik-secret",
"forwardAuthSecretId": "projects/my-project/secrets/fwd-auth",
"securityHeadersSettings": { "X-Frame-Options": "DENY" },
"tlsCertificates": [],
"tlsSettings": {},
"tracing": {},
"namespace": "traefik"
}
}

APIManagement.PaaS.ApiGateway

API Gateway is a managed service providing request routing, authentication, logging, and rate limiting for backend services.

ParameterDescriptionExample / possible valuesRequired
locationGCP region where the API Gateway is deployedeurope-west1No
apiConfigOpenAPI configuration document or inline API specificationapiVersion: openapi/v3.0.0...Yes

Example (fully parameterized):

{
"type": "APIManagement.PaaS.ApiGateway",
"parameters": {
"location": "europe-west1",
"apiConfig": "apiVersion: openapi/v3.0.0"
}
}

APIManagement.SaaS.Unmanaged

Unmanaged API management component, externally provisioned with credentials supplied at deployment time.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the externally managed secretexternal-api-managerNo
secretValueCredentials or configuration string for the external API management service{"endpoint": "https://api.example.com"}Yes

Example (fully parameterized):

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

BigData

BigData.CaaS.MinioTenant

MinIO is a high-performance object storage server deployed in Kubernetes, compatible with the S3 API and supporting distributed storage across multiple servers.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO release versionRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO server pods4No
volumesPerServerNumber of persistent volumes per server4No
volumeSizeSize of each volume100GiNo
storageClassKubernetes storage class for volumesstandardNo
cpuRequestCPU request per pod500mNo
cpuLimitCPU limit per pod2No
memoryRequestMemory request per pod1GiNo
memoryLimitMemory limit per pod4GiNo
requestAutoCertAutomatically request TLS certificatetrueNo
namespaceKubernetes namespace for deploymentminioYes

Example (fully parameterized):

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

BigData.CaaS.SparkCluster

SparkCluster is a Spark cluster deployed in Kubernetes using the Spark Operator, enabling distributed data processing.

ParameterDescriptionExample / possible valuesRequired
sparkVersionApache Spark version3.5.3No
imageDocker image URI for Spark drivers and executorsapache/spark:3.5.3No
driverCoresNumber of CPU cores for the Spark driver1No
driverMemoryMemory allocation for the Spark driver1gNo
executorCoresNumber of CPU cores per executor2No
executorMemoryMemory allocation per executor2gNo
executorInstancesNumber of executor pods2No
sparkOperatorNameName of the Spark Operator releasespark-operatorYes
namespaceKubernetes namespace for Spark resourcessparkYes

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

SparkJob is a Spark application submitted to a Kubernetes cluster, with optional scheduled execution via CronJob.

ParameterDescriptionExample / possible valuesRequired
typeJob type: Java, Python, R, or SQLJavaNo
modeJob execution mode: client or clusterclusterNo
imageDocker image for the Spark runtimeapache/spark:3.5.3No
mainClassFully-qualified Java main classcom.example.MyAppNo
mainApplicationFilePath to the JAR or Python scripts3://bucket/app.jarNo
argumentsList of command-line arguments for the application["--input", "s3://bucket/data"]No
sparkVersionApache Spark version3.5.3No
sparkConfMap of Spark configuration properties{"spark.executor.memory": "2g"}No
driverCoresNumber of CPU cores for the Spark driver1No
driverMemoryMemory allocation for the Spark driver1gNo
executorCoresNumber of CPU cores per executor2No
executorMemoryMemory allocation per executor2gNo
executorInstancesNumber of executor pods2No
restartPolicyKubernetes restart policy: Always, OnFailure, or NeverNeverNo
maxRetriesMaximum number of retries on failure3No
scheduleCron expression for scheduled execution (empty for one-time jobs)0 2 * * *No
concurrencyPolicyCron concurrency policy: Allow, Forbid, or ReplaceForbidNo
sparkOperatorNameName of the Spark Operator releasespark-operatorYes
namespaceKubernetes namespace for Spark resourcessparkYes

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"],
"sparkVersion": "3.5.3",
"sparkConf": {"spark.executor.memory": "2g"},
"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

SparkMlExperiment is an MLflow tracking server deployed in Kubernetes for experiment management, model versioning, and artifact storage.

ParameterDescriptionExample / possible valuesRequired
mlflowVersionMLflow server version2.21.3No
backendStoreUriBackend database URI for MLflow metadatasqlite:///mlflow/mlflow.dbNo
artifactRootArtifact store root path/mlflow/artifactsNo
replicasNumber of MLflow server replicas2No
cpuRequestCPU request per MLflow pod250mNo
cpuLimitCPU limit per MLflow pod1No
memoryRequestMemory request per MLflow pod512MiNo
memoryLimitMemory limit per MLflow pod1GiNo
servicePortPort for the MLflow service5000No
namespaceKubernetes namespace for MLflowmlflowYes

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

SparkOperator is the Kubernetes operator for Apache Spark, providing custom resource definitions and controllers for Spark cluster and job management.

ParameterDescriptionExample / possible valuesRequired
operatorVersionSpark Operator release version2.5.0No
sparkVersionDefault Apache Spark version for submitted jobs3.5.3No
enableWebhookEnable validating webhook for SparkApplication resourcestrueNo
enableMetricsEnable Prometheus metrics exporttrueNo
namespaceKubernetes namespace for the Spark Operatorspark-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

SparkUnityCatalog is the Unity Catalog metadata service for Apache Spark, enabling centralized governance of data assets across multiple compute environments.

ParameterDescriptionExample / possible valuesRequired
unityCatalogVersionUnity Catalog version0.3.0No
replicasNumber of Unity Catalog service replicas2No
cpuRequestCPU request per pod250mNo
cpuLimitCPU limit per pod1No
memoryRequestMemory request per pod512MiNo
memoryLimitMemory limit per pod1GiNo
namespaceKubernetes namespace for Unity Catalogunity-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.CloudStorage

CloudStorage is a managed object storage bucket in GCP Cloud Storage for data lake and archival use cases.

ParameterDescriptionExample / possible valuesRequired
bucketNameGCS bucket name (must be globally unique)my-data-lake-123No
regionGCP region or multi-region for the bucketEU, USNo
storageClassStorage class: STANDARD, NEARLINE, COLDLINE, ARCHIVESTANDARDNo
versioningEnabledEnable object versioningfalseNo
uniformBucketLevelAccessEnforce Uniform Bucket-Level Access (disable ACLs)trueNo

Example (fully parameterized):

{
"type": "BigData.PaaS.CloudStorage",
"parameters": {
"bucketName": "my-data-lake-123",
"region": "EU",
"storageClass": "STANDARD",
"versioningEnabled": false,
"uniformBucketLevelAccess": true
}
}

BigData.PaaS.Databricks

Databricks is a managed analytics platform providing unified data and AI capabilities on GCP.

ParameterDescriptionExample / possible valuesRequired
accountIdDatabricks account IDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxNo
pricingTierPricing tier: premium, standardpremiumNo
networkIdGCP network ID for private connectivityprojects/my-project/global/networks/my-vpcNo

Example (fully parameterized):

{
"type": "BigData.PaaS.Databricks",
"parameters": {
"accountId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"pricingTier": "premium",
"networkId": "projects/my-project/global/networks/my-vpc"
}
}

BigData.PaaS.DatabricksCluster

DatabricksCluster is a Databricks cluster with configurable compute resources and libraries for interactive analytics and development.

ParameterDescriptionExample / possible valuesRequired
clusterNameDisplay name for the clusteranalytics-clusterNo
sparkVersionDatabricks runtime version15.3.x-scala2.12No
nodeTypeIdGCP machine type for cluster nodesi3.xlargeNo
numWorkersInitial number of worker nodes2No
minWorkersMinimum number of worker nodes for autoscaling1No
maxWorkersMaximum number of worker nodes for autoscaling8No
sparkConfMap of Spark configuration properties{"spark.executor.memory": "4g"}No
pypiLibrariesList of PyPI packages to install["pandas==1.5.0", "numpy"]No
mavenLibrariesList of Maven/JAR dependencies["com.example:my-lib:1.0.0"]No
autoTerminationMinutesMinutes of inactivity before cluster auto-terminates60No
dataSecurityModeData access mode: SINGLE_USER, NONESINGLE_USERNo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksCluster",
"parameters": {
"clusterName": "analytics-cluster",
"sparkVersion": "15.3.x-scala2.12",
"nodeTypeId": "i3.xlarge",
"numWorkers": 2,
"minWorkers": 1,
"maxWorkers": 8,
"sparkConf": {"spark.executor.memory": "4g"},
"pypiLibraries": ["pandas==1.5.0", "numpy"],
"mavenLibraries": ["com.example:my-lib:1.0.0"],
"autoTerminationMinutes": 60,
"dataSecurityMode": "SINGLE_USER"
}
}

BigData.PaaS.DatabricksJob

DatabricksJob is a Databricks job for scheduled or on-demand execution of notebooks, Python scripts, or JAR files.

ParameterDescriptionExample / possible valuesRequired
jobNameDisplay name for the jobdaily-etlNo
taskTypeType of task: notebook, python_file, jarnotebookNo
notebookPathPath to the notebook in Databricks workspace/Users/user@example.com/ETLNo
pythonFileS3 path to a Python scripts3://bucket/job.pyNo
mainClassNameFully-qualified Java class with main() methodcom.example.MainNo
jarUriS3 path to a JAR files3://bucket/app.jarNo
parametersList of positional parameters for the job["--date", "2025-01-01"]No
cronScheduleCron expression for scheduling (empty for manual trigger)0 2 * * *No
maxRetriesMaximum number of retries on failure0No
existingClusterUse existing cluster instead of creating a new onefalseNo
artifactTypeType of artifact: WHLFILE, JARFILEJARFILENo
artifactUriS3 path to the artifacts3://bucket/artifact.jarNo
packageNamePython package name for package tasksmy.packageNo
entryPointEntry point function/method for package tasksmainNo
entryPointArgsArguments for the entry point["arg1", "arg2"]No

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksJob",
"parameters": {
"jobName": "daily-etl",
"taskType": "notebook",
"notebookPath": "/Users/user@example.com/ETL",
"pythonFile": "s3://bucket/job.py",
"mainClassName": "com.example.Main",
"jarUri": "s3://bucket/app.jar",
"parameters": ["--date", "2025-01-01"],
"cronSchedule": "0 2 * * *",
"maxRetries": 0,
"existingCluster": false,
"artifactType": "JARFILE",
"artifactUri": "s3://bucket/artifact.jar",
"packageName": "my.package",
"entryPoint": "main",
"entryPointArgs": ["arg1", "arg2"]
}
}

BigData.PaaS.DatabricksMlflowExperiment

DatabricksMlflowExperiment is an MLflow experiment within Databricks for tracking machine learning model training runs and artifacts.

ParameterDescriptionExample / possible valuesRequired
experimentNameDisplay name for the MLflow experimentmodel-trainingNo
artifactLocationCloud storage path for experiment artifactss3://bucket/mlflow-artifactsNo

Example (fully parameterized):

{
"type": "BigData.PaaS.DatabricksMlflowExperiment",
"parameters": {
"experimentName": "model-training",
"artifactLocation": "s3://bucket/mlflow-artifacts"
}
}

BigData.SaaS.Unmanaged

Unmanaged BigData component, externally provisioned with credentials supplied at deployment time.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the externally managed secretexternal-bigdata-serviceNo
secretValueCredentials or configuration string for the external BigData service{"connection_string": "..."}Yes

Example (fully parameterized):

{
"type": "BigData.SaaS.Unmanaged",
"parameters": {
"secretName": "external-bigdata-service",
"secretValue": "{\"connection_string\": \"...\"}"
}
}

CustomWorkloads

CustomWorkloads.CaaS.KubernetesWorkload

KubernetesWorkload is a containerized application deployed via GitOps, pulling manifests from a Git repository and applying them to the Kubernetes cluster.

ParameterDescriptionExample / possible valuesRequired
sshRepositoryURISSH URL of the Git repositorygit@github.com:org/repo.gitYes
repoIdUnique identifier for the repositoryorg-repoYes
branchNameGit branch to pull manifests frommain, developYes
privateSSHKeySecretIdGCP Secret Manager secret ID for SSH private keyprojects/my-project/secrets/ssh-keyNo
privateSSHKeyEnvironmentSecretShortNameEnvironment-based secret short name for SSH keySSH_KEYNo
privateSSHKeyPassphraseSecretIdSecret Manager ID for SSH key passphraseprojects/my-project/secrets/ssh-passphraseNo
privateSSHKeyPassphraseEnvironmentSecretShortNameEnvironment-based secret short name for passphraseSSH_PASSPHRASENo
ciCdProfileShortNameCI/CD profile identifier for build/push configurationdefault-profileNo
environmentSecretShortNamesList of environment secret names to inject["DB_PASSWORD", "API_KEY"]No
rolesList of Kubernetes RBAC roles to bind["viewer", "editor"]No
workloadSecretIdKeyJSON key containing workload identity secret IDsecret_idNo
workloadSecretPasswordKeyJSON key containing workload passwordpasswordNo
workloadIdentityEnabledEnable Kubernetes workload identity bindingtrueNo
namespaceKubernetes namespace for deploymentdefaultYes

Example (fully parameterized):

{
"type": "CustomWorkloads.CaaS.KubernetesWorkload",
"parameters": {
"sshRepositoryURI": "git@github.com:org/repo.git",
"repoId": "org-repo",
"branchName": "main",
"privateSSHKeySecretId": "projects/my-project/secrets/ssh-key",
"privateSSHKeyEnvironmentSecretShortName": "SSH_KEY",
"privateSSHKeyPassphraseSecretId": "projects/my-project/secrets/ssh-passphrase",
"privateSSHKeyPassphraseEnvironmentSecretShortName": "SSH_PASSPHRASE",
"ciCdProfileShortName": "default-profile",
"environmentSecretShortNames": ["DB_PASSWORD", "API_KEY"],
"roles": ["viewer", "editor"],
"workloadSecretIdKey": "secret_id",
"workloadSecretPasswordKey": "password",
"workloadIdentityEnabled": true,
"namespace": "default"
}
}

CustomWorkloads.FaaS.GoogleFunction

GoogleFunction is a serverless function deployed to Google Cloud Functions, triggered by HTTP requests or events.

ParameterDescriptionExample / possible valuesRequired
locationGCP region for the functioneurope-west1No
runtimeFunction runtime environmentjava21, java17, python312, nodejs20No
entryPointFunction class and method name (Java) or function name (other runtimes)MyFunction.myHandlerYes
sourceArtifactCloud Storage path to source artifact (preferred)gs://bucket/function.jarConditional — preferred source; required unless sourceBucket+sourceObject are supplied
sourceBucketCloud Storage bucket for legacy source specificationgs://bucketConditional — legacy source; required with sourceObject when sourceArtifact is absent
sourceObjectCloud Storage object path for legacy source specificationfunction.jarConditional — legacy source; required with sourceBucket when sourceArtifact is absent

Example (fully parameterized):

{
"type": "CustomWorkloads.FaaS.GoogleFunction",
"parameters": {
"location": "europe-west1",
"runtime": "java21",
"entryPoint": "MyFunction.myHandler",
"sourceArtifact": "gs://bucket/function.jar",
"sourceBucket": "gs://bucket",
"sourceObject": "function.jar"
}
}

CustomWorkloads.SaaS.Unmanaged

Unmanaged CustomWorkloads component, externally provisioned with credentials supplied at deployment time.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the externally managed secretexternal-workload-serviceNo
secretValueCredentials or configuration string for the external workload service{"endpoint": "https://api.example.com"}Yes

Example (fully parameterized):

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

Messaging

Messaging.CaaS.Kafka

Kafka is a distributed message broker deployed in Kubernetes, providing publish-subscribe and streaming capabilities.

ParameterDescriptionExample / possible valuesRequired
replicasNumber of Kafka broker replicas5No
kafkaVersionKafka broker version4.2.0No
memoryRequestMemory request per Kafka pod16GiNo
memoryLimitMemory limit per Kafka pod32GiNo
cpuRequestCPU request per Kafka pod4No
cpuLimitCPU limit per Kafka pod8No
storageSizePersistent volume size for Kafka data1TiNo
namespaceKubernetes namespace for Kafka deploymentkafkaYes

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

KafkaTopic is a topic in a Kafka cluster for publish-subscribe messaging.

ParameterDescriptionExample / possible valuesRequired
partitionsNumber of partitions for the topic50No
replicasReplication factor for topic partitions2No
retentionMsMessage retention time in milliseconds172800000 (2 days)No
clusterNameName of the Kafka cluster this topic belongs tokafka-clusterYes
namespaceKubernetes namespace where the topic is createdkafkaYes

Example (fully parameterized):

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

Messaging.CaaS.KafkaUser

KafkaUser is a user account with ACL permissions in a Kafka cluster for secure client authentication and authorization.

ParameterDescriptionExample / possible valuesRequired
aclsList of ACL entries defining permissions[{"resource": "TOPIC", "name": "my-topic", "operation": "READ"}]No
clusterNameName of the Kafka cluster this user belongs tokafka-clusterYes
namespaceKubernetes namespace where the user is createdkafkaYes

Example (fully parameterized):

{
"type": "Messaging.CaaS.KafkaUser",
"parameters": {
"acls": [{"resource": "TOPIC", "name": "my-topic", "operation": "READ"}],
"clusterName": "kafka-cluster",
"namespace": "kafka"
}
}

Messaging.PaaS.PubSub

No configurable parameters.

Example (fully parameterized):

{ "type": "Messaging.PaaS.PubSub", "parameters": {} }

Messaging.PaaS.PubSubTopic

No configurable parameters.

Example (fully parameterized):

{ "type": "Messaging.PaaS.PubSubTopic", "parameters": {} }

Messaging.PaaS.Subscription

Subscription is a message subscription in Google Cloud Pub/Sub for consuming published messages from a topic.

ParameterDescriptionExample / possible valuesRequired
topicNameName of the Pub/Sub topic to subscribe tomy-topicYes
ackDeadlineSecondsAcknowledgment deadline in seconds10No

Example (fully parameterized):

{
"type": "Messaging.PaaS.Subscription",
"parameters": {
"topicName": "my-topic",
"ackDeadlineSeconds": 10
}
}

Messaging.SaaS.Unmanaged

Unmanaged Messaging component, externally provisioned with credentials supplied at deployment time.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the externally managed secretexternal-messaging-serviceNo
secretValueCredentials or configuration string for the external messaging service{"broker_url": "..."}Yes

Example (fully parameterized):

{
"type": "Messaging.SaaS.Unmanaged",
"parameters": {
"secretName": "external-messaging-service",
"secretValue": "{\"broker_url\": \"...\"}"
}
}

NetworkAndCompute

NetworkAndCompute.CaaS.CloudRunService

CloudRunService is a managed containerized service deployed to Google Cloud Run with automatic scaling based on demand.

ParameterDescriptionExample / possible valuesRequired
imageContainer image URI (must be in Google Container Registry or Artifact Registry)gcr.io/my-project/my-service:latestNo
cpuCPU allocation per instance1, 2, 4No
memoryMemory allocation per instance512Mi, 1Gi, 2GiNo
portContainer port to listen on8080No
minInstancesMinimum number of instances0No
maxInstancesMaximum number of instances100No
concurrencyMaximum concurrent requests per instance80No
serviceAccountEmailGCP service account email for workload identitycloud-run-sa@my-project.iam.gserviceaccount.comNo
ingressTraffic ingress policy: all, internal, internal-and-cloud-armorallNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.CaaS.CloudRunService",
"parameters": {
"image": "gcr.io/my-project/my-service:latest",
"cpu": "1",
"memory": "512Mi",
"port": 8080,
"minInstances": 0,
"maxInstances": 100,
"concurrency": 80,
"serviceAccountEmail": "cloud-run-sa@my-project.iam.gserviceaccount.com",
"ingress": "all"
}
}

NetworkAndCompute.IaaS.GcpComputeInstance

GcpComputeInstance is a Compute Engine virtual machine instance in GCP.

ParameterDescriptionExample / possible valuesRequired
zoneGCP zone for the instanceConditional — defaults to the environment default zone when absent
machineTypeMachine type (e.g., n1-standard-1, e2-medium)e2-mediumNo
imageLinkCustom image URI or public image familyprojects/my-project/global/images/my-imageNo
keyDataSSH public key for authentication (PEM format)ssh-rsa AAAA...No
userDataStartup script to execute on instance boot#!/bin/bash\necho "Hello"No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GcpComputeInstance",
"parameters": {
"zone": "europe-west1-b",
"machineType": "e2-medium",
"imageLink": "projects/my-project/global/images/my-image",
"keyData": "ssh-rsa AAAA...",
"userData": "#!/bin/bash\necho \"Hello\""
}
}

NetworkAndCompute.IaaS.GcpFirewall

GcpFirewall is a firewall rule in GCP VPC, controlling ingress traffic to resources.

ParameterDescriptionExample / possible valuesRequired
descriptionHuman-readable description of the ruleConditional — defaults to the component id when absent
ingressRulesList of firewall ingress rules[{"protocol": "tcp", "ports": ["80", "443"]}]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GcpFirewall",
"parameters": {
"description": "Allow web traffic",
"ingressRules": [{"protocol": "tcp", "ports": ["80", "443"]}]
}
}

NetworkAndCompute.IaaS.GcpLoadBalancer

GcpLoadBalancer is an internal or external load balancer in GCP.

ParameterDescriptionExample / possible valuesRequired
lbSchemeLoad balancer scheme: INTERNAL, EXTERNALINTERNALNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GcpLoadBalancer",
"parameters": {
"lbScheme": "INTERNAL"
}
}

NetworkAndCompute.IaaS.GcpSecurityGroup

GcpSecurityGroup is a VPC firewall rule set in GCP, functionally equivalent to a security group.

ParameterDescriptionExample / possible valuesRequired
descriptionHuman-readable description of the security groupConditional — defaults to the component id when absent
ingressRulesList of firewall ingress rules[{"protocol": "tcp", "ports": ["22", "3389"]}]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GcpSecurityGroup",
"parameters": {
"description": "Allow RDP and SSH",
"ingressRules": [{"protocol": "tcp", "ports": ["22", "3389"]}]
}
}

NetworkAndCompute.IaaS.GcpSubnet

GcpSubnet is a subnetwork in a GCP VPC.

ParameterDescriptionExample / possible valuesRequired
cidrBlockCIDR block for the subnet (e.g., 10.0.1.0/24)10.0.1.0/24No
networkNameParent VPC network namemy-vpcNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GcpSubnet",
"parameters": {
"cidrBlock": "10.0.1.0/24",
"networkName": "my-vpc"
}
}

NetworkAndCompute.IaaS.GcpVirtualMachine

GcpVirtualMachine is a Compute Engine virtual machine instance in GCP.

ParameterDescriptionExample / possible valuesRequired
zoneGCP zone for the instanceConditional — defaults to the environment default zone when absent
machineTypeMachine type (e.g., n1-standard-1, e2-medium)e2-mediumNo
imageLinkCustom image URI or public image familyprojects/my-project/global/images/my-imageNo
keyDataSSH public key for authentication (PEM format)ssh-rsa AAAA...No
userDataStartup script to execute on instance boot#!/bin/bash\necho "Hello"No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GcpVirtualMachine",
"parameters": {
"zone": "europe-west1-b",
"machineType": "e2-medium",
"imageLink": "projects/my-project/global/images/my-image",
"keyData": "ssh-rsa AAAA...",
"userData": "#!/bin/bash\necho \"Hello\""
}
}

NetworkAndCompute.IaaS.GcpVpc

GcpVpc is a Virtual Private Cloud network in GCP.

ParameterDescriptionExample / possible valuesRequired
subnetModeSubnet creation mode: CUSTOM, AUTOCUSTOMNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GcpVpc",
"parameters": {
"subnetMode": "CUSTOM"
}
}

NetworkAndCompute.IaaS.GlobalLoadBalancer

GlobalLoadBalancer is a global load balancer with advanced traffic management capabilities in GCP.

ParameterDescriptionExample / possible valuesRequired
lbSchemeLoad balancer scheme: INTERNAL, EXTERNALINTERNALNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.GlobalLoadBalancer",
"parameters": {
"lbScheme": "INTERNAL"
}
}

NetworkAndCompute.IaaS.SecurityGroup

SecurityGroup is a VPC firewall rule set in GCP, functionally equivalent to a security group.

ParameterDescriptionExample / possible valuesRequired
descriptionHuman-readable description of the security groupConditional — defaults to the component id when absent
ingressRulesList of firewall ingress rules[{"protocol": "tcp", "ports": ["443"]}]No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.SecurityGroup",
"parameters": {
"description": "Allow HTTPS traffic",
"ingressRules": [{"protocol": "tcp", "ports": ["443"]}]
}
}

NetworkAndCompute.IaaS.VirtualMachine

VirtualMachine is a Compute Engine virtual machine instance in GCP.

ParameterDescriptionExample / possible valuesRequired
zoneGCP zone for the instanceConditional — defaults to the environment default zone when absent
machineTypeMachine type (e.g., n1-standard-1, e2-medium)e2-mediumNo
imageLinkCustom image URI or public image familyprojects/my-project/global/images/my-imageNo
keyDataSSH public key for authentication (PEM format)ssh-rsa AAAA...No
userDataStartup script to execute on instance boot#!/bin/bash\necho "Hello"No

Example (fully parameterized):

{
"type": "NetworkAndCompute.IaaS.VirtualMachine",
"parameters": {
"zone": "europe-west1-b",
"machineType": "e2-medium",
"imageLink": "projects/my-project/global/images/my-image",
"keyData": "ssh-rsa AAAA...",
"userData": "#!/bin/bash\necho \"Hello\""
}
}

NetworkAndCompute.PaaS.CloudRun

CloudRun is a managed platform for deploying containerized applications with automatic scaling.

ParameterDescriptionExample / possible valuesRequired
imageContainer image URI (must be in Google Container Registry or Artifact Registry)gcr.io/my-project/my-app:latestNo
cpuCPU allocation per instance1, 2, 4No
memoryMemory allocation per instance512Mi, 1Gi, 2GiNo
portContainer port to listen on8080No
minInstancesMinimum number of instances0No
maxInstancesMaximum number of instances100No
concurrencyMaximum concurrent requests per instance80No
serviceAccountEmailGCP service account email for workload identitycloud-run-sa@my-project.iam.gserviceaccount.comNo
ingressTraffic ingress policy: all, internal, internal-and-cloud-armorallNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.CloudRun",
"parameters": {
"image": "gcr.io/my-project/my-app:latest",
"cpu": "1",
"memory": "512Mi",
"port": 8080,
"minInstances": 0,
"maxInstances": 100,
"concurrency": 80,
"serviceAccountEmail": "cloud-run-sa@my-project.iam.gserviceaccount.com",
"ingress": "all"
}
}

NetworkAndCompute.PaaS.GKE

GKE is Google Kubernetes Engine, a managed Kubernetes cluster in GCP.

ParameterDescriptionExample / possible valuesRequired
networkNameVPC network name for the clustermy-vpcNo
networkPolicyProviderNetwork policy provider: CALICOCALICONo
masterIpv4CidrBlockCIDR block for the control plane172.16.0.0/28No
subnetworkIpRangeCIDR range for the subnetwork10.0.0.0/20No
nodePoolsList of node pool configurations[]No
subnetworkNameName of the subnetwork for the clustermy-subnetNo
podsRangeNameSecondary IP range name for podspods-rangeNo
servicesRangeNameSecondary IP range name for servicesservices-rangeNo
serviceIpRangeCIDR range for services172.20.0.0/16No
podIpRangeCIDR range for pods172.21.0.0/16No
priorityClassesList of priority class configurations[]No
windowsAdminUsernameWindows node pool admin usernameAdministratorNo
rolesList of Kubernetes RBAC roles[]No
kubernetesVersionKubernetes version (e.g., 1.27, 1.28)1.28No
workloadIdentityEnabledEnable Workload Identity for pod authenticationtrueNo
privateClusterDisabledDisable private cluster modefalseNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.GKE",
"parameters": {
"networkName": "my-vpc",
"networkPolicyProvider": "CALICO",
"masterIpv4CidrBlock": "172.16.0.0/28",
"subnetworkIpRange": "10.0.0.0/20",
"nodePools": [],
"subnetworkName": "my-subnet",
"podsRangeName": "pods-range",
"servicesRangeName": "services-range",
"serviceIpRange": "172.20.0.0/16",
"podIpRange": "172.21.0.0/16",
"priorityClasses": [],
"windowsAdminUsername": "Administrator",
"roles": [],
"kubernetesVersion": "1.28",
"workloadIdentityEnabled": true,
"privateClusterDisabled": false
}
}

NetworkAndCompute.PaaS.Kubernetes

Kubernetes is a generic Kubernetes cluster offering in GCP.

ParameterDescriptionExample / possible valuesRequired
networkNameVPC network name for the clustermy-vpcNo
networkPolicyProviderNetwork policy provider: CALICOCALICONo
masterIpv4CidrBlockCIDR block for the control plane172.16.0.0/28No
subnetworkIpRangeCIDR range for the subnetwork10.0.0.0/20No
nodePoolsList of node pool configurations[]No
subnetworkNameName of the subnetwork for the clustermy-subnetNo
podsRangeNameSecondary IP range name for podspods-rangeNo
servicesRangeNameSecondary IP range name for servicesservices-rangeNo
serviceIpRangeCIDR range for services172.20.0.0/16No
podIpRangeCIDR range for pods172.21.0.0/16No
priorityClassesList of priority class configurations[]No
windowsAdminUsernameWindows node pool admin usernameAdministratorNo
rolesList of Kubernetes RBAC roles[]No
kubernetesVersionKubernetes version (e.g., 1.27, 1.28)1.28No
workloadIdentityEnabledEnable Workload Identity for pod authenticationtrueNo
privateClusterDisabledDisable private cluster modefalseNo

Example (fully parameterized):

{
"type": "NetworkAndCompute.PaaS.Kubernetes",
"parameters": {
"networkName": "my-vpc",
"networkPolicyProvider": "CALICO",
"masterIpv4CidrBlock": "172.16.0.0/28",
"subnetworkIpRange": "10.0.0.0/20",
"nodePools": [],
"subnetworkName": "my-subnet",
"podsRangeName": "pods-range",
"servicesRangeName": "services-range",
"serviceIpRange": "172.20.0.0/16",
"podIpRange": "172.21.0.0/16",
"priorityClasses": [],
"windowsAdminUsername": "Administrator",
"roles": [],
"kubernetesVersion": "1.28",
"workloadIdentityEnabled": true,
"privateClusterDisabled": false
}
}

NetworkAndCompute.SaaS.Unmanaged

Unmanaged NetworkAndCompute component, externally provisioned with credentials supplied at deployment time.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the externally managed secretexternal-network-serviceNo
secretValueCredentials or configuration string for the external network service{"api_key": "..."}Yes

Example (fully parameterized):

{
"type": "NetworkAndCompute.SaaS.Unmanaged",
"parameters": {
"secretName": "external-network-service",
"secretValue": "{\"api_key\": \"...\"}"
}
}

Observability

Observability.CaaS.Elastic

Elastic (Elasticsearch) is a distributed search and analytics engine deployed in Kubernetes for log, metric, and trace storage.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.11.0Yes
elasticInstancesNumber of Elasticsearch data nodes3Yes
storageStorage allocation per node50GiYes
storageClassNameKubernetes storage class namefast-ssdNo
memoryMemory allocation per node (GB)8No
cpuCPU allocation per node (cores)8No
isApmRequiredDeploy APM server for application performance monitoringfalseNo
isKibanaRequiredDeploy Kibana for visualizationtrueNo
secretsMap of secret configurations (TLS certs, etc.){}No
namespaceKubernetes namespace for deploymentelasticYes

Example (fully parameterized):

{
"type": "Observability.CaaS.Elastic",
"parameters": {
"elasticVersion": "8.11.0",
"elasticInstances": 3,
"storage": "50Gi",
"storageClassName": "fast-ssd",
"memory": 8,
"cpu": 8,
"isApmRequired": false,
"isKibanaRequired": true,
"secrets": {},
"namespace": "elastic"
}
}

Observability.CaaS.Jaeger

Jaeger is a distributed tracing system deployed in Kubernetes for microservice observability.

ParameterDescriptionExample / possible valuesRequired
storageClassNameKubernetes storage class for backend storagestandardNo
storageSettingsMap of storage backend configuration{}No
namespaceKubernetes namespace for deploymentjaegerYes

Example (fully parameterized):

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

Observability.CaaS.Prometheus

Prometheus is a metrics collection and alerting system deployed in Kubernetes.

ParameterDescriptionExample / possible valuesRequired
grafanaConfigSecretIdGCP Secret Manager secret ID for Grafana configurationprojects/my-project/secrets/grafana-configNo
namespaceKubernetes namespace for deploymentprometheusYes

Example (fully parameterized):

{
"type": "Observability.CaaS.Prometheus",
"parameters": {
"grafanaConfigSecretId": "projects/my-project/secrets/grafana-config",
"namespace": "prometheus"
}
}

Observability.SaaS.Elastic

External Elastic (Elasticsearch) service with connection parameters.

ParameterDescriptionExample / possible valuesRequired
kibanaUriURI of the external Kibana instancehttps://kibana.example.comYes
versionElasticsearch version8.11.0Yes
operatorVersionElasticsearch Operator version2.12.0Yes

Example (fully parameterized):

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

Observability.SaaS.Jaeger

External Jaeger service with connection parameters.

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

Example (fully parameterized):

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

Observability.SaaS.Prometheus

External Prometheus service with connection parameters.

ParameterDescriptionExample / possible valuesRequired
apiGatewayUrlURL of the Prometheus API endpointhttps://prometheus.example.comYes
grafanaConfigSecretIdGCP Secret Manager secret ID for Grafana configurationprojects/my-project/secrets/grafana-configYes

Example (fully parameterized):

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

Security

Security.CaaS.Ocelot

Ocelot is an identity proxy deployed in Kubernetes, providing authentication and authorization for microservices.

ParameterDescriptionExample / possible valuesRequired
hostHostname/domain for the Ocelot serviceauth.example.comYes
corsOriginsList of allowed CORS origins["https://app.example.com"]No
cookieMaxAgeSecMaximum age of session cookies in seconds900No
pathPrefixURL path prefix for Ocelot endpoints/*No
rolesList of role configurations[]No
namespaceKubernetes namespace for deploymentocelotYes

Example (fully parameterized):

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

Security.SaaS.Unmanaged

Unmanaged Security component, externally provisioned with credentials supplied at deployment time.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the externally managed secretexternal-security-serviceNo
secretValueCredentials or configuration string for the external security service{"api_key": "..."}Yes

Example (fully parameterized):

{
"type": "Security.SaaS.Unmanaged",
"parameters": {
"secretName": "external-security-service",
"secretValue": "{\"api_key\": \"...\"}"
}
}

Storage

Storage.CaaS.CnpgCluster

CNPG (CloudNativePG) is a PostgreSQL cluster operator for Kubernetes, providing high-availability database management.

ParameterDescriptionExample / possible valuesRequired
instancesNumber of PostgreSQL replicas3No
postgresqlVersionPostgreSQL version17.2No
storageSizePersistent volume size for data10GiNo
storageClassKubernetes storage class namestandardNo
cpuRequestCPU request per pod500mNo
cpuLimitCPU limit per pod1No
memoryRequestMemory request per pod512MiNo
memoryLimitMemory limit per pod1GiNo
databaseDefault database nameappNo
databaseOwnerDatabase owner usernameappNo
enableSuperuserAccessEnable superuser account creationfalseNo
namespaceKubernetes namespace for deploymentcnpgYes

Example (fully parameterized):

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

Storage.CaaS.CnpgDatabase

CNPG Database is a logical database within a CNPG cluster.

ParameterDescriptionExample / possible valuesRequired
databaseNameDatabase nameappNo
databaseOwnerDatabase owner usernameappNo
encodingCharacter encodingUTF8No
localeCollateLocale for collation (e.g., en_US.UTF-8)en_US.UTF-8No
localeCTypeLocale for character typeen_US.UTF-8No
cnpgClusterNameName of the parent CNPG clusterpostgres-clusterYes
namespaceKubernetes namespace where the database is createdcnpgYes

Example (fully parameterized):

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

Storage.CaaS.Elastic

Elastic (Elasticsearch) is a distributed search and analytics engine deployed in Kubernetes for log, metric, and trace storage.

ParameterDescriptionExample / possible valuesRequired
elasticVersionElasticsearch version8.11.0Yes
elasticInstancesNumber of Elasticsearch data nodes3Yes
storageStorage allocation per node50GiYes
storageClassNameKubernetes storage class namefast-ssdNo
memoryMemory allocation per node (GB)8No
cpuCPU allocation per node (cores)8No
isApmRequiredDeploy APM server for application performance monitoringfalseNo
isKibanaRequiredDeploy Kibana for visualizationtrueNo
secretsMap of secret configurations (TLS certs, etc.){}No
namespaceKubernetes namespace for deploymentelasticYes

Example (fully parameterized):

{
"type": "Storage.CaaS.Elastic",
"parameters": {
"elasticVersion": "8.11.0",
"elasticInstances": 3,
"storage": "50Gi",
"storageClassName": "fast-ssd",
"memory": 8,
"cpu": 8,
"isApmRequired": false,
"isKibanaRequired": true,
"secrets": {},
"namespace": "elastic"
}
}

Storage.CaaS.MinioTenant

MinIO is a high-performance object storage server deployed in Kubernetes, compatible with the S3 API and supporting distributed storage across multiple servers.

ParameterDescriptionExample / possible valuesRequired
minioVersionMinIO release versionRELEASE.2025-03-12T18-04-18ZNo
serversNumber of MinIO server pods4No
volumesPerServerNumber of persistent volumes per server4No
volumeSizeSize of each volume100GiNo
storageClassKubernetes storage class for volumesstandardNo
cpuRequestCPU request per pod500mNo
cpuLimitCPU limit per pod2No
memoryRequestMemory request per pod1GiNo
memoryLimitMemory limit per pod4GiNo
requestAutoCertAutomatically request TLS certificatetrueNo
namespaceKubernetes namespace for deploymentminioYes

Example (fully parameterized):

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

Storage.PaaS.BigTable

BigTable is a managed wide-column database in GCP for high-throughput, low-latency NoSQL workloads.

ParameterDescriptionExample / possible valuesRequired
zoneGCP zone for the BigTable clustereurope-west1-bNo
clusterIdCluster identifier (auto-generated if not provided)<componentId>-c1Conditional — defaults to <componentId>-c1 when absent
nodesNumber of nodes in the cluster1No

Example (fully parameterized):

{
"type": "Storage.PaaS.BigTable",
"parameters": {
"zone": "europe-west1-b",
"clusterId": "my-cluster-c1",
"nodes": 1
}
}

Storage.PaaS.BigTableTable

BigTableTable is a table within a BigTable instance.

ParameterDescriptionExample / possible valuesRequired
instanceIdBigTable instance IDmy-instanceYes
columnFamiliesList of column family names["cf1"]No

Example (fully parameterized):

{
"type": "Storage.PaaS.BigTableTable",
"parameters": {
"instanceId": "my-instance",
"columnFamilies": ["cf1"]
}
}

Storage.PaaS.CloudStorage

CloudStorage is a managed object storage bucket in GCP Cloud Storage for data lake and archival use cases.

ParameterDescriptionExample / possible valuesRequired
bucketNameGCS bucket name (must be globally unique)my-data-bucket-456No
regionGCP region or multi-region for the bucketEU, USNo
storageClassStorage class: STANDARD, NEARLINE, COLDLINE, ARCHIVESTANDARDNo
versioningEnabledEnable object versioningfalseNo
uniformBucketLevelAccessEnforce Uniform Bucket-Level Access (disable ACLs)trueNo

Example (fully parameterized):

{
"type": "Storage.PaaS.CloudStorage",
"parameters": {
"bucketName": "my-data-bucket-456",
"region": "EU",
"storageClass": "STANDARD",
"versioningEnabled": false,
"uniformBucketLevelAccess": true
}
}

Storage.PaaS.Collection

Collection is a Firestore document collection (subcollection or root collection).

ParameterDescriptionExample / possible valuesRequired
databaseFirestore database name(default)No
pathPath to the collection (auto-set to component ID if absent)Conditional — defaults to the component id when absent

Example (fully parameterized):

{
"type": "Storage.PaaS.Collection",
"parameters": {
"database": "(default)",
"path": "/users"
}
}

Storage.PaaS.DataflowJob

DataflowJob is a Dataflow job for batch or streaming data processing.

ParameterDescriptionExample / possible valuesRequired
jobIdDataflow job ID (auto-generated if not provided)my-dataflow-jobNo
locationGCP region for the jobeurope-west1No

Example (fully parameterized):

{
"type": "Storage.PaaS.DataflowJob",
"parameters": {
"jobId": "my-dataflow-job",
"location": "europe-west1"
}
}

Storage.PaaS.Firestore

Firestore is a managed, serverless NoSQL document database in GCP.

ParameterDescriptionExample / possible valuesRequired
locationFirestore database location (eur3 = multi-region EU, us-central = US multi-region)eur3No
typeDatabase type: FIRESTORE_NATIVE or DATASTORE_MODEFIRESTORE_NATIVENo

Example (fully parameterized):

{
"type": "Storage.PaaS.Firestore",
"parameters": {
"location": "eur3",
"type": "FIRESTORE_NATIVE"
}
}

Storage.PaaS.PostgreSqlDatabase

PostgreSqlDatabase is a logical database within a Cloud SQL PostgreSQL instance.

ParameterDescriptionExample / possible valuesRequired
charsetCharacter set for the databaseUTF8No
collationCollation order for string comparisonen_US.UTF8No
createPostgresCredentialsAutomatically create postgres superuser credentialsfalseNo

Example (fully parameterized):

{
"type": "Storage.PaaS.PostgreSqlDatabase",
"parameters": {
"charset": "UTF8",
"collation": "en_US.UTF8",
"createPostgresCredentials": false
}
}

Storage.PaaS.PostgreSqlDbms

PostgreSqlDbms is a managed PostgreSQL database management system (instance) in GCP Cloud SQL.

ParameterDescriptionExample / possible valuesRequired
regionGCP region for the Cloud SQL instanceeurope-west1No

Example (fully parameterized):

{
"type": "Storage.PaaS.PostgreSqlDbms",
"parameters": {
"region": "europe-west1"
}
}

Storage.SaaS.Unmanaged

Unmanaged Storage component, externally provisioned with credentials supplied at deployment time.

ParameterDescriptionExample / possible valuesRequired
secretNameName of the externally managed secretexternal-storage-serviceNo
secretValueCredentials or configuration string for the external storage service{"connection_string": "..."}Yes

Example (fully parameterized):

{
"type": "Storage.SaaS.Unmanaged",
"parameters": {
"secretName": "external-storage-service",
"secretValue": "{\"connection_string\": \"...\"}"
}
}