@@ -32,14 +32,14 @@ function cleanUp(){
32
32
33
33
# IAM role and polcies are AWS Account specific, so need to clean them up if any from previous run
34
34
echo " detach IAM policy if it exists"
35
- aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy || true
35
+ aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:${AWS_PARTITION} :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy || true
36
36
37
37
echo " delete $ROLE_NAME if it exists"
38
38
aws iam delete-role --role-name $ROLE_NAME || true
39
39
40
40
# Need to do this as last step
41
41
echo " delete AWSLoadBalancerControllerIAMPolicy if it exists"
42
- aws iam delete-policy --policy-arn arn:aws :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy || true
42
+ aws iam delete-policy --policy-arn arn:${AWS_PARTITION} :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy || true
43
43
}
44
44
45
45
echo " cordon off windows nodes"
@@ -49,6 +49,23 @@ echo "fetch OIDC provider"
49
49
OIDC_PROVIDER=$( echo $CLUSTER_INFO | jq -r ' .cluster.identity.oidc.issuer' | sed -e " s/^https:\/\///" )
50
50
echo " OIDC Provider: $OIDC_PROVIDER "
51
51
52
+ AWS_PARTITION=" aws"
53
+ IAM_POLCIY_FILE=" iam_policy.json"
54
+
55
+ if [[ $REGION == " cn-north-1" || $REGION == " cn-northwest-1" ]]; then
56
+ AWS_PARTITION=" aws-cn"
57
+ IAM_POLCIY_FILE=" iam_policy_cn.json"
58
+ fi
59
+
60
+ if [[ $REGION == " cn-north-1" ]]; then
61
+ IMAGE=" 918309763551.dkr.ecr.cn-north-1.amazonaws.com.cn/amazon/aws-load-balancer-controller"
62
+ elif [[ $REGION == " cn-northwest-1" ]]; then
63
+ IMAGE=" 961992271922.dkr.ecr.cn-northwest-1.amazonaws.com.cn/amazon/aws-load-balancer-controller"
64
+ else
65
+ IMAGE=" 602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-load-balancer-controller"
66
+ fi
67
+
68
+ echo " IMAGE: $IMAGE "
52
69
echo " create IAM policy document file"
53
70
cat << EOF > trust.json
54
71
{
@@ -57,7 +74,7 @@ cat <<EOF > trust.json
57
74
{
58
75
"Effect": "Allow",
59
76
"Principal": {
60
- "Federated": "arn:aws :iam::${ACCOUNT_ID} :oidc-provider/${OIDC_PROVIDER} "
77
+ "Federated": "arn:${AWS_PARTITION} :iam::${ACCOUNT_ID} :oidc-provider/${OIDC_PROVIDER} "
61
78
},
62
79
"Action": "sts:AssumeRoleWithWebIdentity",
63
80
"Condition": {
@@ -80,27 +97,24 @@ aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://
80
97
echo " creating AWSLoadbalancerController IAM Policy"
81
98
aws iam create-policy \
82
99
--policy-name AWSLoadBalancerControllerIAMPolicy \
83
- --policy-document file://" $SCRIPT_DIR " /../docs/install/iam_policy.json || true
100
+ --policy-document file://" $SCRIPT_DIR " /../docs/install/${IAM_POLCIY_FILE} || true
84
101
85
102
echo " attaching AWSLoadbalancerController IAM Policy to $ROLE_NAME "
86
- aws iam attach-role-policy --policy-arn arn:aws :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy --role-name $ROLE_NAME || true
103
+ aws iam attach-role-policy --policy-arn arn:${AWS_PARTITION} :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy --role-name $ROLE_NAME || true
87
104
88
105
echo " create service account"
89
106
kubectl create serviceaccount aws-load-balancer-controller -n kube-system || true
90
107
91
108
echo " annotate service account with $ROLE_NAME "
92
- kubectl annotate serviceaccount -n kube-system aws-load-balancer-controller eks.amazonaws.com/role-arn=arn:aws :iam::" $ACCOUNT_ID " :role/" $ROLE_NAME " --overwrite=true || true
109
+ kubectl annotate serviceaccount -n kube-system aws-load-balancer-controller eks.amazonaws.com/role-arn=arn:${AWS_PARTITION} :iam::" $ACCOUNT_ID " :role/" $ROLE_NAME " --overwrite=true || true
93
110
94
111
echo " update helm repo eks"
95
112
helm repo add eks https://aws.github.io/eks-charts
96
113
97
114
helm repo update
98
115
99
- echo " Install TargetGroupBinding CRDs"
100
- kubectl apply -k " github.com/aws/eks-charts/stable/aws-load-balancer-controller//crds?ref=master"
101
-
102
116
echo " Install aws-load-balancer-controller"
103
- helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=$CLUSTER_NAME --set serviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller --set region=$REGION --set vpcId=$VPC_ID
117
+ helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=$CLUSTER_NAME --set serviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller --set region=$REGION --set vpcId=$VPC_ID --set image.repository= $IMAGE
104
118
105
119
echo_time () {
106
120
date +" %D %T $* "
@@ -146,7 +160,7 @@ run_ginkgo_test
146
160
# tail=-1 is added so that no logs are truncated
147
161
# https://github.com/kubernetes/kubectl/issues/812
148
162
echo " Fetch most recent aws-load-balancer-controller logs"
149
- kubectl logs -l app.kubernetes.io/name=aws-load-balancer-controller --container aws-load-balancer-controller --tail=-1 -n kube-system
163
+ kubectl logs -l app.kubernetes.io/name=aws-load-balancer-controller --container aws-load-balancer-controller --tail=-1 -n kube-system || true
150
164
151
165
echo " Uncordon windows nodes"
152
166
toggle_windows_scheduling " uncordon"
@@ -155,6 +169,6 @@ echo "clean up resources from current run"
155
169
cleanUp
156
170
157
171
echo " Delete TargetGroupBinding CRDs if exists"
158
- kubectl delete -k " github.com/aws/eks-charts/stable/aws-load-balancer-controller//crds?ref=master" --timeout=10m || true
172
+ kubectl delete -k " github.com/aws/eks-charts/stable/aws-load-balancer-controller//crds?ref=master" --timeout=30m || true
159
173
160
174
echo " Successfully finished the test suite $(( $SECONDS / 60 )) minutes and $(( $SECONDS % 60 )) seconds"
0 commit comments