Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
67b10ac2
Commit
67b10ac2
authored
Aug 06, 2015
by
Jeff Grafton
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Handle errors properly in kube::gcs::release functions
parent
0d1f2cd2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
25 deletions
+25
-25
common.sh
build/common.sh
+25
-25
No files found.
build/common.sh
View file @
67b10ac2
...
@@ -119,7 +119,7 @@ readonly KUBE_DOCKER_WRAPPED_BINARIES=(
...
@@ -119,7 +119,7 @@ readonly KUBE_DOCKER_WRAPPED_BINARIES=(
# DOCKER_MOUNT_ARGS
# DOCKER_MOUNT_ARGS
function
kube::build::verify_prereqs
()
{
function
kube::build::verify_prereqs
()
{
kube::log::status
"Verifying Prerequisites...."
kube::log::status
"Verifying Prerequisites...."
kube::build::ensure_tar
kube::build::ensure_tar
||
return
1
if
[[
"
${
1
-
}
"
!=
"clean"
]]
;
then
if
[[
"
${
1
-
}
"
!=
"clean"
]]
;
then
if
[[
-z
"
$(
which docker
)
"
]]
;
then
if
[[
-z
"
$(
which docker
)
"
]]
;
then
...
@@ -800,9 +800,9 @@ function kube::release::create_tarball() {
...
@@ -800,9 +800,9 @@ function kube::release::create_tarball() {
function
kube::release::gcs::release
()
{
function
kube::release::gcs::release
()
{
[[
${
KUBE_GCS_UPLOAD_RELEASE
}
=
~ ^[yY]
$
]]
||
return
0
[[
${
KUBE_GCS_UPLOAD_RELEASE
}
=
~ ^[yY]
$
]]
||
return
0
kube::release::gcs::verify_prereqs
kube::release::gcs::verify_prereqs
||
return
1
kube::release::gcs::ensure_release_bucket
kube::release::gcs::ensure_release_bucket
||
return
1
kube::release::gcs::copy_release_artifacts
kube::release::gcs::copy_release_artifacts
||
return
1
}
}
# Verify things are set up for uploading to GCS
# Verify things are set up for uploading to GCS
...
@@ -844,12 +844,12 @@ function kube::release::gcs::ensure_release_bucket() {
...
@@ -844,12 +844,12 @@ function kube::release::gcs::ensure_release_bucket() {
if
!
gsutil
ls
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
"
>
/dev/null 2>&1
;
then
if
!
gsutil
ls
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
"
>
/dev/null 2>&1
;
then
echo
"Creating Google Cloud Storage bucket:
$KUBE_GCS_RELEASE_BUCKET
"
echo
"Creating Google Cloud Storage bucket:
$KUBE_GCS_RELEASE_BUCKET
"
gsutil mb
-p
"
${
GCLOUD_PROJECT
}
"
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
"
gsutil mb
-p
"
${
GCLOUD_PROJECT
}
"
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
"
||
return
1
fi
fi
}
}
function
kube::release::gcs::stage_and_hash
()
{
function
kube::release::gcs::stage_and_hash
()
{
kube::build::ensure_tar
kube::build::ensure_tar
||
return
1
# Split the args into srcs... and dst
# Split the args into srcs... and dst
local
-r
args
=(
"
$@
"
)
local
-r
args
=(
"
$@
"
)
...
@@ -860,8 +860,8 @@ function kube::release::gcs::stage_and_hash() {
...
@@ -860,8 +860,8 @@ function kube::release::gcs::stage_and_hash() {
for
src
in
${
srcs
[@]
}
;
do
for
src
in
${
srcs
[@]
}
;
do
srcdir
=
$(
dirname
${
src
})
srcdir
=
$(
dirname
${
src
})
srcthing
=
$(
basename
${
src
})
srcthing
=
$(
basename
${
src
})
mkdir
-p
${
GCS_STAGE
}
/
${
dst
}
mkdir
-p
${
GCS_STAGE
}
/
${
dst
}
||
return
1
"
${
TAR
}
"
c
-C
${
srcdir
}
${
srcthing
}
|
"
${
TAR
}
"
x
-C
${
GCS_STAGE
}
/
${
dst
}
"
${
TAR
}
"
c
-C
${
srcdir
}
${
srcthing
}
|
"
${
TAR
}
"
x
-C
${
GCS_STAGE
}
/
${
dst
}
||
return
1
done
done
}
}
...
@@ -874,15 +874,15 @@ function kube::release::gcs::copy_release_artifacts() {
...
@@ -874,15 +874,15 @@ function kube::release::gcs::copy_release_artifacts() {
kube::log::status
"Staging release artifacts to
${
GCS_STAGE
}
"
kube::log::status
"Staging release artifacts to
${
GCS_STAGE
}
"
rm
-rf
${
GCS_STAGE
}
rm
-rf
${
GCS_STAGE
}
||
return
1
mkdir
-p
${
GCS_STAGE
}
mkdir
-p
${
GCS_STAGE
}
||
return
1
# Stage everything in release directory
# Stage everything in release directory
kube::release::gcs::stage_and_hash
"
${
RELEASE_DIR
}
"
/
*
.
kube::release::gcs::stage_and_hash
"
${
RELEASE_DIR
}
"
/
*
.
||
return
1
# Having the configure-vm.sh script from the GCE cluster deploy hosted with the
# Having the configure-vm.sh script from the GCE cluster deploy hosted with the
# release is useful for GKE.
# release is useful for GKE.
kube::release::gcs::stage_and_hash
"
${
RELEASE_STAGE
}
/full/kubernetes/cluster/gce/configure-vm.sh"
extra/gce
kube::release::gcs::stage_and_hash
"
${
RELEASE_STAGE
}
/full/kubernetes/cluster/gce/configure-vm.sh"
extra/gce
||
return
1
# Upload the "naked" binaries to GCS. This is useful for install scripts that
# Upload the "naked" binaries to GCS. This is useful for install scripts that
# download the binaries directly and don't need tars.
# download the binaries directly and don't need tars.
...
@@ -895,13 +895,13 @@ function kube::release::gcs::copy_release_artifacts() {
...
@@ -895,13 +895,13 @@ function kube::release::gcs::copy_release_artifacts() {
if
[[
-d
"
${
RELEASE_STAGE
}
/server/
${
platform
}
"
]]
;
then
if
[[
-d
"
${
RELEASE_STAGE
}
/server/
${
platform
}
"
]]
;
then
src
=
"
${
RELEASE_STAGE
}
/server/
${
platform
}
/kubernetes/server/bin/*"
src
=
"
${
RELEASE_STAGE
}
/server/
${
platform
}
/kubernetes/server/bin/*"
fi
fi
kube::release::gcs::stage_and_hash
"
$src
"
"
$dst
"
kube::release::gcs::stage_and_hash
"
$src
"
"
$dst
"
||
return
1
done
done
kube::log::status
"Hashing files in
${
GCS_STAGE
}
"
kube::log::status
"Hashing files in
${
GCS_STAGE
}
"
find
${
GCS_STAGE
}
-type
f |
while
read
path
;
do
find
${
GCS_STAGE
}
-type
f |
while
read
path
;
do
kube::release::md5
${
path
}
>
"
${
path
}
.md5"
kube::release::md5
${
path
}
>
"
${
path
}
.md5"
||
return
1
kube::release::sha1
${
path
}
>
"
${
path
}
.sha1"
kube::release::sha1
${
path
}
>
"
${
path
}
.sha1"
||
return
1
done
done
kube::log::status
"Copying release artifacts to
${
gcs_destination
}
"
kube::log::status
"Copying release artifacts to
${
gcs_destination
}
"
...
@@ -919,7 +919,7 @@ function kube::release::gcs::copy_release_artifacts() {
...
@@ -919,7 +919,7 @@ function kube::release::gcs::copy_release_artifacts() {
return
return
}
}
}
}
gsutil
-q
-m
rm
-f
-R
"
${
gcs_destination
}
"
gsutil
-q
-m
rm
-f
-R
"
${
gcs_destination
}
"
||
return
1
fi
fi
local
gcs_options
=()
local
gcs_options
=()
...
@@ -927,7 +927,7 @@ function kube::release::gcs::copy_release_artifacts() {
...
@@ -927,7 +927,7 @@ function kube::release::gcs::copy_release_artifacts() {
gcs_options
=(
"-h"
"Cache-Control:private, max-age=0"
)
gcs_options
=(
"-h"
"Cache-Control:private, max-age=0"
)
fi
fi
gsutil
-q
-m
"
${
gcs_options
[@]+
${
gcs_options
[@]
}}
"
cp
-r
"
${
GCS_STAGE
}
"
/
*
${
gcs_destination
}
gsutil
-q
-m
"
${
gcs_options
[@]+
${
gcs_options
[@]
}}
"
cp
-r
"
${
GCS_STAGE
}
"
/
*
${
gcs_destination
}
||
return
1
# TODO(jbeda): Generate an HTML page with links for this release so it is easy
# TODO(jbeda): Generate an HTML page with links for this release so it is easy
# to see it. For extra credit, generate a dynamic page that builds up the
# to see it. For extra credit, generate a dynamic page that builds up the
...
@@ -936,26 +936,26 @@ function kube::release::gcs::copy_release_artifacts() {
...
@@ -936,26 +936,26 @@ function kube::release::gcs::copy_release_artifacts() {
if
[[
${
KUBE_GCS_MAKE_PUBLIC
}
=
~ ^[yY]
$
]]
;
then
if
[[
${
KUBE_GCS_MAKE_PUBLIC
}
=
~ ^[yY]
$
]]
;
then
kube::log::status
"Marking all uploaded objects public"
kube::log::status
"Marking all uploaded objects public"
gsutil
-q
-m
acl ch
-R
-g
all:R
"
${
gcs_destination
}
"
>
/dev/null 2>&1
gsutil
-q
-m
acl ch
-R
-g
all:R
"
${
gcs_destination
}
"
>
/dev/null 2>&1
||
return
1
fi
fi
gsutil
ls
-lhr
"
${
gcs_destination
}
"
gsutil
ls
-lhr
"
${
gcs_destination
}
"
||
return
1
}
}
function
kube::release::gcs::publish_latest
()
{
function
kube::release::gcs::publish_latest
()
{
local
latest_file_dst
=
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
/
${
KUBE_GCS_LATEST_FILE
}
"
local
latest_file_dst
=
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
/
${
KUBE_GCS_LATEST_FILE
}
"
mkdir
-p
"
${
RELEASE_STAGE
}
/upload"
mkdir
-p
"
${
RELEASE_STAGE
}
/upload"
||
return
1
echo
${
KUBE_GCS_LATEST_CONTENTS
}
>
"
${
RELEASE_STAGE
}
/upload/latest"
echo
${
KUBE_GCS_LATEST_CONTENTS
}
>
"
${
RELEASE_STAGE
}
/upload/latest"
||
return
1
gsutil
-m
cp
"
${
RELEASE_STAGE
}
/upload/latest"
"
${
latest_file_dst
}
"
gsutil
-m
cp
"
${
RELEASE_STAGE
}
/upload/latest"
"
${
latest_file_dst
}
"
||
return
1
if
[[
${
KUBE_GCS_MAKE_PUBLIC
}
=
~ ^[yY]
$
]]
;
then
if
[[
${
KUBE_GCS_MAKE_PUBLIC
}
=
~ ^[yY]
$
]]
;
then
gsutil acl ch
-R
-g
all:R
"
${
latest_file_dst
}
"
>
/dev/null 2>&1
gsutil acl ch
-R
-g
all:R
"
${
latest_file_dst
}
"
>
/dev/null 2>&1
||
return
1
fi
fi
kube::log::status
"gsutil cat
${
latest_file_dst
}
:"
kube::log::status
"gsutil cat
${
latest_file_dst
}
:"
gsutil
cat
${
latest_file_dst
}
gsutil
cat
${
latest_file_dst
}
||
return
1
}
}
# Publish a new latest.txt, but only if the release we're dealing with
# Publish a new latest.txt, but only if the release we're dealing with
...
@@ -1005,5 +1005,5 @@ function kube::release::gcs::publish_latest_official() {
...
@@ -1005,5 +1005,5 @@ function kube::release::gcs::publish_latest_official() {
fi
fi
kube::log::status
"
${
new_version
}
(just uploaded) >
${
gcs_version
}
(latest on GCS), updating
${
latest_file_dst
}
"
kube::log::status
"
${
new_version
}
(just uploaded) >
${
gcs_version
}
(latest on GCS), updating
${
latest_file_dst
}
"
kube::release::gcs::publish_latest
kube::release::gcs::publish_latest
||
return
1
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment