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