Skip to content

Commit 417a70f

Browse files
authored
Merge pull request #110521 from openshift/revert-105583-cherry-pick-105581-to-enterprise-4.16
Revert "[enterprise-4.16] OSDOCS-16842-3: CQA for NOP-1 AWS Load Balancer Operator (ALBO)"
2 parents e20d371 + ac323d0 commit 417a70f

12 files changed

Lines changed: 71 additions & 134 deletions
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
// Module included in the following assemblies:
22
// * networking/aws_load_balancer_operator/understanding-aws-load-balancer-operator.adoc
33

4-
:_mod-docs-content-type: CONCEPT
4+
:_mod-docs-content-type: REFERENCE
55
[id="nw-aws-load-balancer-operator-considerations_{context}"]
66
= AWS Load Balancer Operator considerations
77

8-
[role="_abstract"]
9-
To ensure a successful deployment, review the limitations of the AWS Load Balancer Operator. Understanding these constraints helps avoid compatibility issues and ensures the Operator meets your architectural requirements before installation.
10-
118
Review the following limitations before installing and using the AWS Load Balancer Operator:
129

1310
* The IP traffic mode only works on AWS Elastic Kubernetes Service (EKS). The AWS Load Balancer Operator disables the IP traffic mode for the AWS Load Balancer Controller. As a result of disabling the IP traffic mode, the AWS Load Balancer Controller cannot use the pod readiness gate.
1411
1512
* The AWS Load Balancer Operator adds command-line flags such as `--disable-ingress-class-annotation` and `--disable-ingress-group-name-annotation` to the AWS Load Balancer Controller. Therefore, the AWS Load Balancer Operator does not allow using the `kubernetes.io/ingress.class` and `alb.ingress.kubernetes.io/group.name` annotations in the `Ingress` resource.
1613
17-
* The AWS Load Balancer Operator requires that the service type is `NodePort` and not `LoadBalancer` or `ClusterIP`.
14+
* You have configured the AWS Load Balancer Operator so that the SVC type is `NodePort` (not `LoadBalancer` or `ClusterIP`).

modules/nw-aws-load-balancer-operator.adoc

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,11 @@
33

44
:_mod-docs-content-type: PROCEDURE
55
[id="nw-aws-load-balancer-operator_{context}"]
6-
= Deploying the AWS Load Balancer Operator
6+
= AWS Load Balancer Operator
77

8-
[role="_abstract"]
9-
After you deploy the The AWS Load Balancer Operator, the Operator automatically tags public subnets if the `kubernetes.io/role/elb` tag is missing. The Operator then identifies specific network resources in the underlying AWS cloud to ensure successful cluster integration.
8+
The AWS Load Balancer Operator can tag the public subnets if the `kubernetes.io/role/elb` tag is missing. Also, the AWS Load Balancer Operator detects the following information from the underlying AWS cloud:
109

11-
The AWS Load Balancer Operator detects the following information from the underlying AWS cloud:
12-
13-
* The ID of the virtual private cloud (VPC) on which the cluster hosting the Operator is deployed.
10+
* The ID of the virtual private cloud (VPC) on which the cluster hosting the Operator is deployed in.
1411
1512
* Public and private subnets of the discovered VPC.
1613

modules/nw-aws-load-balancer-with-outposts.adoc

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,27 @@
77
[id="nw-aws-load-balancer-with-outposts_{context}"]
88
= Using the AWS Load Balancer Operator in an AWS VPC cluster extended into an Outpost
99

10-
[role="_abstract"]
11-
To provision an AWS Application Load Balancer in an AWS VPC cluster extended into an Outpost, configure the AWS Load Balancer Operator. Note that the Operator cannot provision AWS Network Load Balancers because AWS Outposts does not support them.
10+
You can configure the AWS Load Balancer Operator to provision an AWS Application Load Balancer in an AWS VPC cluster extended into an Outpost.
11+
AWS Outposts does not support AWS Network Load Balancers.
12+
As a result, the AWS Load Balancer Operator cannot provision Network Load Balancers in an Outpost.
1213

1314
You can create an AWS Application Load Balancer either in the cloud subnet or in the Outpost subnet.
14-
15-
An Application Load Balancer in the cloud can attach to cloud-based compute nodes. An Application Load Balancer in the Outpost can attach to edge compute nodes.
16-
15+
An Application Load Balancer in the cloud can attach to cloud-based compute nodes and an Application Load Balancer in the Outpost can attach to edge compute nodes.
1716
You must annotate Ingress resources with the Outpost subnet or the VPC subnet, but not both.
1817

1918
.Prerequisites
2019

