Skip to content

Commit 549a160

Browse files
authored
Merge pull request #69982 from jab-rh/OSDOCS-6863
OSDOCS-6863: IPsec N/S GA
2 parents 9a0bf7d + 5346e44 commit 549a160

14 files changed

+357
-68
lines changed

modules/nw-modifying-operator-install-config.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ metadata:
6868
spec:
6969
defaultNetwork:
7070
ovnKubernetesConfig:
71-
ipsecConfig: {}
71+
ipsecConfig:
72+
mode: Full
7273
----
7374
--
7475

modules/nw-operator-cr.adoc

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,10 @@ endif::operator[]
248248
|`object`
249249
|
250250
ifndef::operator[]
251-
Specify an empty object to enable IPsec encryption.
251+
Specify a configuration object for customizing the IPsec configuration.
252252
endif::operator[]
253253
ifdef::operator[]
254-
If the field is present, IPsec is enabled for the cluster.
254+
An object describing the IPsec mode for the cluster.
255255
endif::operator[]
256256

257257
|`policyAuditConfig`
@@ -335,6 +335,31 @@ If you set this field to `true`, you do not receive the performance benefits of
335335

336336
|====
337337

338+
[id="nw-operator-cr-ipsec_{context}"]
339+
.`ipsecConfig` object
340+
[cols=".^2,.^2,.^6a",options="header"]
341+
|====
342+
|Field|Type|Description
343+
344+
|`mode`
345+
|`string`
346+
a|Specifies the behavior of the IPsec implementation. Must be one of the following values:
347+
348+
--
349+
- `Disabled`: IPsec is not enabled on cluster nodes.
350+
- `External`: IPsec is enabled for network traffic with external hosts.
351+
- `Full`: IPsec is enabled for pod traffic and network traffic with external hosts.
352+
--
353+
354+
|====
355+
356+
357+
ifdef::operator[]
358+
[NOTE]
359+
====
360+
You can only change the configuration for your cluster network plugin during cluster installation, except for the `gatewayConfig` field that can be changed at runtime as a postinstallation activity.
361+
====
362+
endif::operator[]
338363

339364
.Example OVN-Kubernetes configuration with IPSec enabled
340365
[source,yaml]
@@ -344,7 +369,8 @@ defaultNetwork:
344369
ovnKubernetesConfig:
345370
mtu: 1400
346371
genevePort: 6081
347-
ipsecConfig: {}
372+
ipsecConfig:
373+
mode: Full
348374
----
349375
[IMPORTANT]
350376
====

modules/nw-ovn-ipsec-certificates.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Module included in the following assemblies:
22
//
3-
// * networking/ovn_kubernetes_network_provider/about-ipsec-ovn.adoc
3+
// * networking/ovn_kubernetes_network_provider/configuring-ipsec-ovn.adoc
44

55
:_mod-docs-content-type: CONCEPT
66
[id="nw-ovn-ipsec-certificates_{context}"]

modules/nw-ovn-ipsec-disable.adoc

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,7 @@
66
[id="nw-ovn-ipsec-disable_{context}"]
77
= Disabling IPsec encryption
88

9-
As a cluster administrator, you can disable IPsec encryption only if you enabled IPsec after cluster installation.
10-
11-
[NOTE]
12-
====
13-
If you enabled IPsec when you installed your cluster, you cannot disable IPsec with this procedure.
14-
====
9+
As a cluster administrator, you can disable IPsec encryption.
1510

1611
.Prerequisites
1712

@@ -24,8 +19,14 @@ If you enabled IPsec when you installed your cluster, you cannot disable IPsec w
2419
+
2520
[source,terminal]
2621
----
27-
$ oc patch networks.operator.openshift.io/cluster --type=json \
28-
-p='[{"op":"remove", "path":"/spec/defaultNetwork/ovnKubernetesConfig/ipsecConfig"}]'
22+
$ oc patch networks.operator.openshift.io cluster --type=merge \
23+
-p '{
24+
"spec":{
25+
"defaultNetwork":{
26+
"ovnKubernetesConfig":{
27+
"ipsecConfig":{
28+
"mode":"Disabled"
29+
}}}}}'
2930
----
3031

3132
. Optional: You can increase the size of your cluster MTU by `46` bytes because there is no longer any overhead from the IPsec ESP header in IP packets.

modules/nw-ovn-ipsec-enable.adoc

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,16 @@
44

55
:_mod-docs-content-type: PROCEDURE
66
[id="nw-ovn-ipsec-enable_{context}"]
7-
= Enabling pod-to-pod IPsec encryption
7+
= Enabling IPsec encryption
88

