---
title: Charmhub | Deploy Kyuubi K8s using Charmhub - The Open Operator Collection
description: Deploy the latest version of Kyuubi K8s as a Kubernetes Operator on any
  cloud.
url: https://charmhub.io/kyuubi-k8s/configurations
---

# Kyuubi K8s

[Canonical](https://charmhub.io/publisher/data-platform "View all packages from Canonical")

* [Canonical](https://charmhub.io/publisher/data-platform "View all packages from Canonical")

Platform:

3.5/stable 182

```
juju deploy kyuubi-k8s --channel 3.5/stable
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

* [driver-pod-template](https://charmhub.io/kyuubi-k8s/configurations#driver-pod-template)
* [enable-dynamic-allocation](https://charmhub.io/kyuubi-k8s/configurations#enable-dynamic-allocation)
* [executor-cores](https://charmhub.io/kyuubi-k8s/configurations#executor-cores)
* [executor-memory](https://charmhub.io/kyuubi-k8s/configurations#executor-memory)
* [executor-pod-template](https://charmhub.io/kyuubi-k8s/configurations#executor-pod-template)
* [expose-external](https://charmhub.io/kyuubi-k8s/configurations#expose-external)
* [gpu-enable](https://charmhub.io/kyuubi-k8s/configurations#gpu-enable)
* [gpu-engine-executors-limit](https://charmhub.io/kyuubi-k8s/configurations#gpu-engine-executors-limit)
* [gpu-pinned-memory](https://charmhub.io/kyuubi-k8s/configurations#gpu-pinned-memory)
* [iceberg-catalog-name](https://charmhub.io/kyuubi-k8s/configurations#iceberg-catalog-name)
* [k8s-node-selectors](https://charmhub.io/kyuubi-k8s/configurations#k8s-node-selectors)
* [loadbalancer-extra-annotations](https://charmhub.io/kyuubi-k8s/configurations#loadbalancer-extra-annotations)
* [namespace](https://charmhub.io/kyuubi-k8s/configurations#namespace)
* [pause-after-unit-refresh](https://charmhub.io/kyuubi-k8s/configurations#pause-after-unit-refresh)
* [profile](https://charmhub.io/kyuubi-k8s/configurations#profile)
* [service-account](https://charmhub.io/kyuubi-k8s/configurations#service-account)
* [system-users](https://charmhub.io/kyuubi-k8s/configurations#system-users)
* [tls-client-private-key](https://charmhub.io/kyuubi-k8s/configurations#tls-client-private-key)

[Learn about configurations >](https://juju.is/docs/juju/configuration#heading--application-configuration)

* driver-pod-template | string

  Define K8s driver pod from a file accessible to the workload.
  Ex.: "s3a://bucket/template.yml".
  Is equivalent to the following Spark configuration:

  spark.kubernetes.driver.podTemplateFile=<driver-pod-template>
* enable-dynamic-allocation | boolean

  Enable dynamic allocation of pods for Spark jobs.
* executor-cores | int

  Set K8s executor pods cpu limit.
  Is equivalent to the following Spark configuration:

  spark.executor.cores=4
* executor-memory | int

  Set K8s executor pods memory limit (in GB).
  Is equivalent to the following Spark configuration:

  spark.executor.memory=4G
* executor-pod-template | string

  Define K8s executor pods from a file accessible to the workload.
  Ex.: "s3a://bucket/template.yml".
  Is equivalent to the following Spark configuration:

  spark.kubernetes.executor.podTemplateFile=<executor-pod-template>
* expose-external | string

  Default: false

  The mode in which the service should be exposed externally. Valid values are false, nodeport and loadbalancer.
* gpu-enable | boolean

  Enable GPU acceleration for the SparkSQLEngine.
  This option override 'enable-dynamic-allocation' toggling auto-scaling for executor pods.
  Is equivalent to the following Spark configuration:

  spark.plugins=com.nvidia.spark.SQLPlugin
  spark.executor.resource.gpu.amount=1
  spark.executor.resource.gpu.vendor=nvidia.com
  spark.kubernetes.container.image=GPU\_JOB\_OCI\_IMAGE
  spark.executor.resource.gpu.discoveryScript=/opt/getGpusResources.sh
  kyuubi.session.engine.idle.timeout=PT3M
* gpu-engine-executors-limit | int

  Default: 1

  Limit the number of GPUs an engine can schedule executor pods on. If -1, use all GPUs available. The more tenants are expected, the less this value should be.
  This option should be set to either -1 or a positive integer.
  This option is ignored if 'gpu-enable' is set to false.
  Is equivalent to the following Spark configuration:

  spark.executor.instances=1
* gpu-pinned-memory | int

  Default: 1

  Set the host memory (in GB) per executor reserved for fast data transfer on GPUs.
  This also sets the executor memory overhead to be 1GB larger.
  This option is ignored if 'gpu-enable' is set to false.
  Is equivalent to the following Spark configuration:

  spark.rapids.memory.pinnedPool.size=1G
  spark.executor.memoryOverhead=2G # 1 + 1
* iceberg-catalog-name | string

  Default: iceberg

  The name of the catalog that has Iceberg capabilities.
* k8s-node-selectors | string

  Comma separated label:value selectors for K8s pods
  Ex.: "<label1>:<value1>,<label2>:<value2>".
  Is equivalent to the following Spark configuration:

  spark.kubernetes.node.selector.<label1>=<value1>
  spark.kubernetes.node.selector.<label2>=<value2>

  The desired configuration will be applied for both driver and executor pods.
* loadbalancer-extra-annotations | string

  Default: {}

  Optional extra annotations to be supplied to the load balancer service.
* namespace | string

  The namespace to be used by driver to create executor pods. If not configured, the model namespace will be used.
* pause-after-unit-refresh | string

  Default: first

  Wait for manual confirmation to resume refresh after these units refresh

  Allowed values: "all", "first", "none"
* profile | string

  Default: production

  Profile representing the scope of the deployment, and used to enable high-level customization of system configurations, resource checks/allocation, warning levels, etc.
  Allowed values are: "production", "staging" and "testing"
* service-account | string

  Default: kyuubi-spark-engine

  The service account to be used by driver to create executor pods.
* system-users | secret

  Configure the system user 'admin' and it's password. This needs to be a Juju secret URI pointing to a secret that contains the
  following content: `admin: <password>`. If this config option is not provided, the charm will generate a random password for the
  admin user.
* tls-client-private-key | secret

  A Juju secret URI of a secret containing the private key for client-to-server TLS certificates. This needs to be a Juju secret
  URI pointing to a secret that has the content { private-key: <key> }, where <key> is the key to be used by the charm to generate
  Certificate Signing Request (CSR). If this config option is not provided, the charm will generate a new private key and use it instead.
