Skip to content

Commit 4334d33

Browse files
committed
improves the ci test
1 parent 4c78856 commit 4334d33

File tree

9 files changed

+52
-18
lines changed

9 files changed

+52
-18
lines changed

ci/assets/terraform/terraform.tf

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ variable "access_key" {
44
variable "secret_key" {
55
}
66

7+
variable "security_token" {
8+
}
9+
710
variable "region" {
811
}
912

@@ -25,9 +28,10 @@ terraform {
2528
}
2629

2730
provider "alicloud" {
28-
access_key = var.access_key
29-
secret_key = var.secret_key
30-
region = var.region
31+
access_key = var.access_key
32+
secret_key = var.secret_key
33+
security_token = var.security_token
34+
region = var.region
3135
}
3236

3337
data "alicloud_zones" "default" {

ci/pipeline-develop.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ shared:
4444
access_key: {{alicloud_access_key__primary}}
4545
secret_key: {{alicloud_secret_key__primary}}
4646
region: {{alicloud_region__primary}}
47+
terraform_role_arn: {{terraform_role_arn}}
4748
remote_state_access_key: {{terraform_backend_access_key}}
4849
remote_state_secret_key: {{terraform_backend_secret_key}}
4950
remote_state_bucket: {{terraform_backend_bucket}}

ci/pipeline.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ shared:
4444
access_key: {{alicloud_access_key__primary}}
4545
secret_key: {{alicloud_secret_key__primary}}
4646
region: {{alicloud_region__primary}}
47+
terraform_role_arn: {{terraform_role_arn}}
4748
remote_state_access_key: {{terraform_backend_access_key}}
4849
remote_state_secret_key: {{terraform_backend_secret_key}}
4950
remote_state_bucket: {{terraform_backend_bucket}}

ci/tasks/build-candidate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
platform: linux
33
image_resource:
4-
type: docker-image
4+
type: registry-image
55
source:
6-
repository: boshcpi/gce-cpi-release
6+
repository: foundationalinfrastructure/gce-cpi-release
77

88
inputs:
99
- name: bosh-cpi-src

ci/tasks/put-environment.sh

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
set -e
44

5+
source bosh-cpi-src/ci/tasks/utils.sh
6+
57
: ${access_key:?}
68
: ${secret_key:?}
79
: ${region:?}
@@ -10,11 +12,12 @@ set -e
1012
: ${delete_on_failure:= true}
1113
: ${generate_random_name:= false}
1214
: ${action:=""}
15+
: ${terraform_role_arn:?}
1316
: ${terraform_source:?}
1417
: ${output_module:="metadata"}
1518
# Remote state parameters
16-
: ${remote_state_access_key:=${access_key}}
17-
: ${remote_state_secret_key:=${secret_key}}
19+
#: ${remote_state_access_key:=${access_key}}
20+
#: ${remote_state_secret_key:=${secret_key}}
1821
: ${remote_state_region:=${region}}
1922
: ${remote_state_bucket:?}
2023
: ${remote_state_file_path:="terraform-state"}
@@ -44,10 +47,25 @@ wget -qN https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform
4447
apt-get install unzip
4548
unzip -o terraform_${TERRAFORM_VERSION}_linux_amd64.zip -d /usr/bin
4649

50+
# 调用 AssumeRole API 获取临时凭证
51+
response=$(aliyun sts AssumeRole --RoleArn ${terraform_role_arn} --RoleSessionName "bosh-cpi-e2e-test" --access-key-id ${access_key} --access-key-secret ${secret_key})
52+
53+
# 解析返回结果中的 AccessKeyId, AccessKeySecret 和 SecurityToken
54+
ACCESS_KEY_ID=$(echo $response | jq -r '.Credentials.AccessKeyId')
55+
ACCESS_KEY_SECRET=$(echo $response | jq -r '.Credentials.AccessKeySecret')
56+
SECURITY_TOKEN=$(echo $response | jq -r '.Credentials.SecurityToken')
57+
58+
# 检查是否成功获取到凭证
59+
if [ -z "$ACCESS_KEY_ID" ] || [ -z "$ACCESS_KEY_SECRET" ]; then
60+
echo "Failed to get credentials."
61+
exit 1
62+
fi
63+
4764
pushd ${terraform_source}
4865
terraform init \
49-
-backend-config="access_key=${remote_state_access_key}" \
50-
-backend-config="secret_key=${remote_state_secret_key}" \
66+
-backend-config="access_key=${ACCESS_KEY_ID}" \
67+
-backend-config="secret_key=${ACCESS_KEY_SECRET}" \
68+
-backend-config="security_token=${SECURITY_TOKEN}" \
5169
-backend-config="region=${remote_state_region}" \
5270
-backend-config="bucket=${remote_state_bucket}" \
5371
-backend-config="prefix=${remote_state_file_path}" \
@@ -59,10 +77,10 @@ pushd ${terraform_source}
5977

6078
if [[ ${action} == "destroy" ]]; then
6179
echo -e "******** Try to delete environment ********\n"
62-
terraform apply -destroy -auto-approve -var access_key=${access_key} -var secret_key=${secret_key} -var region=${region} -var env_name=${env_name} -var "public_key=${public_key}"
80+
terraform apply -destroy -auto-approve -var access_key=${ACCESS_KEY_ID} -var secret_key=${ACCESS_KEY_SECRET} -var security_token=${SECURITY_TOKEN} -var region=${region} -var env_name=${env_name} -var "public_key=${public_key}"
6381
else
6482
echo -e "******** Try to build environment ********\n"
65-
terraform apply --auto-approve -var access_key=${access_key} -var secret_key=${secret_key} -var region=${region} -var env_name=${env_name} -var "public_key=${public_key}"
83+
terraform apply --auto-approve -var access_key=${ACCESS_KEY_ID} -var secret_key=${ACCESS_KEY_SECRET} -var security_token=${SECURITY_TOKEN} -var region=${region} -var env_name=${env_name} -var "public_key=${public_key}"
6684
if [[ $? -eq 0 ]]; then
6785
echo -e "******** Build terraform environment successfully ******** \n"
6886
ls -al
@@ -72,7 +90,7 @@ pushd ${terraform_source}
7290
echo "}" >> ${output_path}/${output_module}
7391
elif [[ ${delete_on_failure} = true ]]; then
7492
echo -e "******** Destroy terraform environment... ******** \n"
75-
terraform apply -destroy -auto-approve -var access_key=${access_key} -var secret_key=${secret_key} -var region=${region} -var env_name=${env_name} -var "public_key=${public_key}"
93+
terraform apply -destroy -auto-approve -var access_key=${ACCESS_KEY_ID} -var secret_key=${ACCESS_KEY_SECRET} -var security_token=${SECURITY_TOKEN} -var region=${region} -var env_name=${env_name} -var "public_key=${public_key}"
7694
fi
7795
fi
7896

ci/tasks/put-environment.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
platform: linux
33

44
image_resource:
5-
type: docker-image
6-
source: {repository: boshcpi/aws-cpi-release}
5+
type: registry-image
6+
source:
7+
repository: foundationalinfrastructure/gce-cpi-release
78

89
inputs:
910
- name: bosh-cpi-src
@@ -22,6 +23,7 @@ params:
2223
delete_on_failure: false
2324
generate_random_name: false
2425
action: ""
26+
terraform_role_arn: ""
2527
terraform_source: ""
2628
output_module: ""
2729
remote_state_access_key: ""

ci/tasks/run-integration.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
---
22
platform: linux
33
image_resource:
4-
type: docker-image
5-
source: {repository: boshcpi/gce-cpi-release}
4+
type: registry-image
5+
source:
6+
repository: foundationalinfrastructure/gce-cpi-release
67
inputs:
78
- name: bosh-cpi-src
89
- name: stemcell

ci/tasks/unit-tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
platform: linux
33
image_resource:
4-
type: docker-image
4+
type: registry-image
55
source:
6-
repository: boshcpi/gce-cpi-release
6+
repository: foundationalinfrastructure/gce-cpi-release
77
inputs:
88
- name: bosh-cpi-src
99

ci/tasks/utils.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ configure_aliyun_cli() {
2020
}
2121
configure_aliyun_cli
2222

23+
configure_jq() {
24+
wget -q -O jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
25+
chmod +x ./jq
26+
cp jq /usr/bin
27+
}
28+
configure_jq
29+
2330
check_param() {
2431
local name=$1
2532
local value=$(eval echo '$'$name)

0 commit comments

Comments
 (0)