2015-12-11 18:52:20 +08:00
|
|
|
apiVersion: v1
|
|
|
|
kind: Pod
|
|
|
|
metadata:
|
|
|
|
name: kube-apiserver
|
2016-07-08 17:59:21 +08:00
|
|
|
namespace: kube-system
|
2016-11-09 21:15:27 +08:00
|
|
|
labels:
|
|
|
|
k8s-app: kube-apiserver
|
2015-12-11 18:52:20 +08:00
|
|
|
spec:
|
|
|
|
hostNetwork: true
|
|
|
|
containers:
|
|
|
|
- name: kube-apiserver
|
2015-12-14 16:54:58 +08:00
|
|
|
image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
|
2015-12-11 18:52:20 +08:00
|
|
|
command:
|
|
|
|
- /hyperkube
|
|
|
|
- apiserver
|
2016-05-23 02:44:17 +08:00
|
|
|
- --advertise-address={{ ip | default(ansible_default_ipv4.address) }}
|
2016-07-11 22:05:05 +08:00
|
|
|
- --etcd-servers={{ etcd_access_endpoint }}
|
2016-10-04 23:31:42 +08:00
|
|
|
- --etcd-quorum-read=true
|
2016-11-09 18:44:41 +08:00
|
|
|
- --etcd-cafile={{ etcd_cert_dir }}/ca.pem
|
|
|
|
- --etcd-certfile={{ etcd_cert_dir }}/node.pem
|
|
|
|
- --etcd-keyfile={{ etcd_cert_dir }}/node-key.pem
|
2016-07-13 23:13:47 +08:00
|
|
|
- --insecure-bind-address={{ kube_apiserver_insecure_bind_address }}
|
|
|
|
- --apiserver-count={{ kube_apiserver_count }}
|
2016-11-05 00:54:35 +08:00
|
|
|
- --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota
|
2015-12-11 18:52:20 +08:00
|
|
|
- --service-cluster-ip-range={{ kube_service_addresses }}
|
|
|
|
- --client-ca-file={{ kube_cert_dir }}/ca.pem
|
|
|
|
- --basic-auth-file={{ kube_users_dir }}/known_users.csv
|
|
|
|
- --tls-cert-file={{ kube_cert_dir }}/apiserver.pem
|
|
|
|
- --tls-private-key-file={{ kube_cert_dir }}/apiserver-key.pem
|
2016-07-08 17:59:21 +08:00
|
|
|
- --token-auth-file={{ kube_token_dir }}/known_tokens.csv
|
2015-12-11 18:52:20 +08:00
|
|
|
- --service-account-key-file={{ kube_cert_dir }}/apiserver-key.pem
|
|
|
|
- --secure-port={{ kube_apiserver_port }}
|
2015-12-15 23:27:12 +08:00
|
|
|
- --insecure-port={{ kube_apiserver_insecure_port }}
|
2015-12-13 01:24:21 +08:00
|
|
|
{% if kube_api_runtime_config is defined %}
|
|
|
|
{% for conf in kube_api_runtime_config %}
|
|
|
|
- --runtime-config={{ conf }}
|
|
|
|
{% endfor %}
|
2016-10-10 22:09:50 +08:00
|
|
|
{% endif %}
|
|
|
|
{% if enable_network_policy is defined and enable_network_policy == True %}
|
|
|
|
- --runtime-config=extensions/v1beta1/networkpolicies=true
|
2015-12-13 01:24:21 +08:00
|
|
|
{% endif %}
|
2015-12-11 18:52:20 +08:00
|
|
|
- --v={{ kube_log_level | default('2') }}
|
|
|
|
- --allow-privileged=true
|
2016-07-08 17:59:21 +08:00
|
|
|
{% if cloud_provider is defined and cloud_provider == "openstack" %}
|
|
|
|
- --cloud-provider={{ cloud_provider }}
|
|
|
|
- --cloud-config={{ kube_config_dir }}/cloud_config
|
2016-08-24 21:48:32 +08:00
|
|
|
{% elif cloud_provider is defined and cloud_provider == "aws" %}
|
2016-08-24 00:42:22 +08:00
|
|
|
- --cloud-provider={{ cloud_provider }}
|
2016-07-08 17:59:21 +08:00
|
|
|
{% endif %}
|
|
|
|
- 2>&1 >> {{ kube_log_dir }}/kube-apiserver.log
|
2015-12-11 18:52:20 +08:00
|
|
|
volumeMounts:
|
|
|
|
- mountPath: {{ kube_config_dir }}
|
|
|
|
name: kubernetes-config
|
|
|
|
readOnly: true
|
|
|
|
- mountPath: /etc/ssl/certs
|
|
|
|
name: ssl-certs-host
|
|
|
|
readOnly: true
|
2016-11-09 18:44:41 +08:00
|
|
|
- mountPath: {{ etcd_cert_dir }}
|
|
|
|
name: etcd-certs
|
|
|
|
readOnly: true
|
2016-07-08 17:59:21 +08:00
|
|
|
- mountPath: /var/log/
|
|
|
|
name: logfile
|
2015-12-11 18:52:20 +08:00
|
|
|
volumes:
|
|
|
|
- hostPath:
|
|
|
|
path: {{ kube_config_dir }}
|
|
|
|
name: kubernetes-config
|
|
|
|
- hostPath:
|
2016-04-01 15:34:28 +08:00
|
|
|
path: /etc/ssl/certs/
|
2015-12-11 18:52:20 +08:00
|
|
|
name: ssl-certs-host
|
2016-11-09 18:44:41 +08:00
|
|
|
- hostPath:
|
|
|
|
path: {{ etcd_cert_dir }}
|
|
|
|
name: etcd-certs
|
2016-07-08 17:59:21 +08:00
|
|
|
- hostPath:
|
|
|
|
path: /var/log/
|
|
|
|
name: logfile
|