_Configuring an Ingress Controller - blackducksoftware/hub GitHub Wiki

This page has been deprecated. Please see the official Kubernetes Black Duck Installation Guide here.

Configuring an Ingress Controller in Kubernetes and OpenShift

In order to set up an Ingress controller that allows connectivity to your cloud-native Black Duck deployment, you need to set up a TLS-based Ingress resource.

This document assumes that you have set up a working Ingress controller on your cluster.

There are 3 things to keep in mind for your Ingress controllers. You must:

  • allow large body sizes for the proxy; 1G is sufficient for most deployments.
  • configure the 'proxy buffer' to be large enough to handle a large response header.
  • ensure that TLS is allowed through your ingress proxy.

An Ingress resource that is created for Black Duck will look something like this:

kind: Ingress
  metadata:
    namespace: myhub
    annotations:
      nginx.ingress.kubernetes.io/proxy-body-size: 1024m
      nginx.ingress.kubernetes.io/proxy-buffer-size: 8k
      nginx.ingress.kubernetes.io/secure-backends: "true" # enable TLS
  spec: 
    rules:
    - http:
        paths:
        - backends:
            serviceName: ingress-j2oij20j09j
            servicePort: 8443

The above deployment assumes that your Ingress is created dynamically for you to point to the webserver deployment. An alternative way to accomplish the same thing would be to explicitly point to the webserver service.

serviceName: webserver
servicePort: 443

Note that some platforms (like Rancher) will dynamically label pods and create services that attach to those pod labels for you, so we do not proscribe a specific strategy for Ingress definitions, but rather, we can provide you with guidelines and debugging support.

Contact Black Duck Support if you have any questions on how to craft an Ingress policy that will work for your cluster.