Manually creating ingress definitions for IBM App Connect instances in an Azure Kubernetes Service (AKS) cluster
Use these instructions to expose your deployed App Connect Dashboard, App Connect Designer,
integration runtime, and switch server instances in an Azure Kubernetes Service (AKS) environment to external traffic. If you have enabled the
API for IBM® App Connect in containers to administer resources in the
App Connect Dashboard, you also need to expose the API to external
traffic.
Before you begin
An ingress controller must be installed and running in the AKS cluster.
You can install an ingress controller in various ways. The following steps describe how to install an NGINX ingress controller by using a Helm chart.
- Create a namespace called
ingressin your cluster.kubectl create namespace ingress - Add the NGINX ingress controller chart repository and then update all Helm repositories in your
system by running the following commands.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update - Install the Helm chart in the
ingressnamespace by running either of the following helm commands. These commands install an NGINX ingress controller (nginx-ingress) for use with your App Connect Dashboard (and API if enabled), App Connect Designer, integration runtime, and switch server instances. The command varies slightly for a switch server, which is required to configure connectivity for hybrid integrations that interact with callable flows in IBM App Connect Enterprise or IBM Integration Bus, or with applications in a private network. (For more information about switch servers, see App Connect Switch Server reference.)Note: The helm commands provide a basic definition to get you started, and can be extended with additional settings if required for your environment.- If you do not intend to deploy hybrid integrations that require a switch server, run the
following helm command.
helm install nginx-ingress ingress-nginx/ingress-nginx \ --namespace ingress \ --set controller.replicaCount=2 \ --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \ --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \ --set controller.admissionWebhooks.patch.nodeSelector."beta\.kubernetes\.io/os"=linux - If you require a switch server for callable flow or private network connectivity, run the
helm command with an additional --set flag:
--set "controller.extraArgs.enable-ssl-passthrough="This setting needs to be applied to any NGINX ingress controller that allows external integration servers, which have been configured with an agentx.json, agenta.json, or switchclient.json file, to connect directly to the switch server. For information about working with the agentx.json or agenta.json files, see Configuring connectivity between a calling flow and a callable flow, Agentx type, and AgentA type. For information about connecting your flows or integrations to a private network, see Connecting to a private network from App Connect Designer, Connecting to a private network from the App Connect Dashboard, and Private Network Agent type.
helm install nginx-ingress ingress-nginx/ingress-nginx \ --namespace ingress \ --set controller.replicaCount=2 \ --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \ --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \ --set controller.admissionWebhooks.patch.nodeSelector."beta\.kubernetes\.io/os"=linux \ --set "controller.extraArgs.enable-ssl-passthrough="
- If you do not intend to deploy hybrid integrations that require a switch server, run the
following helm command.
About this task
For each App Connect Dashboard (and API if enabled), App Connect Designer, integration runtime, or switch server instance that is created, you must create an ingress resource with rules that define an externally-reachable URL for accessing the running service in the cluster.
Work with a cluster administrator if necessary to create and apply the ingress resources.
- Creating an ingress resource for an App Connect Dashboard UI
- Creating an ingress resource for an API that is enabled for the App Connect Dashboard
- Creating an ingress resource for a switch server
- Creating an ingress resource for an App Connect Designer instance
- Creating an ingress resource for the internal integration runtime that is deployed for App Connect Designer
- Creating an ingress resource for an integration runtime in the App Connect Dashboard
Creating an ingress resource for an App Connect Dashboard UI
Create an ingress resource that will be used to route external traffic to an App Connect Dashboard UI in your cluster.
Procedure
To create an ingress resource for a running Dashboard UI, complete the following steps:
Creating an ingress resource for an API that is enabled for the App Connect Dashboard
Create an ingress resource that will be used to route external traffic to an API for IBM App Connect in containers, which is enabled for an App Connect Dashboard instance in your cluster. This API provides REST API facilities for administering resources that the App Connect Dashboard manages.
For more information about the API, see API for IBM App Connect in containers.
Procedure
To create an ingress resource for an API that is enabled for the Dashboard, complete the following steps:
Creating an ingress resource for a switch server
To expose a switch server to external traffic, you must create an ingress resource immediately after you create the switch server because during its initialization, the switch server will need to provide a TLS host name (defined in an ingress resource) in order to request a certificate for this host. To prevent certificate-related errors from the ingress controller, the host name in the generated certificate and the TLS host name that is defined in your ingress resource must match.
Procedure
To create an ingress resource for a newly deployed switch server, complete the following steps:
Creating an ingress resource for an App Connect Designer instance
Create an ingress resource that will be used to route external traffic to an App Connect Designer instance in your cluster.
About this task
When a Designer instance is deployed, an integration runtime is automatically deployed to provide support for the built-in test facility for flows. After you create an ingress resource for a Designer instance, you will also be required to create an ingress resource for this integration runtime as described in Creating an ingress resource for the internal integration runtime that is deployed for App Connect Designer.
Procedure
To create an ingress resource for a running Designer instance, complete the following steps:
What to do next
Create an ingress resource that will be used by the built-in test facility for API flows in your App Connect Designer instance. For more information, see Creating an ingress resource for the internal integration runtime that is deployed for App Connect Designer.
Creating an ingress resource for the internal integration runtime that is deployed for App Connect Designer
When you create an App Connect Designer
instance,
the IBM App Connect Operator automatically
deploys an internal integration runtime for that Designer instance. This integration runtime
supports your Designer flows and enables you to verify the behavior of a running API flow by using
the built-in test facility to call the endpoints for the implemented API operations. The internal
integration runtime is named
<designerAuthoringCRName>-designer by default.
You must create an ingress resource that will be used to route external traffic to this integration runtime in the cluster, and then configure the correct endpoints for calling the API operations. (For information about creating API flows, see Creating and managing flows in App Connect Designer.)
Procedure
To create an ingress resource for the internal integration runtime that is deployed for a Designer instance, complete the following steps:
Creating an ingress resource for an integration runtime in the App Connect Dashboard
When you deploy one or more BAR files to an integration runtime, you can indicate whether an HTTP or HTTPS route should be used to externally expose the service that identifies the set of pods where the integration runs. You must manually create this external route for the selected HTTP or HTTPS protocol. These instructions describe how to create an ingress resource for an integration runtime and configure the endpoints in your cluster.
- Set spec.forceFlowHTTPS.enabled to
trueto force all HTTP Input nodes and SOAP Input nodes in all deployed flows in the integration runtime to use TLS. - Set spec.forceFlowHTTPS.secretName to the name of a secret that stores a user-supplied public certificate/private key pair to use for enforcing TLS.
- Set spec.service.endpointType to
https.
Procedure
To create an ingress resource for a running integration runtime, complete either of the following steps:

