Channel Revision Published Runs on
latest/edge 1837 02 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 1836 02 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 1835 02 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 1834 02 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 578 19 Mar 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
latest/edge 576 19 Mar 2025
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/stable 1838 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/stable 1847 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/stable 1839 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/stable 1848 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/stable 1840 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/stable 1849 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/candidate 1849 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/candidate 1838 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/candidate 1839 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/candidate 1847 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/candidate 1840 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/candidate 1848 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/beta 1849 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/beta 1848 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/beta 1847 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/beta 1840 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/beta 1839 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.32/beta 1838 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.35/stable 1845 17 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/stable 1854 17 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/stable 1846 17 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/stable 1855 17 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/candidate 1855 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/candidate 1845 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/candidate 1846 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/candidate 1854 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/beta 1855 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/beta 1854 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/beta 1846 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.35/beta 1845 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/stable 1843 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/stable 1852 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/stable 1844 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/stable 1853 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/candidate 1844 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/candidate 1843 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/candidate 1853 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/candidate 1852 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/beta 1853 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/beta 1852 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/beta 1844 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.34/beta 1843 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/stable 1841 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/stable 1850 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/stable 1842 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/stable 1851 16 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/candidate 1850 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/candidate 1841 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/candidate 1842 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/candidate 1851 12 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/beta 1851 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/beta 1850 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/beta 1842 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.33/beta 1841 11 Feb 2026
Ubuntu 24.04 Ubuntu 22.04
1.31/candidate 142 11 Dec 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.31/candidate 141 27 Nov 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
1.30/beta 65 23 May 2024
Ubuntu 24.04 Ubuntu 22.04 Ubuntu 20.04
juju deploy k8s --channel 1.32/stable
Show information

Platform:

Ubuntu
24.04 22.04 20.04

