You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Team Operator follows the Kubernetes operator pattern. A Site Custom Resource (CR) is the single source of truth. Controllers reconcile the desired state into running Kubernetes resources.
User creates Site CR
↓
Site Controller reconciles
↓
Product CRs created (Connect, Workbench, PackageManager, etc.)
↓
Product Controllers reconcile
↓
Kubernetes resources created (Deployments, Services, Ingress, etc.)
Key Concepts
Concept
Description
Site CR
The top-level resource that defines an entire Posit Team deployment
Product CR
Child resources (Connect, Workbench, PackageManager) created by the Site controller
Controller
Watches resources and reconciles them to the desired state
Reconciliation
The process of comparing desired state (CR spec) with actual state and making corrections
Database Architecture
Each Posit Team product needs database storage. The operator provisions separate databases with dedicated users and schemas.
flowchart TB
subgraph db [Team Operator - Databases]
subgraph pub[PublishDB - Connect]
pub-user(Connect User)
pub-main[Main Schema]
pub-metrics[Instrumentation Schema]
end
pub-user-->pub-main
pub-user-->pub-metrics
subgraph pkg[PackageDB - Package Manager]
pkg-user(Package Manager User)
pkg-main[Main Schema]
pkg-metrics[Metrics Schema]
end
pkg-user-->pkg-main
pkg-user-->pkg-metrics
subgraph dev[DevDB - Workbench]
dev-user(Workbench User)
dev-main[Public Schema]
end
dev-user-->dev-main
end
classDef userNode fill:#FAEEE9,stroke:#ab4d26
class pub-user,pkg-user,dev-user userNode
Loading
Component Descriptions
Component
Description
PublishDB
PostgreSQL database for Connect. Stores published content metadata, user accounts, and access controls.
Main Schema
Primary data storage for the product (content, users, permissions)
Instrumentation Schema
Metrics and usage tracking data (Connect and Package Manager only)
PackageDB
PostgreSQL database for Package Manager. Stores package metadata, repository configurations, and sync state.
Metrics Schema
Analytics data for package downloads and repository usage
DevDB
PostgreSQL database for Workbench. Stores user sessions, project metadata, and launcher state.
Public Schema
Workbench uses a single schema for all data
Database User Isolation
Each product gets a dedicated database user with access only to its own schemas. This provides:
Security isolation: Products cannot access each other's data
Resource tracking: You can attribute database connections to specific products
Independent credentials: Rotating one product's credentials doesn't affect others
Connect Architecture
Posit Connect is a publishing platform for data science content. The operator manages deployment, including off-host content execution.
flowchart TB
subgraph external [External Configuration]
manual(Manual Setup)
license(License)
clientsecret(Auth Client Secret)
mainDbCon(Main DB Connection)
end
subgraph operator [Team Operator]
site(Site Controller)
dbcon(Database Controller)
connect(Connect Controller)
end
subgraph k8s [Kubernetes Resources]
subgraph storage [Storage]
pv(PersistentVolume)
pvc(PersistentVolumeClaim)
end
subgraph config [Configuration]
cm(ConfigMaps)
dbsecret(DB Password Secret)
secretkey(Secret Key)
end
subgraph workload [Workload]
pubdeploy(Connect Pod)
ing(Ingress)
svc(Service)
end
end
%% External to Operator
manual --> license
manual --> clientsecret
manual --> mainDbCon
mainDbCon --> dbcon
%% Operator flow
site --> pv
site --> connect
site --> dbcon
dbcon --> dbsecret
%% Connect Controller creates resources
connect --> pvc
connect --> cm
connect --> secretkey
connect --> pubdeploy
connect --> ing
connect --> svc
%% Resources flow to Pod
pv --> pvc
pvc --> pubdeploy
cm --> pubdeploy
dbsecret --> pubdeploy
secretkey --> pubdeploy
license --> pubdeploy
clientsecret --> pubdeploy
classDef external fill:#FAEEE9,stroke:#ab4d26
classDef operator fill:#E3F2FD,stroke:#1976D2
classDef k8s fill:#E8F5E9,stroke:#388E3C
class manual,license,clientsecret,mainDbCon external
class site,dbcon,connect operator
class pv,pvc,cm,dbsecret,secretkey,pubdeploy,ing,svc k8s
Loading
Component Descriptions
External Configuration (Coral)
Component
Description
Manual Setup
One-time configuration an administrator performs before deployment
License
Posit Connect license file or activation key, stored in a Kubernetes Secret or AWS Secrets Manager
Auth Client Secret
OIDC/SAML client credentials for SSO integration (client ID and secret from your IdP)
Main DB Connection
PostgreSQL connection string for the external database server
Team Operator (Blue)
Component
Description
Site Controller
Watches Site CRs and creates product-specific CRs (Connect, Workbench, etc.). Manages shared resources like PersistentVolumes.
Database Controller
Creates databases and schemas in the PostgreSQL server. Generates credentials and stores them in Secrets.
Connect Controller
Watches Connect CRs and creates all Kubernetes resources Connect needs.
Namespace-scoped claim that binds to a PV. Mounts into the Connect pod for content storage.
ConfigMaps
Connect configuration files (rstudio-connect.gcfg) generated from the CR spec
DB Password Secret
Auto-generated database credentials the Database Controller creates
Secret Key
Encryption key for Connect's internal data encryption
Connect Pod
The main Connect server container that runs the publishing platform
Ingress
Routes external traffic to the Connect Service by hostname
Service
Kubernetes Service that provides stable networking for the Connect Pod
Off-Host Execution
When off-host execution is enabled, Connect runs content (Shiny apps, APIs, reports) in separate Kubernetes Jobs instead of the main Connect pod. This provides:
Resource isolation: Content processes don't compete with the Connect server