Skip to content

Commit ae29d68

Browse files
committed
Add missing markdown sections for linter
1 parent b77ce7e commit ae29d68

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

enhancements/cert-manager-proxy/http01_challenge_proxy.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ The gap arises due to how the ACME HTTP01 challenge works. The following scenari
3838
2. **Compact Clusters**: The node hosting the API VIP may also host an OpenShift Router. If no router is present on the node hosting the VIP, the challenge will fail.
3939
3. **SNO (Single Node OpenShift)**: The same nodes host both the ingress and API components. Both FQDNs (`api` and wildcard) resolve to the same IP, making the challenge feasible.
4040

41-
To address this gap, a small proxy was developed. This proxy runs on the cluster as a DaemonSet (control plane nodes) and ensures that connections reaching the API on port 80 are redirected to the OpenShift Ingress Routers. The proxy implementation creates a reverse proxy to the apps VIP and uses `nftables` to redirect traffic from `API:80` to `PROXY:8888`.
41+
To address this gap, a small proxy was developed. This proxy runs on the cluster as a DaemonSet (control plane nodes) and then adds iptables rules to the nodes and ensures that connections reaching the API on port 80 are redirected to the OpenShift Ingress Routers. The proxy implementation creates a reverse proxy to the apps VIP and uses `nftables` to redirect traffic from `API:80` to `PROXY:8888`.
4242

4343
- **Proxy Code**: [GitHub Repository](https://github.com/mvazquezc/cert-mgr-http01-proxy/tree/main)
4444
- **Deployment Manifest**: [Manifest Link](https://github.com/mvazquezc/cert-mgr-http01-proxy/blob/main/manifests/deploy-in-ocp.yaml)
@@ -106,3 +106,24 @@ None
106106
- [Proxy Code Repository](https://github.com/mvazquezc/cert-mgr-http01-proxy/tree/main)
107107
- [Deployment Manifest](https://github.com/mvazquezc/cert-mgr-http01-proxy/blob/main/manifests/deploy-in-ocp.yaml)
108108

109+
### Non-Goals
110+
111+
- This enhancement does not aim to replace or modify the existing OpenShift Ingress functionality.
112+
- It does not provide support for non-HTTP01 challenge types (e.g., DNS-01).
113+
- It does not address certificate management for endpoints other than the API endpoint (`api.cluster.example.com`).
114+
- It does not provide a solution for environments where `nftables` is not supported.
115+
116+
### Workflow Description
117+
118+
1. Cert Manager initiates an HTTP01 challenge for the API endpoint (`api.cluster.example.com`).
119+
2. The HTTP01 challenge request is directed to the API VIP on port 80.
120+
3. The HTTP01 Challenge Proxy intercepts the traffic using `nftables` and redirects it to the proxy pod on port 8888.
121+
4. The proxy pod forwards the request to the OpenShift Ingress Router, which serves the challenge response from the Cert Manager challenge pod.
122+
5. The ACME CA validates the challenge and issues the certificate for the API endpoint.
123+
124+
### Topology Considerations
125+
126+
- **Standard Clusters**: The API VIP is hosted on control plane nodes. The proxy ensures that HTTP01 challenges are redirected to the OpenShift Ingress Routers.
127+
- **Compact Clusters**: The proxy handles scenarios where the API VIP node may or may not host an OpenShift Router, ensuring consistent challenge redirection.
128+
- **SNO (Single Node OpenShift)**: The proxy is not strictly required in this topology, as the API and wildcard FQDNs resolve to the same IP. However, it can still be deployed for consistency.
129+

0 commit comments

Comments
 (0)