#Configuration

This page explains how to think about Sandbox0Infra configuration and includes a generated field reference sourced from the operator CRD.

The goal is to keep the page readable for operators while still exposing the full supported config surface.

How to Read Sandbox0Infra#

A Sandbox0Infra spec is easier to reason about when you split it into five layers:

LayerMain fieldsWhat it controls
Platform releaseinfra-operator chart / image versionWhich sandbox0 component version to deploy
Core dependenciesspec.database, spec.juicefsDatabase, spec.storage, spec.registryPostgreSQL, JuiceFS metadata, object storage, registry integration
Topologyspec.services.*, spec.controlPlane, spec.cluster, spec.regionSingle-cluster vs multi-cluster shape and service placement
Public routingspec.publicExposure, spec.internalAuthPublic sandbox URLs and inter-service trust
Runtime bootstrapspec.builtinTemplates, spec.initUserDefault templates, warm pools, initial admin bootstrap
  1. Pick your topology with spec.services.*.
  2. Decide whether database/storage/registry stay builtin or move external.
  3. Configure public exposure and cluster identity.
  4. Seed templates and initial admin user.
  5. Only then tune per-service config blocks.

Deployment Profiles#

ProfileTypical fieldsUse when
Minimal single-clusterservices.internalGateway, services.managerLocal eval, API validation, fast first install
Full single-clusterAdd storage, registry, services.storageProxy, services.netdYou need persistent volumes, snapshots, or network controls
Multi-cluster control planeservices.edgeGateway, services.schedulerYou coordinate multiple data-plane clusters in one region
Multi-cluster data planecontrolPlane, cluster, services.internalGateway, services.manager, optional storageProxy/netdYou attach a cluster to an external control plane

Official sample manifests:

What Usually Changes First#

External PostgreSQL#

Move spec.database.type from builtin to external when you want managed PostgreSQL durability, backup policy, and operational separation.

yaml
spec: database: type: external external: host: your-db.rds.amazonaws.com port: 5432 database: sandbox0 username: sandbox0 passwordSecret: name: db-credentials key: password

S3 or OSS Backing Storage#

If you need persistent volume features in production, configure spec.storage and enable services.storageProxy.

yaml
spec: storage: type: s3 s3: bucket: sandbox0-prod region: us-east-1 endpoint: https://s3.amazonaws.com credentialsSecret: name: aws-credentials accessKeyKey: accessKeyId secretKeyKey: secretAccessKey services: storageProxy: enabled: true

Public Routing and Region Identity#

spec.publicExposure decides the public host pattern used for sandbox URLs. Keep it consistent with your region and DNS plan.

yaml
spec: publicExposure: enabled: true rootDomain: sandbox0.example.com regionId: aws-us-east-1

Multi-Cluster Data Plane Registration#

Data-plane clusters need control-plane connection details and a stable cluster identity.

yaml
spec: controlPlane: url: https://api.sandbox0.example.com internalAuthPublicKeySecret: name: control-plane-public-key key: public.key cluster: id: cluster-001 name: production-use1-a services: internalGateway: enabled: true config: authMode: internal manager: enabled: true

Service-Level Config#

spec.services.<service>.config is where you tune component-specific behavior after the topology is already correct.

Examples:

  • services.internalGateway.config.authMode switches between public, internal, and both
  • services.manager.config.autoscaler.* tunes pool scale behavior
  • services.storageProxy.config.juicefs* tunes JuiceFS behavior and cache sizing
  • services.netd.config.* controls proxy ports, policy enforcement, and node-level networking behavior

Use spec.sandboxNodePlacement for the shared node placement consumed by sandbox template Pods, netd, and k8s-plugin. The older services.netd.nodeSelector and services.netd.tolerations fields remain as compatibility aliases when the shared placement is unset.

Use the generated reference below for exact field names, defaults, enums, and required flags. Use the sample manifests for operator-friendly starting points.

Not every operational rule is expressible in CRD schema. Some defaults are applied at runtime inside services, and some validations are conditional. Examples include service runtime defaults in netd and conditional checks such as storage-proxy encryption requiring a key path.

Full Reference#

The reference below is generated from the Sandbox0Infra CRD schema produced by controller-gen, not manually maintained MDX.

This reference is generated from the `Sandbox0Infra` CRD schema. It stays aligned with defaults, enums, and required fields exposed by the operator, while deployment guidance on this page remains curated.

Database
spec.database
21 fields

Database configures the main database for sandbox0

FieldTypeRequiredDefaultDescription
spec.databaseobjectNo-Database configures the main database for sandbox0
spec.database.builtinobjectNo-Builtin configures the built-in single-node PostgreSQL
spec.database.builtin.databasestringNosandbox0Database specifies the database name
spec.database.builtin.enabledbooleanNotrueEnabled enables the built-in database
spec.database.builtin.imagestringNopostgres:16-alpineImage specifies the postgres image for the builtin database
spec.database.builtin.persistenceobjectNo-Persistence configures database storage
spec.database.builtin.persistence.enabledbooleanNotrueEnabled enables persistence
spec.database.builtin.persistence.sizeinteger|stringNo20GiSize specifies the storage size
spec.database.builtin.persistence.storageClassstringNo-StorageClass specifies the storage class (empty for default)
spec.database.builtin.portintegerNo5432Port specifies the database port
spec.database.builtin.sslModestringNodisableSSLMode specifies the SSL mode for builtin DSN
spec.database.builtin.usernamestringNosandbox0Username specifies the database username
spec.database.externalobjectNo-External configures connection to external database
spec.database.external.databasestringYes-Database specifies the database name
spec.database.external.hoststringYes-Host specifies the database host
spec.database.external.passwordSecretobjectYes-PasswordSecret references the secret containing the password
spec.database.external.passwordSecret.keystringNopasswordKey is the key in the secret
spec.database.external.passwordSecret.namestringNo-Name is the name of the secret
spec.database.external.portintegerNo5432Port specifies the database port
spec.database.external.sslModestringNorequireSSLMode specifies the SSL mode for connection
spec.database.external.usernamestringYes-Username specifies the database username
spec.database.typestringNobuiltinType specifies the postgres database type: builtin, or external Allowed values: builtin, external.
JuiceFS Metadata Database
spec.juicefsDatabase
10 fields

JuicefsDatabase configures the JuiceFS metadata database

FieldTypeRequiredDefaultDescription
spec.juicefsDatabaseobjectNo-JuicefsDatabase configures the JuiceFS metadata database
spec.juicefsDatabase.externalobjectNo-External configures an independent database for JuiceFS
spec.juicefsDatabase.external.databasestringYes-Database specifies the database name
spec.juicefsDatabase.external.hoststringYes-Host specifies the database host
spec.juicefsDatabase.external.passwordSecretobjectYes-PasswordSecret references the secret containing the password
spec.juicefsDatabase.external.passwordSecret.keystringNopasswordKey is the key in the secret
spec.juicefsDatabase.external.passwordSecret.namestringNo-Name is the name of the secret
spec.juicefsDatabase.external.portintegerNo5432Port specifies the database port
spec.juicefsDatabase.external.sslModestringNorequireSSLMode specifies the SSL mode for connection
spec.juicefsDatabase.external.usernamestringYes-Username specifies the database username
spec.juicefsDatabase.shareWithMainbooleanNotrueShareWithMain uses the main database for JuiceFS metadata
Storage
spec.storage
37 fields

