change kubernetes to hyperkube
Change-Id: I7c3892ebee4c0ccb334960d8864a956b9c480259
diff --git a/kubernetes/files/kube-addons/dashboard/dashboard-controller.yaml b/kubernetes/files/kube-addons/dashboard/dashboard-controller.yaml
index c2eba63..562866b 100644
--- a/kubernetes/files/kube-addons/dashboard/dashboard-controller.yaml
+++ b/kubernetes/files/kube-addons/dashboard/dashboard-controller.yaml
@@ -3,7 +3,7 @@
metadata:
# Keep the name in sync with image version and
# gce/coreos/kube-manifests/addons/dashboard counterparts
- name: kubernetes-dashboard-v1.1.0-beta2
+ name: kubernetes-dashboard-v1.1.0
namespace: kube-system
labels:
k8s-app: kubernetes-dashboard
@@ -20,7 +20,7 @@
spec:
containers:
- name: kubernetes-dashboard
- image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.1.0-beta2
+ image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.1.0
resources:
# keep request = limit to keep this container in guaranteed class
limits:
diff --git a/kubernetes/files/manifest/kube-apiserver.manifest b/kubernetes/files/manifest/kube-apiserver.manifest
index db870d8..09835a2 100644
--- a/kubernetes/files/manifest/kube-apiserver.manifest
+++ b/kubernetes/files/manifest/kube-apiserver.manifest
@@ -11,11 +11,10 @@
terminationGracePeriodSeconds: 30
containers:
- name: kube-apiserver
- image: {{ master.registry.host }}/kube-master:{{ master.version }}
+ image: {{ master.registry.host }}/hyperkube:{{ master.version }}
command:
- - /bin/sh
- - -c
- - kube-apiserver
+ - /hyperkube
+ - apiserver
--insecure-bind-address={{ master.apiserver.insecure_address }}
--etcd-servers={% for member in master.etcd.members %}http://{{ member.host }}:4001{% if not loop.last %},{% endif %}{% endfor %}
--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota
diff --git a/kubernetes/files/manifest/kube-controller-manager.manifest b/kubernetes/files/manifest/kube-controller-manager.manifest
index 3cbbbd2..873d73e 100644
--- a/kubernetes/files/manifest/kube-controller-manager.manifest
+++ b/kubernetes/files/manifest/kube-controller-manager.manifest
@@ -11,11 +11,10 @@
terminationGracePeriodSeconds: 30
containers:
- name: kube-controller-manager
- image: {{ master.registry.host }}/kube-master:{{ master.version }}
+ image: {{ master.registry.host }}/hyperkube:{{ master.version }}
command:
- - /bin/sh
- - -c
- - kube-controller-manager
+ - /hyperkube
+ - controller-manager
--master={{ master.apiserver.insecure_address }}:8080
--cluster-name=kubernetes
--service-account-private-key-file=/etc/kubernetes/ssl/kubernetes-server.key
diff --git a/kubernetes/files/manifest/kube-proxy.manifest.pool b/kubernetes/files/manifest/kube-proxy.manifest.pool
index 359d9f7..3cf1c84 100644
--- a/kubernetes/files/manifest/kube-proxy.manifest.pool
+++ b/kubernetes/files/manifest/kube-proxy.manifest.pool
@@ -8,14 +8,13 @@
hostNetwork: true
containers:
- name: kube-proxy
- image: {{ pool.registry.host }}/kube-pool:{{ pool.version }}
+ image: {{ pool.registry.host }}/hyperkube:{{ pool.version }}
resources:
requests:
cpu: 200m
command:
- - /bin/sh
- - -c
- - kube-proxy
+ - /hyperkube
+ - proxy
--logtostderr=true
--v=2
--kubeconfig=/etc/kubernetes/proxy.kubeconfig
diff --git a/kubernetes/files/manifest/kube-scheduler.manifest b/kubernetes/files/manifest/kube-scheduler.manifest
index a0977a1..e2d5ba0 100644
--- a/kubernetes/files/manifest/kube-scheduler.manifest
+++ b/kubernetes/files/manifest/kube-scheduler.manifest
@@ -12,12 +12,11 @@
terminationGracePeriodSeconds: 30
containers:
- name: kube-scheduler
- image: {{ master.registry.host }}/kube-master:{{ master.version }}
+ image: {{ master.registry.host }}/hyperkube:{{ master.version }}
imagePullPolicy: IfNotPresent
command:
- - /bin/sh
- - -c
- - kube-scheduler
+ - hyperkube
+ - scheduler
--master={{ master.apiserver.insecure_address }}:8080
--v=2
--leader-elect=true
diff --git a/kubernetes/files/systemd/kube-apiserver.service b/kubernetes/files/systemd/kube-apiserver.service
new file mode 100644
index 0000000..bfe7bd8
--- /dev/null
+++ b/kubernetes/files/systemd/kube-apiserver.service
@@ -0,0 +1,30 @@
+[Unit]
+Description=Kubernetes API Server
+Documentation=https://github.com/kubernetes/kubernetes
+Documentation=man:kube-apiserver
+After=network.target
+After=etcd.service
+Wants=etcd.service
+
+[Service]
+EnvironmentFile=-/etc/kubernetes/config
+EnvironmentFile=-/etc/default/%p
+User=root
+ExecStart=/usr/bin/hyperkube \
+ apiserver \
+ $KUBE_LOGTOSTDERR \
+ $KUBE_LOG_LEVEL \
+ $KUBE_ALLOW_PRIV \
+ $KUBE_API_ADDRESS \
+ $KUBE_API_PORT \
+ $KUBELET_PORT \
+ $KUBE_ETCD_SERVERS \
+ $KUBE_SERVICE_ADDRESSES \
+ $KUBE_ADMISSION_CONTROL \
+ $DAEMON_ARGS
+Restart=on-failure
+Type=notify
+LimitNOFILE=65536
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/kubernetes/files/systemd/kube-controller-manager.service b/kubernetes/files/systemd/kube-controller-manager.service
new file mode 100644
index 0000000..19c56fb
--- /dev/null
+++ b/kubernetes/files/systemd/kube-controller-manager.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=Kubernetes Controller Manager
+Documentation=https://github.com/kubernetes/kubernetes
+Documentation=man:kube-controller-manager
+After=network.target
+
+[Service]
+Environment=KUBE_MASTER=--master=127.0.0.1:8080
+EnvironmentFile=-/etc/kubernetes/config
+EnvironmentFile=-/etc/default/%p
+User=root
+ExecStart=/usr/bin/hyperkube \
+ controller-manager \
+ $KUBE_LOGTOSTDERR \
+ $KUBE_LOG_LEVEL \
+ $DAEMON_ARGS
+Restart=on-failure
+LimitNOFILE=65536
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/kubernetes/files/systemd/kube-proxy.service b/kubernetes/files/systemd/kube-proxy.service
new file mode 100644
index 0000000..0620223
--- /dev/null
+++ b/kubernetes/files/systemd/kube-proxy.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=Kubernetes Kube-Proxy Server
+Documentation=https://github.com/kubernetes/kubernetes
+Documentation=man:kube-proxy
+After=network.target
+
+[Service]
+Environment=KUBE_MASTER=--master=127.0.0.1:8080
+EnvironmentFile=-/etc/kubernetes/config
+EnvironmentFile=-/etc/default/%p
+User=root
+ExecStart=/usr/bin/hyperkube \
+ proxy \
+ $KUBE_LOGTOSTDERR \
+ $KUBE_LOG_LEVEL \
+ $KUBE_MASTER \
+ $DAEMON_ARGS
+Restart=on-failure
+LimitNOFILE=65536
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/kubernetes/files/systemd/kube-scheduler.service b/kubernetes/files/systemd/kube-scheduler.service
new file mode 100644
index 0000000..d29f9c9
--- /dev/null
+++ b/kubernetes/files/systemd/kube-scheduler.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=Kubernetes Scheduler Plugin
+Documentation=https://github.com/kubernetes/kubernetes
+Documentation=man:kube-scheduler
+After=network.target
+
+[Service]
+Environment=KUBE_MASTER=--master=127.0.0.1:8080
+EnvironmentFile=-/etc/kubernetes/config
+EnvironmentFile=-/etc/default/%p
+User=root
+ExecStart=/usr/bin/hyperkube \
+ scheduler \
+ $KUBE_LOGTOSTDERR \
+ $KUBE_LOG_LEVEL \
+ $KUBE_MASTER \
+ $DAEMON_ARGS
+Restart=on-failure
+LimitNOFILE=65536
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/kubernetes/files/systemd/kubelet.service b/kubernetes/files/systemd/kubelet.service
new file mode 100644
index 0000000..5d5f7dc
--- /dev/null
+++ b/kubernetes/files/systemd/kubelet.service
@@ -0,0 +1,30 @@
+[Unit]
+Description=Kubernetes Kubelet Server
+Documentation=https://github.com/kubernetes/kubernetes
+Documentation=man:kubelet
+After=network.target
+After=docker.service
+Requires=docker.service
+Conflicts=cadvisor.service
+
+[Service]
+EnvironmentFile=-/etc/kubernetes/config
+EnvironmentFile=-/etc/default/%p
+User=root
+ExecStart=/usr/bin/hyperkube \
+ kubelet \
+ $KUBE_LOGTOSTDERR \
+ $KUBE_LOG_LEVEL \
+ $KUBE_ALLOW_PRIV \
+ $KUBELET_ADDRESS \
+ $KUBELET_PORT \
+ $KUBELET_HOSTNAME \
+ $KUBELET_API_SERVER \
+ $DOCKER_ENDPOINT \
+ $CADVISOR_PORT \
+ $DAEMON_ARGS
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
+Alias=cadvisor.service
\ No newline at end of file
diff --git a/kubernetes/map.jinja b/kubernetes/map.jinja
index ac5d008..8b60d65 100644
--- a/kubernetes/map.jinja
+++ b/kubernetes/map.jinja
@@ -1,6 +1,6 @@
{% set common = salt['grains.filter_by']({
'Debian': {
- 'pkgs': ['curl', 'git', 'apt-transport-https', 'python-apt', 'nfs-common', 'socat', 'netcat-traditional', 'openssl', 'kubernetes-client', 'kubernetes-node', 'python-etcd'],
+ 'pkgs': ['curl', 'git', 'apt-transport-https', 'python-apt', 'nfs-common', 'socat', 'netcat-traditional', 'openssl', 'python-etcd'],
'services': [],
},
'RedHat': {
@@ -11,7 +11,7 @@
{% set master = salt['grains.filter_by']({
'Debian': {
- 'pkgs': ['kubernetes-master'],
+ 'pkgs': [],
'services': ['kube-apiserver','kube-scheduler','kube-controller-manager'],
},
'RedHat': {
diff --git a/kubernetes/master/calico.sls b/kubernetes/master/calico.sls
index e2833b4..ec20328 100644
--- a/kubernetes/master/calico.sls
+++ b/kubernetes/master/calico.sls
@@ -11,25 +11,25 @@
- dir_mode: 755
- template: jinja
-/etc/systemd/system/calico-node.service:
- file.managed:
- - source: salt://kubernetes/files/calico/calico-node.service
- - user: root
- - group: root
+# /etc/systemd/system/calico-node.service:
+# file.managed:
+# - source: salt://kubernetes/files/calico/calico-node.service
+# - user: root
+# - group: root
/usr/bin/calicoctl:
file.managed:
- - source: https://github.com/projectcalico/calico-containers/releases/download/{{ master.network.version }}/calicoctl
+ - source: {{ master.network.get('source', 'https://github.com/projectcalico/calico-containers/releases/download/') }}{{ master.network.version }}/calicoctl
- source_hash: md5={{ master.network.hash }}
- mode: 751
- user: root
- group: root
-calico_node:
- service.running:
- - name: calico-node
- - enable: True
- - watch:
- - file: /etc/systemd/system/calico-node.service
+# calico_node:
+# service.running:
+# - name: calico-node
+# - enable: True
+# - watch:
+# - file: /etc/systemd/system/calico-node.service
{%- endif %}
\ No newline at end of file
diff --git a/kubernetes/master/controller.sls b/kubernetes/master/controller.sls
index 4526ed7..2d54236 100644
--- a/kubernetes/master/controller.sls
+++ b/kubernetes/master/controller.sls
@@ -92,6 +92,30 @@
- mode: 644
- contents: DAEMON_ARGS=" --master={{ master.apiserver.insecure_address }}:8080 --v=2 --leader-elect=true"
+/etc/systemd/system/kube-apiserver.service:
+ file.managed:
+ - source: salt://kubernetes/files/systemd/kube-apiserver.service
+ - template: jinja
+ - user: root
+ - group: root
+ - mode: 644
+
+/etc/systemd/system/kube-scheduler.service:
+ file.managed:
+ - source: salt://kubernetes/files/systemd/kube-scheduler.service
+ - template: jinja
+ - user: root
+ - group: root
+ - mode: 644
+
+/etc/systemd/system/kube-controller-manager.service:
+ file.managed:
+ - source: salt://kubernetes/files/systemd/kube-controller-manager.service
+ - template: jinja
+ - user: root
+ - group: root
+ - mode: 644
+
master_services:
service.running:
- names: {{ master.services }}
@@ -105,9 +129,18 @@
{%- if not pillar.kubernetes.pool is defined %}
-/etc/default/kubelet:
+/usr/bin/hyperkube:
file.managed:
- - source: salt://kubernetes/files/kubelet/default.master
+ - source: {{ master.hyperkube.get('source', 'http://apt.tcpcloud.eu/kubernetes/bin/') }}{{ master.version }}/hyperkube
+ - source_hash: md5={{ master.hyperkube.hash }}
+ - mode: 751
+ - makedirs: true
+ - user: root
+ - group: root
+
+/etc/systemd/system/kubelet.service:
+ file.managed:
+ - source: salt://kubernetes/files/systemd/kubelet.service
- template: jinja
- user: root
- group: root
@@ -116,6 +149,14 @@
/etc/kubernetes/config:
file.absent
+/etc/default/kubelet:
+ file.managed:
+ - source: salt://kubernetes/files/kubelet/default.master
+ - template: jinja
+ - user: root
+ - group: root
+ - mode: 644
+
kubelet_service:
service.running:
- name: kubelet
diff --git a/kubernetes/master/etcd.sls b/kubernetes/master/etcd.sls
index 3e297e2..492ec8f 100644
--- a/kubernetes/master/etcd.sls
+++ b/kubernetes/master/etcd.sls
@@ -21,10 +21,6 @@
{%- else %}
-etcd_pkg:
- pkg.installed:
- - name: etcd
-
/etc/default/etcd:
file.managed:
- source: salt://kubernetes/files/etcd/default
@@ -33,6 +29,10 @@
- group: root
- mode: 644
+etcd_pkg:
+ pkg.installed:
+ - name: etcd
+
etcd_service:
service.running:
- name: etcd
diff --git a/kubernetes/master/kube-addons.sls b/kubernetes/master/kube-addons.sls
index b5e04ff..2996916 100644
--- a/kubernetes/master/kube-addons.sls
+++ b/kubernetes/master/kube-addons.sls
@@ -82,6 +82,13 @@
- dir_mode: 755
- makedirs: True
+create_dashboard:
+ cmd.run:
+ - name: hyperkube kubectl create -f /etc/kubernetes/addons/dashboard/
+ - unless: hyperkube kubectl describe rc kubernetes-dashboard-v1.1.0 --namespace=kube-system
+ - require:
+ - service: kubelet
+
{%- if master.network.engine == "opencontrail" %}
/etc/kubernetes/addons/dashboard/dashboard-address.yaml:
diff --git a/kubernetes/master/service.sls b/kubernetes/master/service.sls
index b3ed467..46ada4d 100644
--- a/kubernetes/master/service.sls
+++ b/kubernetes/master/service.sls
@@ -5,8 +5,4 @@
include:
- kubernetes._common
-kubernetes_master_pkgs:
- pkg.installed:
- - names: {{ master.pkgs }}
-
{%- endif %}
diff --git a/kubernetes/pool/calico.sls b/kubernetes/pool/calico.sls
index adcfb4d..864b48e 100644
--- a/kubernetes/pool/calico.sls
+++ b/kubernetes/pool/calico.sls
@@ -3,7 +3,7 @@
/usr/bin/calicoctl:
file.managed:
- - source: https://github.com/projectcalico/calico-containers/releases/download/{{ pool.network.version }}/calicoctl
+ - source: {{ pool.network.get('source', 'https://github.com/projectcalico/calico-containers/releases/download/') }}{{ pool.network.version }}/calicoctl
- source_hash: md5={{ pool.network.hash }}
- mode: 751
- user: root
@@ -11,7 +11,7 @@
/opt/cni/bin/calico:
file.managed:
- - source: https://github.com/projectcalico/calico-cni/releases/download/{{ pool.network.cni.version }}/calico
+ - source: {{ pool.network.cni.get('source', 'https://github.com/projectcalico/calico-cni/releases/download/') }}{{ pool.network.cni.version }}/calico
- source_hash: md5={{ pool.network.cni.hash }}
- mode: 751
- makedirs: true
@@ -20,7 +20,7 @@
/opt/cni/bin/calico-ipam:
file.managed:
- - source: https://github.com/projectcalico/calico-cni/releases/download/{{ pool.network.ipam.version }}/calico-ipam
+ - source: {{ pool.network.ipam.get('source', 'https://github.com/projectcalico/calico-cni/releases/download/') }}{{ pool.network.ipam.version }}/calico-ipam
- source_hash: md5={{ pool.network.ipam.hash }}
- mode: 751
- makedirs: true
@@ -47,17 +47,17 @@
- dir_mode: 755
- template: jinja
-/etc/systemd/system/calico-node.service:
- file.managed:
- - source: salt://kubernetes/files/calico/calico-node.service
- - user: root
- - group: root
+# /etc/systemd/system/calico-node.service:
+# file.managed:
+# - source: salt://kubernetes/files/calico/calico-node.service
+# - user: root
+# - group: root
-calico_node:
- service.running:
- - name: calico-node
- - enable: True
- - watch:
- - file: /etc/systemd/system/calico-node.service
+# calico_node:
+# service.running:
+# - name: calico-node
+# - enable: True
+# - watch:
+# - file: /etc/systemd/system/calico-node.service
{%- endif %}
\ No newline at end of file
diff --git a/kubernetes/pool/kube-proxy.sls b/kubernetes/pool/kube-proxy.sls
index d461af1..3e39c37 100644
--- a/kubernetes/pool/kube-proxy.sls
+++ b/kubernetes/pool/kube-proxy.sls
@@ -13,6 +13,8 @@
- makedirs: true
- dir_mode: 755
+{%- else %}
+
/etc/kubernetes/proxy.kubeconfig:
file.managed:
- source: salt://kubernetes/files/kube-proxy/proxy.kubeconfig
@@ -22,7 +24,13 @@
- mode: 644
- makedirs: true
-{%- else %}
+/etc/systemd/system/kube-proxy.service:
+ file.managed:
+ - source: salt://kubernetes/files/systemd/kube-proxy.service
+ - template: jinja
+ - user: root
+ - group: root
+ - mode: 644
/etc/default/kube-proxy:
file.managed:
diff --git a/kubernetes/pool/kubelet.sls b/kubernetes/pool/kubelet.sls
index bfacbb8..7a976c8 100644
--- a/kubernetes/pool/kubelet.sls
+++ b/kubernetes/pool/kubelet.sls
@@ -48,6 +48,23 @@
{%- endif %}
+/usr/bin/hyperkube:
+ file.managed:
+ - source: {{ pool.hyperkube.get('source', 'http://apt.tcpcloud.eu/kubernetes/bin/') }}{{ pool.version }}/hyperkube
+ - source_hash: md5={{ pool.hyperkube.hash }}
+ - mode: 751
+ - makedirs: true
+ - user: root
+ - group: root
+
+/etc/systemd/system/kubelet.service:
+ file.managed:
+ - source: salt://kubernetes/files/systemd/kubelet.service
+ - template: jinja
+ - user: root
+ - group: root
+ - mode: 644
+
kubelet_service:
service.running:
- name: kubelet
diff --git a/tests/pillar/master_cluster.sls b/tests/pillar/master_cluster.sls
index 670e56a..ca67790 100644
--- a/tests/pillar/master_cluster.sls
+++ b/tests/pillar/master_cluster.sls
@@ -63,3 +63,5 @@
namespace:
kube-system:
enabled: True
+ hyperkube:
+ hash: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
diff --git a/tests/pillar/pool_cluster.sls b/tests/pillar/pool_cluster.sls
index b792326..d58a25d 100644
--- a/tests/pillar/pool_cluster.sls
+++ b/tests/pillar/pool_cluster.sls
@@ -44,3 +44,5 @@
port: 4001
- host: 127.0.0.1
port: 4001
+ hyperkube:
+ hash: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd