[COMMON] Handle TLS/Non-TLS for Service 72/102972/5
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>
Wed, 4 Mar 2020 10:31:11 +0000 (11:31 +0100)
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>
Fri, 6 Mar 2020 08:04:31 +0000 (09:04 +0100)
commit88b2f92e51dc29461e0ebe443a24b9e5d99b11be
treeba7b43fa3056c09b4fb32a79ba7fc26f2d2f48c6
parentff1c5075c21a7fe77e9be438eb1831c5dbcb552f
[COMMON] Handle TLS/Non-TLS for Service

Current service and headlessService templates doesn't handle the fact
that out of cluster ports must be TLS encrypted only.
With a new (backward compatible) DSL, this is now possible.

In values.yaml, all ports in service part with port AND plain_port will
have the ability to be HTTP or HTTPS depending on the context.

Per default, they'll be HTTPS.

TLS choice will be done according this table:

| tlsOverride | global.tlsEnabled | global.serviceMesh.enabled | global.serviceMesh.tls | result |
|-------------|-------------------|----------------------------|------------------------|--------|
| not present | not present       | not present                | any                    | true   |
| not present | not present       | false                      | any                    | true   |
| not present | not present       | true                       | false                  | true   |
| not present | not present       | true                       | true                   | false  |
| not present | true              | any                        | any                    | true   |
| not present | false             | any                        | any                    | false  |
| true        | any               | any                        | any                    | true   |
| false       | any               | any                        | any                    | false  |

Service template will create one or two service templates according to this table:

| serviceType   | both_tls_and_plain | result       |
|---------------|--------------------|--------------|
| ClusterIP     | any                | one Service  |
| Not ClusterIP | not present        | one Service  |
| Not ClusterIP | false              | one Service  |
| Not ClusterIP | true               | two Services |

If two services are created, one is ClusterIP with both crypted and plain
ports and the other one is NodePort (or LoadBalancer) with crypted port only.

Issue-ID: OOM-1936
Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Change-Id: If766dd73132022d1a6e578fd36113c461bb91ea5
docs/oom_developer_guide.rst
kubernetes/common/common/documentation.rst [new file with mode: 0644]
kubernetes/common/common/templates/_pod.tpl
kubernetes/common/common/templates/_service.tpl
kubernetes/common/common/templates/_serviceMesh.tpl [new file with mode: 0644]
kubernetes/onap/values.yaml