Skip to content

Commit 88d276d

Browse files
FlorianSWdekobon
authored andcommitted
Add AWS instance profile credential support
1 parent f66de9b commit 88d276d

File tree

7 files changed

+417
-166
lines changed

7 files changed

+417
-166
lines changed

Dockerfile.oss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ ENV PROXY_CACHE_VALID_FORBIDDEN "30s"
1515
COPY common/etc /etc
1616
COPY common/docker-entrypoint.sh /docker-entrypoint.sh
1717
COPY common/docker-entrypoint.d/00-check-for-required-env.sh /docker-entrypoint.d/00-check-for-required-env.sh
18+
COPY common/check_env.sh /check_env.sh
1819
COPY oss/etc /etc
1920

2021
RUN set -eux \

common/check_env.sh

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#!/bin/sh
2+
3+
failed=0
4+
5+
if [ ! -z ${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI+x} ]; then
6+
echo "Running inside an ECS task, using container credentials"
7+
elif curl --output /dev/null --silent --head --fail --connect-timeout 2 "http://169.254.169.254"; then
8+
echo "Running inside an EC2 instance, using IMDS for credentials"
9+
else
10+
if [ -z ${S3_ACCESS_KEY_ID+x} ]; then
11+
>&2 echo "Required S3_ACCESS_KEY_ID environment variable missing"
12+
failed=1
13+
fi
14+
15+
if [ -z ${S3_SECRET_KEY+x} ]; then
16+
>&2 echo "Required S3_SECRET_KEY environment variable missing"
17+
failed=1
18+
fi
19+
fi
20+
21+
if [ -z ${S3_BUCKET_NAME+x} ]; then
22+
>&2 echo "Required S3_BUCKET_NAME environment variable missing"
23+
failed=1
24+
fi
25+
26+
if [ -z ${S3_SERVER+x} ]; then
27+
>&2 echo "Required S3_SERVER environment variable missing"
28+
failed=1
29+
fi
30+
31+
if [ -z ${S3_SERVER_PORT+x} ]; then
32+
>&2 echo "Required S3_SERVER_PORT environment variable missing"
33+
failed=1
34+
fi
35+
36+
if [ -z ${S3_SERVER_PROTO+x} ]; then
37+
>&2 echo "Required S3_SERVER_PROTO environment variable missing"
38+
failed=1
39+
fi
40+
41+
if [ "${S3_SERVER_PROTO}" != "http" ] && [ "${S3_SERVER_PROTO}" != "https" ]; then
42+
>&2 echo "S3_SERVER_PROTO contains an invalid value (${S3_SERVER_PROTO}). Valid values: http, https"
43+
failed=1
44+
fi
45+
46+
if [ -z ${S3_REGION+x} ]; then
47+
>&2 echo "Required S3_REGION environment variable missing"
48+
failed=1
49+
fi
50+
51+
if [ -z ${S3_STYLE+x} ]; then
52+
>&2 echo "Required S3_STYLE environment variable missing"
53+
failed=1
54+
fi
55+
56+
if [ -z ${ALLOW_DIRECTORY_LIST+x} ]; then
57+
>&2 echo "Required ALLOW_DIRECTORY_LIST environment variable missing"
58+
failed=1
59+
fi
60+
61+
if [ -z ${AWS_SIGS_VERSION+x} ]; then
62+
>&2 echo "Required AWS_SIGS_VERSION environment variable missing"
63+
failed=1
64+
fi
65+
66+
if [ "${AWS_SIGS_VERSION}" != "2" ] && [ "${AWS_SIGS_VERSION}" != "4" ]; then
67+
>&2 echo "AWS_SIGS_VERSION contains an invalid value (${AWS_SIGS_VERSION}). Valid values: 2, 4"
68+
failed=1
69+
fi
70+
71+
if [ $failed -gt 0 ]; then
72+
exit 1
73+
fi

common/docker-entrypoint.d/00-check-for-required-env.sh

Lines changed: 1 addition & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -20,71 +20,7 @@
2020

2121
set -e
2222

23-
failed=0
24-
25-
if [ -z ${S3_ACCESS_KEY_ID+x} ]; then
26-
>&2 echo "Required S3_ACCESS_KEY_ID environment variable missing"
27-
failed=1
28-
fi
29-
30-
if [ -z ${S3_SECRET_KEY+x} ]; then
31-
>&2 echo "Required S3_SECRET_KEY environment variable missing"
32-
failed=1
33-
fi
34-
35-
if [ -z ${S3_BUCKET_NAME+x} ]; then
36-
>&2 echo "Required S3_BUCKET_NAME environment variable missing"
37-
failed=1
38-
fi
39-
40-
if [ -z ${S3_SERVER+x} ]; then
41-
>&2 echo "Required S3_SERVER environment variable missing"
42-
failed=1
43-
fi
44-
45-
if [ -z ${S3_SERVER_PORT+x} ]; then
46-
>&2 echo "Required S3_SERVER_PORT environment variable missing"
47-
failed=1
48-
fi
49-
50-
if [ -z ${S3_SERVER_PROTO+x} ]; then
51-
>&2 echo "Required S3_SERVER_PROTO environment variable missing"
52-
failed=1
53-
fi
54-
55-
if [ "${S3_SERVER_PROTO}" != "http" ] && [ "${S3_SERVER_PROTO}" != "https" ]; then
56-
>&2 echo "S3_SERVER_PROTO contains an invalid value (${S3_SERVER_PROTO}). Valid values: http, https"
57-
failed=1
58-
fi
59-
60-
if [ -z ${S3_REGION+x} ]; then
61-
>&2 echo "Required S3_REGION environment variable missing"
62-
failed=1
63-
fi
64-
65-
if [ -z ${S3_STYLE+x} ]; then
66-
>&2 echo "Required S3_STYLE environment variable missing"
67-
failed=1
68-
fi
69-
70-
if [ -z ${ALLOW_DIRECTORY_LIST+x} ]; then
71-
>&2 echo "Required ALLOW_DIRECTORY_LIST environment variable missing"
72-
failed=1
73-
fi
74-
75-
if [ -z ${AWS_SIGS_VERSION+x} ]; then
76-
>&2 echo "Required AWS_SIGS_VERSION environment variable missing"
77-
failed=1
78-
fi
79-
80-
if [ "${AWS_SIGS_VERSION}" != "2" ] && [ "${AWS_SIGS_VERSION}" != "4" ]; then
81-
>&2 echo "AWS_SIGS_VERSION contains an invalid value (${AWS_SIGS_VERSION}). Valid values: 2, 4"
82-
failed=1
83-
fi
84-
85-
if [ $failed -gt 0 ]; then
86-
exit 1
87-
fi
23+
. ../check_env.sh
8824

8925
echo "S3 Backend Environment"
9026
echo "Access Key ID: ${S3_ACCESS_KEY_ID}"

0 commit comments

Comments
 (0)