Skip to content
kube-apiserver.manifest.j2 2.71 KiB
Newer Older
apiVersion: v1
kind: Pod
metadata:
  name: kube-apiserver
  namespace: kube-system
  labels:
    k8s-app: kube-apiserver
spec:
  hostNetwork: true
  containers:
  - name: kube-apiserver
    image: {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }}
    imagePullPolicy: {{ k8s_image_pull_policy }}
    command:
    - /hyperkube
    - apiserver
Paul Czarkowski's avatar
Paul Czarkowski committed
    - --advertise-address={{ ip | default(ansible_default_ipv4.address) }}
Bogdan Dobrelya's avatar
Bogdan Dobrelya committed
    - --etcd-servers={{ etcd_access_endpoint }}
    - --etcd-quorum-read=true
Matthew Mosesohn's avatar
Matthew Mosesohn committed
    - --etcd-cafile={{ etcd_cert_dir }}/ca.pem
    - --etcd-certfile={{ etcd_cert_dir }}/node.pem
    - --etcd-keyfile={{ etcd_cert_dir }}/node-key.pem
    - --insecure-bind-address={{ kube_apiserver_insecure_bind_address }}
    - --apiserver-count={{ kube_apiserver_count }}
    - --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota
    - --service-cluster-ip-range={{ kube_service_addresses }}
    - --service-node-port-range={{ kube_apiserver_node_port_range }}
    - --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
    - --token-auth-file={{ kube_token_dir }}/known_tokens.csv
    - --service-account-key-file={{ kube_cert_dir }}/apiserver-key.pem
    - --secure-port={{ kube_apiserver_port }}
ant31's avatar
ant31 committed
    - --insecure-port={{ kube_apiserver_insecure_port }}
{% if kube_api_runtime_config is defined %}
{%   for conf in kube_api_runtime_config %}
    - --runtime-config={{ conf }}
{%   endfor %}
{% endif %}
{% if enable_network_policy is defined and enable_network_policy == True %}
    - --runtime-config=extensions/v1beta1/networkpolicies=true
{% endif %}
    - --v={{ kube_log_level }}
    - --allow-privileged=true
{% if cloud_provider is defined and cloud_provider == "openstack" %}
    - --cloud-provider={{ cloud_provider }}
    - --cloud-config={{ kube_config_dir }}/cloud_config
{% elif cloud_provider is defined and cloud_provider == "aws" %}
    - --cloud-provider={{ cloud_provider }}
    livenessProbe:
      httpGet:
        host: 127.0.0.1
        path: /healthz
        port: 8080
      initialDelaySeconds: 30
      timeoutSeconds: 10
    volumeMounts:
    - mountPath: {{ kube_config_dir }}
      name: kubernetes-config
      readOnly: true
    - mountPath: /etc/ssl/certs
      name: ssl-certs-host
      readOnly: true
Matthew Mosesohn's avatar
Matthew Mosesohn committed
    - mountPath: {{ etcd_cert_dir }}
      name: etcd-certs
      readOnly: true
  volumes:
  - hostPath:
      path: {{ kube_config_dir }}
    name: kubernetes-config
  - hostPath:
    name: ssl-certs-host
Matthew Mosesohn's avatar
Matthew Mosesohn committed
  - hostPath:
      path: {{ etcd_cert_dir }}
    name: etcd-certs