Skip to content

Commit 691a677

Browse files
authored
[8.19](backport #4895) bk: use GCP OIDC (#4932)
1 parent e9f1e51 commit 691a677

File tree

8 files changed

+47
-41
lines changed

8 files changed

+47
-41
lines changed

.buildkite/hooks/pre-command

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ source .buildkite/scripts/common.sh
66

77
DOCKER_REGISTRY_SECRET_PATH="kv/ci-shared/platform-ingest/docker_registry_prod"
88
EC_KEY_SECRET_PATH="kv/ci-shared/platform-ingest/platform-ingest-ec-prod"
9-
PRIVATE_CI_GCS_CREDENTIALS_PATH="kv/ci-shared/platform-ingest/gcp-platform-ingest-ci-service-account"
109
CI_DRA_ROLE_PATH="kv/ci-shared/release/dra-role"
11-
JOB_GCS_BUCKET="ingest-buildkite-ci"
10+
JOB_GCS_BUCKET="fleet-server-ci-internal"
1211
GITHUB_REPO_TOKEN=$VAULT_GITHUB_TOKEN
1312

13+
export JOB_GCS_BUCKET
14+
1415
# Usage:
1516
#check_if_file_exist_in_repo "infra" "main"
1617
#Returns FILE_EXISTS_IN_REPO=true if the defined file exists in the difined repo and FILE_EXISTS_IN_REPO=false if not exists
@@ -67,18 +68,6 @@ if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server" ]]; then
6768
fi
6869
fi
6970

70-
if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server" && "$BUILDKITE_STEP_KEY" == "release-test" ]]; then
71-
export PRIVATE_CI_GCS_CREDENTIALS_SECRET=$(retry 5 vault kv get -field plaintext -format=json ${PRIVATE_CI_GCS_CREDENTIALS_PATH})
72-
export JOB_GCS_BUCKET
73-
fi
74-
75-
if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server-package-mbp" ]]; then
76-
if [[ "$BUILDKITE_STEP_KEY" == package-x86-64* || "$BUILDKITE_STEP_KEY" == package-fips-x86_64* || "$BUILDKITE_STEP_KEY" == package-arm* || "$BUILDKITE_STEP_KEY" == package-fips-arm* || "$BUILDKITE_STEP_KEY" == "dra-snapshot" || "$BUILDKITE_STEP_KEY" == "dra-staging" ]]; then
77-
export PRIVATE_CI_GCS_CREDENTIALS_SECRET=$(retry 5 vault kv get -field plaintext -format=json ${PRIVATE_CI_GCS_CREDENTIALS_PATH})
78-
export JOB_GCS_BUCKET
79-
fi
80-
fi
81-
8271
if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server-package-mbp" ]]; then
8372
if [[ "$BUILDKITE_STEP_KEY" == "dra-snapshot" || "$BUILDKITE_STEP_KEY" == "dra-staging" ]]; then
8473
export DOCKER_USERNAME_SECRET=$(retry 5 vault kv get -field user "${DOCKER_REGISTRY_SECRET_PATH}")
@@ -90,10 +79,3 @@ if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server-package-mbp" ]]; then
9079
export VAULT_SECRET_ID_SECRET=$(echo ${DRA_CREDS_SECRET} | jq -r '.secret_id')
9180
fi
9281
fi
93-
94-
if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server-package-mbp" ]]; then
95-
if [[ "$BUILDKITE_STEP_KEY" == package-x86-64* || "$BUILDKITE_STEP_KEY" == package-fips-x86-64* || "$BUILDKITE_STEP_KEY" == package-arm* || "$BUILDKITE_STEP_KEY" == package-fips-arm* ]]; then
96-
export PRIVATE_CI_GCS_CREDENTIALS_SECRET=$(retry 5 vault kv get -field plaintext -format=json ${PRIVATE_CI_GCS_CREDENTIALS_PATH})
97-
export JOB_GCS_BUCKET
98-
fi
99-
fi

.buildkite/hooks/pre-exit

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@ if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server" || "$BUILDKITE_PIPELINE_SLUG"
1111
fi
1212

1313
if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server" && "$BUILDKITE_STEP_KEY" == "release-test" ]]; then
14-
unset GOOGLE_APPLICATION_CREDENTIALS
1514
cleanup
1615
fi
1716

1817
if [[ "$BUILDKITE_PIPELINE_SLUG" == "fleet-server-package-mbp" ]]; then
1918
if [[ "$BUILDKITE_STEP_KEY" == package-x86-64* || "$BUILDKITE_STEP_KEY" == package-fips-x86-64* || "$BUILDKITE_STEP_KEY" == package-arm* || "$BUILDKITE_STEP_KEY" == package-fips-arm* || "$BUILDKITE_STEP_KEY" == "dra-snapshot" && "$BUILDKITE_STEP_KEY" == "dra-staging" ]]; then
20-
unset GOOGLE_APPLICATION_CREDENTIALS
2119
unset VAULT_ROLE_ID_SECRET
2220
unset VAULT_ADDR_SECRET
2321
unset VAULT_SECRET_ID_SECRET

.buildkite/pipeline.package.mbp.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ env:
66
IMAGE_UBUNTU_X86_64: "family/core-ubuntu-2004"
77
IMAGE_UBUNTU_ARM_64: "core-ubuntu-2004-aarch64"
88

9+
# This section is used to define the plugins that will be used in the pipeline.
10+
# See https://buildkite.com/docs/pipelines/integrations/plugins/using#using-yaml-anchors-with-plugins
11+
common:
12+
- oidc_plugin: &oidc_plugin
13+
# See https://github.com/elastic/oblt-infra/blob/main/conf/resources/repos/fleet-server/01-gcp-buildkite-oidc.tf
14+
# This plugin authenticates to Google Cloud using the OIDC token.
15+
elastic/oblt-google-auth#v1.2.0:
16+
lifetime: 10800 # seconds
17+
project-id: "elastic-observability-ci"
18+
project-number: "911195782929"
19+
920
steps:
1021
- label: "Package x86_64 snapshot"
1122
# skip building + packaging snapshot for pre-releases (flagged by a non-empty VERSION_QUALIFIER env var/BK param)
@@ -17,6 +28,8 @@ steps:
1728
provider: "gcp"
1829
image: "${IMAGE_UBUNTU_X86_64}"
1930
machineType: "c2-standard-16"
31+
plugins:
32+
- *oidc_plugin
2033

2134
- label: "Package x86_64 staging"
2235
key: "package-x86-64-staging"
@@ -27,6 +40,8 @@ steps:
2740
provider: "gcp"
2841
image: "${IMAGE_UBUNTU_X86_64}"
2942
machineType: "c2-standard-16"
43+
plugins:
44+
- *oidc_plugin
3045

3146
- label: "Package FIPS x86_64 snapshot"
3247
if: "build.env('VERSION_QUALIFIER') == null"
@@ -38,6 +53,8 @@ steps:
3853
provider: "gcp"
3954
image: "${IMAGE_UBUNTU_X86_64}"
4055
machineType: "c2-standard-16"
56+
plugins:
57+
- *oidc_plugin
4158

4259
- label: "Package FIPS x86_64 staging"
4360
key: "package-fips-x86-64-staging"
@@ -50,6 +67,8 @@ steps:
5067
provider: "gcp"
5168
image: "${IMAGE_UBUNTU_X86_64}"
5269
machineType: "c2-standard-16"
70+
plugins:
71+
- *oidc_plugin
5372

5473
- label: "Package aarch64 snapshot"
5574
if: "build.env('VERSION_QUALIFIER') == null"
@@ -59,6 +78,8 @@ steps:
5978
provider: "aws"
6079
imagePrefix: "${IMAGE_UBUNTU_ARM_64}"
6180
instanceType: "t4g.2xlarge"
81+
plugins:
82+
- *oidc_plugin
6283

6384
- label: "Package aarch64 staging"
6485
key: "package-arm-staging"
@@ -69,6 +90,8 @@ steps:
6990
provider: "aws"
7091
imagePrefix: "${IMAGE_UBUNTU_ARM_64}"
7192
instanceType: "t4g.2xlarge"
93+
plugins:
94+
- *oidc_plugin
7295

7396
- label: "Package FIPS aarch64 snapshot"
7497
if: "build.env('VERSION_QUALIFIER') == null"
@@ -80,6 +103,8 @@ steps:
80103
provider: "aws"
81104
imagePrefix: "${IMAGE_UBUNTU_ARM_64}"
82105
instanceType: "t4g.2xlarge"
106+
plugins:
107+
- *oidc_plugin
83108

84109
- label: "Package FIPS aarch64 staging"
85110
key: "package-fips-arm-staging"
@@ -92,6 +117,8 @@ steps:
92117
provider: "aws"
93118
imagePrefix: "${IMAGE_UBUNTU_ARM_64}"
94119
instanceType: "t4g.2xlarge"
120+
plugins:
121+
- *oidc_plugin
95122

96123
- label: "DRA snapshot"
97124
if: "${FILE_EXISTS_IN_REPO} && build.env('VERSION_QUALIFIER') == null"
@@ -101,6 +128,8 @@ steps:
101128
provider: "gcp"
102129
image: "${IMAGE_UBUNTU_X86_64}"
103130
machineType: "c2-standard-16"
131+
plugins:
132+
- *oidc_plugin
104133
depends_on:
105134
- step: "package-x86-64-snapshot"
106135
allow_failure: false
@@ -123,6 +152,8 @@ steps:
123152
provider: "gcp"
124153
image: "${IMAGE_UBUNTU_X86_64}"
125154
machineType: "c2-standard-16"
155+
plugins:
156+
- *oidc_plugin
126157
depends_on:
127158
- step: "package-x86-64-staging"
128159
allow_failure: false

.buildkite/pipeline.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,13 @@ steps:
230230
depends_on:
231231
- step: "tests"
232232
allow_failure: false
233+
plugins:
234+
# See https://github.com/elastic/oblt-infra/blob/main/conf/resources/repos/fleet-server/01-gcp-buildkite-oidc.tf
235+
# This plugin authenticates to Google Cloud using the OIDC token.
236+
- elastic/oblt-google-auth#v1.2.0:
237+
lifetime: 10800 # seconds
238+
project-id: "elastic-observability-ci"
239+
project-number: "911195782929"
233240

234241
- label: ":jenkins: Release - Package Registry Distribution"
235242
key: "release-package-registry"

.buildkite/scripts/common.sh

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,6 @@ with_Terraform() {
107107
terraform version
108108
}
109109

110-
google_cloud_auth() {
111-
local secretFileLocation=$(mktemp -d -p "${WORKSPACE}" -t "${TMP_FOLDER_TEMPLATE_BASE}.XXXXXXXXX")/google-cloud-credentials.json
112-
echo "${PRIVATE_CI_GCS_CREDENTIALS_SECRET}" > ${secretFileLocation}
113-
gcloud auth activate-service-account --key-file ${secretFileLocation} 2> /dev/null
114-
export GOOGLE_APPLICATION_CREDENTIALS=${secretFileLocation}
115-
}
116-
117110
upload_packages_to_gcp_bucket() {
118111
local pattern=${1}
119112
local baseUri="gs://${JOB_GCS_BUCKET}/${REPO}"
@@ -124,7 +117,7 @@ upload_packages_to_gcp_bucket() {
124117
bucketUriDefault="${baseUri}/pull-requests/pr-${GITHUB_PR_NUMBER}"
125118
fi
126119
for bucketUri in "${bucketUriCommit}" "${bucketUriDefault}"; do
127-
gsutil -m -q cp -r ${pattern} "${bucketUri}"
120+
gcloud storage cp --recursive --quiet ${pattern} "${bucketUri}"
128121
done
129122
}
130123

@@ -143,15 +136,15 @@ upload_mbp_packages_to_gcp_bucket() {
143136
local pattern=${1}
144137
local type=${2}
145138
get_bucket_uri "${type}"
146-
gsutil -m -q cp -r ${pattern} ${bucketUri}
139+
gcloud storage cp --recursive --quiet ${pattern} ${bucketUri}
147140
}
148141

149142
download_mbp_packages_from_gcp_bucket() {
150143
local pattern=${1}
151144
local type=${2}
152145
mkdir -p ${WORKSPACE}/${pattern}
153146
get_bucket_uri "${type}"
154-
gsutil -m -q cp -r ${bucketUri}/* ${WORKSPACE}/${pattern}
147+
gcloud storage cp --recursive --quiet ${bucketUri}/* ${WORKSPACE}/${pattern}
155148
}
156149

157150
with_mage() {

.buildkite/scripts/dra_release.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ fi
2626

2727
add_bin_path
2828

29-
google_cloud_auth
30-
3129
download_mbp_packages_from_gcp_bucket "${FOLDER_PATH}" "${TYPE}"
3230

3331
with_go

.buildkite/scripts/package.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,4 @@ case "${TYPE}" in
4545
;;
4646
esac
4747

48-
google_cloud_auth
4948
upload_mbp_packages_to_gcp_bucket "build/distributions/**/*" "${TYPE}"

.buildkite/scripts/release_test.sh

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ set -euo pipefail
44

55
source .buildkite/scripts/common.sh
66

7-
echo "Checking gsutil command..."
8-
if ! command -v gsutil &> /dev/null ; then
9-
echo "⚠️ gsutil is not installed"
7+
echo "Checking gcloud command..."
8+
if ! command -v gcloud &> /dev/null ; then
9+
echo "⚠️ gcloud is not installed"
1010
exit 1
1111
fi
1212

@@ -16,8 +16,6 @@ with_go
1616

1717
make docker-release
1818

19-
google_cloud_auth
20-
2119
upload_packages_to_gcp_bucket "build/distributions/"
2220

2321
make test-release

0 commit comments

Comments
 (0)