You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.3 KiB

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: kube-apiserver
  5. namespace: kube-system
  6. spec:
  7. hostNetwork: true
  8. containers:
  9. - name: kube-apiserver
  10. image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
  11. command:
  12. - /hyperkube
  13. - apiserver
  14. - --advertise-address={{ ip | default(ansible_default_ipv4.address) }}
  15. - --etcd-servers={{ etcd_access_endpoint }}
  16. - --etcd-quorum-read=true
  17. - --insecure-bind-address={{ kube_apiserver_insecure_bind_address }}
  18. - --apiserver-count={{ kube_apiserver_count }}
  19. - --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota
  20. - --service-cluster-ip-range={{ kube_service_addresses }}
  21. - --client-ca-file={{ kube_cert_dir }}/ca.pem
  22. - --basic-auth-file={{ kube_users_dir }}/known_users.csv
  23. - --tls-cert-file={{ kube_cert_dir }}/apiserver.pem
  24. - --tls-private-key-file={{ kube_cert_dir }}/apiserver-key.pem
  25. - --token-auth-file={{ kube_token_dir }}/known_tokens.csv
  26. - --service-account-key-file={{ kube_cert_dir }}/apiserver-key.pem
  27. - --secure-port={{ kube_apiserver_port }}
  28. - --insecure-port={{ kube_apiserver_insecure_port }}
  29. {% if kube_api_runtime_config is defined %}
  30. {% for conf in kube_api_runtime_config %}
  31. - --runtime-config={{ conf }}
  32. {% endfor %}
  33. {% endif %}
  34. {% if enable_network_policy is defined and enable_network_policy == True %}
  35. - --runtime-config=extensions/v1beta1/networkpolicies=true
  36. {% endif %}
  37. - --v={{ kube_log_level | default('2') }}
  38. - --allow-privileged=true
  39. {% if cloud_provider is defined and cloud_provider == "openstack" %}
  40. - --cloud-provider={{ cloud_provider }}
  41. - --cloud-config={{ kube_config_dir }}/cloud_config
  42. {% elif cloud_provider is defined and cloud_provider == "aws" %}
  43. - --cloud-provider={{ cloud_provider }}
  44. {% endif %}
  45. - 2>&1 >> {{ kube_log_dir }}/kube-apiserver.log
  46. volumeMounts:
  47. - mountPath: {{ kube_config_dir }}
  48. name: kubernetes-config
  49. readOnly: true
  50. - mountPath: /etc/ssl/certs
  51. name: ssl-certs-host
  52. readOnly: true
  53. - mountPath: /var/log/
  54. name: logfile
  55. volumes:
  56. - hostPath:
  57. path: {{ kube_config_dir }}
  58. name: kubernetes-config
  59. - hostPath:
  60. path: /etc/ssl/certs/
  61. name: ssl-certs-host
  62. - hostPath:
  63. path: /var/log/
  64. name: logfile