@@ -143,6 +143,9 @@ echo -e "\nManifest caching config: ---\n"
143143cat /opt/openresty/nginx/conf/nginx.manifest.caching.config.conf
144144echo " ---"
145145
146+ # Upstreams configuration. We generate config based on the environment vars.
147+ echo -n " " > /opt/openresty/nginx/conf/upstreams.conf
148+
146149if [[ " a${ALLOW_PUSH} " == " atrue" ]]; then
147150 cat << EOF >/opt/openresty/nginx/conf/allowed.methods.conf
148151 # allow to upload big layers
@@ -164,6 +167,37 @@ else
164167 return 405 "DELETE method is not allowed";
165168 }
166169EOF
170+ if [ " $UPSTREAM_REGISTRIES " ]; then
171+ UPSTREAM_REGISTRIES_DELIMITER=${UPSTREAM_REGISTRIES_DELIMITER:- " " }
172+ s=$UPSTREAM_REGISTRIES$UPSTREAM_REGISTRIES_DELIMITER
173+ upstream_array=()
174+ while [[ $s ]]; do
175+ upstream_array+=(" ${s%% " $UPSTREAM_REGISTRIES_DELIMITER " * } " )
176+ s=${s#* " $UPSTREAM_REGISTRIES_DELIMITER " }
177+ done
178+
179+ UPSTREAM_REGISTRY_DELIMITER=${UPSTREAM_REGISTRY_DELIMITER:- " |" }
180+
181+ for ONEREGISTRY in " ${upstream_array[@]} " ; do
182+ s=$ONEREGISTRY$UPSTREAM_REGISTRY_DELIMITER
183+ registry_array=()
184+ while [[ $s ]]; do
185+ registry_array+=(" ${s%% " $UPSTREAM_REGISTRY_DELIMITER " * } " )
186+ s=${s#* " $UPSTREAM_REGISTRY_DELIMITER " }
187+ done
188+ cat << -EOF >>/opt/openresty/nginx/conf/upstreams.conf
189+ upstream ${registry_array[0]} {
190+ $(
191+ for i in ${! registry_array[@]} ; do
192+ if [[ i -gt 0 ]]; then
193+ echo " server ${registry_array[$i]} fail_timeout=5;"
194+ fi
195+ done
196+ )
197+ }
198+ EOF
199+ done
200+ fi
167201fi
168202
169203# Only configure htpasswd if the env var exists
0 commit comments