Adding metrics server

This commit is contained in:
Mike Wilson 2018-02-21 19:23:15 -05:00
parent 9de5839944
commit 265e3035e1
2 changed files with 20 additions and 1 deletions

View File

@ -86,3 +86,8 @@ options:
description: | description: |
The storage backend for kube-apiserver persistence. Can be "etcd2", "etcd3", or The storage backend for kube-apiserver persistence. Can be "etcd2", "etcd3", or
"auto". Auto mode will select etcd3 on new installations, or etcd2 on upgrades. "auto". Auto mode will select etcd3 on new installations, or etcd2 on upgrades.
enable-metrics:
type: boolean
default: true
description: |
If true the metrics server for Kubernetes will be deployed onto the cluster.

View File

@ -640,12 +640,14 @@ def configure_cdk_addons():
remove_state('cdk-addons.configured') remove_state('cdk-addons.configured')
dbEnabled = str(hookenv.config('enable-dashboard-addons')).lower() dbEnabled = str(hookenv.config('enable-dashboard-addons')).lower()
dnsEnabled = str(hookenv.config('enable-kube-dns')).lower() dnsEnabled = str(hookenv.config('enable-kube-dns')).lower()
metricsEnabled = str(hookenv.config('enable-metrics')).lower()
args = [ args = [
'arch=' + arch(), 'arch=' + arch(),
'dns-ip=' + get_deprecated_dns_ip(), 'dns-ip=' + get_deprecated_dns_ip(),
'dns-domain=' + hookenv.config('dns_domain'), 'dns-domain=' + hookenv.config('dns_domain'),
'enable-dashboard=' + dbEnabled, 'enable-dashboard=' + dbEnabled,
'enable-kube-dns=' + dnsEnabled 'enable-kube-dns=' + dnsEnabled,
'enable-metrics=' + metricsEnabled
] ]
check_call(['snap', 'set', 'cdk-addons'] + args) check_call(['snap', 'set', 'cdk-addons'] + args)
if not addons_ready(): if not addons_ready():
@ -1158,6 +1160,18 @@ def configure_apiserver(etcd_connection_string, leader_etcd_version):
admission_control.remove('Initializers') admission_control.remove('Initializers')
api_opts['admission-control'] = ','.join(admission_control) api_opts['admission-control'] = ','.join(admission_control)
if get_version('kube-apiserver') > (1, 6) and \
hookenv.config('enable-metrics'):
api_opts['requestheader-client-ca-file'] = ca_cert_path
api_opts['requestheader-allowed-names'] = 'client'
api_opts['requestheader-extra-headers-prefix'] = 'X-Remote-Extra-'
api_opts['requestheader-group-headers'] = 'X-Remote-Group'
api_opts['requestheader-username-headers'] = 'X-Remote-User'
api_opts['proxy-client-cert-file'] = client_cert_path
api_opts['proxy-client-key-file'] = client_key_path
api_opts['enable-aggregator-routing'] = 'true'
api_opts['client-ca-file'] = ca_cert_path
configure_kubernetes_service('kube-apiserver', api_opts, 'api-extra-args') configure_kubernetes_service('kube-apiserver', api_opts, 'api-extra-args')
restart_apiserver() restart_apiserver()