201 lines
8.9 KiB
YAML
201 lines
8.9 KiB
YAML
# Copyright 2016 Canonical Ltd.
|
|
#
|
|
# This file is part of the Snap layer for Juju.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
"options":
|
|
# snap_proxy and snap_proxy_url have been deprecated for some time.
|
|
# If your charm still needs them, add these config items manually
|
|
# to your charm's config.yaml.
|
|
# snap_proxy:
|
|
# description: >
|
|
# DEPRECATED. Use snap-http-proxy and snap-https-proxy model configuration settings.
|
|
# HTTP/HTTPS web proxy for Snappy to use when accessing the snap store.
|
|
# type: string
|
|
# default: ""
|
|
# snap_proxy_url:
|
|
# default: ""
|
|
# type: string
|
|
# description: >
|
|
# DEPRECATED. Use snap-store-proxy model configuration setting.
|
|
# The address of a Snap Store Proxy to use for snaps e.g. http://snap-proxy.example.com
|
|
"snapd_refresh":
|
|
"default": "max"
|
|
"type": "string"
|
|
"description": |
|
|
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
|
|
"nagios_context":
|
|
"default": "juju"
|
|
"type": "string"
|
|
"description": |
|
|
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":
|
|
"default": ""
|
|
"type": "string"
|
|
"description": |
|
|
A comma-separated list of nagios servicegroups.
|
|
If left empty, the nagios_context will be used as the servicegroup
|
|
"sysctl":
|
|
"type": "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 }"
|
|
"description": |
|
|
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.
|
|
"proxy-extra-args":
|
|
"type": "string"
|
|
"default": ""
|
|
"description": |
|
|
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
|
|
"ingress":
|
|
"type": "boolean"
|
|
"default": !!bool "true"
|
|
"description": |
|
|
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
|
|
"labels":
|
|
"type": "string"
|
|
"default": ""
|
|
"description": |
|
|
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.
|
|
"channel":
|
|
"type": "string"
|
|
"default": "1.23/edge"
|
|
"description": |
|
|
Snap channel to install Kubernetes worker services from
|
|
"require-manual-upgrade":
|
|
"type": "boolean"
|
|
"default": !!bool "true"
|
|
"description": |
|
|
When true, worker services will not be upgraded until the user triggers
|
|
it manually by running the upgrade action.
|
|
"kubelet-extra-args":
|
|
"type": "string"
|
|
"default": ""
|
|
"description": |
|
|
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.
|
|
"ingress-default-ssl-certificate":
|
|
"type": "string"
|
|
"default": ""
|
|
"description": |
|
|
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":
|
|
"type": "string"
|
|
"default": ""
|
|
"description": |
|
|
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-passthrough":
|
|
"type": "boolean"
|
|
"default": !!bool "false"
|
|
"description": |
|
|
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-ssl-chain-completion":
|
|
"type": "boolean"
|
|
"default": !!bool "false"
|
|
"description": |
|
|
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-use-forwarded-headers":
|
|
"type": "boolean"
|
|
"default": !!bool "false"
|
|
"description": |
|
|
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.
|
|
"nginx-image":
|
|
"type": "string"
|
|
"default": "auto"
|
|
"description": |
|
|
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
|
|
"default-backend-image":
|
|
"type": "string"
|
|
"default": "auto"
|
|
"description": |
|
|
Docker image to use for the default backend. Auto will select an image
|
|
based on architecture.
|
|
"kubelet-extra-config":
|
|
"default": "{}"
|
|
"type": "string"
|
|
"description": |
|
|
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/
|