2120
* You have extended an AWS VPC cluster into an Outpost.
21+
2222
* You have installed the {oc-first}.
23+
2324
* You have installed the AWS Load Balancer Operator and created the AWS Load Balancer Controller.
2425
2526
.Procedure
2627

2728
* Configure the `Ingress` resource to use a specified subnet:
2829
+
30+
--
2931
.Example `Ingress` resource configuration
3032
[source,yaml]
3133
----
@@ -34,7 +36,7 @@ kind: Ingress
3436
metadata:
3537
name: <application_name>
3638
annotations:
37-
alb.ingress.kubernetes.io/subnets: <subnet_id>
39+
alb.ingress.kubernetes.io/subnets: <subnet_id> # <1>
3840
spec:
3941
ingressClassName: alb
4042
rules:
@@ -48,8 +50,7 @@ spec:
4850
port:
4951
number: 80
5052
----
51-
+
52-
where:
53-
+
54-
`<subnet_id>`:: Specifies the subnet to use. To use the Application Load Balancer in an Outpost, specify the Outpost subnet ID. To use the Application Load Balancer in the cloud, you must specify at least two subnets in different availability zones.
55-
53+
<1> Specifies the subnet to use.
54+
* To use the Application Load Balancer in an Outpost, specify the Outpost subnet ID.
55+
* To use the Application Load Balancer in the cloud, you must specify at least two subnets in different availability zones.
56+
--

modules/specifying-role-arn-albo-sts.adoc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
[id="specifying-role-arn-albo-sts_{context}"]
77
= Configuring the ARN role for the AWS Load Balancer Operator
88

9-
[role="_abstract"]
10-
To authorize the {aws-short} Load Balancer Operator, configure the Amazon Resource Name (ARN) role as an environment variable by using the CLI. This ensures the Operator has the necessary permissions to manage resources within the cluster.
9+
You can configure the Amazon Resource Name (ARN) role for the {aws-short} Load Balancer Operator as an environment variable. You can configure the ARN role by using the CLI.
1110

1211
.Prerequisites
1312

@@ -55,13 +54,10 @@ spec:
5554
config:
5655
env:
5756
- name: ROLEARN
58-
value: "<albo_role_arn>"
57+
value: "<albo_role_arn>" <1>
5958
EOF
6059
----
61-
+
62-
where:
63-
+
64-
`<albo_role_arn>`:: Specifies the ARN role to be used in the `CredentialsRequest` to provision the {aws-short} credentials for the {aws-short} Load Balancer Operator. An example for `<albo_role_arn>` is `arn:aws:iam::<aws_account_number>:role/albo-operator`.
60+
<1> Specifies the ARN role to be used in the `CredentialsRequest` to provision the {aws-short} credentials for the {aws-short} Load Balancer Operator. An example for `<albo_role_arn>` is `arn:aws:iam::<aws_account_number>:role/albo-operator`.
6561
+
6662
[NOTE]
6763
====

modules/the-iam-role-albo-controller.adoc

Lines changed: 0 additions & 17 deletions
This file was deleted.

modules/the-iam-role-albo-operator.adoc

Lines changed: 0 additions & 17 deletions
This file was deleted.

modules/using-aws-cli-create-iam-role-alb-controller.adoc

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
[id="using-aws-cli-create-iam-role-alb-controller_{context}"]
77
= Creating an AWS IAM role for the controller by using the AWS CLI
88

9-
[role="_abstract"]
10-
To enable the {aws-short} Load Balancer Controller to interact with subnets and Virtual Private Clouds (VPCs), create an IAM role by using the {aws-short} CLI. This ensures the controller has the specific permissions required to manage network resources within the cluster.
9+
You can use the {aws-short} command-line interface to create an {aws-short} IAM role for the {aws-short} Load Balancer Controller. An {aws-short} IAM role is used to interact with subnets and Virtual Private Clouds (VPCs).
1110

1211
.Prerequisites
1312

@@ -26,24 +25,21 @@ $ cat <<EOF > albo-controller-trust-policy.json
2625
{
2726
"Effect": "Allow",
2827
"Principal": {
29-
"Federated": "<oidc_arn>"
28+
"Federated": "<oidc_arn>" <1>
3029
},
3130
"Action": "sts:AssumeRoleWithWebIdentity",
3231
"Condition": {
3332
"StringEquals": {
34-
"<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager"
33+
"<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager" <2>
3534
}
3635
}
3736
}
3837
]
3938
}
4039
EOF
4140
----
42-
+
43-
where:
44-
+
45-
`<oidc_arn>`:: Specifies the Amazon Resource Name (ARN) of the OIDC identity provider, such as `arn:aws:iam::777777777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
46-
`serviceaccount`:: Specifies the service account for the {aws-short} Load Balancer Controller. An example of `<cluster_oidc_endpoint>` is `rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
41+
<1> Specifies the Amazon Resource Name (ARN) of the OIDC identity provider, such as `arn:aws:iam::777777777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
42+
<2> Specifies the service account for the {aws-short} Load Balancer Controller. An example of `<cluster_oidc_endpoint>` is `rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
4743

