From 8c219bb1bfde07dfe4b4f1fc97c4a5ec072b3992 Mon Sep 17 00:00:00 2001 From: Webster Mudge Date: Mon, 26 Jun 2023 18:52:14 -0400 Subject: [PATCH 1/2] Add GCP region zones to CDP ENV creation Signed-off-by: Webster Mudge --- docs/configuration.yml | 1 + roles/platform/defaults/main.yml | 5 ++--- roles/platform/tasks/initialize_setup_gcp.yml | 19 +++++++++++++++++++ roles/platform/tasks/setup_gcp_env.yml | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/docs/configuration.yml b/docs/configuration.yml index d62e5001..5340f10b 100644 --- a/docs/configuration.yml +++ b/docs/configuration.yml @@ -245,6 +245,7 @@ env: enable_raz: gcp: auto_enable_services: + availability_zones: manage_identities: bindings: cross_account: diff --git a/roles/platform/defaults/main.yml b/roles/platform/defaults/main.yml index 8baf36bc..8c4a63a1 100644 --- a/roles/platform/defaults/main.yml +++ b/roles/platform/defaults/main.yml @@ -120,9 +120,6 @@ plat__aws_storage_suffix: "{{ env.aws.storage.suffix | defau plat__aws_role_tags: "{{ env.aws.role.tags | default({}) }}" plat__aws_policy_tags: "{{ env.aws.policy.tags | default({}) }}" plat__aws_storage_tags: "{{ env.aws.storage.tags | default({}) }}" -plat__aws_vpc_id: "{{ common__aws_vpc_id }}" -plat__aws_public_subnet_ids: "{{ common__aws_public_subnet_ids }}" -plat__aws_private_subnet_ids: "{{ common__aws_private_subnet_ids }}" plat__aws_xaccount_suffix: "{{ env.aws.role.label.cross_account | default(common__xaccount_suffix) }}" plat__aws_idbroker_suffix: "{{ common__aws_idbroker_suffix }}" @@ -150,6 +147,8 @@ plat__aws_policy_urls: "{{ plat__aws_policy_urls_default plat__gcp_project: "{{ common__gcp_project }}" plat__gcp_subnet_id: "{{ common__gcp_subnet_id }}" +plat__gcp_availability_zones: "{{ env.gcp.availability_zones | default([]) }}" + plat__gcp_role_suffix: "{{ env.gcp.role.suffix | default(common__role_suffix) }}" plat__gcp_storage_suffix: "{{ env.gcp.storage.suffix | default(common__storage_suffix) }}" diff --git a/roles/platform/tasks/initialize_setup_gcp.yml b/roles/platform/tasks/initialize_setup_gcp.yml index 8875878d..d6582905 100644 --- a/roles/platform/tasks/initialize_setup_gcp.yml +++ b/roles/platform/tasks/initialize_setup_gcp.yml @@ -14,6 +14,25 @@ # See the License for the specific language governing permissions and # limitations under the License. +- name: Discover available zones for GCP region + block: + - name: Fetch list of availability zones filtered by region + ansible.builtin.command: > + gcloud compute zones list --filter region={{ plat__region }} --format json + register: __gcp_availability_zones_info + + - name: Set fact for GCP availability zones + ansible.builtin.set_fact: + plat__gcp_availability_zones_discovered: "{{ __gcp_availability_zones_info.stdout | from_json | map(attribute='name') | list }}" + + - name: Confirm availability zone access for CDP Environment + when: plat__gcp_availability_zones | length > 0 + ansible.builtin.assert: + that: + - plat__gcp_availability_zones is subset(plat__gcp_availability_zones_discovered) + fail_msg: "The following zone(s) are not available in region '{{ plat__region }}': {{ plat__gcp_availability_zones | difference(plat__gcp_availability_zones_discovered) | join(', ') }}" + quiet: yes + # https://docs.cloudera.com/management-console/cloud/requirements-gcp/topics/mc-gcp_apis.html - name: Ensure Google Services Enabled when: plat__gcp_enable_services | bool diff --git a/roles/platform/tasks/setup_gcp_env.yml b/roles/platform/tasks/setup_gcp_env.yml index bb2c9881..ed35b900 100644 --- a/roles/platform/tasks/setup_gcp_env.yml +++ b/roles/platform/tasks/setup_gcp_env.yml @@ -34,3 +34,4 @@ tags: "{{ plat__tags }}" freeipa: instanceCountByGroup: "{{ plat__env_freeipa }}" + zones: "{{ plat__gcp_availability_zones | length > 0 | ternary(plat__gcp_availability_zones, omit) }}" From d36aa68566b7220cfb3307111a7192aa46e3ff61 Mon Sep 17 00:00:00 2001 From: Webster Mudge Date: Tue, 27 Jun 2023 09:21:24 -0400 Subject: [PATCH 2/2] Fix ternary check of AZ array Signed-off-by: Webster Mudge --- roles/platform/tasks/setup_gcp_env.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/platform/tasks/setup_gcp_env.yml b/roles/platform/tasks/setup_gcp_env.yml index ed35b900..9db07dc3 100644 --- a/roles/platform/tasks/setup_gcp_env.yml +++ b/roles/platform/tasks/setup_gcp_env.yml @@ -34,4 +34,4 @@ tags: "{{ plat__tags }}" freeipa: instanceCountByGroup: "{{ plat__env_freeipa }}" - zones: "{{ plat__gcp_availability_zones | length > 0 | ternary(plat__gcp_availability_zones, omit) }}" + zones: "{{ (plat__gcp_availability_zones | length > 0) | ternary(plat__gcp_availability_zones, omit) }}"