---
title: Charmhub | Deploy Containers Kubernetes Worker using Charmhub - The Open Operator
  Collection
description: Deploy the latest version of Containers Kubernetes Worker on any cloud.
url: https://charmhub.io/containers-kubernetes-worker/configurations
---

# Containers Kubernetes Worker

[Canonical Kubernetes](https://charmhub.io/publisher/containers "View all packages from Canonical Kubernetes")

* [Canonical Kubernetes](https://charmhub.io/publisher/containers "View all packages from Canonical Kubernetes")

Platform:

20.04

18.04

16.04

stable 838

```
juju deploy containers-kubernetes-worker
```

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

* [channel](https://charmhub.io/containers-kubernetes-worker/configurations#channel)
* [default-backend-image](https://charmhub.io/containers-kubernetes-worker/configurations#default-backend-image)
* [ingress](https://charmhub.io/containers-kubernetes-worker/configurations#ingress)
* [ingress-default-ssl-certificate](https://charmhub.io/containers-kubernetes-worker/configurations#ingress-default-ssl-certificate)
* [ingress-default-ssl-key](https://charmhub.io/containers-kubernetes-worker/configurations#ingress-default-ssl-key)
* [ingress-ssl-chain-completion](https://charmhub.io/containers-kubernetes-worker/configurations#ingress-ssl-chain-completion)
* [ingress-ssl-passthrough](https://charmhub.io/containers-kubernetes-worker/configurations#ingress-ssl-passthrough)
* [ingress-use-forwarded-headers](https://charmhub.io/containers-kubernetes-worker/configurations#ingress-use-forwarded-headers)
* [kubelet-extra-args](https://charmhub.io/containers-kubernetes-worker/configurations#kubelet-extra-args)
* [kubelet-extra-config](https://charmhub.io/containers-kubernetes-worker/configurations#kubelet-extra-config)
* [labels](https://charmhub.io/containers-kubernetes-worker/configurations#labels)
* [nagios\_context](https://charmhub.io/containers-kubernetes-worker/configurations#nagios_context)
* [nagios\_servicegroups](https://charmhub.io/containers-kubernetes-worker/configurations#nagios_servicegroups)
* [nginx-image](https://charmhub.io/containers-kubernetes-worker/configurations#nginx-image)
* [proxy-extra-args](https://charmhub.io/containers-kubernetes-worker/configurations#proxy-extra-args)
* [require-manual-upgrade](https://charmhub.io/containers-kubernetes-worker/configurations#require-manual-upgrade)
* [snapd\_refresh](https://charmhub.io/containers-kubernetes-worker/configurations#snapd_refresh)
* [sysctl](https://charmhub.io/containers-kubernetes-worker/configurations#sysctl)

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

* channel | string

  Default: 1.23/stable

  Snap channel to install Kubernetes worker services from
* default-backend-image | string

  Default: auto

  Docker image to use for the default backend. Auto will select an image
  based on architecture.
* ingress | boolean

  Default: True

  Deploy the default http backend and ingress controller to handle
  ingress requests.

  Set to false if deploying an alternate ingress controller, and note
  that you may need to manually open ports 80 and 443 on the nodes:
  juju run --application kubernetes-worker -- open-port 80 && open-port 443
* ingress-default-ssl-certificate | string

  SSL certificate to be used by the default HTTPS server. If one of the
  flag ingress-default-ssl-certificate or ingress-default-ssl-key is not
  provided ingress will use a self-signed certificate. This parameter is
  specific to nginx-ingress-controller.
* ingress-default-ssl-key | string

  Private key to be used by the default HTTPS server. If one of the flag
  ingress-default-ssl-certificate or ingress-default-ssl-key is not
  provided ingress will use a self-signed certificate. This parameter is
  specific to nginx-ingress-controller.
* ingress-ssl-chain-completion | boolean

  Enable chain completion for TLS certificates used by the nginx ingress
  controller. Set this to true if you would like the ingress controller
  to attempt auto-retrieval of intermediate certificates. The default
  (false) is recommended for all production kubernetes installations, and
  any environment which does not have outbound Internet access.
* ingress-ssl-passthrough | boolean

  Enable ssl passthrough on ingress server. This allows passing the ssl
  connection through to the workloads and not terminating it at the ingress
  controller.
* ingress-use-forwarded-headers | boolean

  If true, NGINX passes the incoming X-Forwarded-\* headers to upstreams. Use this
  option when NGINX is behind another L7 proxy / load balancer that is setting
  these headers.

  If false, NGINX ignores incoming X-Forwarded-\* headers, filling them with the
  request information it sees. Use this option if NGINX is exposed directly to
  the internet, or it's behind a L3/packet-based load balancer that doesn't alter
  the source IP in the packets.

  Reference: https://github.com/kubernetes/ingress-nginx/blob/a9c706be12a8be418c49ab1f60a02f52f9b14e55/
  docs/user-guide/nginx-configuration/configmap.md#use-forwarded-headers.
* 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
  Note: As of Kubernetes 1.10.x, many of Kubelet's args have been deprecated, and can
  be set with kubelet-extra-config instead.
* kubelet-extra-config | string

  Default: {}

  Extra configuration to be passed to kubelet. Any values specified in this
  config will be merged into a KubeletConfiguration file that is passed to
  the kubelet service via the --config flag. This can be used to override
  values provided by the charm.

  Requires Kubernetes 1.10+.

  The value for this config must be a YAML mapping that can be safely
  merged with a KubeletConfiguration file. For example:
  {evictionHard: {memory.available: 200Mi}}

  For more information about KubeletConfiguration, see upstream docs:
  https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/
* 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.
* nagios\_context | string

  Default: juju

  Used by the nrpe subordinate charms.
  A string that will be prepended to instance name to set the host name
  in nagios. So for instance the hostname would be something like:
  juju-myservice-0
  If you're running multiple environments with the same services in them
  this allows you to differentiate between them.
* nagios\_servicegroups | string

  A comma-separated list of nagios servicegroups.
  If left empty, the nagios\_context will be used as the servicegroup
* nginx-image | string

  Default: auto

  Docker image to use for the nginx ingress controller. Using "auto" will select
  an image based on architecture.

  Example:
  quay.io/kubernetes-ingress-controller/nginx-ingress-controller-amd64:0.32.0
* 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-apiserver being run with the following options:
  --runtime-config=batch/v2alpha1=true --profiling=true
* require-manual-upgrade | boolean

  Default: True

  When true, worker services will not be upgraded until the user triggers
  it manually by running the upgrade action.
* snapd\_refresh | string

  Default: max

  How often snapd handles updates for installed snaps. Setting an empty
  string will check 4x per day. Set to "max" to delay the refresh as long
  as possible. You may also set a custom string as described in the
  'refresh.timer' section here:
  https://forum.snapcraft.io/t/system-options/87
* sysctl | string

  Default: { net.ipv4.conf.all.forwarding : 1, net.ipv4.neigh.default.gc\_thresh1 : 128, net.ipv4.neigh.default.gc\_thresh2 : 28672, net.ipv4.neigh.default.gc\_thresh3 : 32768, net.ipv6.neigh.default.gc\_thresh1 : 128, net.ipv6.neigh.default.gc\_thresh2 : 28672, net.ipv6.neigh.default.gc\_thresh3 : 32768, fs.inotify.max\_user\_instances : 8192, fs.inotify.max\_user\_watches : 1048576, kernel.panic : 10, kernel.panic\_on\_oops: 1, vm.overcommit\_memory : 1 }

  YAML formatted associative array of sysctl values, e.g.:
  '{kernel.pid\_max : 4194303 }'. Note that kube-proxy handles
  the conntrack settings. The proper way to alter them is to
  use the proxy-extra-args config to set them, e.g.:
  juju config kubernetes-master proxy-extra-args="conntrack-min=1000000 conntrack-max-per-core=250000"
  juju config kubernetes-worker proxy-extra-args="conntrack-min=1000000 conntrack-max-per-core=250000"
  The proxy-extra-args conntrack-min and conntrack-max-per-core can be set to 0 to ignore
  kube-proxy's settings and use the sysctl settings instead. Note the fundamental difference between
  the setting of conntrack-max-per-core vs nf\_conntrack\_max.
