> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SambaStack.yaml reference

> This file defines ingress settings, TLS configuration, and high availability parameters.

> [tab] On-prem
>
> ```yaml theme={}
> gateway:
>   replicas: 3
>   auth:
>     enabled: true
>     secretName: <oidc-auth secret name>
>   ingress:
>     hosts:
>       - host: <api url>
>         tlsSecretName: <k8s api secret name>
>     annotations:
>       nginx.ingress.kubernetes.io/backend-protocol: HTTP
>       nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
>       nginx.ingress.kubernetes.io/proxy-read-timeout: '600'
>       nginx.ingress.kubernetes.io/proxy-body-size: 25m
>       nginx.ingress.kubernetes.io/enable-cors: 'true'
>       nginx.ingress.kubernetes.io/configuration-snippet: |
>         proxy_set_header Authorization $http_authorization;
>         limit_req zone=240_req_min_header burst=360 nodelay;
>         limit_req_status 429;
>
> cloud-ui:
>   ingress:
>     hosts:
>       - host: <ui url>
>         tlsSecretName: <k8s api secret name>
>     annotations:
>       nginx.ingress.kubernetes.io/backend-protocol: HTTP
>       nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
>       nginx.ingress.kubernetes.io/proxy-body-size: 21m
>       nginx.ingress.kubernetes.io/configuration-snippet: |
>         proxy_set_header Authorization $http_authorization;
>         limit_req zone=120_req_min_ip burst=240 nodelay;
>         limit_req_status 429;
>
> db-admin:
>   admins:
>   - temp-admin@cluster.local
>   - example@example.com                # Email of lasting admin account
>
> auth-and-billing:
>   pgSecretName: pg-credentials         # Only needed with a custom external postgres DB
>
> cloudnative-pg:
>   enabled: false                       # Only needed with a custom external postgres DB
>
> bundles:
>   bundleSpecs:
>     - name: gpt-oss-120b-8-32-64-128k
>   bundleDeploymentSpecs:
>     - name: gpt-oss-120b-8-32-64-128k
>       groups:
>         - name: default
>           minReplicas: 1
>           qosList:
>             - web
>             - free
>
> serviceTiers:
>   <Tier1>:                              # Custom service tier name
>     - models:
>         - gpt-oss-120b-8-32-64-128k
>       queueDepth: 25                    # Queries to queue before returning busy
>       qos: "free"                       # Usually matches service tier name
>       rates:
>         - allowedRequests: 50
>           periodSeconds: 60
>   <Tier2>:                              # Tier that inherits from another
>     inherits: <Tier1>
>     overrides:
>       - models:
>           - gpt-oss-120b-8-32-64-128k
>         queueDepth: 25
>         qos: "free"
>         rates:
>           - allowedRequests: 100
>             periodSeconds: 60
>
> global:
>   substitutions:                        # Only needed for NFS or air-gapped customers
>     gs://<SAMBASTACK_ARTIFACTS_BUCKET>: nfs:///nfsdata
>
>   extraEnv:								# This sets the node memory limit to 4TB
>     - name: "DDR_PER_RDU_GB"
>       value: "256"
> ```
>
> > [!NOTE]
> >
> > This reference uses `gpt-oss-120b-8-32-64-128k` as the example model bundle. You can use any model bundle(s) you like in practice.

> [tab] Hosted
>
> ```yaml theme={}
> apiVersion: v1
> kind: ConfigMap
> metadata:
>   annotations:
>     serial: "1"
>   name: sambastack
>   labels:
>     sambastack-installer: "true"
> data:
>   sambastack.yaml: |
>     version: <latest sambastack version>
>
> # API Configuration
>     gateway:
>       ingress:
>         hosts:
>           - host: api.example.com
>             tlsSecretName: <name-for-tls>
>
> # UI Configuration
>     cloud-ui:
>       ingress:
>         hosts:
>         - host: ui.example.com
>           tlsSecretName: <name-for-tls>
>
> # Auth and Billing Configuration
>     auth-and-billing:
>       pgSecretName: pg-credentials        # Kubernetes secret with PostgreSQL credentials
>
> # Database Configuration
>     cloudnative-pg:
>       enabled: false                      # Disable in-cluster PostgreSQL
>
> # Model Bundle(s) Configuration
>     bundles:
>       bundleSpecs:
>       - name: gpt-oss-120b-8-32-64-128k
>       bundleDeploymentSpecs:
>       - name: gpt-oss-120b-8-32-64-128k
>         groups:
>         - name: "default"
>           minReplicas: 1
>           qosList:
>           - "web"
>           - "free"
> ```
>
> > [!NOTE]
> >
> > Contact your SambaStack representative for the latest SambaStack version.

## **Configuration parameters**

### **gateway**

| **Parameter** | **Type** | **Description** |
| :- | :- | :- |
| `gateway.replicas` | integer | API gateway replica count for high availability |
| `gateway.auth.enabled` | boolean | Enable built-in OIDC integration |
| `gateway.auth.secretName` | string | Name of Kubernetes Secret containing OIDC credentials. Leave empty for default auth mode |
| `gateway.ingress.hosts[].host` | string | Your API FQDN (e.g., `api.example.com`) |
| `gateway.ingress.hosts[].tlsSecretName` | string | Kubernetes TLS secret name for the API host |

### **cloud-ui (web UI)**

| **Parameter** | **Type** | **Description** |
| :- | :- | :- |
| `cloud-ui.replicas` | integer | UI replica count for high availability |
| `cloud-ui.ingress.hosts[].host` | string | Your UI FQDN (e.g., `ui.example.com`) |
| `cloud-ui.ingress.hosts[].tlsSecretName` | string | Kubernetes TLS secret name for the UI host |

### **db-admin**

| **Parameter** | **Type** | **Description** |
| :- | :- | :- |
| `db-admin.admins` | list | Email addresses of users who can access the Admin UI |

### **auth-and-billing**

| **Parameter** | **Type** | **Description** |
| :- | :- | :- |
| `auth-and-billing.replicas` | integer | Core control-plane service scaling |
| `auth-and-billing.pgSecretName` | string | Name of Kubernetes Secret containing external PostgreSQL connection details (`DB_HOST`, `DB_DATABASE`, `DB_USER`, `DB_PASSWD`) as base64-encoded data fields. Required when using external PostgreSQL |

### **cloudnative-pg**

| **Parameter** | **Type** | **Description** |
| :- | :- | :- |
| `cloudnative-pg.enabled` | boolean | `true` = deploy in-cluster PostgreSQL; `false` = use external PostgreSQL via `auth-and-billing.pgSecretName` |

### **bundles**

| **Parameter** | **Type** | **Description** |
| :- | :- | :- |
| `bundles.bundleSpecs[]` | list | Declares bundles (model assets) by name |
| `bundles.bundleDeploymentSpecs[]` | list | Deploys the declared bundles |
| `bundleDeploymentSpecs[].name` | string | Must match a declared `bundleSpecs.name` |
| `bundleDeploymentSpecs[].groups[].name` | string | Routing/capacity group name |
| `bundleDeploymentSpecs[].groups[].minReplicas` | integer | Minimum engines for the group |
| `bundleDeploymentSpecs[].groups[].qosList[]` | list | QoS tags (e.g., `web`, `free`, `pro`) |

See [Service tiers](https://docs.sambanova.ai/docs/en/v0.5.17/sambastack/service-administration/usergroup-management.md#service-tiers) for details on QoS tags.
