Browse Source

Ingress doc

Change-Id: Ife67bab9ce0517bdf41de5a9143b800e323eb334
Andrey Pavlov 2 years ago
parent
commit
79e2fe4390
2 changed files with 99 additions and 0 deletions
  1. 98
    0
      doc/source/external_access.rst
  2. 1
    0
      doc/source/index.rst

+ 98
- 0
doc/source/external_access.rst View File

@@ -0,0 +1,98 @@
1
+.. _external_access:
2
+
3
+=======
4
+Ingress
5
+=======
6
+
7
+One of the ways to make services in Kubernetes externally-reachable is to use
8
+Ingress. This page describes how it can be enabled and used in CCP.
9
+
10
+Ingress controller
11
+~~~~~~~~~~~~~~~~~~
12
+
13
+In order to make Ingress work, the cluster should have an Ingress controller.
14
+You can use any implementation of it, the only requirement is that it should
15
+be configured to use TLS.
16
+
17
+There is a script :file:`deploy-ingress-controller.sh` in
18
+:file:`fuel-ccp/tools/ingress` directory for testing purposes that can do it
19
+for you. It will deploy traefik ingress controller and expose it as a k8s
20
+service. The only required parameter is one of the k8s nodes IP which need to
21
+be specified with `-i`. Ingress controller will be configured to use TLS. If
22
+certificate and key were not provided with script parameters, the will be
23
+generated automatically.
24
+
25
+Enable Ingress in CCP
26
+~~~~~~~~~~~~~~~~~~~~~
27
+
28
+The following parameters are responsible for Ingress configuration:
29
+
30
+::
31
+
32
+    configs:
33
+      ingress:
34
+        enabled: False
35
+        domain: external
36
+        port: 8443
37
+
38
+Ingress is disabled by default. To enable it, `enabled` config option should
39
+be set to `True`. Optionally domain and port can be changed.
40
+
41
+.. NOTE:: There's no option to run Ingress without TLS.
42
+
43
+.. NOTE:: `port` parameter should match HTTPS port of Ingress controller.
44
+
45
+.. NOTE:: For multiple OpenStack deployments highly recommended to use
46
+          different `domain`s or run multiple Ingress controllers with
47
+          configured namespace isolation.
48
+
49
+To get all Ingress domains of the current deployment you can run
50
+:command:`ccp domains list` command:
51
+
52
+::
53
+
54
+    +------------------------------+
55
+    | Ingress Domain               |
56
+    +------------------------------+
57
+    | application-catalog.external |
58
+    | identity.external            |
59
+    | orchestration.external       |
60
+    | image.external               |
61
+    | object-store.external        |
62
+    | network.external             |
63
+    | ironic.external              |
64
+    | volume.external              |
65
+    | console.external             |
66
+    | data-processing.external     |
67
+    | horizon.external             |
68
+    | compute.external             |
69
+    | search.external              |
70
+    +------------------------------+
71
+
72
+All of them should be resolved to the exposed IP of the Ingress controller.
73
+It could be done with DNS or /etc/hosts.
74
+
75
+The following command will prepare /etc/hosts for you. Only IP of the Ingress
76
+controller (and configuration file if needed) should be specified:
77
+
78
+::
79
+
80
+    echo INGRESS_CONTROLLER_IP $(ccp domains list -q -f value) | sudo tee -a /etc/hosts
81
+
82
+
83
+Expose a service with Ingress
84
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85
+
86
+To expose one of the ports of a service with Ingress, `ingress` parameter with
87
+subdomain should be specified in the config section associated with that port:
88
+
89
+::
90
+
91
+    configs:
92
+      public_port:
93
+        cont: 5000
94
+        ingress: identity
95
+
96
+During the :command:`ccp deploy` command execution Ingress objects will be
97
+created and all :ref:`address` occurrences with enabled `external` flag will be
98
+substituted with proper Ingress domains.

+ 1
- 0
doc/source/index.rst View File

@@ -17,6 +17,7 @@ User docs
17 17
    config/index
18 18
    config/types
19 19
    bootstrapping
20
+   external_access
20 21
 
21 22
 Advanced topics
22 23
 ---------------

Loading…
Cancel
Save