Curiosity for Developers
  • Overview
  • Getting Started
    • Introduction
    • System Overview
      • Workspace
      • Connectors
      • Front End
    • Requirements
    • Installation
      • Deploying on Windows
        • Download Curiosity Workspace for Windows
      • Deploying on Docker
        • Deploying using Docker Desktop App
        • Docker Hub
      • Deploying on Kubernetes
      • Deploying on OpenShift
      • Configuration
    • Configure your Workspace
    • Connecting to a Workspace
      • Download App
    • Built-in Templates
  • Security
    • Introduction
    • Hosting
    • Encryption
    • Users and Access
      • User Invitations
      • Single Sign-On (SSO)
        • Google Sign-In
        • Microsoft / Azure AD
        • Okta
        • Auth0
    • Permissions Management
    • Auditing
    • Teams management
    • Configuring Backup
      • Restoring a backup
    • Activate a workspace license
  • Data Sources
    • Introduction
    • User Apps
    • Workspace Integrations
    • API Integrations
      • Introduction
      • Data Modeling
      • Writing a Connector
      • Access Control
      • API Tokens
      • API Overview
      • Tips
    • Supported File Types
    • Curiosity CLI
      • Installation
      • Authentication
      • Commands
  • Search
    • Introduction
    • Languages
    • Synonyms
    • Ranking
    • Filters
    • Search Permissions and Access Control
  • Endpoints
    • Introduction
    • Creating an endpoint
    • Calling an endpoint
    • Endpoint Tokens
    • Endpoints API
  • Interfaces
    • Introduction
    • Local Development
    • Deploying a new interface
    • Routing
    • Node Renderers
    • Sidebar
    • Views
  • Artificial Intelligence
    • Introduction
    • Embeddings Search
    • AI Assistant
      • Enabling AI Assistant
    • Large Language Models
      • LLMs Models Configuration
      • Self-Hosted Models
    • Image Search
    • Audio and Video Search
  • Sample Workspaces
    • Introduction
    • HackerNews
    • Aviation Incidents
    • Covid Papers
    • NASA Public Library
    • Suggest a Recipe
  • Basic Concepts
    • Graph database
    • Search Engine
  • Troubleshooting
    • FAQs
      • How long does it take to set up?
      • How does Curiosity keep my data safe?
      • Can we get Curiosity on-premises?
      • Can I connect custom data?
      • How does Workspace pricing work?
      • Which LLM does Curiosity use?
      • What's special about Curiosity?
      • How are access permissions handled?
      • What enterprise tools can I connect?
      • How to access a workspace?
      • How do I hard refresh my browser?
      • How do I report bugs?
      • How do I solve connectivity issues?
      • How do I contact support?
  • Policies
    • Terms of Service
    • Privacy Policy
Powered by GitBook
On this page
  • Requirements
  • Docker Image
  • Deployment Setup
  • Configuration
  1. Getting Started
  2. Installation

Deploying on Kubernetes

PreviousDeploying using Docker Desktop AppNextDeploying on OpenShift

Last updated 2 years ago

is an open-source platform for managing containerized applications and workloads across clusters of servers. It automates the deployment, scaling, and orchestration of containers, and provides declarative configuration and automation features.

Requirements

In order to get started, you will need to have a working Kubernetes cluster. You can get a local Kubernetes cluster for testing using a tool like .

Docker Image

The is available in the official Docker repository, and it is available in an always up-to-date tag (curiosityai/curiosity:latest) and a versioned tag (curiosityai/curiosity:VERSION)

We recommend you locking the image version in production, so you can have more control over deploying updates

Deployment Setup

Curiosity Workspace can be deployed using Docker images on Kubernetes. To run Curiosity on Kubernetes, you needto use a StatefulSet with attached persistent storage. A StatefulSet is a Kubernetes resource that provides stable and unique identities for each pod in the set. Attached storage is a way of providing persistent and durable data volumes for the pods. By using a StatefulSet with attached storage, users can ensure that Curiosity Workspace maintains its state and data across pod restarts and updates.

A typical YAML configuration for such deployment looks like below. Please refer to the for the version of your cluster for more information.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: curiosity-workspace-stateful
spec:
  replicas: 1
  updateStrategy:
    type: OnDelete
  serviceName: curiosity-workspace-service
  podManagementPolicy: OrderedReady
  volumeClaimTemplates:
    - kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        labels: {}
        annotations: {}
        name: curiosity-pvc
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          limits:
            storage: 100Gi
          requests:
            storage: 100Gi
        volumeName: curiosity-data-volume
  template:
     spec:
      volumes:
        - name: curiosity-storage
          persistentVolumeClaim:
            claimName: curiosity-pvc
      containers:
        - name: curiosity-workspace
          image: curiosityai/curiosity:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 8080
          env:
            - name: port
              value: '8080'
            - name: storage
              value: /data
          volumeMounts:
            - name: curiosity-storage
              mountPath: /data
              subPath: ''
          resources:
            requests:
              memory: 16Gi
              cpu: '8'
            limits:
              memory: 16Gi
              cpu: '8'

Configuration

Configure Curiosity using environment variables in the template.spec.containers.env section of the deployment configuration. See for a list of all configurable variables. If not set via configuration variables, the username and password for your first log is admin. You can now follow the steps under .

You can define a for the admin account, and pass it using an environmental variable. You can store this as a in Kubernetes.

Kubernetes
minikube
Curiosity Docker Image
Kubernetes documentation
Configuration
Configure your Workspace
secret
fixed password