A Migrating from Traefik Ingress Controller to Annotations-Based Generic Ingress Controller
This appendix describes how to migrate from Traefik Ingress Controller to annotations-based generic Ingress controller.
Prerequisites
Here are the prerequisites you need:
- Install annotation-based ingress controller.
Installing Generic Ingress Controller
To install generic ingress controller:
- You can use any annotation-based ingress controller that supports standard Kubernetes ingress API. The samples for haproxy ingressController are provided.
- For installation of HAProxy, the sample values are provided under $COMMON_CNTK/samples/charts/haproxy. For more information, see "About Load Balancing and Ingress Controller".
Migrating to Generic Ingress Controller for UIM CN
To migrate to a generic ingress controller:
- Delete UIM CN
Ingress:
$COMMON_CNTK/scripts/delete-ingress.sh -p project -i instance -s $SPEC_PATH -a uim - Go to $SPEC_PATH of upgraded UIM release.
- Update the applications-base.yaml specification file with
ingressController as
GENERIC:ingressController: "GENERIC" - Uncomment and provide the ingress annotations according to your ingress controller. The samples for HAProxy are provided. Make sure that you provide the corresponding className field, which is required to choose your ingress controller based on the ingressClassName value:
ingress: className: "haproxy" annotations: haproxy.org/cookie-persistence: "uimhaproxycookie" - Update the loadbalancerport value in applications-base.yaml specification file to your ingess controller loadbalancer or NodePort port.
- Based on the SSL-enablement, update annotations in applications-base.yaml specification file.
- Update the custom-config.properties file for ATA details with the updated port number.
- Create UIM
Ingress:
$COMMON_CNTK/scripts/create-ingress.sh -p project -i instance -s $SPEC_PATH -a uim - Upgrade UIM instance to reflect port
changes:
$COMMON_CNTK/scripts/upgrade-instance.sh -p project -i instance -s $SPEC_PATH -a uim - Verify if the application can be accessed using your ingressController port.