Use binary releases for cluster push scripts.
This is for GCE right now. Other clouds/clusters are probably broken.
This commit is contained in:
50
cluster/saltbase/install.sh
Executable file
50
cluster/saltbase/install.sh
Executable file
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2014 Google Inc. All rights reserved.
|
||||
#
|
||||
# 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 will set up the salt directory on the target server. It takes one
|
||||
# argument that is a tarball with the pre-compiled kuberntes server binaries.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
readonly SALTBASE="$(dirname $0)"
|
||||
|
||||
readonly SERVER_BIN_TAR=${1-}
|
||||
if [[ -z "$SERVER_BIN_TAR" ]]; then
|
||||
echo "!!! No binaries specified"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create a temp dir for untaring
|
||||
KUBE_TEMP=$(mktemp -d -t kubernetes.XXXXXX)
|
||||
trap "rm -rf ${KUBE_TEMP}" EXIT
|
||||
|
||||
# This file is meant to run on the master. It will install the salt configs
|
||||
# into the appropriate place on the master.
|
||||
|
||||
echo "+++ Installing salt files"
|
||||
mkdir -p /srv
|
||||
# This bash voodoo will prepend $SALTBASE to the start of each item in the
|
||||
# $SALTDIRS array
|
||||
readonly SALTDIRS=(salt pillar reactor)
|
||||
cp -R --preserve=mode "${SALTDIRS[@]/#/${SALTBASE}/}" /srv/
|
||||
|
||||
|
||||
echo "+++ Install binaries from tar: $1"
|
||||
tar -xz -C "${KUBE_TEMP}" -f "$1"
|
||||
mkdir -p /srv/salt/kube-bins
|
||||
cp "${KUBE_TEMP}/kubernetes/server/bin/"* /srv/salt/kube-bins/
|
||||
@@ -1,5 +1,5 @@
|
||||
base:
|
||||
'*':
|
||||
- mine
|
||||
- common
|
||||
- cluster-params
|
||||
- privilege
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
{% set cloud_provider = "-cloud_provider=" + grains.cloud_provider %}
|
||||
{% endif %}
|
||||
|
||||
{% set minion_regexp = "-minion_regexp='" + pillar['instance_prefix'] + ".*'" %}
|
||||
{% set minion_regexp = "-minion_regexp='" + pillar['node_instance_prefix'] + ".*'" %}
|
||||
{% set address = "-address=127.0.0.1" %}
|
||||
|
||||
{% if grains.etcd_servers is defined %}
|
||||
|
||||
@@ -1,30 +1,9 @@
|
||||
{% set root = '/var/src/apiserver' %}
|
||||
{% set package = 'github.com/GoogleCloudPlatform/kubernetes' %}
|
||||
{% set package_dir = root + '/src/' + package %}
|
||||
{% set go_opt = pillar['go_opt'] %}
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
{% set environment_file = '/etc/sysconfig/apiserver' %}
|
||||
{% else %}
|
||||
{% set environment_file = '/etc/default/apiserver' %}
|
||||
{% endif %}
|
||||
|
||||
{{ package_dir }}:
|
||||
file.recurse:
|
||||
- source: salt://apiserver/go
|
||||
- user: root
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
- group: root
|
||||
{% else %}
|
||||
- group: staff
|
||||
{% endif %}
|
||||
- dir_mode: 775
|
||||
- file_mode: 664
|
||||
- makedirs: True
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
- mode
|
||||
|
||||
{{ environment_file }}:
|
||||
file.managed:
|
||||
- source: salt://apiserver/default
|
||||
@@ -33,22 +12,12 @@
|
||||
- group: root
|
||||
- mode: 644
|
||||
|
||||
apiserver-build:
|
||||
cmd.run:
|
||||
- cwd: {{ root }}
|
||||
- names:
|
||||
- go build {{ go_opt }} {{ package }}/cmd/apiserver
|
||||
- env:
|
||||
- PATH: {{ grains['path'] }}:/usr/local/bin
|
||||
- GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace
|
||||
- require:
|
||||
- file: {{ package_dir }}
|
||||
|
||||
/usr/local/bin/apiserver:
|
||||
file.symlink:
|
||||
- target: {{ root }}/apiserver
|
||||
- watch:
|
||||
- cmd: apiserver-build
|
||||
file.managed:
|
||||
- source: salt://kube-bins/apiserver
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 755
|
||||
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
|
||||
@@ -82,7 +51,6 @@ apiserver:
|
||||
service.running:
|
||||
- enable: True
|
||||
- watch:
|
||||
- cmd: apiserver-build
|
||||
- file: {{ environment_file }}
|
||||
- file: /usr/local/bin/apiserver
|
||||
{% if grains['os_family'] != 'RedHat' %}
|
||||
|
||||
@@ -1,30 +1,9 @@
|
||||
{% set root = '/var/src/controller-manager' %}
|
||||
{% set package = 'github.com/GoogleCloudPlatform/kubernetes' %}
|
||||
{% set package_dir = root + '/src/' + package %}
|
||||
{% set go_opt = pillar['go_opt'] %}
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
{% set environment_file = '/etc/sysconfig/controller-manager' %}
|
||||
{% else %}
|
||||
{% set environment_file = '/etc/default/controller-manager' %}
|
||||
{% endif %}
|
||||
|
||||
{{ package_dir }}:
|
||||
file.recurse:
|
||||
- source: salt://controller-manager/go
|
||||
- user: root
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
- group: root
|
||||
{% else %}
|
||||
- group: staff
|
||||
{% endif %}
|
||||
- dir_mode: 775
|
||||
- file_mode: 664
|
||||
- makedirs: True
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
- mode
|
||||
|
||||
{{ environment_file }}:
|
||||
file.managed:
|
||||
- source: salt://controller-manager/default
|
||||
@@ -33,22 +12,12 @@
|
||||
- group: root
|
||||
- mode: 644
|
||||
|
||||
controller-manager-build:
|
||||
cmd.run:
|
||||
- cwd: {{ root }}
|
||||
- names:
|
||||
- go build {{ go_opt }} {{ package }}/cmd/controller-manager
|
||||
- env:
|
||||
- PATH: {{ grains['path'] }}:/usr/local/bin
|
||||
- GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace
|
||||
- require:
|
||||
- file: {{ package_dir }}
|
||||
|
||||
/usr/local/bin/controller-manager:
|
||||
file.symlink:
|
||||
- target: {{ root }}/controller-manager
|
||||
- watch:
|
||||
- cmd: controller-manager-build
|
||||
file.managed:
|
||||
- source: salt://kube-bins/controller-manager
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 755
|
||||
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
|
||||
@@ -82,7 +51,6 @@ controller-manager:
|
||||
service.running:
|
||||
- enable: True
|
||||
- watch:
|
||||
- cmd: controller-manager-build
|
||||
- file: /usr/local/bin/controller-manager
|
||||
- file: {{ environment_file }}
|
||||
{% if grains['os_family'] != 'RedHat' %}
|
||||
|
||||
@@ -1,21 +1,43 @@
|
||||
etcd-install:
|
||||
git.latest:
|
||||
- target: /var/src/etcd
|
||||
- name: git://github.com/coreos/etcd
|
||||
cmd.wait:
|
||||
- cwd: /var/src/etcd
|
||||
- name: |
|
||||
git checkout ab4bcc18694644d12f0c038339d8d039072502b1
|
||||
./build
|
||||
- env:
|
||||
- PATH: {{ grains['path'] }}:/usr/local/bin
|
||||
{% set etcd_version="v0.4.6" %}
|
||||
{% set etcd_tar_url="https://github.com/coreos/etcd/releases/download/%s/etcd-%s-linux-amd64.tar.gz"
|
||||
| format(etcd_version, etcd_version) %}
|
||||
{% set etcd_tar_hash="md5=2949e9163e59dc4f8db9ad92f3245b20" %}
|
||||
|
||||
etcd-tar:
|
||||
archive:
|
||||
- extracted
|
||||
- user: root
|
||||
- name: /usr/local/src
|
||||
- source: {{ etcd_tar_url }}
|
||||
- source_hash: {{ etcd_tar_hash }}
|
||||
- archive_format: tar
|
||||
- if_missing: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64
|
||||
- tar_options: z
|
||||
file.directory:
|
||||
- name: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64
|
||||
- user: root
|
||||
- group: root
|
||||
- watch:
|
||||
- git: etcd-install
|
||||
- archive: etcd-tar
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
|
||||
etcd-symlink:
|
||||
file.symlink:
|
||||
- name: /usr/local/bin/etcd
|
||||
- target: /var/src/etcd/bin/etcd
|
||||
- target: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64/etcd
|
||||
- force: true
|
||||
- watch:
|
||||
- cmd: etcd-install
|
||||
- archive: etcd-tar
|
||||
|
||||
etcdctl-symlink:
|
||||
file.symlink:
|
||||
- name: /usr/local/bin/etcdctl
|
||||
- target: /usr/local/src/etcd-{{ etcd_version }}-linux-amd64/etcdctl
|
||||
- force: true
|
||||
- watch:
|
||||
- archive: etcd-tar
|
||||
|
||||
etcd:
|
||||
group.present:
|
||||
@@ -25,8 +47,6 @@ etcd:
|
||||
- gid_from_name: True
|
||||
- shell: /sbin/nologin
|
||||
- home: /var/etcd
|
||||
- require:
|
||||
- group: etcd
|
||||
|
||||
/etc/etcd:
|
||||
file.directory:
|
||||
@@ -84,5 +104,6 @@ etcd-service:
|
||||
- file: /usr/lib/systemd/system/etcd.service
|
||||
- file: /etc/default/etcd
|
||||
{% endif %}
|
||||
- cmd: etcd-install
|
||||
- file: etcd-tar
|
||||
- file: etcd-symlink
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
etcdctl-install:
|
||||
git.latest:
|
||||
- target: /var/src/etcdctl
|
||||
- name: git://github.com/coreos/etcdctl
|
||||
cmd.wait:
|
||||
- cwd: /var/src/etcdctl
|
||||
- name: ./build
|
||||
- env:
|
||||
- PATH: {{ grains['path'] }}:/usr/local/bin
|
||||
- watch:
|
||||
- git: etcdctl-install
|
||||
file.symlink:
|
||||
- name: /usr/local/bin/etcdctl
|
||||
- target: /var/src/etcdctl/bin/etcdctl
|
||||
- watch:
|
||||
- cmd: etcdctl-install
|
||||
@@ -1,23 +0,0 @@
|
||||
{% set go_version = '1.2.2' %}
|
||||
{% set go_arch = 'linux-amd64' %}
|
||||
{% set go_archive = 'go%s.%s.tar.gz' | format(go_version, go_arch) %}
|
||||
{% set go_url = 'http://golang.org/dl/' + go_archive %}
|
||||
{% set go_hash = 'sha1=6bd151ca49c435462c8bf019477a6244b958ebb5' %}
|
||||
|
||||
get-golang:
|
||||
file.managed:
|
||||
- name: /var/cache/{{ go_archive }}
|
||||
- source: {{ go_url }}
|
||||
- source_hash: {{ go_hash }}
|
||||
cmd.wait:
|
||||
- cwd: /usr/local
|
||||
- name: tar xzf /var/cache/{{ go_archive }}
|
||||
- watch:
|
||||
- file: get-golang
|
||||
|
||||
install-golang:
|
||||
file.symlink:
|
||||
- name: /usr/local/bin/go
|
||||
- target: /usr/local/go/bin/go
|
||||
- watch:
|
||||
- cmd: get-golang
|
||||
@@ -1,46 +1,15 @@
|
||||
{% set root = '/var/src/kube-proxy' %}
|
||||
{% set package = 'github.com/GoogleCloudPlatform/kubernetes' %}
|
||||
{% set package_dir = root + '/src/' + package %}
|
||||
{% set go_opt = pillar['go_opt'] %}
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
{% set environment_file = '/etc/sysconfig/kube-proxy' %}
|
||||
{% else %}
|
||||
{% set environment_file = '/etc/default/kube-proxy' %}
|
||||
{% endif %}
|
||||
|
||||
{{ package_dir }}:
|
||||
file.recurse:
|
||||
- source: salt://kube-proxy/go
|
||||
- user: root
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
- group: root
|
||||
{% else %}
|
||||
- group: staff
|
||||
{% endif %}
|
||||
- dir_mode: 775
|
||||
- file_mode: 664
|
||||
- makedirs: True
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
- mode
|
||||
|
||||
kube-proxy-build:
|
||||
cmd.run:
|
||||
- cwd: {{ root }}
|
||||
- names:
|
||||
- go build {{ go_opt }} {{ package }}/cmd/proxy
|
||||
- env:
|
||||
- PATH: {{ grains['path'] }}:/usr/local/bin
|
||||
- GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace
|
||||
- require:
|
||||
- file: {{ package_dir }}
|
||||
|
||||
/usr/local/bin/kube-proxy:
|
||||
file.symlink:
|
||||
- target: {{ root }}/proxy
|
||||
- watch:
|
||||
- cmd: kube-proxy-build
|
||||
file.managed:
|
||||
- source: salt://kube-bins/proxy
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 755
|
||||
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
|
||||
@@ -82,7 +51,6 @@ kube-proxy:
|
||||
service.running:
|
||||
- enable: True
|
||||
- watch:
|
||||
- cmd: kube-proxy-build
|
||||
- file: {{ environment_file }}
|
||||
{% if grains['os_family'] != 'RedHat' %}
|
||||
- file: /etc/init.d/kube-proxy
|
||||
|
||||
@@ -1,30 +1,9 @@
|
||||
{% set root = '/var/src/kubelet' %}
|
||||
{% set package = 'github.com/GoogleCloudPlatform/kubernetes' %}
|
||||
{% set package_dir = root + '/src/' + package %}
|
||||
{% set go_opt = pillar['go_opt'] %}
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
{% set environment_file = '/etc/sysconfig/kubelet' %}
|
||||
{% else %}
|
||||
{% set environment_file = '/etc/default/kubelet' %}
|
||||
{% endif %}
|
||||
|
||||
{{ package_dir }}:
|
||||
file.recurse:
|
||||
- source: salt://kubelet/go
|
||||
- user: root
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
- group: root
|
||||
{% else %}
|
||||
- group: staff
|
||||
{% endif %}
|
||||
- dir_mode: 775
|
||||
- file_mode: 664
|
||||
- makedirs: True
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
- mode
|
||||
|
||||
{{ environment_file}}:
|
||||
file.managed:
|
||||
- source: salt://kubelet/default
|
||||
@@ -33,22 +12,12 @@
|
||||
- group: root
|
||||
- mode: 644
|
||||
|
||||
kubelet-build:
|
||||
cmd.run:
|
||||
- cwd: {{ root }}
|
||||
- names:
|
||||
- go build {{ go_opt }} {{ package }}/cmd/kubelet
|
||||
- env:
|
||||
- PATH: {{ grains['path'] }}:/usr/local/bin
|
||||
- GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace
|
||||
- require:
|
||||
- file: {{ package_dir }}
|
||||
|
||||
/usr/local/bin/kubelet:
|
||||
file.symlink:
|
||||
- target: {{ root }}/kubelet
|
||||
- watch:
|
||||
- cmd: kubelet-build
|
||||
file.managed:
|
||||
- source: salt://kube-bins/kubelet
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 755
|
||||
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
|
||||
@@ -84,7 +53,6 @@ kubelet:
|
||||
service.running:
|
||||
- enable: True
|
||||
- watch:
|
||||
- cmd: kubelet-build
|
||||
- file: /usr/local/bin/kubelet
|
||||
{% if grains['os_family'] != 'RedHat' %}
|
||||
- file: /etc/init.d/kubelet
|
||||
|
||||
@@ -1,30 +1,9 @@
|
||||
{% set root = '/var/src/scheduler' %}
|
||||
{% set package = 'github.com/GoogleCloudPlatform/kubernetes' %}
|
||||
{% set package_dir = root + '/src/' + package %}
|
||||
{% set go_opt = pillar['go_opt'] %}
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
{% set environment_file = '/etc/sysconfig/scheduler' %}
|
||||
{% else %}
|
||||
{% set environment_file = '/etc/default/scheduler' %}
|
||||
{% endif %}
|
||||
|
||||
{{ package_dir }}:
|
||||
file.recurse:
|
||||
- source: salt://scheduler/go
|
||||
- user: root
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
- group: root
|
||||
{% else %}
|
||||
- group: staff
|
||||
{% endif %}
|
||||
- dir_mode: 775
|
||||
- file_mode: 664
|
||||
- makedirs: True
|
||||
- recurse:
|
||||
- user
|
||||
- group
|
||||
- mode
|
||||
|
||||
{{ environment_file }}:
|
||||
file.managed:
|
||||
- source: salt://scheduler/default
|
||||
@@ -33,22 +12,12 @@
|
||||
- group: root
|
||||
- mode: 644
|
||||
|
||||
scheduler-build:
|
||||
cmd.run:
|
||||
- cwd: {{ root }}
|
||||
- names:
|
||||
- go build {{ go_opt }} {{ package }}/plugin/cmd/scheduler
|
||||
- env:
|
||||
- PATH: {{ grains['path'] }}:/usr/local/bin
|
||||
- GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace
|
||||
- require:
|
||||
- file: {{ package_dir }}
|
||||
|
||||
/usr/local/bin/scheduler:
|
||||
file.symlink:
|
||||
- target: {{ root }}/scheduler
|
||||
- watch:
|
||||
- cmd: scheduler-build
|
||||
file.managed:
|
||||
- source: salt://kube-bins/scheduler
|
||||
- user: root
|
||||
- group: root
|
||||
- mode: 755
|
||||
|
||||
{% if grains['os_family'] == 'RedHat' %}
|
||||
|
||||
@@ -82,7 +51,6 @@ scheduler:
|
||||
service.running:
|
||||
- enable: True
|
||||
- watch:
|
||||
- cmd: scheduler-build
|
||||
- file: /usr/local/bin/scheduler
|
||||
- file: {{ environment_file }}
|
||||
{% if grains['os_family'] != 'RedHat' %}
|
||||
|
||||
@@ -4,12 +4,12 @@ base:
|
||||
|
||||
'roles:kubernetes-pool':
|
||||
- match: grain
|
||||
- golang
|
||||
- docker
|
||||
- kubelet
|
||||
- kube-proxy
|
||||
- cadvisor
|
||||
- nsinit
|
||||
# We need a binary release of nsinit
|
||||
# - nsinit
|
||||
- logrotate
|
||||
{% if grains['cloud'] is defined and grains['cloud'] == 'azure' %}
|
||||
- openvpn-client
|
||||
@@ -19,9 +19,7 @@ base:
|
||||
|
||||
'roles:kubernetes-master':
|
||||
- match: grain
|
||||
- golang
|
||||
- etcd
|
||||
- etcdctl
|
||||
- apiserver
|
||||
- controller-manager
|
||||
- scheduler
|
||||
|
||||
Reference in New Issue
Block a user