Documentation | SDK | CLI
Resource providers for the pragma-os platform.
# secret.yaml
provider: gcp
resource: secret
name: db-password
config:
secret_id: db-password
data: "super-secret-value"pragma resources apply secret.yaml
pragma resources get gcp/secret db-passwordManage Google Cloud Platform resources.
pip install pragmatiks-gcp-provider| Resource | Description |
|---|---|
gcp/secret |
Secret Manager secrets |
gcp/gke |
GKE Autopilot clusters |
gcp/cloudsql/database_instance |
Cloud SQL instances |
gcp/cloudsql/database |
Cloud SQL databases |
gcp/cloudsql/user |
Cloud SQL users |
Manage Kubernetes resources.
pip install pragmatiks-kubernetes-provider| Resource | Description |
|---|---|
kubernetes/configmap |
ConfigMaps |
kubernetes/secret |
Secrets |
kubernetes/service |
Services |
kubernetes/statefulset |
StatefulSets |
Vector database for similarity search.
pip install pragmatiks-qdrant-provider| Resource | Description |
|---|---|
qdrant/database |
Deploy Qdrant to GKE via Helm |
qdrant/collection |
Manage vector collections |
AI agent deployment.
pip install pragmatiks-agno-provider| Resource | Description |
|---|---|
agno/agent |
Deploy AI agents to GKE |
Reference provider resources in your configurations:
from pragma_sdk import FieldReference
config = AppConfig(
database_password=FieldReference(
provider="gcp",
resource="secret",
name="db-password",
field="data"
)
)Or via YAML with dependency references:
provider: myapp
resource: service
name: api
config:
db_password:
$ref:
provider: gcp
resource: secret
name: db-password
field: dataCreate your own providers with the SDK:
# Initialize a provider project
pragma providers init mycompany
# Implement your resources
cd mycompany-provider
# Edit src/mycompany_provider/resources/
# Deploy to the platform
pragma providers push --deploySee the Building Providers Guide for complete documentation.
Each provider contains:
- Provider namespace - Groups related resources (e.g.,
gcp) - Resource types - Individual resource definitions with Config and Outputs
- Lifecycle methods -
on_create,on_update,on_deleteimplementations
from typing import ClassVar
from pragma_sdk import Resource, Config, Outputs
class SecretConfig(Config):
project_id: str
secret_id: str
data: str
class SecretOutputs(Outputs):
resource_name: str
version_id: str
class Secret(Resource[SecretConfig, SecretOutputs]):
provider: ClassVar[str] = "gcp"
resource: ClassVar[str] = "secret"
async def on_create(self) -> SecretOutputs:
# Create secret in GCP Secret Manager
...
async def on_update(self, previous_config: SecretConfig) -> SecretOutputs:
# Update secret version
...
async def on_delete(self) -> None:
# Delete secret
...# Install dependencies
task install
# Run all tests
task test
# Run all checks
task check
# Provider-specific tasks
task gcp:test
task gcp:checkpragma-providers/
├── packages/
│ ├── gcp/ # GCP provider (secret, gke, cloudsql)
│ ├── kubernetes/ # Kubernetes provider
│ ├── qdrant/ # Qdrant provider (database, collection)
│ └── agno/ # Agno provider (agent)
├── pyproject.toml # Workspace configuration
└── README.md
MIT