Storage configures the storage backend (JuiceFS S3 backend)

FieldTypeRequiredDefaultDescription
spec.storageobjectNo-Storage configures the storage backend (JuiceFS S3 backend)
spec.storage.builtinobjectNo-Builtin configures the built-in RustFS storage
spec.storage.builtin.bucketstringNosandbox0Bucket specifies the default bucket name for builtin storage
spec.storage.builtin.consoleEnabledbooleanNotrueConsoleEnabled enables the RustFS console
spec.storage.builtin.consolePortintegerNo9001ConsolePort specifies the RustFS console port
spec.storage.builtin.credentialsobjectNo-Credentials configures access credentials (auto-generated if not specified)
spec.storage.builtin.credentials.accessKeystringNo-AccessKey is the access key
spec.storage.builtin.credentials.secretKeystringNo-SecretKey is the secret key
spec.storage.builtin.enabledbooleanNotrueEnabled enables the built-in storage
spec.storage.builtin.imagestringNorustfs/rustfs:1.0.0-alpha.79Image specifies the RustFS image for builtin storage
spec.storage.builtin.obsEnvironmentstringNodevelopObsEnvironment specifies the RustFS environment label
spec.storage.builtin.obsLogDirectorystringNo/data/logsObsLogDirectory specifies the RustFS log directory
spec.storage.builtin.obsLoggerLevelstringNodebugObsLoggerLevel specifies the RustFS log level
spec.storage.builtin.persistenceobjectNo-Persistence configures storage persistence
spec.storage.builtin.persistence.enabledbooleanNotrueEnabled enables persistence
spec.storage.builtin.persistence.sizeinteger|stringNo20GiSize specifies the storage size
spec.storage.builtin.persistence.storageClassstringNo-StorageClass specifies the storage class (empty for default)
spec.storage.builtin.portintegerNo9000Port specifies the RustFS API port
spec.storage.builtin.regionstringNous-east-1Region specifies the default region for builtin storage
spec.storage.builtin.volumesstringNo/dataVolumes specifies the RustFS data path
spec.storage.ossobjectNo-OSS configures Aliyun OSS storage
spec.storage.oss.bucketstringYes-Bucket specifies the OSS bucket name
spec.storage.oss.credentialsSecretobjectYes-CredentialsSecret references the secret containing Aliyun credentials
spec.storage.oss.credentialsSecret.accessKeyKeystringNoaccessKeyIdAccessKeyKey is the key for access key ID
spec.storage.oss.credentialsSecret.namestringYes-Name is the name of the secret
spec.storage.oss.credentialsSecret.secretKeyKeystringNoaccessKeySecretSecretKeyKey is the key for access key secret
spec.storage.oss.endpointstringYes-Endpoint specifies the OSS endpoint
spec.storage.oss.regionstringYes-Region specifies the Aliyun region
spec.storage.s3objectNo-S3 configures S3 or S3-compatible storage
spec.storage.s3.bucketstringYes-Bucket specifies the S3 bucket name
spec.storage.s3.credentialsSecretobjectYes-CredentialsSecret references the secret containing AWS credentials
spec.storage.s3.credentialsSecret.accessKeyKeystringNoaccessKeyIdAccessKeyKey is the key for access key ID
spec.storage.s3.credentialsSecret.namestringYes-Name is the name of the secret
spec.storage.s3.credentialsSecret.secretKeyKeystringNosecretAccessKeySecretKeyKey is the key for secret access key
spec.storage.s3.endpointstringNo-Endpoint specifies the S3 endpoint (optional for AWS)
spec.storage.s3.regionstringYes-Region specifies the AWS region
spec.storage.s3.sessionTokenKeystringNo-SessionTokenKey is the key for session token in the secret (optional)
spec.storage.typestringNobuiltinType specifies the storage type: builtin, s3, or oss Allowed values: builtin, s3, oss.
Registry
spec.registry
73 fields

Registry configures the container registry

