У меня есть работающий openresty с lua-resty-openidc в качестве входного контроллера. Теперь nginx.conf жестко закодирован в моем образе примерно так:
server {
server_name _;
listen 80;
location /OAuth2Client {
access_by_lua_block {
local opts = {
discovery = "/.well-known/openid-configuration",
redirect_uri = "/authorization-code/callback",
client_id = "clientID",
client_secret = "clientSecret",
scope = "openid profile somethingElse",
}
...
}
proxy_pass http://clusterIp/OAuth2Client;
}
}
Поскольку Nginx не принимает переменные среды, есть ли простой способ настроить мой nginx.conf, например
server {
server_name ${myServerName};
listen ${myServerPort};
location /${specificProjectRoot} {
access_by_lua_block {
local opts = {
discovery = "${oidc-provider-dev-url}/.well-known/openid-configuration",
redirect_uri = "${specificProjectRoot}/authorization-code/callback",
client_id = "${myClientId}",
client_secret = "${myClientSecret}",
scope = "${myScopes}",
}
...
}
proxy_pass http://${myClusterIP}/${specificProjectRoot};
}
}
чтобы любая команда в любом пространстве имен могла повторно использовать мой образ и просто предоставить секрет kubernetes, содержащий их конкретную конфигурацию для своего проекта?
sed
вы можете заменить значения в вашем nginx.conf. как-то так:sed -i -e "s,\${myServerName},$SERVER_NAME," /etc/nginx/nginx.conf
- person Juliano Costa   schedule 09.04.2020