Skip to main content

Uniskai Agent for Kubernetes

Updated today

Uniskai Agent is a Kubernetes operator that provides automated resource management and monitoring for Kubernetes clusters.

The agent integrates with the Uniskai API to monitor workloads, execute optimization jobs, and manage Kubernetes resources automatically.

Maintainers


Name

Email

Profisea Labs Team

Values


Key

Type

Default

Description

agent.accessMode

string

"editor"

Access mode: "editor" (write) or "viewer" (read-only)

agent.image.pullPolicy

string

"IfNotPresent"

Image pull policy

agent.image.repository

string

"public.ecr.aws/profisealabs/images/uniskai-agent"

Uniskai Agent image repository

agent.image.tag

string

"0.0.1"

Uniskai Agent image tag (defaults to chart appVersion if not set)

agent.imagePullSecrets

list

[]

Image pull secrets for private registries

agent.jobExecutionTimeout

int

60

Job execution timeout in seconds. Maximum time allowed for each job pulled from the Uniskai API and executed by the agent before it is considered failed

agent.metadataUpdateInterval

int

60

Metadata update interval in seconds. Controls how often the Uniskai agent sends metadata to the Uniskai API

agent.observabilityPeriod

int

24

Observability data retention period in hours. Controls how long created VPA resources collect recommendations for the target before applying them in InPlace mode

agent.reconciliationInterval

int

30

Reconciliation interval in seconds

agent.replicaCount

int

1

Number of agent pod replicas

agent.startupDelay

int

5

Seconds to wait after startup before first reconciliation. Do not set too low or the agent may miss initial state

crd

object

{"path":"crds/kubesitter.yaml","repository":"public.ecr.aws/profisealabs-development/charts/uniskai-agent","version":"v0.1.0"}

KubesitterPolicy CRD source configuration

crd.path

string

"crds/kubesitter.yaml"

Path to the KubesitterPolicy CRD manifest

crd.repository

string

"public.ecr.aws/profisealabs-development/charts/uniskai-agent"

Helm repository URL for the KubesitterPolicy CRD

crd.version

string

"v0.1.0"

KubesitterPolicy CRD version

features

object

{"autopilot":true,"scheduleArgo":true,"scheduleClickHouse":false,"scheduleKEDA":true}

Feature flags; when enabled, grant RBAC for the corresponding resources

features.autopilot

bool

true

If true, enable VPA (VerticalPodAutoscaler) management

features.scheduleArgo

bool

true

If true, enable Argo CD (applications, applicationsets, rollouts) management

features.scheduleClickHouse

bool

false

If true, enable ClickHouse scheduling (sets SCHEDULE_CLICKHOUSE env)

features.scheduleKEDA

bool

true

If true, enable KEDA ScaledObjects management

logging.controllerLogLevel

string

"DEBUG"

Log level for the controller component

logging.logLevel

string

"INFO"

Log level for the agent

nameOverride

string

""

Override the name of the chart used for resource names

namespace

string

"uniskai"

Kubernetes namespace to deploy the agent into

podAnnotations

object

{}

Annotations to add to the agent pods

podSecurityContext

object

{}

Security context for the agent pod

resources

object

{"limits":{"cpu":"100m","memory":"250Mi"},"requests":{"cpu":"100m","memory":"250Mi"}}

CPU and memory limits and requests for the agent container

resources.limits.cpu

string

"100m"

Maximum CPU for the agent container

resources.limits.memory

string

"250Mi"

Maximum memory for the agent container

resources.requests.cpu

string

"100m"

CPU requested for the agent container

resources.requests.memory

string

"250Mi"

Memory requested for the agent container

securityContext

object

{}

Security context for the agent container

service

object

{"port":80,"type":"ClusterIP"}

Service that exposes the agent

service.port

int

80

Port exposed by the service

service.type

string

"ClusterIP"

Service type

serviceAccount

object

{"annotations":{}}

Service account for the agent pods

serviceAccount.annotations

object

{}

Annotations to add to the service account

serviceMonitor

object

{"enabled":false,"path":"/metrics","port":8080,"scheme":"http"}

Prometheus ServiceMonitor configuration

serviceMonitor.enabled

bool

false

If true, create a ServiceMonitor for Prometheus Operator

serviceMonitor.path

string

"/metrics"

HTTP path for the metrics endpoint

serviceMonitor.port

int

8080

Port for the metrics endpoint (must match container port)

serviceMonitor.scheme

string

"http"

Scheme for scraping (http or https)

uniskai.apiHeartbeatInterval

int

60

Interval in seconds between heartbeats sent to the Uniskai API to keep the cluster connection marked as active

uniskai.apiJobsInterval

int

10

Interval in seconds between polling the Uniskai API for new jobs to execute

uniskai.apiJoinInterval

int

5

Seconds to wait between join (cluster join) attempts when starting

uniskai.apiJoinInterval

int

5

Seconds to wait between join (cluster join) attempts when starting

uniskai.apiJoinMaxRetries

int

10

Maximum number of join attempts before the agent stops retrying join

uniskai.apiMaxRetries

int

5

Maximum retries for API calls before giving up

uniskai.apiTimeout

int

60

Timeout in seconds for each API request. Requests that take longer are aborted

uniskai.apiUrl

string

Base URL of the Uniskai API. The agent uses this for join, heartbeat, and job polling

uniskai.reuseSecret

bool

false

If false, the chart creates a Secret for the API token. If true, use an existing secret (the chart will not create one)

Did this answer your question?