From d4b4a1cf35eb43676e8e1ea421618809352ef50f Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Thu, 7 Nov 2024 15:42:11 +0100 Subject: [PATCH 1/2] chore: change configuration path --- Dockerfile | 7 +++---- internal/var.go | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index c8cfd3d..8a3801b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,8 +11,7 @@ RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-X 'github.com/jkaninda/goma-gat FROM alpine:3.20.3 ENV TZ=UTC -ARG WORKDIR="/config" -ARG CERTSDIR="${WORKDIR}/certs" +ARG WORKDIR="/etc/goma/" ARG appVersion="" ARG user="goma" ENV VERSION=${appVersion} @@ -20,8 +19,8 @@ LABEL author="Jonas Kaninda" LABEL version=${appVersion} LABEL github="github.com/jkaninda/goma-gateway" -RUN mkdir -p ${WORKDIR} ${CERTSDIR} && \ - chmod a+rw ${WORKDIR} ${CERTSDIR} +RUN mkdir -p ${WORKDIR} && \ + chmod a+rw ${WORKDIR} COPY --from=build /app/goma /usr/local/bin/goma RUN chmod a+x /usr/local/bin/goma && \ ln -s /usr/local/bin/goma /usr/bin/goma diff --git a/internal/var.go b/internal/var.go index c696632..7f9c5b1 100644 --- a/internal/var.go +++ b/internal/var.go @@ -1,6 +1,6 @@ package pkg -const ConfigFile = "/config/goma.yml" // Default configuration file +const ConfigFile = "/etc/goma/goma.yml" // Default configuration file const accessControlAllowOrigin = "Access-Control-Allow-Origin" // Cors const serverName = "Goma" const gatewayName = "Goma Gateway" From d6e7791cb44cb5d92b96e34000e7b24a1c6e118b Mon Sep 17 00:00:00 2001 From: Jonas Kaninda Date: Thu, 7 Nov 2024 15:53:36 +0100 Subject: [PATCH 2/2] chore: add default configuration file verification before generating a new one when passing a wrong config file --- internal/config.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/internal/config.go b/internal/config.go index 9ba86e5..9d63d56 100644 --- a/internal/config.go +++ b/internal/config.go @@ -39,7 +39,7 @@ func (GatewayServer) Config(configFile string) (*GatewayServer, error) { c := &GatewayConfig{} err = yaml.Unmarshal(buf, c) if err != nil { - return nil, fmt.Errorf("error parsing yaml %q: %w", configFile, err) + return nil, fmt.Errorf("parsing the configuration file %q: %w", configFile, err) } return &GatewayServer{ ctx: nil, @@ -48,6 +48,27 @@ func (GatewayServer) Config(configFile string) (*GatewayServer, error) { }, nil } logger.Error("Configuration file not found: %v", configFile) + // Check a default file + if util.FileExists(ConfigFile) { + buf, err := os.ReadFile(ConfigFile) + if err != nil { + return nil, err + + } + logger.Info("Using configuration file: %s", ConfigFile) + util.SetEnv("GOMA_CONFIG_FILE", configFile) + c := &GatewayConfig{} + err = yaml.Unmarshal(buf, c) + if err != nil { + return nil, fmt.Errorf("parsing the configuration file %q: %w", ConfigFile, err) + } + return &GatewayServer{ + ctx: nil, + gateway: c.GatewayConfig, + middlewares: c.Middlewares, + }, nil + + } logger.Info("Generating new configuration file...") initConfig(ConfigFile) logger.Info("Server configuration file is available at %s", ConfigFile)