@@ -1229,6 +1229,16 @@ function kube::release::gcs::copy_release_artifacts() {
1229
1229
fi
1230
1230
1231
1231
gsutil ls -lhr " ${gcs_destination} " || return 1
1232
+
1233
+ if [[ -n " ${KUBE_GCS_RELEASE_BUCKET_MIRROR:- } " ]]; then
1234
+ local -r gcs_mirror=" gs://${KUBE_GCS_RELEASE_BUCKET_MIRROR} /${KUBE_GCS_RELEASE_PREFIX} "
1235
+ kube::log::status " Mirroring build to ${gcs_mirror} "
1236
+ gsutil -q -m " ${gcs_options[@]+${gcs_options[@]} } " rsync -d -r " ${gcs_destination} " " ${gcs_mirror} " || return 1
1237
+ if [[ ${KUBE_GCS_MAKE_PUBLIC} =~ ^[yY]$ ]]; then
1238
+ kube::log::status " Marking all uploaded mirror objects public"
1239
+ gsutil -q -m acl ch -R -g all:R " ${gcs_mirror} " > /dev/null 2>&1 || return 1
1240
+ fi
1241
+ fi
1232
1242
}
1233
1243
1234
1244
# Publish a new ci version, (latest,) but only if the release files actually
@@ -1493,7 +1503,19 @@ function kube::release::gcs::verify_ci_ge() {
1493
1503
# If new version is greater than the GCS version
1494
1504
function kube::release::gcs::publish() {
1495
1505
local -r publish_file=" ${1-} "
1496
- local -r publish_file_dst=" gs://${KUBE_GCS_RELEASE_BUCKET} /${publish_file} "
1506
+
1507
+ kube::release::gcs::publish_to_bucket " ${KUBE_GCS_RELEASE_BUCKET} " " ${publish_file} " || return 1
1508
+
1509
+ if [[ -n " ${KUBE_GCS_RELEASE_BUCKET_MIRROR:- } " ]]; then
1510
+ kube::release::gcs::publish_to_bucket " ${KUBE_GCS_RELEASE_BUCKET_MIRROR} " " ${publish_file} " || return 1
1511
+ fi
1512
+ }
1513
+
1514
+
1515
+ function kube::release::gcs::publish_to_bucket() {
1516
+ local -r publish_bucket=" ${1} "
1517
+ local -r publish_file=" ${2} "
1518
+ local -r publish_file_dst=" gs://${publish_bucket} /${publish_file} "
1497
1519
1498
1520
mkdir -p " ${RELEASE_STAGE} /upload" || return 1
1499
1521
echo " ${KUBE_GCS_PUBLISH_VERSION} " > " ${RELEASE_STAGE} /upload/latest" || return 1
@@ -1506,7 +1528,7 @@ function kube::release::gcs::publish() {
1506
1528
gsutil acl ch -R -g all:R " ${publish_file_dst} " > /dev/null 2>&1 || return 1
1507
1529
gsutil setmeta -h " Cache-Control:private, max-age=0" " ${publish_file_dst} " > /dev/null 2>&1 || return 1
1508
1530
# If public, validate public link
1509
- local -r public_link=" https://storage.googleapis.com/${KUBE_GCS_RELEASE_BUCKET } /${publish_file} "
1531
+ local -r public_link=" https://storage.googleapis.com/${publish_bucket } /${publish_file} "
1510
1532
kube::log::status " Validating uploaded version file at ${public_link} "
1511
1533
contents=" $( curl -s " ${public_link} " ) "
1512
1534
else
0 commit comments