Skip to content

Commit 17bedd7

Browse files
authored
Merge pull request #87863 from lahinson/osdocs-11968-hcp-proxy
[OSDOCS-11968]: Proxy docs for HCP
2 parents 2f96d60 + 9330674 commit 17bedd7

File tree

7 files changed

+89
-1
lines changed

7 files changed

+89
-1
lines changed

_topic_maps/_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2573,6 +2573,8 @@ Topics:
25732573
File: hcp-using-feature-gates
25742574
- Name: Observability for hosted control planes
25752575
File: hcp-observability
2576+
- Name: Networking for hosted control planes
2577+
File: hcp-networking
25762578
- Name: Troubleshooting hosted control planes
25772579
File: hcp-troubleshooting
25782580
- Name: Destroying a hosted cluster
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
:_mod-docs-content-type: ASSEMBLY
2+
[id="hcp-networking"]
3+
include::_attributes/common-attributes.adoc[]
4+
= Networking for {hcp}
5+
:context: hcp-networking
6+
7+
toc::[]
8+
9+
For standalone {product-title}, proxy support is mainly about ensuring that workloads in the cluster are configured to use the HTTP or HTTPS proxy to access external services, honoring the `NO_PROXY` setting if one is configured, and accepting any trust bundle that is configured for the proxy.
10+
11+
For {hcp}, proxy support involves the following additional use cases.
12+
13+
//cp workloads that need to use a proxy to access external services
14+
include::modules/hcp-proxy-cp-workloads.adoc[leveloffset=+1]
15+
//workers need a proxy to communicate with ignition endpoint
16+
include::modules/hcp-proxy-ignition.adoc[leveloffset=+1]
17+
//workers need proxy to communicate with cp
18+
include::modules/hcp-proxy-api.adoc[leveloffset=+1]
19+
//cp workloads that need access to external services and must use the proxy for the management cluster
20+
include::modules/hcp-proxy-mgmt-cluster.adoc[leveloffset=+1]
21+
22+
[role="_additional-resources"]
23+
[id="additional-resources_{context}"]
24+
== Additional resources
25+
26+
* xref:../networking/enable-cluster-wide-proxy.adoc#enable-cluster-wide-proxy[Configuring the cluster-wide proxy]

modules/hcp-proxy-api.adoc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * hosted_control_planes/hcp-networking.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="hcp-proxy-api_{context}"]
7+
= Compute nodes that need to access the API server
8+
9+
This use case is relevant to self-managed {hcp}, not to {product-rosa} with {hcp}.
10+
11+
For communication with the control plane, {hcp} uses a local proxy in every compute node that listens on IP address 172.20.0.1 and forwards traffic to the API server. If an external proxy is required to access the API server, that local proxy needs to use the external proxy to send traffic out. When a proxy is not needed, {hcp} uses `haproxy` for the local proxy, which only forwards packets via TCP. When a proxy is needed, {hcp} uses a custom proxy, `control-plane-operator-kubernetes-default-proxy`, to send traffic through the external proxy.

modules/hcp-proxy-cp-workloads.adoc

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * hosted_control_planes/hcp-networking.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="hcp-proxy-cp-workloads_{context}"]
7+
= Control plane workloads that need to access external services
8+
9+
Operators that run in the control plane need to access external services through the proxy that is configured for the hosted cluster. The proxy is usually accessible only through the data plane. The control plane workloads are as follows:
10+
11+
* The Control Plane Operator needs to validate and obtain endpoints from certain identity providers when it creates the OAuth server configuration.
12+
13+
* The OAuth server needs non-LDAP identity provider access.
14+
15+
* The OpenShift API server handles image registry metadata import.
16+
17+
* The Ingress Operator needs access to validate external canary routes.
18+
19+
In a hosted cluster, you must send traffic that originates from the Control Plane Operator, Ingress Operator, OAuth server, and OpenShift API server pods through the data plane to the configured proxy and then to its final destination.
20+
21+
[NOTE]
22+
====
23+
Some operations are not possible when a hosted cluster is reduced to zero compute nodes; for example, when you import OpenShift image streams from a registry that requires proxy access.
24+
====

modules/hcp-proxy-ignition.adoc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * hosted_control_planes/hcp-networking.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="hcp-proxy-ignition_{context}"]
7+
= Compute nodes that need to access an ignition endpoint
8+
9+
When compute nodes need a proxy to access the ignition endpoint, you must configure the proxy in the user-data stub that is configured on the compute node when it is created. For cases where machines need a proxy to access the ignition URL, the proxy configuration is included in the stub.
10+
11+
The stub resembles the following example:
12+
13+
[source,terminal]
14+
---
15+
{"ignition":{"config":{"merge":[{"httpHeaders":[{"name":"Authorization","value":"Bearer ..."},{"name":"TargetConfigVersionHash","value":"a4c1b0dd"}],"source":"https://ignition.controlplanehost.example.com/ignition","verification":{}}],"replace":{"verification":{}}},"proxy":{"httpProxy":"http://proxy.example.org:3128", "httpsProxy":"https://proxy.example.org:3129", "noProxy":"host.example.org"},"security":{"tls":{"certificateAuthorities":[{"source":"...","verification":{}}]}},"timeouts":{},"version":"3.2.0"},"passwd":{},"storage":{},"systemd":{}}
16+
---

modules/hcp-proxy-mgmt-cluster.adoc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * hosted_control_planes/hcp-networking.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="hcp-proxy-mgmt-cluster_{context}"]
7+
= Management clusters that need external access
8+
9+
The HyperShift Operator has a controller that monitors the OpenShift global proxy configuration of the management cluster and sets the proxy environment variables on its own deployment. Control plane deployments that need external access are configured with the proxy environment variables of the management cluster.

networking/enable-cluster-wide-proxy.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,4 @@ include::modules/nw-verify-proxy-configuration.adoc[leveloffset=+1]
7575
* xref:../networking/configuring-cluster-network-range.adoc#configuring-cluster-network-range[Configuring the cluster network range]
7676
* xref:../security/certificates/updating-ca-bundle.adoc#ca-bundle-understanding_updating-ca-bundle[Understanding the CA Bundle certificate]
7777
* xref:../security/certificate_types_descriptions/proxy-certificates.adoc#customization[Proxy certificates]
78-
* link:https://access.redhat.com/solutions/7065528[How is the cluster-wide proxy setting applied to {product-title} nodes?]
78+
* link:https://access.redhat.com/solutions/7065528[How is the cluster-wide proxy setting applied to {product-title} nodes?]

0 commit comments

Comments
 (0)