FieldTypeRequiredDefaultDescription
spec.registryobjectNo-Registry configures the container registry
spec.registry.aliyunobjectNo-Aliyun configures Aliyun registry integration.
spec.registry.aliyun.credentialsSecretobjectYes-CredentialsSecret references Aliyun credentials for short-lived tokens.
spec.registry.aliyun.credentialsSecret.accessKeyKeystringNoaccessKeyIdAccessKeyKey is the key for access key ID.
spec.registry.aliyun.credentialsSecret.namestringYes-Name is the name of the secret.
spec.registry.aliyun.credentialsSecret.secretKeyKeystringNoaccessKeySecretSecretKeyKey is the key for secret access key.
spec.registry.aliyun.instanceIdstringYes-InstanceID specifies the ACR instance ID.
spec.registry.aliyun.pullSecretobjectYes-PullSecret references the dockerconfigjson secret to use for image pulls.
spec.registry.aliyun.pullSecret.keystringNo.dockerconfigjsonKey is the key in the secret.
spec.registry.aliyun.pullSecret.namestringYes-Name is the name of the secret.
spec.registry.aliyun.regionstringYes-Region specifies the Aliyun region.
spec.registry.aliyun.registrystringYes-Registry specifies the registry hostname.
spec.registry.awsobjectNo-AWS configures AWS registry integration.
spec.registry.aws.credentialsSecretobjectYes-CredentialsSecret references AWS credentials for short-lived tokens.
spec.registry.aws.credentialsSecret.accessKeyKeystringNoaccessKeyIdAccessKeyKey is the key for access key ID.
spec.registry.aws.credentialsSecret.namestringYes-Name is the name of the secret.
spec.registry.aws.credentialsSecret.secretKeyKeystringNosecretAccessKeySecretKeyKey is the key for secret access key.
spec.registry.aws.credentialsSecret.sessionTokenKeystringNo-SessionTokenKey is the key for session token (optional).
spec.registry.aws.pullSecretobjectYes-PullSecret references the dockerconfigjson secret to use for image pulls.
spec.registry.aws.pullSecret.keystringNo.dockerconfigjsonKey is the key in the secret.
spec.registry.aws.pullSecret.namestringYes-Name is the name of the secret.
spec.registry.aws.regionstringYes-Region specifies the AWS region.
spec.registry.aws.registrystringNo-Registry specifies the registry hostname.
spec.registry.aws.registryIdstringNo-RegistryID specifies the AWS account ID (optional).
spec.registry.azureobjectNo-Azure configures Azure registry integration.
spec.registry.azure.credentialsSecretobjectYes-CredentialsSecret references the client credentials for ACR.
spec.registry.azure.credentialsSecret.clientIdKeystringNoclientIdClientIDKey is the key for client ID.
spec.registry.azure.credentialsSecret.clientSecretKeystringNoclientSecretClientSecretKey is the key for client secret.
spec.registry.azure.credentialsSecret.namestringYes-Name is the name of the secret.
spec.registry.azure.credentialsSecret.tenantIdKeystringNotenantIdTenantIDKey is the key for tenant ID.
spec.registry.azure.pullSecretobjectYes-PullSecret references the dockerconfigjson secret to use for image pulls.
spec.registry.azure.pullSecret.keystringNo.dockerconfigjsonKey is the key in the secret.
spec.registry.azure.pullSecret.namestringYes-Name is the name of the secret.
spec.registry.azure.registrystringYes-Registry specifies the registry hostname.
spec.registry.builtinobjectNo-Builtin configures the built-in registry.
spec.registry.builtin.credentialsSecretobjectNo-CredentialsSecret references the secret containing registry credentials. If omitted, the operator will generate a secret named "<infra-name>-registry-credentials".
spec.registry.builtin.credentialsSecret.namestringYes-Name is the name of the secret.
spec.registry.builtin.credentialsSecret.passwordKeystringNopasswordPasswordKey is the key for password.
spec.registry.builtin.credentialsSecret.usernameKeystringNousernameUsernameKey is the key for username.
spec.registry.builtin.enabledbooleanNotrueEnabled enables the built-in registry.
spec.registry.builtin.imagestringNoregistry:2.8.3Image specifies the registry image.
spec.registry.builtin.ingressobjectNo-Ingress configures ingress settings for external registry access.
spec.registry.builtin.ingress.classNamestringNo-ClassName specifies the ingress class name
spec.registry.builtin.ingress.enabledbooleanNofalseEnabled enables ingress
spec.registry.builtin.ingress.hoststringNo-Host specifies the ingress host
spec.registry.builtin.ingress.tlsSecretstringNo-TLSSecret specifies the TLS secret name
spec.registry.builtin.persistenceobjectNo-Persistence configures registry persistence.
spec.registry.builtin.persistence.enabledbooleanNotrueEnabled enables persistence
spec.registry.builtin.persistence.sizeinteger|stringNo20GiSize specifies the storage size
spec.registry.builtin.persistence.storageClassstringNo-StorageClass specifies the storage class (empty for default)
spec.registry.builtin.portintegerNo5000Port specifies the registry port.
spec.registry.builtin.pushEndpointstringNo-PushEndpoint overrides the external registry endpoint used for image push credentials. Use host[:port] format, without scheme.
spec.registry.builtin.serviceobjectNo-Service configures the registry service exposure.
spec.registry.builtin.service.portintegerNo80Port specifies the service port
spec.registry.builtin.service.typestringNoClusterIPType specifies the service type
spec.registry.gcpobjectNo-GCP configures GCP registry integration.
spec.registry.gcp.pullSecretobjectYes-PullSecret references the dockerconfigjson secret to use for image pulls.
spec.registry.gcp.pullSecret.keystringNo.dockerconfigjsonKey is the key in the secret.
spec.registry.gcp.pullSecret.namestringYes-Name is the name of the secret.
spec.registry.gcp.registrystringYes-Registry specifies the registry hostname.
spec.registry.gcp.serviceAccountSecretobjectYes-ServiceAccountSecret references the service account JSON key.
spec.registry.gcp.serviceAccountSecret.keystringNoserviceAccount.jsonKey is the key in the secret.
spec.registry.gcp.serviceAccountSecret.namestringYes-Name is the name of the secret.
spec.registry.harborobjectNo-Harbor configures Harbor registry integration.
spec.registry.harbor.credentialsSecretobjectYes-CredentialsSecret references Harbor credentials for push authentication.
spec.registry.harbor.credentialsSecret.namestringYes-Name is the name of the secret.
spec.registry.harbor.credentialsSecret.passwordKeystringNopasswordPasswordKey is the key for password.
spec.registry.harbor.credentialsSecret.usernameKeystringNousernameUsernameKey is the key for username.
spec.registry.harbor.pullSecretobjectYes-PullSecret references the dockerconfigjson secret to use for image pulls.
spec.registry.harbor.pullSecret.keystringNo.dockerconfigjsonKey is the key in the secret.
spec.registry.harbor.pullSecret.namestringYes-Name is the name of the secret.
spec.registry.harbor.registrystringYes-Registry specifies the registry hostname.
spec.registry.imagePullSecretNamestringNosandbox0-registry-pullImagePullSecretName is the secret name to create in template namespaces.
spec.registry.providerstringNobuiltinProvider specifies the registry provider: builtin, aws, gcp, azure, aliyun, or harbor.
Control Plane
spec.controlPlane
4 fields

ControlPlane configures external control plane connection.

FieldTypeRequiredDefaultDescription
spec.controlPlaneobjectNo-ControlPlane configures external control plane connection.
spec.controlPlane.internalAuthPublicKeySecretobjectYes-InternalAuthPublicKeySecret references the secret containing control plane's public key
spec.controlPlane.internalAuthPublicKeySecret.keystringNopasswordKey is the key in the secret
spec.controlPlane.internalAuthPublicKeySecret.namestringNo-Name is the name of the secret
spec.controlPlane.urlstringYes-URL is the control plane edge-gateway URL
Internal Auth
spec.internalAuth
12 fields

InternalAuth configures internal authentication keys

FieldTypeRequiredDefaultDescription
spec.internalAuthobjectNo-InternalAuth configures internal authentication keys
spec.internalAuth.controlPlaneobjectNo-ControlPlane configures control plane key pair
spec.internalAuth.controlPlane.generatebooleanNotrueGenerate enables automatic key generation
spec.internalAuth.controlPlane.secretRefobjectNo-SecretRef references an existing secret containing the key pair
spec.internalAuth.controlPlane.secretRef.namestringYes-Name is the name of the secret
spec.internalAuth.controlPlane.secretRef.privateKeyKeystringNoprivate.keyPrivateKeyKey is the key for private key
spec.internalAuth.controlPlane.secretRef.publicKeyKeystringNopublic.keyPublicKeyKey is the key for public key
spec.internalAuth.dataPlaneobjectNo-DataPlane configures data plane key pair
spec.internalAuth.dataPlane.generatebooleanNotrueGenerate enables automatic key generation
spec.internalAuth.dataPlane.secretRefobjectNo-SecretRef references an existing secret containing the key pair
spec.internalAuth.dataPlane.secretRef.namestringYes-Name is the name of the secret
spec.internalAuth.dataPlane.secretRef.privateKeyKeystringNoprivate.keyPrivateKeyKey is the key for private key
spec.internalAuth.dataPlane.secretRef.publicKeyKeystringNopublic.keyPublicKeyKey is the key for public key
Public Exposure
spec.publicExposure
3 fields

PublicExposure configures public URL exposure for sandboxes

FieldTypeRequiredDefaultDescription
spec.publicExposureobjectNo-PublicExposure configures public URL exposure for sandboxes
spec.publicExposure.enabledbooleanNotrueEnabled enables public exposure routing
spec.publicExposure.regionIdstringNoaws-us-east-1RegionID is the DNS-safe region label used in public URLs. It is not the canonical multi-region tenancy identifier.
spec.publicExposure.rootDomainstringNosandbox0.appRootDomain is the root domain for public exposure URLs
Cluster
spec.cluster
10 fields

Cluster configures cluster identification and capacity

