Skip to content

Commit 43eb123

Browse files
committed
feat: use envoy-hot-restarter.py and start-envoy.sh in all-in-one image
1 parent f85190d commit 43eb123

File tree

4 files changed

+30
-24
lines changed

4 files changed

+30
-24
lines changed

common.vars.pkr.hcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
postgres-version = "15.1.1.19"
1+
postgres-version = "15.1.1.20"

docker/all-in-one/Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,10 @@ COPY docker/all-in-one/etc/logrotate.d/postgresql.conf /etc/logrotate.d/postgres
208208
COPY docker/all-in-one/etc/gotrue.env /etc/gotrue.env
209209

210210
# Customizations for envoy
211+
ARG envoy_release
212+
ADD --chmod=755 --chown=envoy:envoy "https://raw.githubusercontent.com/envoyproxy/envoy/v${envoy_release}/restarter/hot-restarter.py" /opt/envoy-hot-restarter.py
211213
COPY --chmod=775 --chown=envoy:envoy ansible/files/envoy_config/ /etc/envoy/
214+
COPY --chmod=755 --chown=envoy:envoy ansible/files/start-envoy.sh /opt/
212215

213216
# Customizations for kong
214217
COPY docker/all-in-one/etc/kong/kong.conf /etc/kong/kong.conf

docker/all-in-one/etc/supervisor/services/envoy.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[program:envoy]
22
# Workaround using `tee` to get `/dev/stdout` access logging to work, see:
33
# https://github.com/envoyproxy/envoy/issues/8297#issuecomment-620659781
4-
command=bash -c 'set -o pipefail; /opt/envoy --config-path /etc/envoy/envoy.yaml 2>&1 | tee'
4+
command=/opt/envoy-hot-restarter.py /opt/start-envoy.sh
55
user=envoy
66
autorestart=true
77
autostart=false
Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -eou pipefail
33

4-
if [ "${ENVOY_ENABLED:-}" != "true" ]; then
4+
if [[ "${ENVOY_ENABLED:-}" != "true" ]]; then
55
exit
66
fi
77

@@ -11,40 +11,43 @@ touch /var/log/services/envoy.log
1111

1212
/usr/local/bin/configure-shim.sh /dist/envoy /opt/envoy
1313

14-
if [ "$DATA_VOLUME_MOUNTPOINT" ]; then
14+
if [[ -n "${DATA_VOLUME_MOUNTPOINT}" ]]; then
1515
ENVOY_CUSTOM_DIR="${DATA_VOLUME_MOUNTPOINT}/etc/envoy"
16-
mkdir -p "$ENVOY_CUSTOM_DIR"
17-
if [ ! -f "$CONFIGURED_FLAG_PATH" ]; then
16+
mkdir -p "${ENVOY_CUSTOM_DIR}"
17+
if [[ ! -f "${CONFIGURED_FLAG_PATH}" ]]; then
1818
echo "Copying existing custom envoy config from /etc/envoy/ to ${ENVOY_CUSTOM_DIR}"
1919
cp -R "/etc/envoy/." "${ENVOY_CUSTOM_DIR}/"
2020
fi
2121

2222
rm -rf "/etc/envoy"
23-
ln -s "$ENVOY_CUSTOM_DIR" "/etc/envoy"
24-
chown -R adminapi:adminapi "/etc/envoy"
23+
ln -s "${ENVOY_CUSTOM_DIR}" "/etc/envoy"
24+
chown -R envoy:envoy "/etc/envoy"
25+
chmod -R g+w "/etc/envoy"
2526

26-
chown -R adminapi:adminapi "$ENVOY_CUSTOM_DIR"
27-
chmod g+rx "$ENVOY_CUSTOM_DIR"
27+
chown -R envoy:envoy "${ENVOY_CUSTOM_DIR}"
28+
chmod -R g+w "${ENVOY_CUSTOM_DIR}"
29+
chmod g+rx "${ENVOY_CUSTOM_DIR}"
2830
fi
2931

30-
if [ -f "${INIT_PAYLOAD_PATH:-}" ]; then
32+
if [[ -f "${INIT_PAYLOAD_PATH:-}" ]]; then
3133
echo "init envoy payload"
32-
tar -xzvhf "$INIT_PAYLOAD_PATH" -C / ./etc/envoy/
33-
chown -HR adminapi:adminapi /etc/envoy
34+
tar -xzvhf "${INIT_PAYLOAD_PATH}" -C / ./etc/envoy/
35+
chown -HR envoy:envoy /etc/envoy
36+
chmod -HR g+w /etc/envoy
3437
fi
3538

3639
# Inject project specific configuration
3740
# "c2VydmljZV9yb2xlOnNlcnZpY2Vfa2V5" is base64-encoded "service_role:service_key".
38-
sed -i -e "s|anon_key|$ANON_KEY|g" \
39-
-e "s|service_key|$SERVICE_ROLE_KEY|g" \
40-
-e "s|supabase_admin_key|$ADMIN_API_KEY|g" \
41-
-e "s|c2VydmljZV9yb2xlOnNlcnZpY2Vfa2V5|$(echo -n "service_role:$SERVICE_ROLE_KEY" | base64 --wrap 0)|g" \
42-
"$ENVOY_LDS_CONF"
41+
sed -i -e "s|anon_key|${ANON_KEY}|g" \
42+
-e "s|service_key|${SERVICE_ROLE_KEY}|g" \
43+
-e "s|supabase_admin_key|${ADMIN_API_KEY}|g" \
44+
-e "s|c2VydmljZV9yb2xlOnNlcnZpY2Vfa2V5|$(echo -n "service_role:${SERVICE_ROLE_KEY}" | base64 --wrap 0)|g" \
45+
"${ENVOY_LDS_CONF}"
4346

4447
# Update Envoy ports
45-
sed -i "s|port_value: 80$|port_value: $ENVOY_HTTP_PORT|g" "$ENVOY_LDS_CONF"
46-
sed -i "s|port_value: 443$|port_value: $ENVOY_HTTPS_PORT|g" "$ENVOY_LDS_CONF"
47-
sed -i "s|port_value: 3000$|port_value: $PGRST_SERVER_PORT|g" "$ENVOY_CDS_CONF"
48-
sed -i "s|port_value: 3001$|port_value: $PGRST_ADMIN_SERVER_PORT|g" "$ENVOY_CDS_CONF"
49-
sed -i "s|port_value: 8085$|port_value: $ADMIN_API_PORT|g" "$ENVOY_CDS_CONF"
50-
sed -i "s|port_value: 9999$|port_value: $GOTRUE_API_PORT|g" "$ENVOY_CDS_CONF"
48+
sed -i "s|port_value: 80$|port_value: ${ENVOY_HTTP_PORT}|g" "${ENVOY_LDS_CONF}"
49+
sed -i "s|port_value: 443$|port_value: ${ENVOY_HTTPS_PORT}|g" "${ENVOY_LDS_CONF}"
50+
sed -i "s|port_value: 3000$|port_value: ${PGRST_SERVER_PORT}|g" "${ENVOY_CDS_CONF}"
51+
sed -i "s|port_value: 3001$|port_value: ${PGRST_ADMIN_SERVER_PORT}|g" "${ENVOY_CDS_CONF}"
52+
sed -i "s|port_value: 8085$|port_value: ${ADMIN_API_PORT}|g" "${ENVOY_CDS_CONF}"
53+
sed -i "s|port_value: 9999$|port_value: ${GOTRUE_API_PORT}|g" "${ENVOY_CDS_CONF}"

0 commit comments

Comments
 (0)