Update dependency nginxinc.nginx_config to v0.7.1#144
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Update dependency nginxinc.nginx_config to v0.7.1#144renovate[bot] wants to merge 1 commit intomasterfrom
renovate[bot] wants to merge 1 commit intomasterfrom
Conversation
10ca5da to
c948d44
Compare
c948d44 to
2d802e8
Compare
2d802e8 to
16332d1
Compare
16332d1 to
0b8b862
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.3.3→0.7.1Release Notes
nginxinc/ansible-role-nginx-config (nginxinc.nginx_config)
v0.7.1Compare Source
ENHANCEMENTS:
http_v3module.BUG FIXES:
CI/CD:
ansible-compatversion from the CI/CD pipeline.v0.7.0Compare Source
BREAKING CHANGES:
listendictionary:spdy-> This parameter is no longer supported.http2-> This parameter has been replaced by thehttp2directive. To enable HTTP2, use theenableparameter in the newly implementedhttp2module/dictionary:ENHANCEMENTS:
http2(officially namedhttp_v2) module.community.generalcollection to7.1.0,ansible.posixcollection to1.5.4,community.cryptocollection to2.14.0, andcommunity.dockercollection to3.4.7.BUG FIXES:
map.mappingsdirective.CI/CD:
stable_pushMolecule scenario since installing the NGINX stable branch is already tested by the core NGINX Ansible role.molecule[docker]withmoleculeandmolecule-plugins[docker].ansible-compatversion (commented out for the time being whilst waiting for a new release of Molecule).v0.6.0Compare Source
ENHANCEMENTS:
2.12(2.11is no longer supported by Ansible).includedirective in the main NGINX context.community.generalcollection to6.2.0andcommunity.dockercollection to3.4.0.BUG FIXES:
ignore-tagsGitHub Actions key does not exist. Replace it with the correct key,tags-ignore.TESTS:
cgroupsv2).amd64as the platform used in NGINX Plus Molecule tests. This will ensure that tests involving NGINX App Protect will work as expected when run on different host architectures (e.g. newer Macbooks witharmprocessors).v0.5.2Compare Source
ENHANCEMENTS:
community.generalcollection to5.5.0,ansible.posixcollection to1.4.0andcommunity.dockercollection to3.1.0.auth_jwt_requirenow allows you to optionally set theerrorcode you wish to return.health_checknow lets you set akeepalive_time.app_protect_dos_arb_fqdn,app_protect_dos_api, andapp_protect_dos_accelerated_mitigation).BUG FIXES:
Improve the NGINX main config defaults to bring them closer to the standard NGINX defaults on a fresh NGINX install.
TESTS:
v0.5.1Compare Source
FEATURES:
Rename all modules to use the fully qualified collection name (FQCN) per Ansible guidelines.
ENHANCEMENTS:
community.generalcollection to4.7.0andcommunity.dockercollection to2.3.0.tasks/config/template-config.ymlto reduce amount of output data.gunzip,map,mirror,realipandsplit_clientsmodules intohttptemplates.BUG FIXES:
Ansible check mode runs will no longer fail if NGINX has not yet been installed.
v0.5.0Compare Source
BREAKING CHANGES:
0.4.0. To recap, these arenginx_config_main_upload_*,nginx_config_upload_html_*, andnginx_config_stream_upload_*. Usenginx_config_uploadinstead.streamJinja2 templates!:Each NGINX module is now contained within its own templating file. Macros are then used, in turn, to import each respective module template into a top level template file.
This avoids confusing and unnecessary code duplication, as well as hard to maintain code.
You will notice that the overall structure of your NGINX config now follows a very simple dictionary structure where each top level key corresponds to an NGINX module. Top level lists are used when dealing with
servers:Check
defaults/main/template.ymlandmolecule/default/converge.ymlfor examples!These changes follow in the footsteps of the
httpJinja2 refactor introduced in the0.4.0release. If you want more information on how to port yourstreamconfigurations, the release notes/changelog for0.4.0are a good place to start.conf_file_nameandconf_file_locationwithdeployment_locationinsidenginx_config_stream_template.html_file_nameandhtml_file_locationwithdeployment_locationinsidenginx_config_html_demo_template.FEATURES:
backupvariable to template and upload parameters. Set tofalseif you don't want to keep backups of your previous NGINX config files.client_body_temp_pathdirectory if your NGINX config uses the directive.ENHANCEMENTS:
Bump the Ansible
community.generalcollection to4.4.0andcommunity.dockercollection to2.1.1.BUG FIXES:
custom_directivesentry and the http template.defaults/main/template.yml.http/ssl.j2Jinja2 template.v0.4.2Compare Source
BUG FIXES:
so_keepaliveparameter was not working as intended when setting specific values.v0.4.1Compare Source
BUG FIXES:
deployment_locationdirectory would not be properly created due to an outdated variable.http/auth.j2.v0.4.0Compare Source
This is a very big release which fundamentally refactors the whole NGINX configuration templating engine. Almost all of the templates have undergone some breaking changes. Please take extra caution when upgrading your environment to this release and make sure you test any required changes before using the role in any potential production environments.
Efforts have been made to thoroughly test all these changes and make sure they work as intended, but due to the magnitude of the refactoring work, there will be some bugs that have escaped our tests. If you find any, please open an issue or PR through the usual channels.
DEPRECATION WARNINGS:
The
nginx_config_main_upload_*,nginx_config_upload_html_*, andnginx_config_stream_upload_*parameters have been deprecated in favor of a newly introduced parameter,nginx_config_upload(previouslynginx_config_snippet_upload_*). The new parameter provides greater flexibility in configuring your upload settings in addition to simplifying the upload Ansible tasks. The deprecated parameters will be removed in the next major release (0.5.0), due December 2021.BREAKING CHANGES:
General updates:
nginx_config_snippet_upload_*parameters tonginx_config_upload_*(checkdefaults/main/upload.ymlfor an example).nginx_config_html_upload_*parameters tonginx_config_upload_html_*.nginx_config_ssl_upload_*parameters tonginx_config_upload_ssl_*.nginx_config_html_uploadandnginx_config_ssl_uploadparameters to use a list instead of a singlesrcanddestvalue (checkdefaults/main/upload.ymlfor an example).Template engine updates:
Refactor all the
httpJinja2 templates!:Each NGINX module is now contained within its own templating file. Macros are then used, in turn, to import each respective module template into a top level template file.
This avoids confusing and unnecessary code duplication, as well as hard to maintain code.
You will notice that the overall structure of your NGINX config now follows a very simple dictionary structure where each top level key corresponds to an NGINX module. Top level lists are used when dealing with
serversandlocations:Check
defaults/main/template.ymlandmolecule/default/converge.ymlfor examples!Refactor the base config templates to simplify the creation of templates as well as development and maintenance moving forward:
servers,servers.listen,server.locations,upstreamandupstream.serversfrom nested dictionaries in thehttpandstreamconfiguration templates to lists.web_serverandreverse_proxynested dictionary keys from the HTTP templates. These often lead to confusing and unnecessary code duplication and hard to maintain code. To update your templates, remove both keys and adjust your spacing accordingly.conf_file_nameandconf_file_locationwith a single variable,deployment_location.configkey in both the core/main and HTTP templates.nginx_config_html_demo_templatevariable from a nested dictionary to a list.Refactor the
nginx_config_main_templateto now include all the respectivecoreandeventsdirectives. The following variables have changed:http_enableno longer exists, neither doeshttp_settings. You can still usehttp.includeto include files within thehttpcontext.stream_enableno longer exists, neither doesstream_settings. You can still usestream.includeto include files within thestreamcontext.Refactor the
upstreamHTTP config template into its own separate file. All theupstreammodule directives are now included. The following variables have changed:portis no longer supported. Instead, include the port as part of youraddress.lb_methodis no longer supported. Instead, you will have to specifically set the method you want to use.zone_nameandzone_sizehave been modified into a dictionary.sticky_cookieis no longer supported as is. You will now have to configure the respectivesticky_cookievalues.health_checkparameter within theserverdictionary is no longer supported. Instead, manually setmax_failsandfail_timeout.Refactor various individual variables into the
coreHTTP config template. All thecoremodule directives are now included. The following variables are now included in thecoredictionary:alias,client_max_body_size,error_log,error_page,include,index,keepalive_timeout,listen,root,send_file,server_name,server_names_hash_bucket_size,server_names_hash_max_size,server_tokens,tcp_nodelay,tcp_nopush,try_fileslisten.portis nowlisten.address, andlisten.optsno longer exists (there are now individual keys for eachlistenparameter).Refactor the
sslHTTP config template into its own separate file. All thesslmodule directives are now included. Almost all variables have changed:sslvariables still live within anssldictionary, but the names have changed to reflect the official NGINX directive names.sslconfigs are now supported within both thehttpandservercontexts.Refactor both the
app_protect_wafandapp_protect_dosmodules into a single file:app_protectdictionary now has theapp_protect_wafkey.app_protect_globaldirectives are now found inside theapp_protect_wafdictionary too.Refactor the
proxyHTTP config template into its own separate file. All theproxymodule directives are now included. All variables have changed:All
proxy_*related variables now live under theproxydictionary key. You can specify theproxydictionary key inside thehttp,server, andlocationcontexts.Removed the
nginx_config_main_template.http_settings.cachedictionary variable. Usenginx_config_http_template.*.proxy.cache_pathinstead.Removed the
location.websocketvariable. Uselocation.proxy.set_headerinstead:Combine the
grpc_globaldirectives with thegrpcdirectives.Refactor the
authHTTP config template into its own separateauthmodules file. All the variousauthrelated module directives including allauth_jwtdirectives are now available. All variables have changed:authvariables now live within their respectiveauthdictionaries.authconfigs are now supported within thehttp,server, andlocationcontexts.Refactor the
autoindexHTTP config template into its own separate filemodulesfile and added missingautoindexmodule directives. All variables have changed:autoindexdirectives now live within theautoindexdictionary.autoindexdictionary now lives in the HTTP template config instead of the Main template config.Refactor the
add_headersdictionary into aheadersdictionary that now includes all theheadersHTTP config directives:add_headersdirective now lives within theheadersdictionary.Refactor the
keyvaldirectives into its own template config that now includes all thekeyvalHTTP module directives:keyvaldirectives now live within thekeyvaldictionary.keyvaldictionary now lives in the HTTP template config instead of the Main template config.Refactor
server.health_check_plusinto its own dictionary that now includes all thehealth_checkmodule directives (checkdefaults/main/template.ymlfor examples).Refactor the
limit_reqdirective into its own dictionary:limit_reqdirectives now live within thelimit_reqdictionary.limit_reqdictionary now lives in the HTTP template config instead of the Main template config.Refactor the
access_logandlog_formatdirectives into alogdictionary that now includes all thelogmodule directives:accessandformatdirective now lives within thelogdictionary.logdictionary HTTP context now lives in the HTTP template config instead of the Main template config.Refactor the
returnandrewritedirectives into their own dictionary that now includes all therewriteHTTP module directives:The
rewritesdirective has transitioned from a list of one linersto
The
returndirective has transitioned from a slightly complex dictionary structure (wherein thelocationvariable didn't necessarily have any effect)to a slightly less complicated structure
Refactor the
sub_filterdirectives into their ownsub_filterdictionary that includes all thesub_filterHTTP module directives:The only major difference is that one liners under the
sub_filtersdictionary key have changed fromto
Removed the
server.http_demo_confdictionary. Useserver.sub_filtersinstead:The
sub_filterdictionary HTTP context now lives in the HTTP template config instead of the Main template config.Rename some NGINX template config parameters to align with NGINX directive names:
html_file_locationtoroot.html_file_nametoindex.NGINX App Protect 3.2 supports multiple log destinations per scope. Changing the
security_logvariable from a dictionary to a list of objects in order to support this.NGINX App Protect 3.5 supports a new timeout directive which allows the user to configure the period of time between reconnect retries of the module to the web application firewall (WAF) engine. Added this as a supported directive.
FEATURES:
Replace Ansible community distribution with Ansible base and add the necessary extra collections as a dependency requirement. For reference, these are:
Explicitly list Jinja2
2.11.3as a requirement, as well as detail the minimum supported version (2.11.x).Implement Release Drafter.
Add support for configuring NGINX App Protect DoS (Denial of Service) module and directives.
Add support for configuring the NGINX Rest API module and the NGINX stub status module.
ENHANCEMENTS:
gzipHTTP config template into themodulesfile. It's a small module and did not warrant being in its own individual file.5.1.3, Molecule to3.4.0, Yamllint to1.26.3and Docker Python SDK to5.0.2.5.*.2.11.ifconditionals to use thecontainsfunction instead of checking for exact names.plusMolecule scenario since it often fails in the GitHub Actions CI/CD pipeline.1.2.nginx.conftemplate match the default values found on a fresh NGINX installation.BUG FIXES:
stateparameter to package module in Molecule verification tests.nginx -thandler fails when run from a directory that the NGINX process' user does not have access to.nginx_config_cleanup_pathsnot working as intended.app_protect.j2template that was causing the default values fornginx.confto fail.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.