You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reviewers: # Include a comment about what domain expertise a reviewer is expected to bring and what area of the enhancement you expect them to focus on. For example: - "@networkguru, for networking aspects, please look at IP bootstrapping aspect"
6
-
- @rvanderpool
6
+
- @rvanderp3
7
7
approvers: # A single approver is preferred, the role of the approver is to raise important questions, help ensure the enhancement receives reviews from all applicable areas/SMEs, and determine when consensus is achieved such that the EP can move forward to implementation. Having multiple approvers makes it difficult to determine who is responsible for the actual approval.
8
8
- @patrick # Installer changes
9
9
- @joelspeed # API and CCM changes
10
10
- @miciah # CIO changes
11
+
- # ROSA Classic
12
+
- # ROSA HCP
11
13
12
14
api-approvers: # In case of new or modified APIs or API extensions (CRDs, aggregated apiservers, webhooks, finalizers). If there is no API change, use "None"
13
15
- TBD
@@ -86,14 +88,14 @@ Highlights:
86
88
- Minimal changes to CCM.
87
89
88
90
T-Shirt Sizing/complexity by component:
89
-
| Component | T-Shirt Size | Complexity | Note |
90
-
| -- | -- | -- | -- |
91
-
| CCM | S | S | No API changes, No SG management, Opt-in. |
92
-
| CIO | S | S | API adds SG ID/Name to service annotation. |
93
-
| Installer | S | S | API enabling feature; Creates Ingress SG (SDK). |
94
-
| ROSA CL | M? | M? | TBD: API enabling feature(?); creates Ingress SG; updates `install-config`. |
95
-
| ROSA HCP | M? | M? | TBD: API enabling feature(?); SG mgt; creates CIO manifests to enable SG.|
96
-
| Day-2 | S | M | BYO SG (can managed services automate through CLI?), patch CIO to recreate NLB. |
| Option 1+4 | S | XXL | M | M? | M? | M | 4.20+ |
243
+
| Option 2+4 | M | XXL | S | M? | M? | S | 4.20+ |
244
+
| Option 1+3 | XXL | S | M | M? | M? | M | 4.20+ |
245
+
| Option 2+3 | XXL | S | S | M? | M? | S | 4.20+ |
246
+
247
+
___
248
+
___
249
+
231
250
### Non-Goals
232
251
233
252
> WIP
234
253
235
254
Short-term:
236
255
237
-
- Migrate to use ALBC as the default on CIO.
238
-
- Use NLB as the default service type LoadBalancer.
239
-
- Synchronize NLB features from LBC to CCM.
240
-
- Change the current CCM flow when deploying NLB.
241
-
- Change the current OpenShift e2e flow when deploying the default router using IPI.
256
+
- Migrate to use ALBC as the default on CIO (option 3 and 4 could be written in a new EP?).
257
+
- Use NLB as the default service type LoadBalancer by CCM.
258
+
- Synchronize all NLB features from ALBC to CCM.
259
+
- Change the existing CCM flow when deploying NLB .
260
+
- Change the current OpenShift e2e flow when deploying the default router using IPI (do we need to plan for that?).
261
+
262
+
Long-term (new enhancement?):
263
+
264
+
Long-term:
265
+
266
+
- TBD which one would be better/sustainable by Red Hat?:
267
+
- Use ALBC as default provisioner on CIO
268
+
- Feature parity between CCM and ALBC
242
269
243
270
## Proposal
244
271
@@ -251,20 +278,49 @@ Short-term:
251
278
252
279
#### Option 1. Workflow
253
280
254
-
- Create `install-config.yaml` enabling the use of Security Group **and**`lbType=NLB` (already exists).
255
-
- The installer creates a security group to be used by the ingress controller during the InfraReady phase.
256
-
- The installer generates the CIO manifests: enabling LB type NLB passing Security Group Names (IDs are not known yet during the manifest phase).
257
-
- CIO creates the service for the default router, filling in the annotations for NLB and SG Names.
258
-
- CCM checks annotations, maps Names to IDs, and provisions the Load Balancer NLB with the security group, updating SGs with the required rules for ingress (based on listeners) and egress (based on service and health check ports).
281
+
> WIP
282
+
283
+
- Create `install-config.yaml` enabling:
284
+
-`lbType=NLB` (already exists), and
285
+
- use of Security Group(SG) (new API, suggested: `platform.aws.ingressController.SecurityGroupEnabled`).
286
+
- The installer generates the cluster-ingress-operator(CIO) manifest for default ingress enabling LB type NLB, and passing Security Group **Name** (IDs are not known yet during the manifest phase).
287
+
- The installer creates a security group to be used by the ingress controller during the `InfraReady` phase (post-CAPA).
288
+
- CIO creates the service for the default router, filling in the annotations for NLB and SG **Name**.
289
+
- CCM checks annotations, then when LB type NLB:
290
+
- if annotation (existing for CLB) "" is set: **maps Names to IDs** (new), then provisions the Load Balancer type NLB with the security group ID(new), updating instance SG swith required rules (existing flow for CLB).
291
+
292
+
293
+
Managed (TBD):
294
+
295
+
- Classic:
296
+
- need to ensure install-config.yaml option writes the CIO manifests enabling NLB with SGs.
297
+
- (if Hive uses openshift-install to provision infra, no extra action)
298
+
299
+
- HCP:
300
+
- need to ensure install-config.yaml option writes the CIO manifests enabling NLB with SGs.
301
+
- (hypershift? if not using openshift-install): need to evaluate if there is an post-infra hook to create the SG
259
302
260
303
261
304
#### Option 2. Workflow CCM Manage SG
262
305
306
+
> WIP
307
+
308
+
Self-managed:
309
+
263
310
- Create `install-config.yaml` enabling the use of Security Group **and**`lbType=NLB` (already exists).
264
311
- The installer generates the CIO manifests: enabling LB type NLB.
265
312
- CIO creates the service for the default router, filling a new annotation telling CCM to manage SGs.
266
313
- CCM checks annotation to manage SG on NLB, creates the SG and rules, and pass the SG ID to LB creation. CCM controllers manages the SG lifecycle (controllers may exists in CLB).
314
+
- CCM checks annotations, then when LB type NLB:
315
+
- if annotation `service.beta.kubernetes.io/aws-load-balancer-managed-security-group` (new) is set to `true`, then creates the SG with required rules for ingress (based on listeners) and egress (based on service and health check ports).
316
+
317
+
Managed (TBD):
318
+
319
+
- Classic:
320
+
- need to ensure install-config.yaml option writes the CIO manifests enabling NLB with SGs.
267
321
322
+
- HCP:
323
+
- need to ensure install-config.yaml option writes the CIO manifests enabling NLB with SGs.
0 commit comments