Learn about configurations >

  • bootstrap-datastore | string

    The datastore to use in Canonical Kubernetes. This can only be reset after deployment.

    Allowed values are "", managed-etcd, dqlite and etcd.

    • "": The charm will automatically bootstrap with the default datastore managed by the k8s snap.
    • managed-etcd: The charm will bootstrap with a managed-etcd datastore.
    • dqlite: The charm will bootstrap with a k8s-dqlite datastore. [Warning] k8s-dqlite is deprecated and will be removed from Canonical Kubernetes in 1.36 without a migration path. New deployments should refrain from using this option.
    • etcd: The charm will bootstrap with an external etcd datastore. The charm will block until the etcd charm is integrated.

  • bootstrap-node-taints | string

    Space-separated list of taints to apply to this node at registration time.

    This config is only used at bootstrap time when Kubelet first registers the node with Kubernetes. To change node taints after deploy time, use kubectl instead.

    For more information, see the upstream Kubernetes documentation about taints: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

  • bootstrap-pod-cidr | string

    Comma-separated CIDR blocks for IP addresses that can be assigned to pods within the cluster. Can contain at most 2 blocks, one for IPv4 and one for IPv6. If the value is "", the snap will automatically assign a CIDR block for the pods.

    After deployment it is not possible to change the size of the IP range.

    Examples:

    • "192.0.2.0/24"
    • "2001:db8::/32"
    • "192.0.2.0/24,2001:db8::/32"
    • "2001:db8::/32,192.0.2.0/24"

  • bootstrap-service-cidr | string

    Comma-separated CIDR blocks for IP addresses that can be assigned to services within the cluster. Can contain at most 2 blocks, one for IPv4 and one for IPv6. If the value is "", the snap will automatically assign a CIDR block for the services.

    After deployment it is not possible to change the size of the IP range.

    • "" - The charm will bootstrap with the defaults from the k8s snap
    • "192.0.2.0/24"
    • "2001:db8::/32"
    • "192.0.2.0/24,2001:db8::/32"
    • "2001:db8::/32,192.0.2.0/24"

  • cluster-annotations | string

    Space-separated list of (key/value) pairs) that can be used to add arbitrary metadata configuration to the Canonical Kubernetes cluster. For more information, see the upstream Canonical Kubernetes documentation about annotations:

    https://documentation.ubuntu.com/canonical-kubernetes/latest/src/snap/reference/annotations/

    Example: e.g.: key1=value1 key2=value2

  • containerd-custom-registries | string

    Default: []

    Registry endpoints and credentials. Setting this config allows containerd to pull images from registries where auth is required.

    The value for this config must be a JSON array of credential objects, like this: e.g.: [{"url": "https://registry.example.com", "host": "my.registry:port", "username": "user", "password": "pass"}]

    Credential Object Parameters: url: REQUIRED str the URL to the registry, include the port if not it isn't implied from the schema. e.g: "url": "https://my.registry:8443" e.g: "url": "http://my.registry"

    host: OPTIONAL str - defaults to auto-generated from the url could be registry host address or a name e.g.: myregistry.io:9000, 10.10.10.10:5432 e.g.: myregistry.io, myregistry Note: It will be derived from url if not provided. e.g.: "url": "http://10.10.10.10:8000" --> "host": "10.10.10.10:8000"

    username: OPTIONAL str - default '' password: OPTIONAL str - default '' identitytoken: OPTIONAL str - default '' Used by containerd for basic authentication to the registry.

    ca_file: OPTIONAL str - default '' cert_file: OPTIONAL str - default '' key_file: OPTIONAL str - default '' For ssl/tls communication these should be a base64 encoded file e.g.: "ca_file": "'"$(base64 -w 0 < my.custom.registry.pem)"'"

    skip_verify: OPTIONAL bool - default false For situations where the registry has self-signed or expired certs and a quick work-around is necessary. e.g.: "skip_verify": true

    Example config: juju config k8s containerd_custom_registries='[{ "url": "https://registry.example.com", "host": "ghcr.io", "ca_file": "'"$(base64 -w 0 < ~/my.custom.ca.pem)"'", "cert_file": "'"$(base64 -w 0 < ~/my.custom.cert.pem)"'", "key_file": "'"$(base64 -w 0 < ~/my.custom.key.pem)"'", }]'

  • datastore-extra-args | string

    Space separated list of flags and key=value pairs that will be passed as arguments to datastore if managed-etcd or dqlite is set as datastore.

    Notes: Options may only be set on charm deployment

    For example a value like this: --heartbeat-interval=100 listen-peer-urls=http://10.0.0.1:2380 will result in kube-controller-manager being run with the following options: --heartbeat-interval=100 --listen-peer-urls=http://10.0.0.1:2380

  • dns-cluster-domain | string

    Default: cluster.local

    Sets the local domain of the cluster

  • dns-enabled | boolean

    Default: True

    Enable/Disable the DNS feature on the cluster.

  • dns-service-ip | string

    Sets the IP address of the dns service. If omitted defaults to the IP address of the Kubernetes service created by the feature.

    Can be used to point to an external dns server when feature is disabled.

  • dns-upstream-nameservers | string

    Space-separated list of upstream nameservers used to forward queries for out-of-cluster endpoints.

    If omitted defaults to /etc/resolv.conf and uses the nameservers on each node.

  • gateway-enabled | boolean

    Enable/Disable the gateway feature on the cluster.

  • ingress-enable-proxy-protocol | boolean

    Determines if the proxy protocol should be enabled for ingresses.

  • ingress-enabled | boolean

    Determines if the ingress feature should be enabled.

  • kube-apiserver-extra-args | string

    Space separated list of flags and key=value pairs that will be passed as arguments to kube-apiserver.

    Notes: Options may only be set on charm deployment

    For example a value like this: runtime-config=batch/v2alpha1=true profiling=true will result in kube-apiserver being run with the following options: --runtime-config=batch/v2alpha1=true --profiling=true

  • kube-apiserver-extra-sans | string

    Space separated list of extra Subject Alternative Names for the kube-apiserver self-signed certificates.

    Examples:

    • "kubernetes"
    • "kubernetes.default.svc"
    • "kubernetes.default.svc.cluster.local"

  • kube-controller-manager-extra-args | string

    Space separated list of flags and key=value pairs that will be passed as arguments to kube-controller-manager.

    Notes: Options may only be set on charm deployment cluster-name: cannot be overridden

    For example a value like this: runtime-config=batch/v2alpha1=true profiling=true will result in kube-controller-manager being run with the following options: --runtime-config=batch/v2alpha1=true --profiling=true

  • kube-proxy-extra-args | string

    Space separated list of flags and key=value pairs that will be passed as arguments to kube-proxy.

    For example a value like this: runtime-config=batch/v2alpha1=true profiling=true will result in kube-proxy being run with the following options: --runtime-config=batch/v2alpha1=true --profiling=true

  • kube-scheduler-extra-args | string

    Space separated list of flags and key=value pairs that will be passed as arguments to kube-scheduler.

    Notes: Options may only be set on charm deployment

    For example a value like this: runtime-config=batch/v2alpha1=true profiling=true will result in kube-scheduler being run with the following options: --runtime-config=batch/v2alpha1=true --profiling=true

  • kubelet-extra-args | string

    Space separated list of flags and key=value pairs that will be passed as arguments to kubelet.

    For example a value like this: runtime-config=batch/v2alpha1=true profiling=true will result in kubelet being run with the following options: --runtime-config=batch/v2alpha1=true --profiling=true

  • load-balancer-bgp-local-asn | int

    Default: 64512

    Local ASN for the load balancer. This is only used if load-balancer-bgp-mode is set to true.

  • load-balancer-bgp-mode | boolean

    Enable/Disable BGP mode for the load balancer. This is only used if load-balancer-enabled is set to true.

  • load-balancer-bgp-peer-address | string

    Address of the BGP peer for the load balancer. This is only used if load-balancer-bgp-mode is set to true.

  • load-balancer-bgp-peer-port | int

    Default: 179

    Port of the BGP peer for the load balancer. This is only used if load-balancer-bgp-mode is set to true.

  • load-balancer-cidrs | string

    Space-separated list of CIDRs to use for the load balancer. This is only used if load-balancer-enabled is set to true.

  • load-balancer-enabled | boolean

    Enable/Disable the load balancer feature on the cluster.

  • load-balancer-l2-interfaces | string

    Space-separated list of interfaces to use for the load balancer. This is only used if load-balancer-l2-mode is set to true. if unset, all interfaces will be used.

  • load-balancer-l2-mode | boolean

    Enable/Disable L2 mode for the load balancer. This is only used if load-balancer-enabled is set to true.

  • local-storage-enabled | boolean

    Default: True

    Enable local storage provisioning. This will create a storage class named "local-storage" that uses the hostPath provisioner. This is useful for development and testing purposes. It is not recommended for production use.

  • local-storage-local-path | string

    Default: /var/snap/k8s/common/rawfile-storage

    The path on the host where local storage will be provisioned. This path must be writable by the kubelet. This is only used if local-storage.enabled is set to true.

  • local-storage-reclaim-policy | string

    Default: Delete

    The reclaim policy for local storage. This can be either "Delete" or "Retain". If set to "Delete", the storage will be deleted when the PersistentVolumeClaim is deleted. If set to "Retain", the storage will be retained when the PersistentVolumeClaim is deleted.

  • metrics-server-enabled | boolean

    Default: True

    Enable/Disable the metrics-server feature on the cluster.

  • network-enabled | boolean

    Default: True

    Enables or disables the network feature.

  • node-labels | string

    Labels can be used to organize and to select subsets of nodes in the cluster. Declare node labels in key=value format, separated by spaces.

  • unready-pod-namespaces | string

    Default: kube-system metallb-system

    Space-separated list of namespaces to check for unready pods. This is used to determine the status of the cluster and its components. If not set, no namespaces will be checked.