Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/configuration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ env:
enable_raz:
gcp:
auto_enable_services:
availability_zones:
manage_identities:
bindings:
cross_account:
Expand Down
5 changes: 2 additions & 3 deletions roles/platform/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}"
Expand Down Expand Up @@ -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) }}"

Expand Down
19 changes: 19 additions & 0 deletions roles/platform/tasks/initialize_setup_gcp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions roles/platform/tasks/setup_gcp_env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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) }}"