FieldTypeRequiredDefaultDescription
spec.clusterobjectNo-Cluster configures cluster identification and capacity
spec.cluster.capacityobjectNo-Capacity specifies cluster resource capacity
spec.cluster.capacity.cpuobjectNo-CPU specifies CPU capacity
spec.cluster.capacity.cpu.availablestringNo-Available is the available capacity
spec.cluster.capacity.cpu.totalstringNo-Total is the total capacity
spec.cluster.capacity.maxSandboxesintegerNo-MaxSandboxes is the maximum number of sandboxes
spec.cluster.capacity.memoryobjectNo-Memory specifies memory capacity
spec.cluster.capacity.memory.availablestringNo-Available is the available capacity
spec.cluster.capacity.memory.totalstringNo-Total is the total capacity
spec.cluster.idstringYes-ID is the unique cluster identifier
spec.cluster.namestringNo-Name is the human-readable cluster name
Initial Admin User
spec.initUser
5 fields

InitUser configures the initial admin user

FieldTypeRequiredDefaultDescription
spec.initUserobjectNo-InitUser configures the initial admin user
spec.initUser.emailstringNo-Email is the admin user's email
spec.initUser.namestringNo-Name is the admin user's display name
spec.initUser.passwordSecretobjectNo-PasswordSecret references the secret containing the password
spec.initUser.passwordSecret.keystringNopasswordKey is the key in the secret
spec.initUser.passwordSecret.namestringNo-Name is the name of the secret
Builtin Templates
spec.builtinTemplates
8 fields

BuiltinTemplates defines system builtin templates to seed the template store

FieldTypeRequiredDefaultDescription
spec.builtinTemplatesarray<object>No[]BuiltinTemplates defines system builtin templates to seed the template store
spec.builtinTemplates[]objectNo-BuiltinTemplateConfig defines a system builtin template.
spec.builtinTemplates[].descriptionstringNo--
spec.builtinTemplates[].displayNamestringNo--
spec.builtinTemplates[].imagestringNo--
spec.builtinTemplates[].poolobjectNo-BuiltinTemplatePoolConfig holds pool defaults for builtin templates.
spec.builtinTemplates[].pool.maxIdleintegerNo5-
spec.builtinTemplates[].pool.minIdleintegerNo1-
spec.builtinTemplates[].templateIdstringYes--
Sandbox Node Placement
spec.sandboxNodePlacement
8 fields

SandboxNodePlacement configures the shared node placement used by sandbox workloads and node-local sandbox services.

FieldTypeRequiredDefaultDescription
spec.sandboxNodePlacementobjectNo-SandboxNodePlacement configures the shared node placement used by sandbox workloads and node-local sandbox services.
spec.sandboxNodePlacement.nodeSelectorobjectNo-NodeSelector constrains sandbox workloads and node-local sandbox services onto a specific node set.
spec.sandboxNodePlacement.tolerationsarray<object>No-Tolerations allow sandbox workloads and node-local sandbox services to run on tainted sandbox nodes.
spec.sandboxNodePlacement.tolerations[]objectNo-The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
spec.sandboxNodePlacement.tolerations[].effectstringNo-Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
spec.sandboxNodePlacement.tolerations[].keystringNo-Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
spec.sandboxNodePlacement.tolerations[].operatorstringNo-Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
spec.sandboxNodePlacement.tolerations[].tolerationSecondsintegerNo-TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
spec.sandboxNodePlacement.tolerations[].valuestringNo-Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
Service: edgeGateway
spec.services.edgeGateway
65 fields

EdgeGateway configures the edge-gateway service (control plane)

FieldTypeRequiredDefaultDescription
spec.services.edgeGatewayobjectNo-EdgeGateway configures the edge-gateway service (control plane)
spec.services.edgeGateway.configobjectNo-Config contains edge-gateway specific configuration
spec.services.edgeGateway.config.authModestringNoself_hostedAuthMode controls how human-facing authentication is handled. Allowed values: "self_hosted", "federated_global". Allowed values: self_hosted, federated_global.
spec.services.edgeGateway.config.baseUrlstringNohttp://localhost:8080Base URL for OIDC callbacks
spec.services.edgeGateway.config.builtInAuthobjectNo-Built-in Authentication
spec.services.edgeGateway.config.builtInAuth.adminOnlybooleanNo-AdminOnly restricts built-in auth to admin accounts only
spec.services.edgeGateway.config.builtInAuth.allowRegistrationbooleanNo-AllowRegistration allows new users to register
spec.services.edgeGateway.config.builtInAuth.emailVerificationRequiredbooleanNo-EmailVerificationRequired requires email verification
spec.services.edgeGateway.config.builtInAuth.enabledbooleanNotrueEnabled enables built-in email/password authentication
spec.services.edgeGateway.config.clusterCacheTTLstringNo30sCache configuration
spec.services.edgeGateway.config.databaseMaxConnsintegerNo30-
spec.services.edgeGateway.config.databaseMinConnsintegerNo8-
spec.services.edgeGateway.config.defaultTeamNamestringNoPersonal TeamIdentity and Teams
spec.services.edgeGateway.config.editionstringNoself-hostedEdition: "saas" or "self-hosted"
spec.services.edgeGateway.config.httpPortintegerNo8080Server configuration
spec.services.edgeGateway.config.internalAuthCallerstringNoedge-gateway-
spec.services.edgeGateway.config.internalAuthTTLstringNo30sInternal Authentication
spec.services.edgeGateway.config.jwtAccessTokenTTLstringNo15m-
spec.services.edgeGateway.config.jwtIssuerstringNo--
spec.services.edgeGateway.config.jwtRefreshTokenTTLstringNo168h-
spec.services.edgeGateway.config.logLevelstringNoinfo-
spec.services.edgeGateway.config.oidcProvidersarray<object>No-OIDC Providers
spec.services.edgeGateway.config.oidcProviders[]objectNo-OIDCProviderConfig configures an OIDC provider.
spec.services.edgeGateway.config.oidcProviders[].autoProvisionbooleanNo-AutoProvision automatically creates users on first login
spec.services.edgeGateway.config.oidcProviders[].clientIdstringNo-ClientID is the OAuth client ID
spec.services.edgeGateway.config.oidcProviders[].clientSecretstringNo-ClientSecret is the OAuth client secret
spec.services.edgeGateway.config.oidcProviders[].discoveryUrlstringNo-DiscoveryURL is the OIDC discovery URL (.well-known/openid-configuration)
spec.services.edgeGateway.config.oidcProviders[].enabledbooleanNo-Enabled toggles the provider
spec.services.edgeGateway.config.oidcProviders[].idstringNo-ID is the unique identifier for the provider (e.g., "github", "google")
spec.services.edgeGateway.config.oidcProviders[].namestringNo-Name is the display name
spec.services.edgeGateway.config.oidcProviders[].scopesarray<string>No[openid, email, profile]Scopes are the OAuth scopes to request
spec.services.edgeGateway.config.oidcProviders[].scopes[]stringNo--
spec.services.edgeGateway.config.oidcProviders[].teamMappingobjectNo-TeamMapping configures automatic team assignment
spec.services.edgeGateway.config.oidcProviders[].teamMapping.defaultRolestringNo-DefaultRole is the role assigned to new users
spec.services.edgeGateway.config.oidcProviders[].teamMapping.defaultTeamIdstringNo-DefaultTeamID is the team to add users to
spec.services.edgeGateway.config.oidcProviders[].teamMapping.domainstringNo-Domain filters users by email domain
spec.services.edgeGateway.config.oidcStateCleanupIntervalstringNo5m-
spec.services.edgeGateway.config.oidcStateTTLstringNo10m-
spec.services.edgeGateway.config.proxyTimeoutstringNo30sTimeouts
spec.services.edgeGateway.config.rateLimitBurstintegerNo200-
spec.services.edgeGateway.config.rateLimitCleanupIntervalstringNo10m-
spec.services.edgeGateway.config.rateLimitRPSintegerNo100Rate limiting
spec.services.edgeGateway.config.regionIdstringNo-RegionID is the canonical region identifier used by tenancy and routing contracts, for example "aws/us-east-1".
spec.services.edgeGateway.config.schedulerEnabledbooleanNo-Scheduler configuration (optional, for multi-cluster mode)
spec.services.edgeGateway.config.schedulerUrlstringNo--
spec.services.edgeGateway.config.serverIdleTimeoutstringNo120s-
spec.services.edgeGateway.config.serverReadTimeoutstringNo30s-
spec.services.edgeGateway.config.serverWriteTimeoutstringNo60s-
spec.services.edgeGateway.config.shutdownTimeoutstringNo30s-
spec.services.edgeGateway.enabledbooleanNofalseEnabled enables or disables the service
spec.services.edgeGateway.ingressobjectNo-Ingress configures ingress settings
spec.services.edgeGateway.ingress.classNamestringNo-ClassName specifies the ingress class name
spec.services.edgeGateway.ingress.enabledbooleanNofalseEnabled enables ingress
spec.services.edgeGateway.ingress.hoststringNo-Host specifies the ingress host
spec.services.edgeGateway.ingress.tlsSecretstringNo-TLSSecret specifies the TLS secret name
spec.services.edgeGateway.replicasintegerNo1Replicas specifies the number of replicas
spec.services.edgeGateway.resourcesobjectNo-Resources specifies resource requirements
spec.services.edgeGateway.resources.claimsarray<object>No-Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
spec.services.edgeGateway.resources.claims[]objectNo-ResourceClaim references one entry in PodSpec.ResourceClaims.
spec.services.edgeGateway.resources.claims[].namestringYes-Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
spec.services.edgeGateway.resources.claims[].requeststringNo-Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
spec.services.edgeGateway.resources.limitsobjectNo-Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.edgeGateway.resources.requestsobjectNo-Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.edgeGateway.serviceobjectNo-Service configures the Kubernetes service
spec.services.edgeGateway.service.portintegerNo80Port specifies the service port
spec.services.edgeGateway.service.typestringNoClusterIPType specifies the service type
Service: scheduler
spec.services.scheduler
32 fields

