blob: 7f31536b2810ccd96de45d43d7e417b7685e74fc [file] [log] [blame]
Mohammed Nasera5467342024-04-30 00:34:16 -04001=======
2Ingress
3=======
4
5The ingress component is the primary entry point for all traffic to the cluster,
6it is currently deployed as an instance of ``ingress-nginx``. It is tuned to work
7out of the box and should require no changes
8
9.. admonition:: Warning
10 :class: warning
11
12 The ingress component is a critical part of the cluster, and should be
13 managed with care. Any changes to the ingress configuration should be
14 carefully reviewed and tested before being applied to the cluster.
15
16 If you make any changes to the ingress configuration, you may see a small
17 outage as the ingress controller is restarted.
18
19**********
20Helm Chart
21**********
22
23The ingress component is deployed using the ``ingress-nginx`` helm chart. The
24chart is configured with a number of values to ensure it works correctly with
25the cluster out of the box, however, you can override these values by adding
26the following to your inventory:
27
28.. code-block:: yaml
29
30 ingress_nginx_helm_values:
31 foo: bar
32
33These values will be merged with the default values in the chart, and will be
34used to configure the ingress controller.
35
36***********************
37TLS Version and Ciphers
38***********************
39
40To provide the most secure baseline configuration possible, ``ingress-nginx``
41defaults to using TLS 1.2 and 1.3 only, with a `secure set of TLS ciphers <https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#ssl-ciphers>`_.
42
43Verifying TLS Version and Ciphers
44=================================
45
46In order to check the TLS version and ciphers used by the ingress controller,
47you can use the [sslscan](https://github.com/rbsec/sslscan) tool:
48
49.. code-block:: console
50
51 sslscan dashboard.cloud.example.com
52
53Legacy TLS
54==========
55
56The default configuration, though secure, does not support some older browsers
57and operating systems.
58
59In order to change this behaviour, you can make to make the following changes
60to the ``ingress_nginx_helm_values`` variable, the following example is using the
61`Mozilla SSL Configuration Generator <https://ssl-config.mozilla.org/#server=nginx&config=old>`_
62configured for the *old* profile:
63
64.. code-block:: yaml
65
66 ingress_nginx_helm_values:
67 controller:
68 config:
69 ssl-protocols: "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3"
70 ssl-ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA"