J Managing Ingress Gateway Routes Configuration Using REST APIs

With this enhancement, NRF introduces support for configuring Ingress Gateway Routes settings through REST APIs, replacing the earlier Helm-based configuration approach. This enhancement provides a centralized and unified REST interface for managing route configurations, improving usability, consistency, and operational efficiency.

Caution:

Use the suggested configurations for {apiRoot}/nrf/nf-common-component/v1/igw/routesconfiguration API as mentioned in the Oracle Communications Cloud Native Core, REST Specification Guide. This API should be used with utmost caution to ensure no routes are accidentally removed which will cause severe service outage.

Example:

Suggested configuration

[
    {
        "id": "registration_mapping",
        "uri": "http://ocnrf-nfregistration:8080",
        "order": 1,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nnrf-nfm/v1/nf-instances/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "subscription_mapping",
        "uri": "http://ocnrf-nfsubscription:8080",
        "order": 2,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nnrf-nfm/v1/subscriptions/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "disc_mapping",
        "uri": "http://ocnrf-nfdiscovery:8080",
        "order": 3,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nnrf-disc/v1/nf-instances/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "cachedata_mapping",
        "uri": "http://ocnrf-nrfcachedata:8080",
        "order": 5,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nrfset-data/v1/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "accesstoken_mapping",
        "uri": "http://ocnrf-nfaccesstoken:8080",
        "order": 4,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "metadata": [
            {
                "ccaHeaderValidation": {
                    "enabled": false
                }
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/oauth2/token"
                },
                "name": "Path"
            }
        ]
    }
]

For example, if you want to enable the CCA Header Validation feature, set the value of enabled attribute from false to true in the "accesstoken_mapping" id. Do not remove any of the existing routes in the above configuration and provide the complete JSON.

[
    {
        "id": "registration_mapping",
        "uri": "http://ocnrf-nfregistration:8080",
        "order": 1,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nnrf-nfm/v1/nf-instances/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "subscription_mapping",
        "uri": "http://ocnrf-nfsubscription:8080",
        "order": 2,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nnrf-nfm/v1/subscriptions/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "disc_mapping",
        "uri": "http://ocnrf-nfdiscovery:8080",
        "order": 3,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nnrf-disc/v1/nf-instances/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "cachedata_mapping",
        "uri": "http://ocnrf-nrfcachedata:8080",
        "order": 5,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/nrfset-data/v1/**"
                },
                "name": "Path"
            }
        ]
    },
    {
        "id": "accesstoken_mapping",
        "uri": "http://ocnrf-nfaccesstoken:8080",
        "order": 4,
        "filters": [
            {
                "args": {
                    "applicableShutdownStates": [
                        "COMPLETE_SHUTDOWN"
                    ]
                },
                "name": "ControlledShutdownFilter"
            }
        ],
        "metadata": [
            {
                "ccaHeaderValidation": {
                    "enabled": true
                }
            }
        ],
        "predicates": [
            {
                "args": {
                    "pattern": "/oauth2/token"
                },
                "name": "Path"
            }
        ]
    }
]

Caution:

Enabling CCA Header Validation using only the below "accesstoken_mapping" configuration is not supported and will lead to a service outage. Ensure that all required configurations are applied as per the documented procedure.

{
  "id": "accesstoken_mapping",
  "uri": "http://ocnrf-nfaccesstoken:8080",
  "order": 4,
  "filters": [
    {
      "args": {
        "applicableShutdownStates": [
          "COMPLETE_SHUTDOWN"
        ]
      },
      "name": "ControlledShutdownFilter"
    }
  ],
  "metadata": [
    {
      "ccaHeaderValidation": {
        "enabled": true
      }
    }
  ],
  "predicates": [
    {
      "args": {
        "pattern": "/oauth2/token"
      },
      "name": "Path"
    }
  ]
}