Scheduler configures the scheduler service (control plane)

FieldTypeRequiredDefaultDescription
spec.services.schedulerobjectNo-Scheduler configures the scheduler service (control plane)
spec.services.scheduler.configobjectNo-Config contains scheduler specific configuration
spec.services.scheduler.config.databasePoolobjectNo-Database Pool configuration
spec.services.scheduler.config.databasePool.maxConnIdleTimestringNo5m-
spec.services.scheduler.config.databasePool.maxConnLifetimestringNo30m-
spec.services.scheduler.config.databasePool.maxConnsintegerNo10-
spec.services.scheduler.config.databasePool.minConnsintegerNo2-
spec.services.scheduler.config.httpPortintegerNo8080Server configuration
spec.services.scheduler.config.idleTimeoutstringNo120s-
spec.services.scheduler.config.logLevelstringNoinfo-
spec.services.scheduler.config.podsPerNodeintegerNo50-
spec.services.scheduler.config.proxyTimeoutstringNo10s-
spec.services.scheduler.config.readTimeoutstringNo30s-
spec.services.scheduler.config.reconcileIntervalstringNo30sReconciler configuration
spec.services.scheduler.config.shutdownTimeoutstringNo30sTimeouts
spec.services.scheduler.config.writeTimeoutstringNo60s-
spec.services.scheduler.enabledbooleanNofalseEnabled enables or disables the service
spec.services.scheduler.ingressobjectNo-Ingress configures ingress settings
spec.services.scheduler.ingress.classNamestringNo-ClassName specifies the ingress class name
spec.services.scheduler.ingress.enabledbooleanNofalseEnabled enables ingress
spec.services.scheduler.ingress.hoststringNo-Host specifies the ingress host
spec.services.scheduler.ingress.tlsSecretstringNo-TLSSecret specifies the TLS secret name
spec.services.scheduler.replicasintegerNo1Replicas specifies the number of replicas
spec.services.scheduler.resourcesobjectNo-Resources specifies resource requirements
spec.services.scheduler.resources.claimsarray<object>No-Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
spec.services.scheduler.resources.claims[]objectNo-ResourceClaim references one entry in PodSpec.ResourceClaims.
spec.services.scheduler.resources.claims[].namestringYes-Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
spec.services.scheduler.resources.claims[].requeststringNo-Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
spec.services.scheduler.resources.limitsobjectNo-Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.scheduler.resources.requestsobjectNo-Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.scheduler.serviceobjectNo-Service configures the Kubernetes service
spec.services.scheduler.service.portintegerNo80Port specifies the service port
spec.services.scheduler.service.typestringNoClusterIPType specifies the service type
Service: internalGateway
spec.services.internalGateway
63 fields

InternalGateway configures the internal-gateway service (data plane)

