diff --git a/roles/post_install/.travis.yml b/roles/_archive/post_install/.travis.yml similarity index 100% rename from roles/post_install/.travis.yml rename to roles/_archive/post_install/.travis.yml diff --git a/roles/post_install/README.md b/roles/_archive/post_install/README.md similarity index 100% rename from roles/post_install/README.md rename to roles/_archive/post_install/README.md diff --git a/roles/post_install/defaults/main.yml b/roles/_archive/post_install/defaults/main.yml similarity index 100% rename from roles/post_install/defaults/main.yml rename to roles/_archive/post_install/defaults/main.yml diff --git a/roles/post_install/handlers/main.yml b/roles/_archive/post_install/handlers/main.yml similarity index 100% rename from roles/post_install/handlers/main.yml rename to roles/_archive/post_install/handlers/main.yml diff --git a/roles/post_install/meta/main.yml b/roles/_archive/post_install/meta/main.yml similarity index 100% rename from roles/post_install/meta/main.yml rename to roles/_archive/post_install/meta/main.yml diff --git a/roles/post_install/tasks/main.yml b/roles/_archive/post_install/tasks/main.yml similarity index 100% rename from roles/post_install/tasks/main.yml rename to roles/_archive/post_install/tasks/main.yml diff --git a/roles/post_install/tests/inventory b/roles/_archive/post_install/tests/inventory similarity index 100% rename from roles/post_install/tests/inventory rename to roles/_archive/post_install/tests/inventory diff --git a/roles/post_install/tests/test.yml b/roles/_archive/post_install/tests/test.yml similarity index 100% rename from roles/post_install/tests/test.yml rename to roles/_archive/post_install/tests/test.yml diff --git a/roles/post_install/vars/main.yml b/roles/_archive/post_install/vars/main.yml similarity index 100% rename from roles/post_install/vars/main.yml rename to roles/_archive/post_install/vars/main.yml diff --git a/roles/finish/README.md b/roles/finish/README.md index 741cf98..dffc097 100644 --- a/roles/finish/README.md +++ b/roles/finish/README.md @@ -1,7 +1,7 @@ finish Role ========= -This role finishes the installation of a ROSA cluster +This is a meta role designed to print out useful things about a cluster after its installed. It shows the URL to the console, API, and the admin password. License ------- diff --git a/roles/network_math/README.md b/roles/network_math/README.md index e69de29..2f189a3 100644 --- a/roles/network_math/README.md +++ b/roles/network_math/README.md @@ -0,0 +1,23 @@ +# network_math + +## Description + +This module calculates private and public subnet CIDR blocks based on the `rosa_vpc_cidr` and `rosa_egress_vpc_cidr` variables that can then be used to create subnets. + +## License + +Copyright 2024 Red Hat + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + diff --git a/roles/rosa_account_roles/README.md b/roles/rosa_account_roles/README.md index 225dd44..8d7f740 100644 --- a/roles/rosa_account_roles/README.md +++ b/roles/rosa_account_roles/README.md @@ -1,38 +1,43 @@ -Role Name +rosa_account_roles ========= -A brief description of the role goes here. +This role is designed to create the necessary roles and policies for a ROSA account. It can be used once per account (ROSA clusters can share account roles), or once per cluster depending on your needs. -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- +The following variables are required for this role: -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. +```yaml +state: present|absent +rosa_account_roles: + hosted_cp: False + version: "4.14" + prefix: ManagedOpenShift -Example Playbook ----------------- + # set force to true to delete the default account role + # (prefix is ManagedOpenShift or ManagedOpenShift-HCP) + force: False -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +``` - - hosts: servers - roles: - - { role: username.rolename, x: 42 } License ------- -BSD +Copyright 2024 Red Hat + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_cluster/README.md b/roles/rosa_cluster/README.md index 225dd44..b528589 100644 --- a/roles/rosa_cluster/README.md +++ b/roles/rosa_cluster/README.md @@ -1,7 +1,7 @@ -Role Name +rosa_cluster ========= -A brief description of the role goes here. +The rosa_cluster role will create or destroy a ROSA cluster Requirements ------------ @@ -11,28 +11,56 @@ Any pre-requisites that may not be covered by Ansible itself or the role should Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. +```yaml +state: present|absent +rosa_cluster: + name: rosa-cluster + admin_username: admin + admin_password: 'MyRosa1234!' + subnet_ids: [] + http_proxy: http://{{ proxy_private_ip }}:3128 + https_proxy: http://{{ proxy_private_ip }}:3128 + no_proxy: ~ + additional_trust_bundle_file: "roles/proxy_create/files/squid-ca-cert.pem" + disable_workload_monitoring: false + aws_account_id: ~ + account_roles_prefix: Managed-OpenShift + region: us-east-2 + private_link: false + vpc_cidr: 10.0.0.0/20 + multi_az: false + version: 4.14 + hosted_cp: false + autoscaling: false + min_replicas: + max_replicas: + compute_nodes: # 3 for multi-az, 2 for single-az + compute_machine_type: "m5.xlarge" + role_arn: + support_role_arn: + controlplane_iam_role: + worker_iam_role: + operator_roles_prefix: + kms_key_arn: + tags: {} + wait: true +``` -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -Example Playbook ----------------- +License +------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +Copyright 2024 Red Hat - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -License -------- + http://www.apache.org/licenses/LICENSE-2.0 -BSD +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_dns_resolver/README.md b/roles/rosa_dns_resolver/README.md index 225dd44..bc8d938 100644 --- a/roles/rosa_dns_resolver/README.md +++ b/roles/rosa_dns_resolver/README.md @@ -1,38 +1,39 @@ -Role Name +rosa_dns_resolver ========= -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. +this role will create or destroy a Route53 DNS resolver for a ROSA cluster in multiple VPCs in order to make your private-link ROSA cluster accessible from multiple VPCs. Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. +```yaml +state: present|absent +rosa_dns_resolver: + zone: example.com. + tags: {} + vpcs: + - id: vpc-12345678 + region: us-east-2 + - id: vpc-87654321 + region: us-east-2 -Dependencies ------------- +``` -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -Example Playbook ----------------- +License +------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +Copyright 2024 Red Hat - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -License -------- + http://www.apache.org/licenses/LICENSE-2.0 -BSD +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_ec2_instance/README.md b/roles/rosa_ec2_instance/README.md index 225dd44..6f52393 100644 --- a/roles/rosa_ec2_instance/README.md +++ b/roles/rosa_ec2_instance/README.md @@ -1,38 +1,53 @@ -Role Name +rosa_ec2_instance ========= -A brief description of the role goes here. +A helper role to create ec2 instances that can be used as jumphosts or secure proxies for ROSA clusters to more easily allow for access to the private ROSA cluster from a local machine. -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- +```yaml +state: present|absent +rosa_ec2_instance: + name: rosa-ec2-instance + ami: "" # if left blank will pick latest RHEL 8 AMI based on the below pattern + ami_name: "RHEL-8.*_HVM-*-x86_64-*Hourly*" + ami_owner: "309956199498" + instance_type: t2.micro + region: us-east-2 + user_data: # "{{ lookup('file', 'basic_user_data.sh') }}" + user_data_template: ~ + assign_public_ip: false + vpc_id: + subnet_id: + security_group_rules: + - proto: tcp + ports: [22] + cidr_ip: 0.0.0.0/0 + rule_desc: allow ssh + ssh_public_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" + tags: {} + # extra vars that can be set for templates + template_vars: {} + +``` -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -Example Playbook ----------------- +License +------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +Copyright 2024 Red Hat - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -License -------- + http://www.apache.org/licenses/LICENSE-2.0 -BSD +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_egress_vpc/README.md b/roles/rosa_egress_vpc/README.md index 225dd44..d5f4a1b 100644 --- a/roles/rosa_egress_vpc/README.md +++ b/roles/rosa_egress_vpc/README.md @@ -1,38 +1,48 @@ -Role Name +rosa_egress_vpc ========= -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. +This role creates or destroys a VPC with public and private subnets and a transit gateway to allow for egress traffic from a ROSA cluster to the internet. Useful for private-link ROSA clusters that utilize a private VPC and Transit Gateway. Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. +```yaml +state: present|absent +rosa_egress_vpc: + extra_tags: {} + name: "rosa-egress-vpc" + region: "us-east-2" + cidr: "" + transit_gateway: + name: + id: + arn: + route_table: + public_subnets: + - cidr: "10.0.128.0/17" + az: "us-east-2a" + resource_tags: { "name":"{{ cluster_name }}-egress-public" } + private_subnets: + - cidr: "10.0.0.0/17" + az: "us-east-2a" + resource_tags: { "name":"{{ cluster_name }}-egress-private" } +``` -Example Playbook ----------------- +License +------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +Copyright 2024 Red Hat - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -License -------- + http://www.apache.org/licenses/LICENSE-2.0 -BSD +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_operator_roles/README.md b/roles/rosa_operator_roles/README.md index 225dd44..b681895 100644 --- a/roles/rosa_operator_roles/README.md +++ b/roles/rosa_operator_roles/README.md @@ -1,38 +1,35 @@ -Role Name +rosa_operator_roles ========= -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. +Create or destroy the necessary operator roles and policies for a ROSA cluster. Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. - -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. +```yaml +state: present|absent +rosa_operator_roles: + hosted_cp: false + oidc_endpoint_url: '' + cluster_id: '' + cluster_name: rosa-cluster +``` -Example Playbook ----------------- +License +------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +Copyright 2024 Red Hat - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -License -------- + http://www.apache.org/licenses/LICENSE-2.0 -BSD +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_transit_gateway/README.md b/roles/rosa_transit_gateway/README.md index 225dd44..33c5d47 100644 --- a/roles/rosa_transit_gateway/README.md +++ b/roles/rosa_transit_gateway/README.md @@ -1,38 +1,36 @@ -Role Name +rosa_transit_gateway ========= -A brief description of the role goes here. - -Requirements ------------- - -Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. +This role creates or destroys a transit gateway for a ROSA cluster. This is useful for private-link ROSA clusters that utilize a private VPC and Transit Gateway for egress traffic to the internet. Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. +```yaml +state: present|absent +rosa_transit_gateway: + name: rosa-tgw + region: us-east-2 + cidr: 10.0.0.0/16 + tags: {} -Dependencies ------------- +``` -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -Example Playbook ----------------- +License +------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +Copyright 2024 Red Hat - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -License -------- + http://www.apache.org/licenses/LICENSE-2.0 -BSD +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_vpc/README.md b/roles/rosa_vpc/README.md index 225dd44..a86b5ea 100644 --- a/roles/rosa_vpc/README.md +++ b/roles/rosa_vpc/README.md @@ -11,28 +11,50 @@ Any pre-requisites that may not be covered by Ansible itself or the role should Role Variables -------------- -A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. +```yaml +state: present|absent +rosa_vpc: + extra_tags: {} + name: "rosa-vpc" + region: "us-east-2" + cidr: "" + # set to true if you want this VPC to act as an egress for a TGW + transit_gateway: {} + # name: + # id: + # arn: + # route_table: + + add_ocp_subnet_tags: true + endpoints: + # set these to empty lists to skip + gateway_endpoints: [s3] + interface_endpoints: [sts,ec2,elasticloadbalancing] + rosa_vpc.public_subnets: + - cidr: "10.0.128.0/17" + az: "us-east-2a" + resource_tags: { "name":"{{ cluster_name }}-public" } + rosa_vpc.private_subnets: + - cidr: "10.0.0.0/17" + az: "us-east-2a" + resource_tags: { "name":"{{ cluster_name }}-private" } +``` -Dependencies ------------- - -A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles. - -Example Playbook ----------------- +License +------- -Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: +Copyright 2024 Red Hat - - hosts: servers - roles: - - { role: username.rolename, x: 42 } +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at -License -------- + http://www.apache.org/licenses/LICENSE-2.0 -BSD +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed). diff --git a/roles/rosa_vpc/defaults/main.yml b/roles/rosa_vpc/defaults/main.yml index 49fba90..24dc18e 100644 --- a/roles/rosa_vpc/defaults/main.yml +++ b/roles/rosa_vpc/defaults/main.yml @@ -6,7 +6,6 @@ rosa_vpc: region: "us-east-2" cidr: "" # set to true if you want this VPC to act as an egress for a TGW - egress_vpc: false transit_gateway: {} # name: # id: @@ -14,13 +13,10 @@ rosa_vpc: # route_table: add_ocp_subnet_tags: true - # set to true if you want your nat gws for your private traffic. endpoints: # set these to empty lists to skip gateway_endpoints: [s3] interface_endpoints: [sts,ec2,elasticloadbalancing] -## when not set the role `network_math` will attempt to figure it out -## using subnet math # rosa_vpc.public_subnets: # - cidr: "10.0.128.0/17" # az: "us-east-2a" diff --git a/roles/service_quotas/README.md b/roles/service_quotas/README.md index 1308a4f..e60ad37 100644 --- a/roles/service_quotas/README.md +++ b/roles/service_quotas/README.md @@ -24,9 +24,18 @@ Including an example of how to use your role (for instance, with variables passe License ------- -BSD +Copyright 2024 Red Hat + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Author Information ------------------- -An optional section for the role authors to include contact information, or a website (HTML is not allowed).