2017-08-24 17:09:52 +08:00
|
|
|
---
|
2016-08-25 17:16:14 +08:00
|
|
|
# An experimental dev/test only dynamic volumes provisioner,
|
|
|
|
# for PetSets. Works for kube>=v1.3 only.
|
|
|
|
kube_hostpath_dynamic_provisioner: "false"
|
2016-10-24 21:11:52 +08:00
|
|
|
|
|
|
|
# change to 0.0.0.0 to enable insecure access from anywhere (not recommended)
|
|
|
|
kube_apiserver_insecure_bind_address: 127.0.0.1
|
|
|
|
|
2017-11-29 23:24:02 +08:00
|
|
|
# By default the external API listens on all interfaces, this can be changed to
|
|
|
|
# listen on a specific address/interface.
|
|
|
|
kube_apiserver_bind_address: 0.0.0.0
|
|
|
|
|
2016-11-18 20:56:55 +08:00
|
|
|
# A port range to reserve for services with NodePort visibility.
|
|
|
|
# Inclusive at both ends of the range.
|
|
|
|
kube_apiserver_node_port_range: "30000-32767"
|
|
|
|
|
2017-03-06 18:22:13 +08:00
|
|
|
# ETCD backend for k8s data
|
|
|
|
kube_apiserver_storage_backend: etcd3
|
|
|
|
|
2017-03-30 21:08:13 +08:00
|
|
|
# By default, force back to etcd2. Set to true to force etcd3 (experimental!)
|
|
|
|
force_etcd3: false
|
|
|
|
|
2018-08-15 16:41:13 +08:00
|
|
|
# audit support
|
|
|
|
kubernetes_audit: false
|
2018-08-20 13:00:53 +08:00
|
|
|
# path to audit log file
|
2018-08-15 16:41:13 +08:00
|
|
|
audit_log_path: /var/log/audit/kube-apiserver-audit.log
|
|
|
|
# num days
|
|
|
|
audit_log_maxage: 30
|
|
|
|
# the num of audit logs to retain
|
|
|
|
audit_log_maxbackups: 1
|
2018-08-23 00:16:13 +08:00
|
|
|
# the max size in MB to retain
|
2018-08-15 16:41:13 +08:00
|
|
|
audit_log_maxsize: 100
|
|
|
|
# policy file
|
|
|
|
audit_policy_file: "{{ kube_config_dir }}/audit-policy/apiserver-audit-policy.yaml"
|
2018-08-20 13:04:56 +08:00
|
|
|
# custom audit policy rules (to replace the default ones)
|
2018-08-21 15:04:04 +08:00
|
|
|
# audit_policy_custom_rules: |
|
2018-08-20 13:04:56 +08:00
|
|
|
# - level: None
|
|
|
|
# users: []
|
|
|
|
# verbs: []
|
|
|
|
# resources: []
|
2018-08-15 16:41:13 +08:00
|
|
|
|
|
|
|
# audit log hostpath
|
|
|
|
audit_log_name: audit-logs
|
|
|
|
audit_log_hostpath: /var/log/kubernetes/audit
|
2018-08-16 18:51:09 +08:00
|
|
|
audit_log_mountpath: "{{ audit_log_path | dirname }}"
|
2018-08-15 16:41:13 +08:00
|
|
|
|
|
|
|
# audit policy hostpath
|
|
|
|
audit_policy_name: audit-policy
|
2018-08-16 18:51:09 +08:00
|
|
|
audit_policy_hostpath: "{{ audit_policy_file | dirname }}"
|
2018-08-15 16:41:13 +08:00
|
|
|
audit_policy_mountpath: "{{ audit_policy_hostpath }}"
|
|
|
|
|
2016-12-23 22:44:44 +08:00
|
|
|
# Limits for kube components
|
|
|
|
kube_controller_memory_limit: 512M
|
|
|
|
kube_controller_cpu_limit: 250m
|
2017-03-23 17:11:30 +08:00
|
|
|
kube_controller_memory_requests: 100M
|
2016-12-23 22:44:44 +08:00
|
|
|
kube_controller_cpu_requests: 100m
|
2017-02-07 22:01:02 +08:00
|
|
|
kube_controller_node_monitor_grace_period: 40s
|
|
|
|
kube_controller_node_monitor_period: 5s
|
|
|
|
kube_controller_pod_eviction_timeout: 5m0s
|
2018-09-24 17:17:18 +08:00
|
|
|
kube_controller_terminated_pod_gc_threshold: 12500
|
2016-12-23 22:44:44 +08:00
|
|
|
kube_scheduler_memory_limit: 512M
|
|
|
|
kube_scheduler_cpu_limit: 250m
|
|
|
|
kube_scheduler_memory_requests: 170M
|
2017-03-23 17:11:30 +08:00
|
|
|
kube_scheduler_cpu_requests: 80m
|
2016-12-23 22:44:44 +08:00
|
|
|
kube_apiserver_memory_limit: 2000M
|
|
|
|
kube_apiserver_cpu_limit: 800m
|
|
|
|
kube_apiserver_memory_requests: 256M
|
2017-03-23 17:11:30 +08:00
|
|
|
kube_apiserver_cpu_requests: 100m
|
2018-09-24 17:17:18 +08:00
|
|
|
kube_apiserver_request_timeout: "1m0s"
|
2017-02-27 20:24:21 +08:00
|
|
|
|
2018-08-07 02:50:48 +08:00
|
|
|
# 1.9 and below Admission control plug-ins
|
2017-04-17 10:03:45 +08:00
|
|
|
kube_apiserver_admission_control:
|
2017-10-25 00:28:07 +08:00
|
|
|
- Initializers
|
2017-04-17 10:03:45 +08:00
|
|
|
- NamespaceLifecycle
|
|
|
|
- LimitRanger
|
|
|
|
- ServiceAccount
|
|
|
|
- DefaultStorageClass
|
2017-12-20 18:48:09 +08:00
|
|
|
- >-
|
2018-10-17 06:33:30 +08:00
|
|
|
{%- if kube_version is version('v1.9', '<') -%}
|
2017-12-20 18:48:09 +08:00
|
|
|
GenericAdmissionWebhook
|
|
|
|
{%- else -%}
|
2018-04-10 23:17:39 +08:00
|
|
|
MutatingAdmissionWebhook,ValidatingAdmissionWebhook
|
2017-12-20 18:48:09 +08:00
|
|
|
{%- endif -%}
|
2017-10-25 00:28:07 +08:00
|
|
|
- ResourceQuota
|
2017-10-13 22:42:54 +08:00
|
|
|
|
2018-08-04 02:58:03 +08:00
|
|
|
# 1.10+ admission plugins
|
2018-08-07 01:54:20 +08:00
|
|
|
kube_apiserver_enable_admission_plugins: []
|
2018-08-04 02:58:03 +08:00
|
|
|
|
|
|
|
# 1.10+ list of disabled admission plugins
|
|
|
|
kube_apiserver_disable_admission_plugins: []
|
|
|
|
|
2017-10-13 22:42:54 +08:00
|
|
|
# extra runtime config
|
|
|
|
kube_api_runtime_config:
|
|
|
|
- admissionregistration.k8s.io/v1alpha1
|
2017-02-27 21:15:50 +08:00
|
|
|
|
|
|
|
## Enable/Disable Kube API Server Authentication Methods
|
2017-10-16 03:41:17 +08:00
|
|
|
kube_basic_auth: false
|
|
|
|
kube_token_auth: false
|
2017-02-27 21:15:50 +08:00
|
|
|
kube_oidc_auth: false
|
|
|
|
|
2017-02-27 20:24:21 +08:00
|
|
|
## Variables for OpenID Connect Configuration https://kubernetes.io/docs/admin/authentication/
|
|
|
|
## To use OpenID you have to deploy additional an OpenID Provider (e.g Dex, Keycloak, ...)
|
2017-02-27 21:15:50 +08:00
|
|
|
|
2017-08-24 17:09:52 +08:00
|
|
|
# kube_oidc_url: https:// ...
|
2017-02-27 20:24:21 +08:00
|
|
|
# kube_oidc_client_id: kubernetes
|
|
|
|
## Optional settings for OIDC
|
|
|
|
# kube_oidc_ca_file: {{ kube_cert_dir }}/ca.pem
|
|
|
|
# kube_oidc_username_claim: sub
|
2018-04-23 11:17:00 +08:00
|
|
|
# kube_oidc_username_prefix: oidc:
|
2017-02-27 20:24:21 +08:00
|
|
|
# kube_oidc_groups_claim: groups
|
2018-04-23 11:17:00 +08:00
|
|
|
# kube_oidc_groups_prefix: oidc:
|
2017-04-15 05:33:04 +08:00
|
|
|
|
2017-08-24 17:09:52 +08:00
|
|
|
## Variables for custom flags
|
2017-04-15 05:33:04 +08:00
|
|
|
apiserver_custom_flags: []
|
|
|
|
|
2017-07-12 15:51:12 +08:00
|
|
|
# List of the preferred NodeAddressTypes to use for kubelet connections.
|
|
|
|
kubelet_preferred_address_types: 'InternalDNS,InternalIP,Hostname,ExternalDNS,ExternalIP'
|
|
|
|
|
2017-04-15 05:33:04 +08:00
|
|
|
controller_mgr_custom_flags: []
|
|
|
|
|
2017-06-27 12:27:25 +08:00
|
|
|
scheduler_custom_flags: []
|
2017-09-14 02:00:51 +08:00
|
|
|
|
2018-02-05 21:49:13 +08:00
|
|
|
## Extra args for k8s components passing by kubeadm
|
2018-02-12 15:29:46 +08:00
|
|
|
kube_kubeadm_apiserver_extra_args: {}
|
2018-02-05 21:49:13 +08:00
|
|
|
kube_kubeadm_controller_extra_args: {}
|
|
|
|
kube_kubeadm_scheduler_extra_args: {}
|
2018-01-18 18:55:23 +08:00
|
|
|
|
2018-11-29 15:16:55 +08:00
|
|
|
## Extra control plane host volume mounts
|
|
|
|
## Example:
|
|
|
|
#apiserver_extra_volumes:
|
|
|
|
# - name: name
|
|
|
|
# hostPath: /host/path
|
|
|
|
# mountPath: /mount/path
|
|
|
|
# writable: false
|
|
|
|
apiserver_extra_volumes: {}
|
|
|
|
controller_manager_extra_volumes: {}
|
|
|
|
scheduler_extra_volumes: {}
|
|
|
|
|
2018-03-16 03:20:05 +08:00
|
|
|
## Encrypting Secret Data at Rest
|
|
|
|
kube_encrypt_secret_data: false
|
2018-09-04 00:04:50 +08:00
|
|
|
kube_encrypt_token: "{{ lookup('password', credentials_dir + '/kube_encrypt_token.creds length=32 chars=ascii_letters,digits') }}"
|
2018-03-28 22:30:00 +08:00
|
|
|
# Must be either: aescbc, secretbox or aesgcm
|
|
|
|
kube_encryption_algorithm: "aescbc"
|
2018-05-12 00:11:38 +08:00
|
|
|
|
|
|
|
# You may want to use ca.pem depending on your situation
|
|
|
|
kube_front_proxy_ca: "front-proxy-ca.pem"
|
2018-11-08 04:38:19 +08:00
|
|
|
|
|
|
|
# If non-empty, will use this string as identification instead of the actual hostname
|
|
|
|
kube_override_hostname: >-
|
|
|
|
{%- if cloud_provider is defined and cloud_provider in [ 'aws' ] -%}
|
|
|
|
{%- else -%}
|
|
|
|
{{ inventory_hostname }}
|
|
|
|
{%- endif -%}
|