Skip to content

Commit 344c148

Browse files
authored
Merge pull request #58031 from EricPonvelle/OSDOCS-5660_ROSA-HCP-Context
[OSDOCS-5660] Added additional context to ROSA HCP documentation
2 parents 34dcc4e + 6cf24a4 commit 344c148

8 files changed

+212
-12
lines changed

_attributes/attributes-openshift-dedicated.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,4 @@
2929
:openshift-local-productname: Red Hat OpenShift Local
3030
:openshift-dev-spaces-productname: Red Hat OpenShift Dev Spaces
3131
:hcp: hosted control planes
32+
:hcp-first: Hosted control planes
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * rosa_install_access_delete_clusters/rosa-sts-creating-a-cluster-quickly.adoc
4+
// * rosa_getting_started/quickstart.adoc
5+
6+
:_content-type: CONCEPT
7+
[id="rosa-hcp-byo-oidc-options_{context}"]
8+
= Parameter options for creating your own OpenID Connect configuration
9+
10+
The following options may be added to the `rosa create oidc-config` command. All of these parameters are optional. Running the `rosa create oidc-config` command without parameters creates an unmanaged OIDC configuration.
11+
12+
[NOTE]
13+
====
14+
You are required to register the unmanaged OIDC configuration by posting a request to `/oidc_configs` through OCM. You receive an ID in the response. Use this ID to create a cluster.
15+
====
16+
17+
[discrete]
18+
[id="rosa-oidc-raw-files_{context}"]
19+
== raw-files
20+
21+
Allows you to provide raw files for the private RSA key. This key is named `rosa-private-key-oidc-<random_label_of_length_4>.key`. You also receive a discovery document, named `discovery-document-oidc-<random_label_of_length_4>.json`, and a JSON Web Key Set, named `jwks-oidc-<random_label_of_length_4>.json`.
22+
23+
You use these files to set up the endpoint. This endpoint responds to `/.well-known/openid-configuration` with the discovery document and on `keys.json` with the JSON Web Key Set. The private key is to be stored in Amazon Web Services (AWS) Secrets Manager Service (SMS) as plaintext.
24+
25+
.Example
26+
[source,terminal]
27+
----
28+
$ rosa create oidc-config --raw-files
29+
----
30+
31+
[discrete]
32+
[id="rosa-oidc-mode_{context}"]
33+
== mode
34+
35+
Allows you to specify the mode to create your OIDC configuration. With the `manual` option, you receive AWS commands that setup the OIDC configuration within an S3 bucket. This option stores the private key in the Secrets Manager. With the `manual` option, the OIDC Endpoint URL is the URL for the S3 bucket. You must retrieve the Secrets Manager ARN to register the OIDC configuration with OCM.
36+
37+
Using the `auto` option, like with manual mode, you receive the same OIDC configuration with AWS resources. One change is that ROSA calls AWS, so you do not need to do anything else. The OIDC Endpoint URL is the URL for the S3 bucket. The CLI retrieves the Secrets Manager ARN, registers the OIDC configuration with OCM, and reports a second ROSA command the user can run to continue with creation of STS cluster.
38+
39+
.Example
40+
[source,terminal]
41+
----
42+
$ rosa create oidc-config --mode=<auto|manual>
43+
----
44+
45+
[discrete]
46+
[id="rosa-oidc-managed_{context}"]
47+
== managed
48+
49+
Creates an OIDC configuration that is hosted under Red Hat's AWS account. This command creates a private key that responds directly with an OIDC Config ID for you to use when creating the STS cluster.
50+
51+
.Example
52+
[source,terminal]
53+
----
54+
$ rosa create oidc-config --managed
55+
----
56+
57+
.Sample output
58+
[source,terminal]
59+
----
60+
W: For a managed OIDC Config only auto mode is supported. However, you may choose the provider creation mode
61+
? OIDC Provider creation mode: auto
62+
I: Setting up managed OIDC configuration
63+
I: Please run the following command to create a cluster with this oidc config
64+
rosa create cluster --sts --oidc-config-id 233jnu62i9aphpucsj9kueqlkr1vcgra
65+
I: Creating OIDC provider using 'arn:aws:iam::242819244:user/userName'
66+
? Create the OIDC provider? Yes
67+
I: Created OIDC provider with ARN 'arn:aws:iam::242819244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/233jnu62i9aphpucsj9kueqlkr1vcgra'
68+
----

