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
02eb68aa
Commit
02eb68aa
authored
Aug 06, 2015
by
Dawn Chen
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12356 from ixdy/retry-gsutil-upload
Handle errors properly in kube::gcs::release functions
parents
9af5d8bd
67b10ac2
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 @
02eb68aa
...
...
@@ -119,7 +119,7 @@ readonly KUBE_DOCKER_WRAPPED_BINARIES=(
# DOCKER_MOUNT_ARGS
function
kube::build::verify_prereqs
()
{
kube::log::status
"Verifying Prerequisites...."
kube::build::ensure_tar
kube::build::ensure_tar
||
return
1
if
[[
"
${
1
-
}
"
!=
"clean"
]]
;
then
if
[[
-z
"
$(
which docker
)
"
]]
;
then
...
...
@@ -800,9 +800,9 @@ function kube::release::create_tarball() {
function
kube::release::gcs::release
()
{
[[
${
KUBE_GCS_UPLOAD_RELEASE
}
=
~ ^[yY]
$
]]
||
return
0
kube::release::gcs::verify_prereqs
kube::release::gcs::ensure_release_bucket
kube::release::gcs::copy_release_artifacts
kube::release::gcs::verify_prereqs
||
return
1
kube::release::gcs::ensure_release_bucket
||
return
1
kube::release::gcs::copy_release_artifacts
||
return
1
}
# Verify things are set up for uploading to GCS
...
...
@@ -844,12 +844,12 @@ function kube::release::gcs::ensure_release_bucket() {
if
!
gsutil
ls
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
"
>
/dev/null 2>&1
;
then
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
}
function
kube::release::gcs::stage_and_hash
()
{
kube::build::ensure_tar
kube::build::ensure_tar
||
return
1
# Split the args into srcs... and dst
local
-r
args
=(
"
$@
"
)
...
...
@@ -860,8 +860,8 @@ function kube::release::gcs::stage_and_hash() {
for
src
in
${
srcs
[@]
}
;
do
srcdir
=
$(
dirname
${
src
})
srcthing
=
$(
basename
${
src
})
mkdir
-p
${
GCS_STAGE
}
/
${
dst
}
"
${
TAR
}
"
c
-C
${
srcdir
}
${
srcthing
}
|
"
${
TAR
}
"
x
-C
${
GCS_STAGE
}
/
${
dst
}
mkdir
-p
${
GCS_STAGE
}
/
${
dst
}
||
return
1
"
${
TAR
}
"
c
-C
${
srcdir
}
${
srcthing
}
|
"
${
TAR
}
"
x
-C
${
GCS_STAGE
}
/
${
dst
}
||
return
1
done
}
...
...
@@ -874,15 +874,15 @@ function kube::release::gcs::copy_release_artifacts() {
kube::log::status
"Staging release artifacts to
${
GCS_STAGE
}
"
rm
-rf
${
GCS_STAGE
}
mkdir
-p
${
GCS_STAGE
}
rm
-rf
${
GCS_STAGE
}
||
return
1
mkdir
-p
${
GCS_STAGE
}
||
return
1
# 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
# 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
# download the binaries directly and don't need tars.
...
...
@@ -895,13 +895,13 @@ function kube::release::gcs::copy_release_artifacts() {
if
[[
-d
"
${
RELEASE_STAGE
}
/server/
${
platform
}
"
]]
;
then
src
=
"
${
RELEASE_STAGE
}
/server/
${
platform
}
/kubernetes/server/bin/*"
fi
kube::release::gcs::stage_and_hash
"
$src
"
"
$dst
"
kube::release::gcs::stage_and_hash
"
$src
"
"
$dst
"
||
return
1
done
kube::log::status
"Hashing files in
${
GCS_STAGE
}
"
find
${
GCS_STAGE
}
-type
f |
while
read
path
;
do
kube::release::md5
${
path
}
>
"
${
path
}
.md5"
kube::release::sha1
${
path
}
>
"
${
path
}
.sha1"
kube::release::md5
${
path
}
>
"
${
path
}
.md5"
||
return
1
kube::release::sha1
${
path
}
>
"
${
path
}
.sha1"
||
return
1
done
kube::log::status
"Copying release artifacts to
${
gcs_destination
}
"
...
...
@@ -919,7 +919,7 @@ function kube::release::gcs::copy_release_artifacts() {
return
}
}
gsutil
-q
-m
rm
-f
-R
"
${
gcs_destination
}
"
gsutil
-q
-m
rm
-f
-R
"
${
gcs_destination
}
"
||
return
1
fi
local
gcs_options
=()
...
...
@@ -927,7 +927,7 @@ function kube::release::gcs::copy_release_artifacts() {
gcs_options
=(
"-h"
"Cache-Control:private, max-age=0"
)
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
# 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() {
if
[[
${
KUBE_GCS_MAKE_PUBLIC
}
=
~ ^[yY]
$
]]
;
then
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
gsutil
ls
-lhr
"
${
gcs_destination
}
"
gsutil
ls
-lhr
"
${
gcs_destination
}
"
||
return
1
}
function
kube::release::gcs::publish_latest
()
{
local
latest_file_dst
=
"gs://
${
KUBE_GCS_RELEASE_BUCKET
}
/
${
KUBE_GCS_LATEST_FILE
}
"
mkdir
-p
"
${
RELEASE_STAGE
}
/upload"
echo
${
KUBE_GCS_LATEST_CONTENTS
}
>
"
${
RELEASE_STAGE
}
/upload/latest"
mkdir
-p
"
${
RELEASE_STAGE
}
/upload"
||
return
1
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
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
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
...
...
@@ -1005,5 +1005,5 @@ function kube::release::gcs::publish_latest_official() {
fi
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