From 2a4c8910e886ce538aef017fe3775a02315ab486 Mon Sep 17 00:00:00 2001 From: iwilltry42 Date: Mon, 21 Jun 2021 20:14:31 +0200 Subject: [PATCH] proxy: use new confd release with fixed file watcher --- proxy/Dockerfile | 2 +- proxy/Makefile | 2 +- proxy/conf.d/nginx.toml | 4 +++- proxy/nginx-proxy | 18 ++++++++++++++---- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/proxy/Dockerfile b/proxy/Dockerfile index 105e89c4..7885f15e 100644 --- a/proxy/Dockerfile +++ b/proxy/Dockerfile @@ -1,6 +1,6 @@ FROM nginx:1.19-alpine ARG CONFD_REPO=iwilltry42/confd -ARG CONFD_VERSION=0.16.1 +ARG CONFD_VERSION=0.17.0-rc.0 ARG OS=linux ARG ARCH=amd64 RUN echo "Building for '${OS}/${ARCH}'..." \ diff --git a/proxy/Makefile b/proxy/Makefile index 6555f6ae..53b943de 100644 --- a/proxy/Makefile +++ b/proxy/Makefile @@ -1,5 +1,5 @@ .PHONY: test test: - docker build . -t rancher/k3d-proxy:dev + docker build . -t rancher/k3d-proxy:dev --no-cache docker run --rm -v $(shell pwd)/test/portmap.yaml:/etc/confd/values.yaml rancher/k3d-proxy:dev \ No newline at end of file diff --git a/proxy/conf.d/nginx.toml b/proxy/conf.d/nginx.toml index 96805409..a82534b3 100644 --- a/proxy/conf.d/nginx.toml +++ b/proxy/conf.d/nginx.toml @@ -4,4 +4,6 @@ dest = "/etc/nginx/nginx.conf" keys = [ "ports", "settings" -] \ No newline at end of file +] +check_cmd = "/usr/sbin/nginx -T -c {{.src}}" +reload_cmd = "/usr/sbin/nginx -s reload" diff --git a/proxy/nginx-proxy b/proxy/nginx-proxy index 1a1cd53b..33fb5f87 100755 --- a/proxy/nginx-proxy +++ b/proxy/nginx-proxy @@ -1,14 +1,24 @@ #!/bin/sh -# Run confd set -e -confd -onetime -backend file -file /etc/confd/values.yaml -log-level debug -set +e + +# Config Options +INIT_CONFIG_MAX_RETRIES=3 + +# Run confd +for i in $(seq 1 $INIT_CONFIG_MAX_RETRIES); do + echo "[$(date -Iseconds)] creating initial nginx config (try $i/$INIT_CONFIG_MAX_RETRIES)" + confd -onetime -backend file -file /etc/confd/values.yaml -log-level debug -sync-only + sleep 2 +done # Output Configuration echo "===== Initial nginx configuration =====" -cat /etc/nginx/nginx.conf +nginx -T -c /etc/nginx/nginx.conf echo "=======================================" +# Start confd in watch mode (every second) +confd -watch -backend file -file /etc/confd/values.yaml -log-level debug & + # Start nginx nginx -g 'daemon off;' \ No newline at end of file