modules/rosa-hcp-byo-oidc.adoc

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

55
:_content-type: PROCEDURE
66
[id="rosa-hcp-byo-oidc_{context}"]
7-
= Configuring your own OpenID Connect provider
7+
= Generating your own OpenID Connect configuration
88

9-
You can use your own OpenID Connect (OIDC) provider with {hcp} for {product-title} (ROSA).
9+
You can create your own OpenID Connect (OIDC) configuration before you create your cluster by using the `rosa create oidc-config --mode=auto` command. This command produces an OIDC configuration that is hosted under Red Hat's AWS account. The `rosa` CLI provides some additional options for creating your OIDC configuration.
10+
11+
You can generate managed or unmanaged OIDC configurations. Customer-hosted, or unmanaged, OIDC configurations are stored within your AWS account with the configurations also being flagged for use with {cluster-manager-first}. This process also provides you with a private key to have access to and take ownership of the configurations. Red-Hat hosted, or managed, OIDC configurations are stored within Red Hat's AWS account. This process provides you with private keys for accessing the configuration.
12+
13+
[NOTE]
14+
====
15+
When using the `--managed` parameter, you can only create a new managed OIDC configuration if there are no unused configurations; all existing OIDC configurations must be attached to a cluster. If you delete all of your clusters with attached managed OIDC configurations, you cannot create a new configuration until the unused one is reused or deleted.
16+
====
1017

1118
.Prerequisites
1219