FieldTypeRequiredDefaultDescription
spec.services.internalGatewayobjectNo-InternalGateway configures the internal-gateway service (data plane)
spec.services.internalGateway.configobjectNo-Config contains internal-gateway specific configuration
spec.services.internalGateway.config.allowedCallersarray<string>No[edge-gateway, scheduler]AllowedCallers is the list of services allowed to call internal-gateway Default: ["edge-gateway"], can include "scheduler" for multi-cluster mode
spec.services.internalGateway.config.allowedCallers[]stringNo--
spec.services.internalGateway.config.authModestringNointernalInternal authentication (for validating requests from edge-gateway and generating tokens for downstream services) AuthMode controls which authentication modes are accepted on /api/v1. Allowed values: "internal", "public", "both". Allowed values: internal, public, both.
spec.services.internalGateway.config.baseUrlstringNohttp://localhost:8080Base URL for OIDC callbacks
spec.services.internalGateway.config.builtInAuthobjectNo-Built-in Authentication
spec.services.internalGateway.config.builtInAuth.adminOnlybooleanNo-AdminOnly restricts built-in auth to admin accounts only
spec.services.internalGateway.config.builtInAuth.allowRegistrationbooleanNo-AllowRegistration allows new users to register
spec.services.internalGateway.config.builtInAuth.emailVerificationRequiredbooleanNo-EmailVerificationRequired requires email verification
spec.services.internalGateway.config.builtInAuth.enabledbooleanNotrueEnabled enables built-in email/password authentication
spec.services.internalGateway.config.databaseMaxConnsintegerNo30-
spec.services.internalGateway.config.databaseMinConnsintegerNo8-
spec.services.internalGateway.config.defaultTeamNamestringNoPersonal TeamIdentity and Teams
spec.services.internalGateway.config.healthCheckPeriodstringNo10s-
spec.services.internalGateway.config.httpPortintegerNo8443Server configuration
spec.services.internalGateway.config.jwtAccessTokenTTLstringNo15m-
spec.services.internalGateway.config.jwtIssuerstringNo--
spec.services.internalGateway.config.jwtRefreshTokenTTLstringNo168h-
spec.services.internalGateway.config.logLevelstringNoinfo-
spec.services.internalGateway.config.oidcProvidersarray<object>No-OIDC Providers
spec.services.internalGateway.config.oidcProviders[]objectNo-OIDCProviderConfig configures an OIDC provider.
spec.services.internalGateway.config.oidcProviders[].autoProvisionbooleanNo-AutoProvision automatically creates users on first login
spec.services.internalGateway.config.oidcProviders[].clientIdstringNo-ClientID is the OAuth client ID
spec.services.internalGateway.config.oidcProviders[].clientSecretstringNo-ClientSecret is the OAuth client secret
spec.services.internalGateway.config.oidcProviders[].discoveryUrlstringNo-DiscoveryURL is the OIDC discovery URL (.well-known/openid-configuration)
spec.services.internalGateway.config.oidcProviders[].enabledbooleanNo-Enabled toggles the provider
spec.services.internalGateway.config.oidcProviders[].idstringNo-ID is the unique identifier for the provider (e.g., "github", "google")
spec.services.internalGateway.config.oidcProviders[].namestringNo-Name is the display name
spec.services.internalGateway.config.oidcProviders[].scopesarray<string>No[openid, email, profile]Scopes are the OAuth scopes to request
spec.services.internalGateway.config.oidcProviders[].scopes[]stringNo--
spec.services.internalGateway.config.oidcProviders[].teamMappingobjectNo-TeamMapping configures automatic team assignment
spec.services.internalGateway.config.oidcProviders[].teamMapping.defaultRolestringNo-DefaultRole is the role assigned to new users
spec.services.internalGateway.config.oidcProviders[].teamMapping.defaultTeamIdstringNo-DefaultTeamID is the team to add users to
spec.services.internalGateway.config.oidcProviders[].teamMapping.domainstringNo-Domain filters users by email domain
spec.services.internalGateway.config.oidcStateCleanupIntervalstringNo5m-
spec.services.internalGateway.config.oidcStateTTLstringNo10m-
spec.services.internalGateway.config.procdStoragePermissionsarray<string>No[sandboxvolume:read, sandboxvolume:write]-
spec.services.internalGateway.config.procdStoragePermissions[]stringNo--
spec.services.internalGateway.config.proxyTimeoutstringNo10sProxy configuration
spec.services.internalGateway.config.rateLimitBurstintegerNo200-
spec.services.internalGateway.config.rateLimitCleanupIntervalstringNo10m-
spec.services.internalGateway.config.rateLimitRPSintegerNo100Rate limiting
spec.services.internalGateway.config.regionIdstringNo-RegionID is the canonical region identifier used by tenancy and routing contracts, for example "aws/us-east-1".
spec.services.internalGateway.config.schedulerPermissionsarray<string>No[*:*]Permissions
spec.services.internalGateway.config.schedulerPermissions[]stringNo--
spec.services.internalGateway.config.shutdownTimeoutstringNo30sTimeouts
spec.services.internalGateway.enabledbooleanNofalseEnabled enables or disables the service
spec.services.internalGateway.ingressobjectNo-Ingress configures ingress settings
spec.services.internalGateway.ingress.classNamestringNo-ClassName specifies the ingress class name
spec.services.internalGateway.ingress.enabledbooleanNofalseEnabled enables ingress
spec.services.internalGateway.ingress.hoststringNo-Host specifies the ingress host
spec.services.internalGateway.ingress.tlsSecretstringNo-TLSSecret specifies the TLS secret name
spec.services.internalGateway.replicasintegerNo1Replicas specifies the number of replicas
spec.services.internalGateway.resourcesobjectNo-Resources specifies resource requirements
spec.services.internalGateway.resources.claimsarray<object>No-Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
spec.services.internalGateway.resources.claims[]objectNo-ResourceClaim references one entry in PodSpec.ResourceClaims.
spec.services.internalGateway.resources.claims[].namestringYes-Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
spec.services.internalGateway.resources.claims[].requeststringNo-Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
spec.services.internalGateway.resources.limitsobjectNo-Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.internalGateway.resources.requestsobjectNo-Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.internalGateway.serviceobjectNo-Service configures the Kubernetes service
spec.services.internalGateway.service.portintegerNo80Port specifies the service port
spec.services.internalGateway.service.typestringNoClusterIPType specifies the service type
Service: manager
spec.services.manager
66 fields

Manager configures the manager service (data plane)