9-
As a cluster administrator, you can enable pod-to-pod IPsec encryption after cluster installation.
9+
As a cluster administrator, you can enable pod-to-pod IPsec encryption and IPsec encryption between the cluster and external IPsec endpoints.
10+
11+
You can configure IPsec in either of the following modes:
12+
13+
- `Full`: Encryption for pod-to-pod and external traffic
14+
- `External`: Encryption for external traffic
15+
16+
If you need to configure encryption for external traffic in addition to pod-to-pod traffic, you must also complete the "Configuring IPsec encryption for external traffic" procedure.
1017

1118
.Prerequisites
1219

@@ -16,10 +23,24 @@ As a cluster administrator, you can enable pod-to-pod IPsec encryption after clu
1623
1724
.Procedure
1825

19-
* To enable IPsec encryption, enter the following command:
26+
. To enable IPsec encryption, enter the following command:
2027
+
2128
[source,terminal]
2229
----
2330
$ oc patch networks.operator.openshift.io cluster --type=merge \
24-
-p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"ipsecConfig":{ }}}}}'
31+
-p '{
32+
"spec":{
33+
"defaultNetwork":{
34+
"ovnKubernetesConfig":{
35+
"ipsecConfig":{
36+
"mode":<mode>
37+
}}}}}'
2538
----
39+
+
40+
where:
41+
+
42+
--
43+
`mode`:: Specify `External` to encrypt only traffic to external hosts or specify `Full` to encrypt pod to pod traffic and optionally traffic to external hosts. By default, IPsec is disabled.
44+
--
45+
46+
. Optional: If you need to encrypt traffic to external hosts, complete the "Configuring IPsec encryption for external traffic" procedure.

modules/nw-ovn-ipsec-encryption.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Module included in the following assemblies:
22
//
3-
// * networking/ovn_kubernetes_network_provider/about-ipsec-ovn.adoc
3+
// * networking/ovn_kubernetes_network_provider/configuring-ipsec-ovn.adoc
44

55
:_mod-docs-content-type: CONCEPT
66
[id="nw-ovn-ipsec-encryption_{context}"]

modules/nw-ovn-ipsec-external.adoc

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/ovn_kubernetes_network_provider/configuring-ipsec-ovn.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="nw-ovn-ipsec-external_{context}"]
7+
= IPsec encryption for external traffic
8+
9+
{product-title} supports IPsec encryption for traffic to external hosts with TLS certificates that you must supply.
10+
11+
[id="supported-platforms_{context}"]
12+
== Supported platforms
13+
14+
This feature is supported on the following platforms:
15+
16+
- Bare metal
17+
- {gcp-first}
18+
- {rh-openstack-first}
19+
- {vmw-full}
20+
21+
[IMPORTANT]
22+
====
23+
If you have {op-system-base-full} worker nodes, these do not support IPsec encryption for external traffic.
24+
====
25+
26+
If your cluster uses hosted control planes for Red Hat {product-title}, configuring IPsec for encrypting traffic to external hosts is not supported.
27+
28+
[id="ipsec-external-limitations_{context}"]
29+
== Limitations
30+
31+
Ensure that the following prohibitions are observed:
32+
33+
* Certificate common names (CN) in the provided certificate bundle must not begin with the `ovs_` prefix, because this naming can conflict with pod-to-pod IPsec CN names in the Network Security Services (NSS) database of each node.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/ovn_kubernetes_network_provider/configuring-ipsec-ovn.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="nw-ovn-ipsec-north-south-disable_{context}"]
7+
= Disabling IPsec encryption for an external IPsec endpoint
8+
9+
As a cluster administrator, you can remove an existing IPsec tunnel to an external host.
10+
11+
.Prerequisites
12+
13+
* Install the {oc-first}.
14+
* You are logged in to the cluster as a user with `cluster-admin` privileges.
15+
* You enabled IPsec in either `Full` or `External` mode on your cluster.
16+
17+
.Procedure
18+
19+
. Create a file named `remove-ipsec-tunnel.yaml` with the following YAML:
20+
+
21+
[source,yaml]
22+
----
23+
kind: NodeNetworkConfigurationPolicy
24+
apiVersion: nmstate.io/v1
25+
metadata:
26+
name: <name>
27+
spec:
28+
nodeSelector:
29+
kubernetes.io/hostname: <node_name>
30+
desiredState:
31+
interfaces:
32+
- name: <tunnel_name>
33+
type: ipsec
34+
state: absent
35+
----
36+
+
37+
--
38+
where:
39+
40+
`name`:: Specifies a name for the node network configuration policy.
41+
`node_name`:: Specifies the name of the node where the IPsec tunnel that you want to remove exists.
42+
`tunnel_name`:: Specifies the interface name for the existing IPsec tunnel.
43+
--
44+
45+
. To remove the IPsec tunnel, enter the following command:
46+
+
47+
[source,terminal]
48+
----
49+
$ oc apply -f remove-ipsec-tunnel.yaml
50+
----

0 commit comments

Comments
 (0)