End of Sale Notice:

F5 NGINX is announcing the End of Sale (EoS) for NGINX Controller API Management Module, effective January 1, 2024.

F5 maintains generous lifecycle policies that allow customers to continue support and receive product updates. Existing NGINX Controller API- Management customers can continue to use the product past the EoS date. License renewals are not available after September 30, 2024.

See our End of Sale announcement for more details.
End of Sale Notice:

F5 NGINX is announcing the End of Sale (EoS) for NGINX Controller Application Delivery Module, effective January 1, 2024.

F5 maintains generous lifecycle policies that allow customers to continue support and receive product updates. Existing NGINX Controller Application Delivery customers can continue to use the product past the EoS date. License renewals are not available after September 30, 2024.

See our End of Sale announcement for more details.

Release Notes 3.18.0

These release notes contain information about new features, improvements, known issues, and bug fixes in the NGINX Controller API Management Module.

We encourage you to install the latest version of the NGINX Controller APIM module to take advantage of the newest features and updates.

Technical support is provided for earlier versions that were released within two years of the current release.

See Also:

For related installation documentation, refer to the following publications:

Important:

Upgrading from NGINX Controller 3.x to NGINX Controller API Management Module 3.18 or later

NGINX Controller 3.x includes the NGINX Controller Application Delivery Module (ADC) and NGINX Controller API Management Module (APIM).

Starting with APIM 3.18, the ADC and APIM Modules are released independently on different schedules.

If you’ve installed NGINX Controller 3.18 or earlier before July 2021, we recommend you use the ADC Module going forward.

However, if you want to upgrade to APIM 3.18 or later, we recommend you upgrade to NGINX Controller 3.17 first.

 


June 30, 2021

Upgrade Considerations

Take note of the following considerations when upgrading to this version of the NGINX Controller API Management Module:

  • After upgrading NGINX Controller, make sure to upgrade the NGINX Controller Agent too.

  • If you’re upgrading NGINX Controller on a multi-node cluster, run the update.sh script on each node individually – the order in which you update the nodes doesn’t matter.

    Warning:
    Never update the control nodes in parallel. Doing so may result in race conditions for certain jobs, such as database migrations, and may cause the cluster to become unavailable.

What’s New

  • Improved user experience for working with APIs

    We’ve made working with APIs easier by simplifying how to navigate API definitions and related objects such as versions and published APIs.

  • Adds native Kubernetes API Gateway

    You can run an API gateway natively in Kubernetes by using Instance Groups and DNS service discovery.

  • Create a RESTful facade for a SOAP service

    Now you can create API versions from well-formed WSDL files that define a SOAP service. This allows incoming REST requests to be proxied to a SOAP backend with necessary JSON-to-XML transformations applied.

  • Adds Instance Groups

    Gateway objects can now be added to Instance Groups. Instance Groups are groups of instances that share the same configuration dynamically.

Resolved Issues

This release includes the following fixes. To locate the details for an issue when it was first reported, search the NGINX Docs for the issue ID.

  • Specifying a URI to a JWK Set file is not supported on instances with multiple gateways (17124)

Known Issues

The following issues are known to be present in this release. Look for updates to these issues in future release notes.

  • Configuration changes aren’t pushed after upgrading from NGINX Controller v3.18 to NGINX Controller API Management Module v3.18. (25705)

    If you upgrade from NGINX Controller v3.18 to NGINX Controller API Management Module v3.18, you need to upgrade your Controller Agents to successfully push configuration changes from NGINX Controller.

  • SOAP-REST proxy is incompatible with njs module version 0.6 (26088)

    Published APIs that include SOAP-REST proxies will not pass traffic if njs-0.6 is running on the gateway instance.

    Workaround:

    Open an SSH connection into the NGINX Plus instance that’s used as the API gateway and upgrade the njs module to the latest version, which at the time of publication is 0.6.1.

  • REST match method defaults to PREFIX for SOAP (26154)

    When importing an API definition from a WSDL, the match method for each REST resource defaults to PREFIX. Additional options are planned for future releases.

  • Authentication policies are not yet supported for SOAP-REST proxy (26211)

    When configuring a published API that includes SOAP services in backend workloads, authentication policies are not supported.

  • Instructions for restoring external config database may not restore published APIs (26280)

    The commands in the Back Up & Restore External Config Database guide may not restore published APIs from the backup archive.

    Workaround:

    Follow the steps in the “Before You Begin” section in the (/nginx-controller/admin-guides/backup-restore/backup-restore-external-config-db/) guide.

    In the section titled “Back Up External Config Database,” replace step 2 with the following step, then proceed as per the documentation.

    1. Run the following script to back up the NGINX Controller database. The backup files are saved in a directory that looks like pgbackup_<timestamp>.

      DATE=$(date +"%Y%m%d%H%M")
      mkdir ~/pgbackup_${DATE}
      
      for db in common data system; do
        pg_dump -c -C -w -E utf8 -d ${db} -F c -f ~/pgbackup_${DATE}/${db}-${DATE}.backup
      done
      

    In the section titled “Back Up External Config Database,” replace step 2 with the following step, then proceed as per the documentation.

    1. Run the following script to back up the NGINX Controller database. The backup files are saved in a directory that looks like pgbackup_.

      for backup_file in "$BACKUP_PATH"/*.backup; do
        db="$(basename "$backup_file" | cut -d '-' -f 1)"
        pg_restore -c  -d "$db" "$backup_file"
      done
      

Supported NGINX Plus Versions

NGINX Controller works with the following NGINX Plus versions:

  • NGINX Plus R24
  • NGINX Plus R23
  • NGINX Plus R22
  • NGINX Plus R21
  • NGINX Plus R20
  • NGINX Plus R19