@@ -1211,6 +1211,16 @@ function kube::release::gcs::copy_release_artifacts() {
1211
1211
fi
1212
1212
1213
1213
gsutil ls -lhr " ${gcs_destination} " || return 1
1214
+
1215
+ if [[ -n " ${KUBE_GCS_RELEASE_BUCKET_MIRROR:- } " ]]; then
1216
+ local -r gcs_mirror=" gs://${KUBE_GCS_RELEASE_BUCKET_MIRROR} /${KUBE_GCS_RELEASE_PREFIX} "
1217
+ kube::log::status " Mirroring build to ${gcs_mirror} "
1218
+ gsutil -q -m " ${gcs_options[@]+${gcs_options[@]} } " rsync -d -r " ${gcs_destination} " " ${gcs_mirror} " || return 1
1219
+ if [[ ${KUBE_GCS_MAKE_PUBLIC} =~ ^[yY]$ ]]; then
1220
+ kube::log::status " Marking all uploaded mirror objects public"
1221
+ gsutil -q -m acl ch -R -g all:R " ${gcs_mirror} " > /dev/null 2>&1 || return 1
1222
+ fi
1223
+ fi
1214
1224
}
1215
1225
1216
1226
# Publish a new ci version, (latest,) but only if the release files actually
@@ -1475,7 +1485,19 @@ function kube::release::gcs::verify_ci_ge() {
1475
1485
# If new version is greater than the GCS version
1476
1486
function kube::release::gcs::publish() {
1477
1487
local -r publish_file=" ${1-} "
1478
- local -r publish_file_dst=" gs://${KUBE_GCS_RELEASE_BUCKET} /${publish_file} "
1488
+
1489
+ kube::release::gcs::publish_to_bucket " ${KUBE_GCS_RELEASE_BUCKET} " " ${publish_file} " || return 1
1490
+
1491
+ if [[ -n " ${KUBE_GCS_RELEASE_BUCKET_MIRROR:- } " ]]; then
1492
+ kube::release::gcs::publish_to_bucket " ${KUBE_GCS_RELEASE_BUCKET_MIRROR} " " ${publish_file} " || return 1
1493
+ fi
1494
+ }
1495
+
1496
+
1497
+ function kube::release::gcs::publish_to_bucket() {
1498
+ local -r publish_bucket=" ${1} "
1499
+ local -r publish_file=" ${2} "
1500
+ local -r publish_file_dst=" gs://${publish_bucket} /${publish_file} "
1479
1501
1480
1502
mkdir -p " ${RELEASE_STAGE} /upload" || return 1
1481
1503
echo " ${KUBE_GCS_PUBLISH_VERSION} " > " ${RELEASE_STAGE} /upload/latest" || return 1
@@ -1488,7 +1510,7 @@ function kube::release::gcs::publish() {
1488
1510
gsutil acl ch -R -g all:R " ${publish_file_dst} " > /dev/null 2>&1 || return 1
1489
1511
gsutil setmeta -h " Cache-Control:private, max-age=0" " ${publish_file_dst} " > /dev/null 2>&1 || return 1
1490
1512
# If public, validate public link
1491
- local -r public_link=" https://storage.googleapis.com/${KUBE_GCS_RELEASE_BUCKET } /${publish_file} "
1513
+ local -r public_link=" https://storage.googleapis.com/${publish_bucket } /${publish_file} "
1492
1514
kube::log::status " Validating uploaded version file at ${public_link} "
1493
1515
contents=" $( curl -s " ${public_link} " ) "
1494
1516
else
0 commit comments