-
Notifications
You must be signed in to change notification settings - Fork 38
Platform Provided Ingress & OpenShift Routes
To get the IP address/URL of the Turbonomic UI, you will use either the default configuration that provides the nginx service (type loadbalancer), configure an ingress, or use an OpenShift route.
First in the Turbonomic Operator's CR yaml, you will start with disabling our nginx service with these parameters.
spec:
nginxingress:
enabled: falseYou will create a route that will use HTTPS to communicate with the Turbonomic “api” component. In the OCP Console, go the Turbonomic project, and create a new Route with the following properties:
name: turbonomic-secure (or whatever name you want)
spec.host: URL or IP address for Turbo UI
to.kind: Service
to.name: api
port.targetPort: http-api (this will be 8080)
tls.termination: edge
tls.insecureEdgeTerminationPolicy: RedirectThe customer can leverage their own certificates, or use the default one on the OCP Router.
NOTE: When using an OpenShift route, the API Swagger document will be found at this endpoint: https://{your-spec.host}/swagger/external/index.html
If you are using KubeTurbo to manage other kubernetes environments, you will also need to create a route so KubeTurbo can talk to the “topology-processor” component. In the OCP Console, go the Turbonomic project, and create a new Route with the following properties:
name: turbonomic-targets (or whatever name you want)
spec.host: URL or IP address for Turbo UI (keep the same one as the Turbonomic UI)
to.kind: Service
to.name: topology-processor
port.targetPort: http-topology-processor (this will be 8080)
tls.termination: edge
tls.insecureEdgeTerminationPolicy: RedirectThe customer can leverage their own certificates, or use the default one on the OCP Router.
If you are providing your own ingress controller, you will need to create an ingress that will define a host and route to the api service, which is the Turbonomic UI. Your ingress controller can then be configured to provide the TLS termination, and certificate, and will pass an HTTP request to our service(s).
UI Endpoint or Backend Properties will point to "api" component:
Path: /
ServiceName: API
ServicePort: 8080
Protocol: HTTP, TCPPath: /
ServiceName: TOPOLOGY-PROCESSOR
ServicePort: 8080
Protocol: HTTP, TCPThe following is an example of a nginx ingress configuration for the Turbo UI:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-turbonomic-ui
annotations:
# use the shared ingress-nginx
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: myservicea.foo.org
http:
paths:
- path: /
backend:
serviceName: api
servicePort: 8080If you are providing your own ingress controller, and have a remote probe, such as KubeTurbo, that will need to connect to the Turbo Server, you will need to create an ingress that will define a separate host and route to the topology-processor service, which is the Turbonomic component that probes talk to. Your ingress controller can then be configured to provide the TLS termination, and certificate, and will pass an HTTP request to our service(s).
Remote Target Endpoint or Backend Properties are:
Path: /
ServiceName: TOPOLOGY-PROCESSOR
ServicePort: 8080
Protocol: HTTP, TCPThe following is an example of a nginx ingress configuration for remote target access to Turbonomic:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-turbonomic-target
annotations:
# use the shared ingress-nginx
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: myservicea-target.foo.org
http:
paths:
- path: /
backend:
serviceName: topology-processor
servicePort: 8080Turbonomic supports working with Istio, where you have the option to create a gateway for Turbonomic, or leverage your platform provided gateway to create the virtual services routes that need to be configured in your gateway to be able to access the Turbonomic application.
For details on virtual services matching uri and routes, or how to create a Turbonomic gateway see: https://github.com/turbonomic/t8c-install/blob/master/operator/helm-charts/xl/templates/istio.yaml.
Reach out to Turbonomic for more information.