FieldTypeRequiredDefaultDescription
spec.services.managerobjectNo-Manager configures the manager service (data plane)
spec.services.manager.configobjectNo-Config contains manager specific configuration
spec.services.manager.config.autoscalerobjectNo-Autoscaler config for pool scaling behavior
spec.services.manager.config.autoscaler.maxScaleStepintegerNo10MaxScaleStep caps the maximum pods to add in a single scale operation.
spec.services.manager.config.autoscaler.minIdleBufferintegerNo2MinIdleBuffer is the minimum number of idle pods to maintain above minIdle. When idle count drops to minIdle + MinIdleBuffer, proactive scaling kicks in.
spec.services.manager.config.autoscaler.minScaleIntervalstringNo100msMinScaleInterval is the minimum time between scale operations for a template. This prevents thundering herd when multiple cold claims arrive simultaneously.
spec.services.manager.config.autoscaler.noTrafficScaleDownAfterstringNo10mNoTrafficScaleDownAfter is the duration without any claims before scaling down. Scale down is still async and happens in the background reconcile loop.
spec.services.manager.config.autoscaler.scaleDownPercentstringNo0.1ScaleDownPercent is the percentage to reduce replicas during scale down.
spec.services.manager.config.autoscaler.scaleUpFactorstringNo1.5ScaleUpFactor determines how aggressively to scale up. When cold claim occurs, newReplicas = current * ScaleUpFactor.
spec.services.manager.config.autoscaler.targetIdleRatiostringNo0.2TargetIdleRatio is the target ratio of idle pods to active pods. Formula: desiredIdle = active * TargetIdleRatio
spec.services.manager.config.cleanupIntervalstringNo60sCleanup Controller
spec.services.manager.config.databaseMaxConnsintegerNo10-
spec.services.manager.config.databaseMinConnsintegerNo2-
spec.services.manager.config.defaultSandboxTTLstringNo0sSandbox
spec.services.manager.config.httpPortintegerNo8080HTTP Server
spec.services.manager.config.kubeConfigstringNo-Kubernetes
spec.services.manager.config.leaderElectionbooleanNotrue-
spec.services.manager.config.logLevelstringNoinfoLogging
spec.services.manager.config.metricsPortintegerNo9090Metrics
spec.services.manager.config.netdPolicyApplyPollIntervalstringNo500ms-
spec.services.manager.config.netdPolicyApplyTimeoutstringNo30sNetd apply wait
spec.services.manager.config.pauseMemoryBufferRatiostringNo1.1-
spec.services.manager.config.pauseMinCPUstringNo10m-
spec.services.manager.config.pauseMinMemoryLimitstringNo32Mi-
spec.services.manager.config.pauseMinMemoryRequeststringNo10MiPause/Resume
spec.services.manager.config.procdClientTimeoutstringNo30sTimeouts
spec.services.manager.config.procdConfigobjectNo-Procd config injected into sandbox pods
spec.services.manager.config.procdConfig.cacheMaxBytesintegerNo104857600Cache configuration
spec.services.manager.config.procdConfig.cacheTTLstringNo30s-
spec.services.manager.config.procdConfig.contextCleanupIntervalstringNo30sContext cleanup configuration
spec.services.manager.config.procdConfig.contextFinishedTTLstringNo0s-
spec.services.manager.config.procdConfig.contextIdleTimeoutstringNo0s-
spec.services.manager.config.procdConfig.contextMaxLifetimestringNo0s-
spec.services.manager.config.procdConfig.httpPortintegerNo49983Server configuration
spec.services.manager.config.procdConfig.juicefsBufferSizestringNo300-
spec.services.manager.config.procdConfig.juicefsCacheSizestringNo100JuiceFS Mount Defaults
spec.services.manager.config.procdConfig.juicefsPrefetchintegerNo3-
spec.services.manager.config.procdConfig.juicefsWritebackbooleanNotrue-
spec.services.manager.config.procdConfig.logLevelstringNoinfo-
spec.services.manager.config.procdConfig.rootPathstringNo/workspaceFile manager configuration
spec.services.manager.config.procdConfig.webhookBaseBackoffstringNo500ms-
spec.services.manager.config.procdConfig.webhookMaxRetriesintegerNo3-
spec.services.manager.config.procdConfig.webhookQueueSizeintegerNo256-
spec.services.manager.config.procdConfig.webhookRequestTimeoutstringNo5s-
spec.services.manager.config.procdInitTimeoutstringNo6s-
spec.services.manager.config.resyncPeriodstringNo30s-
spec.services.manager.config.shutdownTimeoutstringNo30s-
spec.services.manager.config.webhookCertPathstringNo/tmp/k8s-webhook-server/serving-certs/tls.crt-
spec.services.manager.config.webhookKeyPathstringNo/tmp/k8s-webhook-server/serving-certs/tls.key-
spec.services.manager.config.webhookPortintegerNo9443Webhook
spec.services.manager.enabledbooleanNofalseEnabled enables or disables the service
spec.services.manager.ingressobjectNo-Ingress configures ingress settings
spec.services.manager.ingress.classNamestringNo-ClassName specifies the ingress class name
spec.services.manager.ingress.enabledbooleanNofalseEnabled enables ingress
spec.services.manager.ingress.hoststringNo-Host specifies the ingress host
spec.services.manager.ingress.tlsSecretstringNo-TLSSecret specifies the TLS secret name
spec.services.manager.replicasintegerNo1Replicas specifies the number of replicas
spec.services.manager.resourcesobjectNo-Resources specifies resource requirements
spec.services.manager.resources.claimsarray<object>No-Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
spec.services.manager.resources.claims[]objectNo-ResourceClaim references one entry in PodSpec.ResourceClaims.
spec.services.manager.resources.claims[].namestringYes-Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
spec.services.manager.resources.claims[].requeststringNo-Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
spec.services.manager.resources.limitsobjectNo-Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.manager.resources.requestsobjectNo-Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.manager.serviceobjectNo-Service configures the Kubernetes service
spec.services.manager.service.portintegerNo80Port specifies the service port
spec.services.manager.service.typestringNoClusterIPType specifies the service type
Service: storageProxy
spec.services.storageProxy
58 fields

StorageProxy configures the storage-proxy service (data plane)

FieldTypeRequiredDefaultDescription
spec.services.storageProxyobjectNo-StorageProxy configures the storage-proxy service (data plane)
spec.services.storageProxy.configobjectNo-Config contains storage-proxy specific configuration
spec.services.storageProxy.config.auditFilestringNo/var/log/storage-proxy/audit.log-
spec.services.storageProxy.config.auditLogbooleanNotrue-
spec.services.storageProxy.config.cacheDirstringNo/var/lib/storage-proxy/cache-
spec.services.storageProxy.config.cleanupIntervalstringNo60s-
spec.services.storageProxy.config.databaseMaxConnsintegerNo30-
spec.services.storageProxy.config.databaseMinConnsintegerNo5-
spec.services.storageProxy.config.databaseSchemastringNosp-
spec.services.storageProxy.config.defaultCacheSizestringNo1G-
spec.services.storageProxy.config.flushTimeoutstringNo30s-
spec.services.storageProxy.config.grpcAddrstringNo0.0.0.0gRPC Server
spec.services.storageProxy.config.grpcPortintegerNo8080-
spec.services.storageProxy.config.heartbeatIntervalstringNo5sCoordination
spec.services.storageProxy.config.heartbeatTimeoutintegerNo15-
spec.services.storageProxy.config.httpAddrstringNo0.0.0.0HTTP Management API
spec.services.storageProxy.config.httpIdleTimeoutstringNo60s-
spec.services.storageProxy.config.httpPortintegerNo8081-
spec.services.storageProxy.config.httpReadTimeoutstringNo15sTimeouts
spec.services.storageProxy.config.httpWriteTimeoutstringNo15s-
spec.services.storageProxy.config.juicefsAttrTimeoutstringNo1s-
spec.services.storageProxy.config.juicefsBlockSizeintegerNo4096-
spec.services.storageProxy.config.juicefsCompressionstringNolz4-
spec.services.storageProxy.config.juicefsDirEntryTimeoutstringNo1s-
spec.services.storageProxy.config.juicefsEncryptionAlgostringNoaes256gcm-rsa-
spec.services.storageProxy.config.juicefsEncryptionEnabledbooleanNofalse-
spec.services.storageProxy.config.juicefsEncryptionKeyPathstringNo--
spec.services.storageProxy.config.juicefsEncryptionPassphrasestringNo--
spec.services.storageProxy.config.juicefsEntryTimeoutstringNo1s-
spec.services.storageProxy.config.juicefsMaxUploadintegerNo20-
spec.services.storageProxy.config.juicefsMetaRetriesintegerNo10-
spec.services.storageProxy.config.juicefsNamestringNosandbox0-
spec.services.storageProxy.config.juicefsTrashDaysintegerNo1-
spec.services.storageProxy.config.kubeconfigPathstringNo-Kubernetes
spec.services.storageProxy.config.logLevelstringNoinfoLogging
spec.services.storageProxy.config.maxBytesPerSecondintegerNo1073741824-
spec.services.storageProxy.config.maxOpsPerSecondintegerNo10000Rate limiting
spec.services.storageProxy.config.metricsEnabledbooleanNotrueMonitoring
spec.services.storageProxy.config.metricsPortintegerNo9090-
spec.services.storageProxy.config.restoreRemountTimeoutstringNo30sSnapshot restore
spec.services.storageProxy.config.watchEventQueueSizeintegerNo256-
spec.services.storageProxy.config.watchEventsEnabledbooleanNotrueWatch events
spec.services.storageProxy.enabledbooleanNofalseEnabled enables or disables the service
spec.services.storageProxy.ingressobjectNo-Ingress configures ingress settings
spec.services.storageProxy.ingress.classNamestringNo-ClassName specifies the ingress class name
spec.services.storageProxy.ingress.enabledbooleanNofalseEnabled enables ingress
spec.services.storageProxy.ingress.hoststringNo-Host specifies the ingress host
spec.services.storageProxy.ingress.tlsSecretstringNo-TLSSecret specifies the TLS secret name
spec.services.storageProxy.replicasintegerNo1Replicas specifies the number of replicas
spec.services.storageProxy.resourcesobjectNo-Resources specifies resource requirements
spec.services.storageProxy.resources.claimsarray<object>No-Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
spec.services.storageProxy.resources.claims[]objectNo-ResourceClaim references one entry in PodSpec.ResourceClaims.
spec.services.storageProxy.resources.claims[].namestringYes-Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
spec.services.storageProxy.resources.claims[].requeststringNo-Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
spec.services.storageProxy.resources.limitsobjectNo-Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.storageProxy.resources.requestsobjectNo-Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.storageProxy.serviceobjectNo-Service configures the Kubernetes service
spec.services.storageProxy.service.portintegerNo80Port specifies the service port
spec.services.storageProxy.service.typestringNoClusterIPType specifies the service type
Service: netd
spec.services.netd
69 fields

