From 5722eba78050ec1f5622658b276cb58e7253354f Mon Sep 17 00:00:00 2001 From: Joe Beda Date: Tue, 26 Aug 2014 16:00:34 -0700 Subject: [PATCH] Propagate version info into salt config and use to build. Fixes #1043. --- cluster/saltbase/salt/apiserver/init.sls | 3 ++- cluster/saltbase/salt/controller-manager/init.sls | 3 ++- cluster/saltbase/salt/kube-proxy/init.sls | 3 ++- cluster/saltbase/salt/kubelet/init.sls | 3 ++- cluster/saltbase/salt/scheduler/init.sls | 3 ++- hack/build-go.sh | 4 ++++ release/build-release.sh | 13 +++++++++++++ 7 files changed, 27 insertions(+), 5 deletions(-) diff --git a/cluster/saltbase/salt/apiserver/init.sls b/cluster/saltbase/salt/apiserver/init.sls index cb6ac9b2b6f..012d990cfc2 100644 --- a/cluster/saltbase/salt/apiserver/init.sls +++ b/cluster/saltbase/salt/apiserver/init.sls @@ -1,6 +1,7 @@ {% 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 %} @@ -36,7 +37,7 @@ apiserver-build: cmd.run: - cwd: {{ root }} - names: - - go build {{ package }}/cmd/apiserver + - go build {{ go_opt }} {{ package }}/cmd/apiserver - env: - PATH: {{ grains['path'] }}:/usr/local/bin - GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace diff --git a/cluster/saltbase/salt/controller-manager/init.sls b/cluster/saltbase/salt/controller-manager/init.sls index 342372c7746..289ed825892 100644 --- a/cluster/saltbase/salt/controller-manager/init.sls +++ b/cluster/saltbase/salt/controller-manager/init.sls @@ -1,6 +1,7 @@ {% 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 %} @@ -36,7 +37,7 @@ controller-manager-build: cmd.run: - cwd: {{ root }} - names: - - go build {{ package }}/cmd/controller-manager + - go build {{ go_opt }} {{ package }}/cmd/controller-manager - env: - PATH: {{ grains['path'] }}:/usr/local/bin - GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace diff --git a/cluster/saltbase/salt/kube-proxy/init.sls b/cluster/saltbase/salt/kube-proxy/init.sls index 985264a8a55..79fbd9ebfd6 100644 --- a/cluster/saltbase/salt/kube-proxy/init.sls +++ b/cluster/saltbase/salt/kube-proxy/init.sls @@ -1,6 +1,7 @@ {% 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 %} @@ -28,7 +29,7 @@ kube-proxy-build: cmd.run: - cwd: {{ root }} - names: - - go build {{ package }}/cmd/proxy + - go build {{ go_opt }} {{ package }}/cmd/proxy - env: - PATH: {{ grains['path'] }}:/usr/local/bin - GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace diff --git a/cluster/saltbase/salt/kubelet/init.sls b/cluster/saltbase/salt/kubelet/init.sls index 41895454b81..e1a006e89bb 100644 --- a/cluster/saltbase/salt/kubelet/init.sls +++ b/cluster/saltbase/salt/kubelet/init.sls @@ -1,6 +1,7 @@ {% 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 %} @@ -36,7 +37,7 @@ kubelet-build: cmd.run: - cwd: {{ root }} - names: - - go build {{ package }}/cmd/kubelet + - go build {{ go_opt }} {{ package }}/cmd/kubelet - env: - PATH: {{ grains['path'] }}:/usr/local/bin - GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace diff --git a/cluster/saltbase/salt/scheduler/init.sls b/cluster/saltbase/salt/scheduler/init.sls index 67835e6bdbf..5deacd70c08 100644 --- a/cluster/saltbase/salt/scheduler/init.sls +++ b/cluster/saltbase/salt/scheduler/init.sls @@ -1,6 +1,7 @@ {% 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 %} @@ -36,7 +37,7 @@ scheduler-build: cmd.run: - cwd: {{ root }} - names: - - go build {{ package }}/plugin/cmd/scheduler + - go build {{ go_opt }} {{ package }}/plugin/cmd/scheduler - env: - PATH: {{ grains['path'] }}:/usr/local/bin - GOPATH: {{ root }}:{{ package_dir }}/Godeps/_workspace diff --git a/hack/build-go.sh b/hack/build-go.sh index 4f2a1468469..dfcdafadbc4 100755 --- a/hack/build-go.sh +++ b/hack/build-go.sh @@ -41,4 +41,8 @@ for arg; do binaries+=("${KUBE_GO_PACKAGE}/${arg}") done +# Note that the flags to 'go build' are duplicated in the salt build setup for +# our cluster deploy. If we add more command line options to our standard build +# we'll want to duplicate them there. As we move to distributing pre- built +# binaries we can eliminate this duplication. go install -ldflags "-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.commitFromGit '${version}'" "${binaries[@]}" diff --git a/release/build-release.sh b/release/build-release.sh index 48fe0ddc8e4..a75e4c453d7 100755 --- a/release/build-release.sh +++ b/release/build-release.sh @@ -40,14 +40,27 @@ echo "Building release tree" cp $KUBE_DIR/release/master-release-install.sh $MASTER_RELEASE_DIR/src/scripts/master-release-install.sh cp -r $KUBE_DIR/cluster/saltbase $MASTER_RELEASE_DIR/src/saltbase +# Capture the same version we are using to build the client tools and pass that +# on. +version=$( + unset IFS + source $KUBE_DIR/hack/config-go.sh + gitcommit +) + cat << EOF > $MASTER_RELEASE_DIR/src/saltbase/pillar/common.sls instance_prefix: $INSTANCE_PREFIX-minion +go_opt: -ldflags "-X github.com/GoogleCloudPlatform/kubernetes/pkg/version.commitFromGit '$version'" EOF function find_go_files() { find * -not \( \ \( \ -wholename 'release' \ + -o -wholename 'output' \ + -o -wholename '_output' \ + -o -wholename 'examples' \ + -o -wholename 'test' \ \) -prune \ \) -name '*.go' }