4844
. Create an {aws-short} IAM role with the generated trust policy by running the following command:
4945
+
@@ -61,10 +57,7 @@ STATEMENT sts:AssumeRoleWithWebIdentity Allow
6157
STRINGEQUALS system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager
6258
PRINCIPAL arn:aws:iam:<aws_account_number>:oidc-provider/<cluster_oidc_endpoint>
6359
----
64-
+
65-
where:
66-
+
67-
`<aws_account_number>`:: Specifies the ARN for an {aws-short} IAM role for the {aws-short} Load Balancer Controller, such as `arn:aws:iam::777777777777:role/albo-controller`.
60+
<1> Note the ARN of an {aws-short} IAM role for the {aws-short} Load Balancer Controller, such as `arn:aws:iam::777777777777:role/albo-controller`.
6861

6962
. Download the permission policy for the {aws-short} Load Balancer Controller by running the following command:
7063
+
@@ -86,17 +79,13 @@ $ aws iam put-role-policy --role-name albo-controller --policy-name perms-policy
8679
[source,yaml]
8780
----
8881
apiVersion: networking.olm.openshift.io/v1
89-
kind: AWSLoadBalancerController
82+
kind: AWSLoadBalancerController <1>
9083
metadata:
91-
name: cluster
84+
name: cluster <2>
9285
spec:
9386
credentialsRequestConfig:
94-
stsIAMRoleARN: <albc_role_arn>
87+
stsIAMRoleARN: <albc_role_arn> <3>
9588
----
96-
+
97-
where:
98-
+
99-
`kind`:: Specifies the `AWSLoadBalancerController` object.
100-
`metatdata.name`:: Specifies the {aws-short} Load Balancer Controller name. All related resources use this instance name as a suffix.
101-
`stsIAMRoleARN`:: Specifies the ARN role for the {aws-short} Load Balancer Controller. The `CredentialsRequest` object uses this ARN role to provision the {aws-short} credentials. An example of `<albc_role_arn>` is `arn:aws:iam::777777777777:role/albo-controller`.
102-
89+
<1> Defines the `AWSLoadBalancerController` object.
90+
<2> Defines the {aws-short} Load Balancer Controller name. All related resources use this instance name as a suffix.
91+
<3> Specifies the ARN role for the {aws-short} Load Balancer Controller. The `CredentialsRequest` object uses this ARN role to provision the {aws-short} credentials. An example of `<albc_role_arn>` is `arn:aws:iam::777777777777:role/albo-controller`.

modules/using-aws-cli-create-iam-role-alb-operator.adoc

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
[id="using-aws-cli-create-iam-role-alb-operator_{context}"]
77
= Creating an AWS IAM role by using the AWS CLI
88

9-
[role="_abstract"]
10-
To enable the {aws-short} Load Balancer Operator to interact with subnets and VPCs, create an {aws-short} IAM role by using the {aws-short} CLI. This enables the Operator to access and manage the necessary network resources within the cluster.
9+
You can use the {aws-short} Command Line Interface to create an IAM role for the {aws-short} Load Balancer Operator. The IAM role is used to interact with subnets and Virtual Private Clouds (VPCs).
1110

1211
.Prerequisites
1312

