From b814b624474a387eb05172ac8155c79be3fca8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Mon, 17 Apr 2017 00:54:08 +0300 Subject: [PATCH] Remove the old docker-multinode files that were built into the hyperkube image --- cluster/images/hyperkube/Dockerfile | 24 ----- cluster/images/hyperkube/Makefile | 30 +----- cluster/images/hyperkube/README.md | 5 +- .../hyperkube/cni-conf/10-containernet.conf | 10 -- .../hyperkube/cni-conf/99-loopback.conf | 3 - cluster/images/hyperkube/copy-addons.sh | 34 ------- cluster/images/hyperkube/kube-proxy-ds.yaml | 51 ----------- cluster/images/hyperkube/setup-files.sh | 75 --------------- .../static-pods/addon-manager-multinode.json | 52 ----------- .../static-pods/addon-manager-singlenode.json | 52 ----------- .../images/hyperkube/static-pods/etcd.json | 36 -------- .../hyperkube/static-pods/kube-proxy.json | 27 ------ .../hyperkube/static-pods/master-multi.json | 91 ------------------- .../images/hyperkube/static-pods/master.json | 90 ------------------ 14 files changed, 2 insertions(+), 578 deletions(-) delete mode 100644 cluster/images/hyperkube/cni-conf/10-containernet.conf delete mode 100644 cluster/images/hyperkube/cni-conf/99-loopback.conf delete mode 100755 cluster/images/hyperkube/copy-addons.sh delete mode 100644 cluster/images/hyperkube/kube-proxy-ds.yaml delete mode 100644 cluster/images/hyperkube/setup-files.sh delete mode 100644 cluster/images/hyperkube/static-pods/addon-manager-multinode.json delete mode 100644 cluster/images/hyperkube/static-pods/addon-manager-singlenode.json delete mode 100644 cluster/images/hyperkube/static-pods/etcd.json delete mode 100644 cluster/images/hyperkube/static-pods/kube-proxy.json delete mode 100644 cluster/images/hyperkube/static-pods/master-multi.json delete mode 100644 cluster/images/hyperkube/static-pods/master.json diff --git a/cluster/images/hyperkube/Dockerfile b/cluster/images/hyperkube/Dockerfile index d5abe8a4fb6..81eeb320d48 100644 --- a/cluster/images/hyperkube/Dockerfile +++ b/cluster/images/hyperkube/Dockerfile @@ -38,33 +38,9 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update -y \ RUN cp /usr/bin/nsenter /nsenter -# Manifests for the docker guide -COPY static-pods/master.json \ - static-pods/etcd.json \ - static-pods/addon-manager-singlenode.json \ - static-pods/kube-proxy.json \ - /etc/kubernetes/manifests/ - -# Manifests for the docker-multinode guide -COPY static-pods/master-multi.json \ - static-pods/addon-manager-multinode.json \ - /etc/kubernetes/manifests-multi/ - -# Copy over all addons -COPY addons /etc/kubernetes/addons - -# Copy other required scripts for the setup -COPY setup-files.sh make-ca-cert.sh copy-addons.sh / - -# easy-rsa package required by make-ca-cert -ADD https://storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz /root/kube/ - # Copy the the cni-bin folder into /opt/cni/bin COPY cni-bin/bin /opt/cni/bin -# Copy overlay configuration to default directory -COPY cni-conf /etc/cni/net.d - # Create symlinks for each hyperkube server # Also create symlinks to /usr/local/bin/ where the server image binaries live, so the hyperkube image may be # used instead of gcr.io/google_containers/kube-* without any modifications. diff --git a/cluster/images/hyperkube/Makefile b/cluster/images/hyperkube/Makefile index 8190a34bc22..72ad1879fbd 100644 --- a/cluster/images/hyperkube/Makefile +++ b/cluster/images/hyperkube/Makefile @@ -60,43 +60,15 @@ ifndef VERSION $(error VERSION is undefined) endif cp -r ./* ${TEMP_DIR} - mkdir -p ${TEMP_DIR}/cni-bin ${TEMP_DIR}/addons ${TEMP_DIR}/addons/singlenode ${TEMP_DIR}/addons/multinode - cp ../../saltbase/salt/generate-cert/make-ca-cert.sh ${TEMP_DIR} - - # Singlenode addons - cp ../../addons/dns/kubedns-controller.yaml.base ${TEMP_DIR}/addons/singlenode/kubedns-controller.yaml - cp ../../addons/dns/kubedns-svc.yaml.base ${TEMP_DIR}/addons/singlenode/kubedns-svc.yaml - cp ../../addons/dns/kubedns-sa.yaml ${TEMP_DIR}/addons/singlenode/kubedns-sa.yaml - cp ../../addons/dns/kubedns-cm.yaml ${TEMP_DIR}/addons/singlenode/kubedns-cm.yaml - cp ../../addons/dashboard/dashboard-controller.yaml ${TEMP_DIR}/addons/singlenode/ - cp ../../addons/dashboard/dashboard-service.yaml ${TEMP_DIR}/addons/singlenode/ - - # Multinode addons; all singlenode addons plus kube-proxy (and soon flannel) - cp ${TEMP_DIR}/addons/singlenode/*.yaml ${TEMP_DIR}/addons/multinode/ - cp kube-proxy-ds.yaml ${TEMP_DIR}/addons/multinode/kube-proxy.yaml cp ../../../_output/dockerized/bin/linux/${ARCH}/hyperkube ${TEMP_DIR} + chmod a+rx ${TEMP_DIR}/hyperkube - cd ${TEMP_DIR} && sed -i.back "s|VERSION|${VERSION}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json - cd ${TEMP_DIR} && sed -i.back "s|REGISTRY|${REGISTRY}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json - cd ${TEMP_DIR} && sed -i.back "s|ARCH|${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml static-pods/*.json cd ${TEMP_DIR} && sed -i.back "s|ARCH|${QEMUARCH}|g" Dockerfile cd ${TEMP_DIR} && sed -i.back "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile ifeq ($(CACHEBUST),1) cd ${TEMP_DIR} && sed -i.back "s|CACHEBUST|$(shell uuidgen)|g" Dockerfile endif - cd ${TEMP_DIR} && sed -i.back "s|-amd64|-${ARCH}|g" addons/singlenode/*.yaml addons/multinode/*.yaml - cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__SERVER__|10.0.0.10|g" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml - cd ${TEMP_DIR} && sed -i.back "s|__PILLAR__DNS__DOMAIN__|cluster.local|g" addons/singlenode/kubedns*.yaml addons/multinode/kubedns*.yaml - cd ${TEMP_DIR} && rm -f addons/singlenode/*.back addons/multinode/*.back static-pods/*.back - - # Make scripts executable before they are copied into the Docker image. If we make them executable later, in another layer - # they'll take up twice the space because the new executable binary differs from the old one, but everything is cached in layers. - cd ${TEMP_DIR} && chmod a+rx \ - hyperkube \ - setup-files.sh \ - make-ca-cert.sh \ - copy-addons.sh ifeq ($(ARCH),amd64) # When building "normally" for amd64, remove the whole line, it has no part in the amd64 image diff --git a/cluster/images/hyperkube/README.md b/cluster/images/hyperkube/README.md index 57943ca214e..55978d3aded 100644 --- a/cluster/images/hyperkube/README.md +++ b/cluster/images/hyperkube/README.md @@ -1,10 +1,7 @@ ### hyperkube `hyperkube` is an all-in-one binary for the Kubernetes server components -Also, it's very easy to run this `hyperkube` setup dockerized. -See https://github.com/kubernetes/kubernetes/blob/master/docs/devel/local-cluster/docker.md for up-to-date commands. - -`hyperkube` is built for multiple architectures and _pushed automatically on every release._ +`hyperkube` is built for multiple architectures and _the image is pushed automatically on every release._ #### How to release by hand diff --git a/cluster/images/hyperkube/cni-conf/10-containernet.conf b/cluster/images/hyperkube/cni-conf/10-containernet.conf deleted file mode 100644 index a1a31c0ed33..00000000000 --- a/cluster/images/hyperkube/cni-conf/10-containernet.conf +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "containernet", - "type": "flannel", - "delegate": { - "bridge": "cni0", - "mtu": 1450, - "isDefaultGateway": true, - "forceAddress": true - } -} diff --git a/cluster/images/hyperkube/cni-conf/99-loopback.conf b/cluster/images/hyperkube/cni-conf/99-loopback.conf deleted file mode 100644 index ccdb618f7ef..00000000000 --- a/cluster/images/hyperkube/cni-conf/99-loopback.conf +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "loopback" -} diff --git a/cluster/images/hyperkube/copy-addons.sh b/cluster/images/hyperkube/copy-addons.sh deleted file mode 100755 index 763aa7cc026..00000000000 --- a/cluster/images/hyperkube/copy-addons.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Copyright 2016 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Now we're running in the sidecar container -# /etc/kubernetes/addons holds the data in the hyperkube container -# /srv/kubernetes is an emptyDir that maps to /etc/kubernetes in the addon-manager container -# This way we're using the latest manifests from hyperkube without updating -# kube-addon-manager which is used for other deployments too - -# Inside /etc/kubernetes/addons, there are two directories: singlenode and multinode -# If "singlenode" is passed to this script; those manifests are copied to the addon-manager and vice versa with "multinode" -SUBDIRECTORY=$1 - -# While there is no data copied over to the emptyDir, try to copy it. -while [[ -z $(ls /srv/kubernetes/addons) ]]; do - cp -r /etc/kubernetes/addons/${SUBDIRECTORY}/* /srv/kubernetes/addons/ -done - -# Then sleep forever -while true; do - sleep 3600; -done diff --git a/cluster/images/hyperkube/kube-proxy-ds.yaml b/cluster/images/hyperkube/kube-proxy-ds.yaml deleted file mode 100644 index 55641747247..00000000000 --- a/cluster/images/hyperkube/kube-proxy-ds.yaml +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 2016 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: extensions/v1beta1 -kind: DaemonSet -metadata: - name: k8s-proxy-v1 - namespace: kube-system - labels: - k8s-app: k8s-proxy - version: v1 - kubernetes.io/cluster-service: "true" -spec: - template: - metadata: - labels: - k8s-app: k8s-proxy - version: v1 - kubernetes.io/cluster-service: "true" - spec: - hostNetwork: true - containers: - - name: kube-proxy - image: REGISTRY/hyperkube-ARCH:VERSION - command: - - /hyperkube - - proxy - - --kubeconfig=/var/lib/kubelet/kubeconfig/kubeconfig.yaml - - --v=2 - - --resource-container="" - securityContext: - privileged: true - volumeMounts: - - name: kubeconfig - mountPath: /var/lib/kubelet/kubeconfig - readOnly: true - volumes: - - name: kubeconfig - hostPath: - path: /var/lib/kubelet/kubeconfig diff --git a/cluster/images/hyperkube/setup-files.sh b/cluster/images/hyperkube/setup-files.sh deleted file mode 100644 index ca432bcd42b..00000000000 --- a/cluster/images/hyperkube/setup-files.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -# Copyright 2015 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This script is intended to set up the files necessary to run a master. -# It currently creates: -# * The basic auth file for access to the kubernetes api server -# * Service tokens for accessing the kubernetes api server -# * The CA cert and keys for HTTPS access to the kubernetes api server -set -o errexit -set -o nounset -set -o pipefail - -create_token() { - echo $(cat /dev/urandom | base64 | tr -d "=+/" | dd bs=32 count=1 2> /dev/null) -} - -# Additional address of the API server to be added to the -# list of Subject Alternative Names of the server TLS certificate -# Should contain internal IP, i.e. IP:10.0.0.1 for 10.0.0.0/24 cluster IP range -EXTRA_SANS=$1 -DATA_DIR=/srv/kubernetes - -# Files in /data are persistent across reboots, so we don't want to re-create the files if they already -# exist, because the state is persistent in etcd too, and we don't want a conflict between "old" data in -# etcd and "new" data that this script would create for apiserver. Therefore, if the file exist, skip it. -if [[ ! -f ${DATA_DIR}/ca.crt ]]; then - - # Create HTTPS certificates - groupadd -f -r kube-cert - - # hostname -I gets the ip of the node - /make-ca-cert.sh $(hostname -I | awk '{print $1}') ${EXTRA_SANS} - - echo "Certificates created $(date)" -else - echo "Certificates already found, not recreating." -fi - -if [[ ! -f ${DATA_DIR}/basic_auth.csv ]]; then - - # Create basic token authorization - echo "admin,admin,admin" > ${DATA_DIR}/basic_auth.csv - - echo "basic_auth.csv created $(date)" -else - echo "basic_auth.csv already found, not recreating." -fi - -if [[ ! -f ${DATA_DIR}/known_tokens.csv ]]; then - - # Create known tokens for service accounts - echo "$(create_token),admin,admin" >> ${DATA_DIR}/known_tokens.csv - echo "$(create_token),kubelet,kubelet" >> ${DATA_DIR}/known_tokens.csv - echo "$(create_token),kube_proxy,kube_proxy" >> ${DATA_DIR}/known_tokens.csv - - echo "known_tokens.csv created $(date)" -else - echo "known_tokens.csv already found, not recreating." -fi - -while true; do - sleep 3600 -done diff --git a/cluster/images/hyperkube/static-pods/addon-manager-multinode.json b/cluster/images/hyperkube/static-pods/addon-manager-multinode.json deleted file mode 100644 index 438190f40d7..00000000000 --- a/cluster/images/hyperkube/static-pods/addon-manager-multinode.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "apiVersion": "v1", - "kind": "Pod", - "metadata": { - "name": "kube-addon-manager", - "namespace": "kube-system", - "version": "v1" - }, - "spec": { - "hostNetwork": true, - "containers": [ - { - "name": "kube-addon-manager", - "image": "REGISTRY/kube-addon-manager-ARCH:v6.4-beta.1", - "resources": { - "requests": { - "cpu": "5m", - "memory": "50Mi" - } - }, - "volumeMounts": [ - { - "name": "addons", - "mountPath": "/etc/kubernetes/addons", - "readOnly": true - } - ] - }, - { - "name": "kube-addon-manager-data", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/copy-addons.sh", - "multinode" - ], - "volumeMounts": [ - { - "name": "addons", - "mountPath": "/srv/kubernetes/addons", - "readOnly": false - } - ] - } - ], - "volumes":[ - { - "name": "addons", - "emptyDir": {} - } - ] - } -} diff --git a/cluster/images/hyperkube/static-pods/addon-manager-singlenode.json b/cluster/images/hyperkube/static-pods/addon-manager-singlenode.json deleted file mode 100644 index 09ff331a9e8..00000000000 --- a/cluster/images/hyperkube/static-pods/addon-manager-singlenode.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "apiVersion": "v1", - "kind": "Pod", - "metadata": { - "name": "kube-addon-manager", - "namespace": "kube-system", - "version": "v1" - }, - "spec": { - "hostNetwork": true, - "containers": [ - { - "name": "kube-addon-manager", - "image": "REGISTRY/kube-addon-manager-ARCH:v6.4-beta.1", - "resources": { - "requests": { - "cpu": "5m", - "memory": "50Mi" - } - }, - "volumeMounts": [ - { - "name": "addons", - "mountPath": "/etc/kubernetes/addons", - "readOnly": true - } - ] - }, - { - "name": "kube-addon-manager-data", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/copy-addons.sh", - "singlenode" - ], - "volumeMounts": [ - { - "name": "addons", - "mountPath": "/srv/kubernetes/addons", - "readOnly": false - } - ] - } - ], - "volumes":[ - { - "name": "addons", - "emptyDir": {} - } - ] - } -} diff --git a/cluster/images/hyperkube/static-pods/etcd.json b/cluster/images/hyperkube/static-pods/etcd.json deleted file mode 100644 index 5f3c236daf0..00000000000 --- a/cluster/images/hyperkube/static-pods/etcd.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "apiVersion": "v1", - "kind": "Pod", - "metadata": { - "name": "k8s-etcd", - "namespace": "kube-system" - }, - "spec": { - "hostNetwork": true, - "containers": [ - { - "name": "etcd", - "image": "gcr.io/google_containers/etcd-ARCH:2.2.5", - "command": [ - "/usr/local/bin/etcd", - "--listen-client-urls=http://127.0.0.1:2379,http://127.0.0.1:4001", - "--advertise-client-urls=http://127.0.0.1:2379,http://127.0.0.1:4001", - "--data-dir=/var/etcd/data" - ], - "volumeMounts": [ - { - "name": "varetcd", - "mountPath": "/var/etcd", - "readOnly": false - } - ] - } - ], - "volumes":[ - { - "name": "varetcd", - "emptyDir": {} - } - ] - } -} diff --git a/cluster/images/hyperkube/static-pods/kube-proxy.json b/cluster/images/hyperkube/static-pods/kube-proxy.json deleted file mode 100644 index 11f40f2d453..00000000000 --- a/cluster/images/hyperkube/static-pods/kube-proxy.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "apiVersion": "v1", - "kind": "Pod", - "metadata": { - "name": "k8s-proxy", - "namespace": "kube-system" - }, - "spec": { - "hostNetwork": true, - "containers": [ - { - "name": "kube-proxy", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/hyperkube", - "proxy", - "--master=http://127.0.0.1:8080", - "--v=2", - "--resource-container=\"\"" - ], - "securityContext": { - "privileged": true - } - } - ] - } -} diff --git a/cluster/images/hyperkube/static-pods/master-multi.json b/cluster/images/hyperkube/static-pods/master-multi.json deleted file mode 100644 index 48b47709c22..00000000000 --- a/cluster/images/hyperkube/static-pods/master-multi.json +++ /dev/null @@ -1,91 +0,0 @@ -{ -"apiVersion": "v1", -"kind": "Pod", -"metadata": { - "name": "k8s-master", - "namespace": "kube-system" -}, -"spec":{ - "hostNetwork": true, - "containers":[ - { - "name": "controller-manager", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/hyperkube", - "controller-manager", - "--master=127.0.0.1:8080", - "--service-account-private-key-file=/srv/kubernetes/server.key", - "--root-ca-file=/srv/kubernetes/ca.crt", - "--min-resync-period=3m", - "--leader-elect=true", - "--cluster-cidr=10.1.0.0/16", - "--v=2" - ], - "volumeMounts": [ - { - "name": "data", - "mountPath": "/srv/kubernetes" - } - ] - }, - { - "name": "apiserver", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/hyperkube", - "apiserver", - "--service-cluster-ip-range=10.0.0.1/24", - "--insecure-bind-address=0.0.0.0", - "--etcd-servers=http://127.0.0.1:2379", - "--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds", - "--client-ca-file=/srv/kubernetes/ca.crt", - "--basic-auth-file=/srv/kubernetes/basic_auth.csv", - "--min-request-timeout=300", - "--tls-cert-file=/srv/kubernetes/server.cert", - "--tls-private-key-file=/srv/kubernetes/server.key", - "--token-auth-file=/srv/kubernetes/known_tokens.csv", - "--allow-privileged=true", - "--v=2" - ], - "volumeMounts": [ - { - "name": "data", - "mountPath": "/srv/kubernetes" - } - ] - }, - { - "name": "scheduler", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/hyperkube", - "scheduler", - "--master=127.0.0.1:8080", - "--leader-elect=true", - "--v=2" - ] - }, - { - "name": "setup", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/setup-files.sh", - "IP:10.0.0.1,DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local" - ], - "volumeMounts": [ - { - "name": "data", - "mountPath": "/srv/kubernetes" - } - ] - } - ], - "volumes": [ - { - "name": "data", - "emptyDir": {} - } - ] - } -} diff --git a/cluster/images/hyperkube/static-pods/master.json b/cluster/images/hyperkube/static-pods/master.json deleted file mode 100644 index 479213c806e..00000000000 --- a/cluster/images/hyperkube/static-pods/master.json +++ /dev/null @@ -1,90 +0,0 @@ -{ -"apiVersion": "v1", -"kind": "Pod", -"metadata": { - "name": "k8s-master", - "namespace": "kube-system" -}, -"spec":{ - "hostNetwork": true, - "containers":[ - { - "name": "controller-manager", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/hyperkube", - "controller-manager", - "--master=127.0.0.1:8080", - "--service-account-private-key-file=/srv/kubernetes/server.key", - "--root-ca-file=/srv/kubernetes/ca.crt", - "--min-resync-period=3m", - "--leader-elect=true", - "--v=2" - ], - "volumeMounts": [ - { - "name": "data", - "mountPath": "/srv/kubernetes" - } - ] - }, - { - "name": "apiserver", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/hyperkube", - "apiserver", - "--service-cluster-ip-range=10.0.0.1/24", - "--insecure-bind-address=127.0.0.1", - "--etcd-servers=http://127.0.0.1:2379", - "--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds", - "--client-ca-file=/srv/kubernetes/ca.crt", - "--basic-auth-file=/srv/kubernetes/basic_auth.csv", - "--min-request-timeout=300", - "--tls-cert-file=/srv/kubernetes/server.cert", - "--tls-private-key-file=/srv/kubernetes/server.key", - "--token-auth-file=/srv/kubernetes/known_tokens.csv", - "--allow-privileged=true", - "--v=2" - ], - "volumeMounts": [ - { - "name": "data", - "mountPath": "/srv/kubernetes" - } - ] - }, - { - "name": "scheduler", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/hyperkube", - "scheduler", - "--master=127.0.0.1:8080", - "--leader-elect=true", - "--v=2" - ] - }, - { - "name": "setup", - "image": "REGISTRY/hyperkube-ARCH:VERSION", - "command": [ - "/setup-files.sh", - "IP:10.0.0.1,DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.cluster.local" - ], - "volumeMounts": [ - { - "name": "data", - "mountPath": "/srv/kubernetes" - } - ] - } - ], - "volumes": [ - { - "name": "data", - "emptyDir": {} - } - ] - } -}