Installation
Install with Helmâ
If you have a Kubernetes cluster, Helm is the recommended installation method.
The following tutorial will guide you to install Karpor using Helm, which will install the chart with the release name karpor-release
in namespace karpor
.
Prerequisitesâ
- Helm v3+
- A Kubernetes Cluster (The simplest way is to deploy a Kubernetes cluster locally using
kind
orminikube
)
Remote Installationâ
First, add the karpor chart repo to your local repository.
helm repo add kusionstack https://kusionstack.github.io/charts
helm repo update
Then you can use the following command to install the latest version of Karpor.
helm install karpor-release kusionstack/karpor
Note that installing this chart directly means it will use the default template values for Karpor.
You may have to set your specific configurations if it is deployed into a production cluster, or you want to customize the chart configuration, such as resources
, replicas
, port
etc.
All configurable parameters of the Karpor chart are detailed here.
helm install karpor-release kusionstack/karpor --set server.replicas=3 --set syncer.port=7654
Search all available versionsâ
You can use the following command to view all installable chart versions.
helm repo update
helm search repo kusionstack/karpor --versions
Upgrade specified versionâ
You can specify the version to be upgraded through the --version
.
# Upgrade to the latest version.
helm upgrade karpor-release kusionstack/karpor
# Upgrade to the specified version.
helm upgrade karpor-release kusionstack/karpor --version 1.2.3
Local Installationâ
If you have problem connecting to https://kusionstack.github.io/charts/ in production, you may need to manually download the chart from here and use it to install or upgrade locally.
git clone https://github.com/KusionStack/charts.git
helm install karpor-release charts/karpor
helm upgrade karpor-release charts/karpor
Uninstallâ
To uninstall/delete the karpor-release
Helm release in namespace karpor
:
helm uninstall karpor-release
Image Registry Proxy for Chinaâ
If you are in China and have problem to pull image from official DockerHub, you can use the registry proxy:
helm install karpor-release kusionstack/karpor --set registryProxy=docker.m.daocloud.io
NOTE: The above is just an example, you can replace the value of registryProxy
as needed.
Enable AI featuresâ
If you are trying to install Karpor with AI features, including natural language search and AI analyze, ai-auth-token
and ai-base-url
should be configured, e.g.:
# At a minimum, server.ai.authToken and server.ai.baseUrl must be configured.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1
# server.ai.backend has default values `openai`, which can be overridden when necessary.
# If the backend you are using is compatible with OpenAI, then there is no need to make
# any changes here.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1 \
--set server.ai.backend=huggingface
# server.ai.model has default values `gpt-3.5-turbo`, which can be overridden when necessary.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1 \
--set server.ai.model=gpt-4o
# server.ai.topP and server.ai.temperature can also be manually modified.
helm install karpor-release kusionstack/karpor \
--set server.ai.authToken=YOUR_AI_TOKEN \
--set server.ai.baseUrl=https://api.openai.com/v1 \
--set server.ai.topP=0.5 \
--set server.ai.temperature=0.2
Chart Parametersâ
The following table lists the configurable parameters of the chart and their default values.
General Parametersâ
Key | Type | Default | Description |
---|---|---|---|
namespace | string | "karpor" | Which namespace to be deployed. |
namespaceEnabled | bool | true | Whether to generate namespace. |
registryProxy | string | "" | Image registry proxy will be the prefix as all component image. |
Global Parametersâ
Key | Type | Default | Description |
---|---|---|---|
global.image.imagePullPolicy | string | "IfNotPresent" | Image pull policy to be applied to all Karpor components. |
Karpor Serverâ
The Karpor Server Component is main backend server. It itself is an apiserver
, which also provides /rest-api
to serve Dashboard.
Key | Type | Default | Description |
---|---|---|---|
server.ai | object | {"authToken":"","backend":"openai","baseUrl":"","model":"gpt-3.5-turbo","temperature":1,"topP":1} | AI configuration section. The AI analysis feature requires that [authToken, baseUrl] be assigned values. |
server.ai.authToken | string | "" | Authentication token for accessing the AI service. |
server.ai.backend | string | "openai" | Backend service or platform that the AI model is hosted on. e.g., "openai". If the backend you are using is compatible with OpenAI, then there is no need to make any changes here. |
server.ai.baseUrl | string | "" | Base URL of the AI service. e.g., "https://api.openai.com/v1". |
server.ai.model | string | "gpt-3.5-turbo" | Name or identifier of the AI model to be used. e.g., "gpt-3.5-turbo". |
server.ai.temperature | float | 1 | Temperature parameter for the AI model. This controls the randomness of the output, where a higher value (e.g., 1.0) makes the output more random, and a lower value (e.g., 0.0) makes it more deterministic. |
server.ai.topP | float | 1 | Top-p (nucleus sampling) parameter for the AI model. This controls Controls the probability mass to consider for sampling, where a higher value leads to greater diversity in the generated content (typically ranging from 0 to 1) |
server.enableRbac | bool | false | Enable RBAC authorization if set to true. |
server.image.repo | string | "kusionstack/karpor" | Repository for Karpor server image. |
server.image.tag | string | "" | Tag for Karpor server image. Defaults to the chart's appVersion if not specified. |
server.name | string | "karpor-server" | Component name for karpor server. |
server.port | int | 7443 | Port for karpor server. |
server.replicas | int | 1 | The number of karpor server pods to run. |
server.resources | object | {"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}} | Resource limits and requests for the karpor server pods. |
server.serviceType | string | "ClusterIP" | Service type for the karpor server. The available type values list as ["ClusterIP"ã"NodePort"ã"LoadBalancer"]. |
Karpor Syncerâ
The Karpor Syncer Component is independent server to synchronize cluster resources in real-time.
Key | Type | Default | Description |
---|---|---|---|
syncer.image.repo | string | "kusionstack/karpor" | Repository for Karpor syncer image. |
syncer.image.tag | string | "" | Tag for Karpor syncer image. Defaults to the chart's appVersion if not specified. |
syncer.name | string | "karpor-syncer" | Component name for Karpor syncer. |
syncer.port | int | 7443 | Port for Karpor syncer. |
syncer.replicas | int | 1 | The number of karpor syncer pods to run. |
syncer.resources | object | {"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}} | Resource limits and requests for the karpor syncer pods. |
ElasticSearchâ
The ElasticSearch Component to store the synchronized resources and user data.
Key | Type | Default | Description |
---|---|---|---|
elasticsearch.image.repo | string | "docker.elastic.co/elasticsearch/elasticsearch" | Repository for ElasticSearch image. |
elasticsearch.image.tag | string | "8.6.2" | Specific tag for ElasticSearch image. |
elasticsearch.name | string | "elasticsearch" | Component name for ElasticSearch. |
elasticsearch.port | int | 9200 | Port for ElasticSearch. |
elasticsearch.replicas | int | 1 | The number of ElasticSearch pods to run. |
elasticsearch.resources | object | {"limits":{"cpu":"2","ephemeral-storage":"10Gi","memory":"4Gi"},"requests":{"cpu":"2","ephemeral-storage":"10Gi","memory":"4Gi"}} | Resource limits and requests for the karpor elasticsearch pods. |
ETCDâ
The ETCD Component is the storage of Karpor Server as apiserver
.
Key | Type | Default | Description |
---|---|---|---|
etcd.image.repo | string | "quay.io/coreos/etcd" | Repository for ETCD image. |
etcd.image.tag | string | "v3.5.11" | Specific tag for ETCD image. |
etcd.name | string | "etcd" | Component name for ETCD. |
etcd.persistence.accessModes | list | ["ReadWriteOnce"] | Volume access mode, ReadWriteOnce means single node read-write access |
etcd.persistence.size | string | "10Gi" | Size of etcd persistent volume |
etcd.port | int | 2379 | Port for ETCD. |
etcd.replicas | int | 1 | The number of etcd pods to run. |
etcd.resources | object | {"limits":{"cpu":"500m","ephemeral-storage":"10Gi","memory":"1Gi"},"requests":{"cpu":"250m","ephemeral-storage":"2Gi","memory":"256Mi"}} | Resource limits and requests for the karpor etcd pods. |
Jobâ
This one-time job is used to generate root certificates and some preliminary work.
Key | Type | Default | Description |
---|---|---|---|
job.image.repo | string | "kusionstack/karpor" | Repository for the Job image. |
job.image.tag | string | "" | Tag for Karpor image. Defaults to the chart's appVersion if not specified. |