Netd configures the netd service (data plane)

FieldTypeRequiredDefaultDescription
spec.services.netdobjectNo-Netd configures the netd service (data plane)
spec.services.netd.configobjectNo-Config contains netd specific configuration
spec.services.netd.config.auditLogMaxBackupsintegerNo5-
spec.services.netd.config.auditLogMaxBytesintegerNo104857600-
spec.services.netd.config.auditLogPathstringNo--
spec.services.netd.config.bpfFsPathstringNo--
spec.services.netd.config.bpfPinPathstringNo--
spec.services.netd.config.burstRatiostringNo0.125-
spec.services.netd.config.dnsPortintegerNo53-
spec.services.netd.config.edtHorizonstringNo200ms-
spec.services.netd.config.egressAuthEnabledbooleanNofalse-
spec.services.netd.config.egressAuthFailurePolicystringNofail-closed-
spec.services.netd.config.egressAuthResolverTimeoutstringNo2sEgressAuthResolverTimeout is the timeout for runtime egress auth resolve calls.
spec.services.netd.config.egressAuthResolverUrlstringNo-EgressAuthResolverURL is the base URL for the runtime egress auth resolver.
spec.services.netd.config.failClosedbooleanNotrue-
spec.services.netd.config.healthPortintegerNo8081-
spec.services.netd.config.logLevelstringNoinfo-
spec.services.netd.config.meteringReportIntervalstringNo10s-
spec.services.netd.config.metricsPortintegerNo9091-
spec.services.netd.config.metricsReportIntervalstringNo10s-
spec.services.netd.config.mitmCaCertPathstringNo--
spec.services.netd.config.mitmCaKeyPathstringNo--
spec.services.netd.config.mitmLeafTtlstringNo1h-
spec.services.netd.config.nodeNamestringNo--
spec.services.netd.config.platformAllowedCidrsarray<string>No-Platform allow/deny lists (override user policy)
spec.services.netd.config.platformAllowedCidrs[]stringNo--
spec.services.netd.config.platformAllowedDomainsarray<string>No--
spec.services.netd.config.platformAllowedDomains[]stringNo--
spec.services.netd.config.platformDeniedCidrsarray<string>No--
spec.services.netd.config.platformDeniedCidrs[]stringNo--
spec.services.netd.config.platformDeniedDomainsarray<string>No--
spec.services.netd.config.platformDeniedDomains[]stringNo--
spec.services.netd.config.preferNftbooleanNotrue-
spec.services.netd.config.proxyHeaderLimitintegerNo--
spec.services.netd.config.proxyHttpPortintegerNo18080-
spec.services.netd.config.proxyHttpsPortintegerNo18443-
spec.services.netd.config.proxyListenAddrstringNo0.0.0.0Proxy settings
spec.services.netd.config.proxyUpstreamTimeoutstringNo30s-
spec.services.netd.config.resyncPeriodstringNo30s-
spec.services.netd.config.shutdownDelaystringNo2s-
spec.services.netd.config.useEbpfbooleanNo-eBPF and tc
spec.services.netd.config.useEdtbooleanNo--
spec.services.netd.config.vethPrefixstringNo--
spec.services.netd.enabledbooleanNofalseEnabled enables or disables the service
spec.services.netd.ingressobjectNo-Ingress configures ingress settings
spec.services.netd.ingress.classNamestringNo-ClassName specifies the ingress class name
spec.services.netd.ingress.enabledbooleanNofalseEnabled enables ingress
spec.services.netd.ingress.hoststringNo-Host specifies the ingress host
spec.services.netd.ingress.tlsSecretstringNo-TLSSecret specifies the TLS secret name
spec.services.netd.mitmCaSecretNamestringNo-MITMCASecretName overrides the operator-managed cluster-local MITM CA secret for HTTPS interception. Expected keys are ca.crt and ca.key. When unset, infra-operator generates and reuses a managed secret.
spec.services.netd.nodeSelectorobjectNo-NodeSelector constrains netd onto a specific node set. Deprecated: use spec.sandboxNodePlacement.nodeSelector instead. This field remains as a backward-compatible alias when the shared placement is unset.
spec.services.netd.replicasintegerNo1Replicas specifies the number of replicas
spec.services.netd.resourcesobjectNo-Resources specifies resource requirements
spec.services.netd.resources.claimsarray<object>No-Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This field depends on the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
spec.services.netd.resources.claims[]objectNo-ResourceClaim references one entry in PodSpec.ResourceClaims.
spec.services.netd.resources.claims[].namestringYes-Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
spec.services.netd.resources.claims[].requeststringNo-Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.
spec.services.netd.resources.limitsobjectNo-Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.netd.resources.requestsobjectNo-Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
spec.services.netd.runtimeClassNamestringNo-RuntimeClassName specifies the Kubernetes runtime class for the netd daemonset. Use a host-compatible runtime such as runc. Do not run netd on gVisor or Kata.
spec.services.netd.serviceobjectNo-Service configures the Kubernetes service
spec.services.netd.service.portintegerNo80Port specifies the service port
spec.services.netd.service.typestringNoClusterIPType specifies the service type
spec.services.netd.tolerationsarray<object>No-Tolerations allow netd to run on tainted sandbox nodes. Deprecated: use spec.sandboxNodePlacement.tolerations instead. This field remains as a backward-compatible alias when the shared placement is unset.
spec.services.netd.tolerations[]objectNo-The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
spec.services.netd.tolerations[].effectstringNo-Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
spec.services.netd.tolerations[].keystringNo-Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
spec.services.netd.tolerations[].operatorstringNo-Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
spec.services.netd.tolerations[].tolerationSecondsintegerNo-TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
spec.services.netd.tolerations[].valuestringNo-Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

Practical Rules#

  • Pin the infra-operator chart version in production instead of relying on floating tags.
  • Prefer external PostgreSQL and external object storage for serious deployments.
  • Enable storageProxy only when you need volume and snapshot features.
  • Enable netd only on Linux nodes and only when you need network policy enforcement.
  • Use sandboxNodePlacement to keep sandbox workloads and node-local sandbox services on the same node set.
  • If sandbox workloads use gvisor or kata, keep services.netd.runtimeClassName on a host-compatible runtime such as the cluster default runtime.
  • Keep control-plane and data-plane components in the same storage and latency domain for a given region.