@@ -67,7 +67,7 @@ IAM_POLCIY_FILE="iam_policy.json"
67
67
if [[ $REGION == " cn-north-1" || $REGION == " cn-northwest-1" ]]; then
68
68
AWS_PARTITION=" aws-cn"
69
69
IAM_POLCIY_FILE=" iam_policy_cn.json"
70
- else if [[ $ADC_REGIONS == * " $REGION " * ]]; then
70
+ elif [[ $ADC_REGIONS == * " $REGION " * ]]; then
71
71
if [[ $REGION == " us-isob-east-1" ]]; then
72
72
AWS_PARTITION=" aws-iso-b"
73
73
IAM_POLCIY_FILE=" iam_policy_isob.json"
@@ -76,7 +76,7 @@ else if [[ $ADC_REGIONS == *"$REGION"* ]]; then
76
76
IAM_POLCIY_FILE=" iam_policy_iso.json"
77
77
fi
78
78
fi
79
- fi
79
+
80
80
echo " AWS_PARTITION $AWS_PARTITION "
81
81
echo " IAM_POLCIY_FILE $IAM_POLCIY_FILE "
82
82
@@ -107,36 +107,72 @@ EOF
107
107
echo " cleanup any stale resources from previous run"
108
108
cleanUp
109
109
110
+ PRE_REQUISITE=success
110
111
echo " create Role with above policy document"
111
- aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://trust.json --description " IAM Role to be used by aws-load-balancer-controller SA" || true
112
+ aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document file://trust.json --description " IAM Role to be used by aws-load-balancer-controller SA" || PRE_REQUISITE=fail
112
113
113
114
echo " creating AWSLoadbalancerController IAM Policy"
114
115
aws iam create-policy \
115
116
--policy-name AWSLoadBalancerControllerIAMPolicy \
116
- --policy-document file://" $SCRIPT_DIR " /../docs/install/${IAM_POLCIY_FILE} || true
117
+ --policy-document file://" $SCRIPT_DIR " /../docs/install/${IAM_POLCIY_FILE} || PRE_REQUISITE=fail
117
118
118
- echo " attaching AWSLoadbalancerController IAM Policy to $ROLE_NAME "
119
- aws iam attach-role-policy --policy-arn arn:${AWS_PARTITION} :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy --role-name $ROLE_NAME || true
119
+ echo " attaching AWSLoadBalancerController IAM Policy to $ROLE_NAME "
120
+ aws iam attach-role-policy --policy-arn arn:${AWS_PARTITION} :iam::$ACCOUNT_ID :policy/AWSLoadBalancerControllerIAMPolicy --role-name $ROLE_NAME || PRE_REQUISITE=fail
120
121
121
122
echo " create service account"
122
- kubectl create serviceaccount aws-load-balancer-controller -n kube-system || true
123
+ kubectl create serviceaccount aws-load-balancer-controller -n kube-system || PRE_REQUISITE=fail
123
124
124
125
echo " annotate service account with $ROLE_NAME "
125
- 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
126
+ 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 || PRE_REQUISITE=fail
127
+
128
+ function install_controller_for_adc_regions() {
129
+ echo " install cert-manager"
130
+ cert_manager_yaml=" ./test/prow/cert_manager.yaml"
131
+
132
+ # replace the url to the test images registry in ADC regions
133
+ declare -A url_mapping
134
+ url_mapping[" quay.io/jetstack/cert-manager-cainjector" ]=" $TEST_IMAGE_REGISTRY /networking-e2e-test-images/cert-manager-cainjector"
135
+ url_mapping[" quay.io/jetstack/cert-manager-controller" ]=" $TEST_IMAGE_REGISTRY /networking-e2e-test-images/cert-manager-controller"
136
+ url_mapping[" quay.io/jetstack/cert-manager-webhook" ]=" $TEST_IMAGE_REGISTRY /networking-e2e-test-images/cert-manager-webhook"
137
+ # Iterate through the mapping and perform the replacements
138
+ for default_url in " ${! url_mapping[@]} " ; do
139
+ adc_url=" ${url_mapping[$default_url]} "
140
+ sed -i " " " s#$default_url #$adc_url #g" " $cert_manager_yaml "
141
+ done
142
+ echo " Image URLs in $cert_manager_yaml have been updated to use the ADC registry"
143
+ kubectl apply -f $cert_manager_yaml || PRE_REQUISITE=fail
144
+
145
+ echo " install the controller via yaml"
146
+ controller_yaml=" ./test/prow/v2_6_0_adc.yaml"
147
+ default_controller_image=" public.ecr.aws/eks/aws-load-balancer-controller"
148
+ sed -i " " " s#$default_controller_image #$IMAGE #g" " $controller_yaml "
149
+ echo " Image URL in $controller_yaml has been updated to $IMAGE "
150
+ sed -i " " " s#your-cluster-name#$CLUSTER_NAME #g" " $controller_yaml "
151
+ echo " cluster name in $controller_yaml has been update to $CLUSTER_NAME "
152
+ kubectl apply -f $controller_yaml || PRE_REQUISITE=fail
153
+ }
126
154
127
- echo " update helm repo eks"
128
- # for ADC regions, install chart from local path
155
+ echo " installing AWS load balancer controller"
129
156
if [[ $ADC_REGIONS == * " $REGION " * ]]; then
130
- echo " Helm install from local chart path"
131
- helm upgrade -i aws-load-balancer-controller ../helm/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
157
+ echo " for ADC regions, install via manifest"
158
+ install_controller_for_adc_regions
159
+ echo " disable NLB Security Group as it's not supported in ADC yet"
160
+ kubectl patch deployment aws-load-balancer-controller -n kube-system \
161
+ --type=json \
162
+ -p=' [{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--feature-gates=NLBSecurityGroup=false"}]' || PRE_REQUISITE=fail
132
163
else
133
- echo " Update helm repo from github"
164
+ echo " install via helm repo, update helm repo from github"
134
165
helm repo add eks https://aws.github.io/eks-charts
135
166
helm repo update
136
167
echo " Install aws-load-balancer-controller"
137
168
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
138
169
fi
139
170
171
+ if [[ " $PRE_REQUISITE " == fail ]]; then
172
+ echo " pre-requisite failed, exit the test."
173
+ exit 1
174
+ fi
175
+
140
176
echo_time () {
141
177
date +" %D %T $* "
142
178
}
0 commit comments