Configuring NextGen Routes¶
Prerequisites¶
Clean up the partition in BIG-IP where the existing route config is deployed. Use the POST call below along with this AS3 Empty Declaration for cleanup.
mgmt/shared/appsvcs/declare
Note
Please update the “bigip-partition” name in the AS3 declaration with the partition name to be deleted.
Install the F5 CRDs using following command:
kubectl create -f https://raw.githubusercontent.com/F5Networks/k8s-bigip-ctlr/master/docs/config_examples/customResourceDefinitions/customresourcedefinitions.yml
Configuration¶
- Routegroup specific config for each namespace/namespaceLabel is provided as part of extendedSpec through ConfigMap.
- Global ConfigMap can be set using CIS deployment argument:
--route-spec-configmap="namespace/configmap-name"
- Controller mode should be set to Openshift to enable multiple VIP support:
--controller-mode="openshift"
- NextGen Route controller deployment parameters (–controller-mode=”openshift”) takes precedence over legacy route deployment parameters (–manage-routes)
- Recommendation is to avoid using legacy Route deployment parameters while using NextGen Route controller.
ExtendedSpecConfigmap¶
- ExtendedSpecificConfimap is used to provide common config for routegroup like virtualservername, virtualserveraddress, policyCR, etc., which is applied to all routes in the group.
- Routegroup specific config for each namespace/namespaceLabel is provided as part of extendedRouteSpec in global ConfigMap.
Global ConfigMap¶
- Global ConfigMap provides control to the admin to create and maintain the resource configuration centrally.
- RBAC can be used to restrict modification of global ConfigMap by users with tenant level access.
- If any specific tenant requires modify access for routeconfig of their namespace, the admin can grant access by setting allowOverride to true in the extendedRouteSpec of the namespace.
- Base route configuration can be defined in Global ConfigMap. This cannot be overridden from local ConfigMap. This is an alternative to CIS deployment arguments.
Note
Global ConfigMap should be created in a namespace which CIS is monitoring.
Local ConfigMap¶
- Local ConfigMap is used to specify route config for namespace and allows tenant users access to fine-tune the route config. It is processed by CIS only when allowOverride is set to true in global ConfigMap for this namespace.
- Only one local ConfigMap is allowed per namespace. Local ConfigMap must have only one entry in the extendedRouteSpec list and that should be the current namespace only.
- Local ConfigMap is only supported when global ConfigMap defines the routeGroup using namespace.
Extended Route Config Parameters¶
Base Route Config Parameters¶
Base route configuration can be defined in Global ConfigMap. This cannot be overridden from local ConfigMap. This is an alternative to CIS deployment arguments.
Parameter | Required | Default | Description | ConfigMap |
---|---|---|---|---|
tlsCipher | Optional | N/A | Block to define TLS cipher parameters. | Global configMap |
defaultTLS | Optional | /Common/f5-default | Configures a cipher group in BIG-IP and references it here. Cipher group and ciphers are mutually exclusive; only use one. | Global configMap |
tlsCipher:
tlsVersion: 1.3
cipherGroup: /Common/f5-default
tlsCipher Config Parameters
Parameter | Required | Default | Description | ConfigMap |
---|---|---|---|---|
tlsVersion | Optional | 1.2 | Configures TLS version to be enabled on BIG-IP. TLS 1.3 is only supported on TMOS version 14.0+. | Global ConfigMap |
ciphers | Optional | DEFAULT | Configures a ciphersuite selection string. Cipher-group and ciphers are mutually exclusive; only use one. | Global configMap |
cipherGroup | Optional | /Common/f5-default | Configures a cipher group in BIG-IP and references it here. Cipher group and ciphers are mutually exclusive; only use one. | Global configMap |
Note
The parameters ciphers
and cipherGroups
are mutually exclusive. The cipherGroup
is for TLS version 1.3 and ciphers
is for TLS version 1.2.
defaultTLS Config Parameters
Parameter | Required | Default | Description | ConfigMap |
---|---|---|---|---|
clientSSL | Optional | The client SSL profile. | Global ConfigMap | |
serverSSL | Optional | The server SSL profile. | Global ConfigMap | |
reference | Required | The Profile Object type. | Global ConfigMap |
defaultTLS schema:
defaultTLS:
clientSSL: /Common/clientssl
serverSSL: /Common/serverssl
reference: bigip
Route Group Parameters¶
Parameter | Required | Default | Description | ConfigMap |
---|---|---|---|---|
allowOverride | Optional | Allows users to override the namespace config. | Global ConfigMap only | |
bigIpPartition | Optional | Partition for creating the virtual server. The default is the partition defined in CIS deployment parameter. | Global ConfigMap only | |
namespaceLabel | Required | The namespace-label to group the routes. Note: namespaceLabel
is mutually exclusive with namespace parameter.
The --namespace-label parameter has to be defined in the CIS
deployment to use the namespaceLabel in extended ConfigMap. |
Global ConfigMap only | |
policyCR | Optional | The name of the Policy CR to attach profiles/policies defined in it. | Local and Global ConfigMap | |
httpServerPolicyCR | Optional | Name of Policy CR to attach profiles/policies defined in it to HTTP VS. | Local and Global ConfigMap | |
namespace | Required | The namespace to group the routes. | Local and Global ConfigMap | |
vsAddress | Required | The BIG-IP Virtual Server IP Address. | Local and Global ConfigMap | |
vsName | Optional | auto | The name of the BIG-IP Virtual Server. | Local and Global ConfigMap |
Note
The parameters namespaceLabel
and namespace
are mutually exclusive. The --namespace-label
parameter has to be defined in CIS deployment to use the namespaceLabel
in extended ConfigMap.
Usage of policyCR and httpServerPolicyCR
- If only policyCR is used in a route group, then profiles/policies specified in it are applied to both HTTP and HTTPS virtual servers.
- If only httpServerPolicyCR is used in a route group, then profiles/policies specified in it are applied to only HTTP virtual server.
- If both policyCR and httpServerPolicyCR are used in a route group, then profiles/policies specified in policyCR are applied to HTTPS virtual server and profiles/policies specified in httpServerPolicyCR are applied to HTTP virtual server.
Note
To provide feedback on Container Ingress Services or this documentation, please file a GitHub Issue.