promenade/promenade/templates/roles/genesis/etc/kubernetes/manifests/kubernetes-apiserver.yaml

52 lines
2.1 KiB
YAML

---
apiVersion: v1
kind: Pod
metadata:
name: kubernetes-apiserver
namespace: kube-system
labels:
application: kubernetes
component: apiserver
kubernetes-apiserver-service: enabled
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
spec:
hostNetwork: true
containers:
- name: kube-apiserver
image: {{ config['Genesis:images.kubernetes.apiserver'] }}
command:
{%- for argument in config.bootstrap_apiserver_prefix() %}
- "{{ argument }}"
{%- endfor %}
- --advertise-address={{ config['Genesis:ip'] }}
- --authorization-mode=Node,RBAC
- --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds
- --anonymous-auth=false
- --client-ca-file=/etc/kubernetes/apiserver/pki/cluster-ca.pem
- --kubelet-certificate-authority=/etc/kubernetes/apiserver/pki/kubelet-client-ca.pem
- --kubelet-client-certificate=/etc/kubernetes/apiserver/pki/kubelet-client.pem
- --kubelet-client-key=/etc/kubernetes/apiserver/pki/kubelet-client-key.pem
- --insecure-port=0
- --bind-address=0.0.0.0
- --secure-port=6443
- --runtime-config=batch/v2alpha1=true
- --allow-privileged=true
- --etcd-servers=https://localhost:2379
- --etcd-cafile=/etc/kubernetes/apiserver/pki/etcd-client-ca.pem
- --etcd-certfile=/etc/kubernetes/apiserver/pki/etcd-client.pem
- --etcd-keyfile=/etc/kubernetes/apiserver/pki/etcd-client-key.pem
- --service-cluster-ip-range={{ config['KubernetesNetwork:kubernetes.service_cidr'] }}
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --service-account-key-file=/etc/kubernetes/apiserver/pki/service-account.pub
- --tls-cert-file=/etc/kubernetes/apiserver/pki/apiserver.pem
- --tls-private-key-file=/etc/kubernetes/apiserver/pki/apiserver-key.pem
volumeMounts:
- name: config
mountPath: /etc/kubernetes/apiserver
readOnly: true
volumes:
- name: config
hostPath:
path: /etc/genesis/apiserver