@@ -19,7 +26,7 @@ You can use your own OpenID Connect (OIDC) provider with {hcp} for {product-titl
1926
+
2027
[source,terminal]
2128
----
22-
$ rosa create oidc-config --mode auto
29+
$ rosa create oidc-config --mode=auto
2330
----
2431
+
2532
This command returns the following information.
@@ -28,11 +35,34 @@ This command returns the following information.
2835
+
2936
[source,terminal]
3037
----
31-
I: This command will create a S3 bucket populating it with documents to be compliant with OIDC protocol. It will also create a Secret in Secrets Manager containing the private key.
32-
I: Please run command below to create a cluster with this oidc config:
33-
rosa create cluster --sts \
34-
--oidc-endpoint-url https://oidc-l8c0.s3.us-east-1.amazonaws.com \
35-
--oidc-private-key-secret-arn arn:aws:secretsmanager:us-east-1:269733383066:secret:rosa-private-key-oidc-l8c0-4vdMVv
38+
I: This command will create a S3 bucket populating it with documents to be compliant with OIDC protocol. It will also create a Secret in Secrets Manager containing the private key
39+
I: Using arn:aws:iam::242819244:role/ManagedOpenShift-Installer-Role for the Installer role
40+
? Prefix for OIDC (optional):
41+
I: Setting up unmanaged OIDC configuration 'oidc-r7u1'
42+
I: Please run the following command to create a cluster with this oidc config
43+
rosa create cluster --sts --oidc-config-id 233hvnrjoqu14jltk6lhbhf2tj11f8un
44+
I: Creating OIDC provider using 'arn:aws:iam::242819244:user/userName'
45+
? Create the OIDC provider? Yes
46+
I: Created OIDC provider with ARN 'arn:aws:iam::242819244:oidc-provider/oidc-r7u1.s3.us-east-1.amazonaws.com'
47+
----
48+
49+
When creating your cluster, you must supply the OIDC config ID. The CLI output provides this value for `--mode auto`, otherwise you must to determine these values based on `aws` CLI output for `--mode manual`.
50+
51+
.Verification
52+
53+
. You can list the possible OIDC configurations available for your clusters that are associated with your user organization. Run the following command:
54+
+
55+
[source,terminal]
56+
----
57+
$ rosa list oidc-config
58+
----
59+
+
60+
.Sample output
61+
+
62+
[source,terminal]
3663
----
64+
ID MANAGED ISSUER URL SECRET ARN
65+
2330dbs0n8m3chkkr25gkkcd8pnj3lk2 true https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
66+
233hvnrjoqu14jltk6lhbhf2tj11f8un false https://oidc-r7u1.s3.us-east-1.amazonaws.com aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
3767
38-
When creating your cluster, you must supply the OIDC endpoint URL and secret manager secret ARN. The CLI output provides both values for `--mode auto`, otherwise you must to determine these values based on `aws` CLI output for `--mode manual`.
68+
----
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * rosa_hcp/rosa-hcp-sts-creating-a-cluster-quickly.adoc
4+
5+
:_content-type: CONCEPT
6+
[id="rosa-hcp-classic-comparison_{context}"]
7+
= Comparing ROSA Classic and hosted control planes for ROSA
8+
9+
{hcp-first} for {product-title} (ROSA) offers a different way to create a managed ROSA cluster. {hcp-first} for ROSA offers a reduced-cost solution with focuses on reliability and efficiency. With a focus on efficiency, you can quickly create a new cluster and deploy applications in minutes.
10+
11+
{hcp-first} for ROSA requires only a minimum two nodes, making it ideal for smaller projects, while still being able to scale to support larger projects and enterprises.
12+
13+
.ROSA architectures comparison table
14+
15+
[cols="3a,8a,8a",options="header"]
16+
|===
17+
| {nbsp} +
18+
| Hosted Control Plane
19+
| Classic
20+
21+
| *What are each of the installation paths?*
22+
| This installation path deploys control plane components, such as etcd, API server, and oauth, that are hosted separately on AWS in a Red Hat-owned and managed account.
23+
| This installation path deploys the control plane components side by side with infrastructure and worker nodes that are hosted together in the customer’s same AWS account.
24+
25+
| *Provisioning Time*
26+
| Approximately 10 minutes
27+
| Approximately 40 minutes
28+
29+
| *Architecture*
30+
|
31+
* Underlying control plane infrastructure is fully managed and directly unavailable to end customers except through dedicated and explicitly exposed endpoints
32+
|
33+
* Customer is responsible for hosting control plane and AWS infrastructure, while still being _managed_ by Red Hat
34+
* All-in-one {product-title} infrastructure architecture
35+
36+
| *Footprint*
37+
| 1 cluster requires a minimum of 2 nodes
38+
| 1 cluster requires minimum of 7 nodes
39+
40+
| *Deployment*
41+
|
42+
* Deploy using ROSA CLI or web UI
43+
* Customers provision "Hosted Clusters" that deploy the control plane components into Red Hat's AWS account
44+
* Customers provision "Machine Pools" that deploy worker nodes into the customer's AWS account
45+
|
46+
* Deploy using ROSA CLI or web UI
47+
* Full cluster provisioning occurs in customer's AWS account
48+
49+
| *Upgrades*
50+
| Selectively upgrade control plane and machine pools separately
51+
| Entire cluster is upgraded at one time
52+
53+
| *Regional Availability*
54+
|
55+
//This list is for GA; conceal until ready.
56+
// * us-east-1
57+
* us-east-2
58+
// * us-west2
59+
* eu-west-1
60+
// * eu-central-1
61+
// * ap-southeast-2
62+
| Available for purchase in all countries where AWS is commercially available
63+
64+
| *Compliance*
65+
|
66+
* Compliance certifications planned for after GA
67+
* FIPS compliance not yet available
68+
|
69+
* ISO 27001, 17, 18
70+
* SOC 2 Type 2
71+
* SOC 3
72+
* PCI-DSS
73+
* HIPAA
74+
75+
|===

modules/rosa-hcp-sts-creating-a-cluster-cli.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ To successfully install ROSA clusters, use the latest version of the ROSA CLI (`
3636
+
3737
[NOTE]
3838
====
39-
If you are using your own OIDC provider, you must include the endpoint URL and ARN arguments, such as `--oidc-endpoint-url <oidc_endpoint_url> --oidc-private-key-secret-arn <oidc_private_key_secret_arn>`.
39+
If you are using your own OIDC provider, you must include the OIDC config ID, such as `--oidc-config-id <oidc_config_id>`.
4040
====
4141

4242
** Create a cluster with a single, initial machine pool, publicly available API, and publicly available Ingress by running the following command:

modules/rosa-sts-overview-of-the-default-cluster-specifications.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ endif::rosa-standalone[]
3838

3939
|Cluster settings
4040
|* Default cluster version: Latest
41+
ifndef::rosa-hcp[]
4142
* Default AWS region for installations using the {cluster-manager-first} {hybrid-console-second}: us-east-1 (US East, North Virginia)
43+
endif::rosa-hcp[]
4244
* Default AWS region for installations using the `rosa` CLI: Defined by your `aws` CLI configuration
4345
* Availability: Single zone for the data plane
4446
* Monitoring for user-defined projects: Enabled

rosa_hcp/rosa-hcp-sts-creating-a-cluster-quickly.adoc

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,22 @@ toc::[]
1111
If you are looking for a quickstart guide for ROSA, see xref:../rosa_getting_started/rosa-quickstart-guide-ui.adoc#rosa-quickstart-guide-ui[{product-title} quickstart guide].
1212
====
1313

14+
{hcp-first} for {product-title} (ROSA) offers a more efficient and reliable architecture for creating ROSA clusters. With {hcp} for ROSA, each cluster has a dedicated control plane that is isolated in a Red Hat account.
15+
16+
[IMPORTANT]
17+
====
18+
Since it is not possible to "upgrade" to a {hcp} architecture, you must create a new cluster to benefit from the {hcp} for {product-title} functionality.
19+
====
20+
1421
Create {hcp} for a {product-title} (ROSA) cluster quickly by using the default options and automatic AWS Identity and Access Management (IAM) resource creation. You can deploy your cluster by using the ROSA CLI (`rosa`).
1522

1623
[NOTE]
1724
====
1825
All {hcp} for ROSA clusters require AWS Security Token Service (STS) to be enabled.
1926
====
2027

28+
include::modules/rosa-hcp-classic-comparison.adoc[leveloffset=+2]
29+
2130
The procedures in this document use the `auto` mode in the ROSA CLI (`rosa`) to immediately create the required IAM resources using the current AWS account. The required resources include the account-wide IAM roles and policies, cluster-specific Operator roles and policies, and OpenID Connect (OIDC) identity provider.
2231

2332
Alternatively, you can use `manual` mode, which outputs the `aws` commands needed to create the IAM resources instead of deploying them automatically. For steps to deploy a {hcp} for ROSA cluster by using `manual` mode or with customizations, see xref:../rosa_install_access_delete_clusters/rosa-sts-creating-a-cluster-with-customizations.adoc#rosa-sts-creating-cluster-using-customizations_rosa-sts-creating-a-cluster-with-customizations[Creating a cluster using customizations].
@@ -55,8 +64,17 @@ include::modules/rosa-hcp-vpc-manual.adoc[leveloffset=+2]
5564
* link:https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html[Get Started with Amazon VPC]
5665
* link:https://developer.hashicorp.com/terraform[HashiCorp Terraform documentation]
5766
58-
include::modules/rosa-hcp-byo-oidc.adoc[leveloffset=+1]
59-
//include::modules/rosa-sts-creating-a-cluster-using-defaults-ocm.adoc[leveloffset=+2]
67+
[id="rosa-hcp-byo-odic-overview_{context}"]
68+
== Creating an OpenID Connect Configuration
69+
70+
When using a Red Hat-hosted cluster, you can create a managed or unmanaged OpenID Connect (OIDC) configuration that is generated by the CLI. With a managed OIDC configuration, it is stored within Red Hat's AWS account. A generated unmanaged OIDC configuration is stored in your AWS account. The configuration is registered to be used with OCM. This generated unmanaged OIDC configuration provides the private key for you to access. This process does not provide a private key for users to access.
71+
72+
[discrete]
73+
include::modules/rosa-hcp-byo-oidc.adoc[leveloffset=+2]
74+
75+
[discrete]
76+
include::modules/rosa-hcp-byo-oidc-options.adoc[leveloffset=+2]
77+
6078
include::modules/rosa-hcp-sts-creating-a-cluster-cli.adoc[leveloffset=+1]
6179

6280
[id="next-steps-2_{context}"]

snippets/rosa-hcp-rn.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Text snippet included in the following modules:
2+
//
3+
// * rosa_release_notes/rosa-release-notes.adoc
4+
5+
:_content-type: SNIPPET
6+
* With the latest version of {product-title}, {product-title} allows you to create a {hcp} for ROSA cluster. This functionality offers a lower-cost, reliable ROSA option for small-scale usage. For more information, see link:https://docs.openshift.com/rosa-hcp/rosa_hcp/rosa-hcp-sts-creating-a-cluster-quickly.html[Creating hosted control planes for ROSA cluster using the default options].

0 commit comments

Comments
 (0)