@@ -26,24 +25,21 @@ $ cat <<EOF > albo-operator-trust-policy.json
2625
{
2726
"Effect": "Allow",
2827
"Principal": {
29-
"Federated": "<oidc_arn>"
28+
"Federated": "<oidc_arn>" <1>
3029
},
3130
"Action": "sts:AssumeRoleWithWebIdentity",
3231
"Condition": {
3332
"StringEquals": {
34-
"<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager"
33+
"<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager" <2>
3534
}
3635
}
3736
}
3837
]
3938
}
4039
EOF
4140
----
42-
+
43-
where:
44-
+
45-
`<oidc_arn>`:: Specifies the Amazon Resource Name (ARN) of the OIDC identity provider, such as `arn:aws:iam::777777777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
46-
`serviceaccount`:: Specifies the service account for the {aws-short} Load Balancer Controller. An example of `<cluster_oidc_endpoint>` is `rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
41+
<1> Specifies the Amazon Resource Name (ARN) of the OIDC identity provider, such as `arn:aws:iam::777777777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
42+
<2> Specifies the service account for the {aws-short} Load Balancer Controller. An example of `<cluster_oidc_endpoint>` is `rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f`.
4743

4844
. Create the IAM role with the generated trust policy by running the following command:
4945
+
@@ -61,10 +57,7 @@ STATEMENT sts:AssumeRoleWithWebIdentity Allow
6157
STRINGEQUALS system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-controller-manager
6258
PRINCIPAL arn:aws:iam:<aws_account_number>:oidc-provider/<cluster_oidc_endpoint>
6359
----
64-
+
65-
where:
66-
+
67-
`<aws_account_number>`:: Specifies the ARN of the created {aws-short} IAM role for the {aws-short} Load Balancer Operator, such as `arn:aws:iam::777777777777:role/albo-operator`.
60+
<1> Note the ARN of the created {aws-short} IAM role that was created for the {aws-short} Load Balancer Operator, such as `arn:aws:iam::777777777777:role/albo-operator`.
6861

6962
. Download the permission policy for the {aws-short} Load Balancer Operator by running the following command:
7063
+

modules/using-ccoctl-create-iam-role-alb-controller.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
= Creating an AWS IAM role for the controller by using the Cloud Credential Operator utility
88

99
[role="_abstract"]
10-
To enable the {aws-short} Load Balancer Controller to interact with subnets and VPCs, create an IAM role by using the Cloud Credential Operator utility (`ccoctl`). This utility ensures the controller has the specific permissions required to manage network resources within the cluster.
10+
You can use the Cloud Credential Operator utility (`ccoctl`) to create an {aws-short} IAM role for the {aws-short} Load Balancer Controller. An {aws-short} IAM role is used to interact with subnets and Virtual Private Clouds (VPCs).
1111

1212
.Prerequisites
1313

@@ -36,14 +36,14 @@ $ ccoctl aws create-iam-roles \
3636
.Example output
3737
[source,terminal]
3838
----
39-
2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-controller created
39+
2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-controller created <1>
4040
2023/09/12 11:38:57 Saved credentials configuration to: /home/user/<credentials_requests_dir>/manifests/aws-load-balancer-operator-aws-load-balancer-controller-credentials.yaml
4141
2023/09/12 11:38:58 Updated Role policy for Role <name>-aws-load-balancer-operator-aws-load-balancer-controller created
4242
----
4343
+
4444
where:
45-
+
46-
`<name>`:: Specifies the Amazon Resource Name (ARN) for an {aws-short} IAM role that was created for the {aws-short} Load Balancer Controller, such as `arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-controller`.
45+
+
46+
`<`name>`:: Specifies the Amazon Resource Name (ARN) for an {aws-short} IAM role that was created for the {aws-short} Load Balancer Controller, such as `arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-controller`.
4747
+
4848
[NOTE]
4949
====

modules/using-ccoctl-create-iam-role-alb-operator.adoc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
[id="using-ccoctl-create-iam-role-alb-operator_{context}"]
77
= Creating an AWS IAM role by using the Cloud Credential Operator utility
88

9-
[role="_abstract"]
10-
To enable the {aws-short} Load Balancer Operator to interact with subnets and VPCs, create an {aws-short} IAM role by using the Cloud Credential Operator utility (`ccoctl`). By doing this task, you can generate the necessary credentials for the operator to function correctly within the cluster environment.
9+
You can use the Cloud Credential Operator utility (`ccoctl`) to create an {aws-short} IAM role for the {aws-short} Load Balancer Operator. An {aws-short} IAM role interacts with subnets and Virtual Private Clouds (VPCs).
1110

1211
.Prerequisites
1312

@@ -36,14 +35,11 @@ $ ccoctl aws create-iam-roles \
3635
.Example output
3736
[source,terminal]
3837
----
39-
2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator created
38+
2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator created <1>
4039
2023/09/12 11:38:57 Saved credentials configuration to: /home/user/<credentials_requests_dir>/manifests/aws-load-balancer-operator-aws-load-balancer-operator-credentials.yaml
4140
2023/09/12 11:38:58 Updated Role policy for Role <name>-aws-load-balancer-operator-aws-load-balancer-operator created
4241
----
43-
+
44-
where:
45-
+
46-
`<name>`:: Specifies the Amazon Resource Name (ARN) for an {aws-short} IAM role that was created for the {aws-short} Load Balancer Operator, such as `arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator`.
42+
<1> Note the Amazon Resource Name (ARN) of an {aws-short} IAM role that was created for the {aws-short} Load Balancer Operator, such as `arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator`.
4743
+
4844
[NOTE]
4945
====

0 commit comments

Comments
 (0)