Skip to content

Commit 5a1f9eb

Browse files
authored
Improve GCP APIs Services check and Enable (#129)
Fetch listing of enabled services and check against required, only request new services to enable if necessary to avoid error where user lacks authorization to call the enable command Signed-off-by: Daniel Chaffelson <[email protected]>
1 parent 13c7aa2 commit 5a1f9eb

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

roles/platform/tasks/initialize_setup_gcp.yml

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,22 @@
1515
# limitations under the License.
1616

1717
# https://docs.cloudera.com/management-console/cloud/requirements-gcp/topics/mc-gcp_apis.html
18-
- name: Ensure Google Services Enabled
18+
- name: Fetch listing of Enabled GCP Service APIs
1919
command: >
20-
gcloud services enable
21-
compute.googleapis.com
22-
runtimeconfig.googleapis.com
23-
iam.googleapis.com
24-
iamcredentials.googleapis.com
25-
storage.googleapis.com
26-
servicenetworking.googleapis.com
27-
sqladmin.googleapis.com
28-
--quiet
20+
gcloud services list --enabled --project {{ plat__gcp_project }}
21+
register: __gcp_services_info
22+
23+
- name: Determine list of missing APIs
24+
set_fact:
25+
__plat_gcp_services_to_enable: "{{ __plat_gcp_services_to_enable | default([]) + ([__gcp_service_item] if __gcp_service_item not in __gcp_services_info.stdout else []) | unique }}"
26+
loop: "{{ plat__gcp_required_services }}"
27+
loop_control:
28+
loop_var: __gcp_service_item
29+
30+
- name: Enable missing GCP Service APIs
31+
when: __plat_gcp_services_to_enable | length > 0
32+
command: >
33+
gcloud services enable --quiet {{ __gcp_enable_item }}
34+
loop: "{{ __plat_gcp_services_to_enable }}"
35+
loop_control:
36+
loop_var: __gcp_enable_item

roles/platform/vars/main.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,13 @@ plat__azure_roles:
8686
storcnt: 'Storage Blob Data Contributor'
8787
contrib: 'Contributor'
8888
owner: 'Owner'
89+
90+
91+
plat__gcp_required_services:
92+
- compute.googleapis.com
93+
- runtimeconfig.googleapis.com
94+
- iam.googleapis.com
95+
- iamcredentials.googleapis.com
96+
- storage.googleapis.com
97+
- servicenetworking.googleapis.com
98+
- sqladmin.googleapis.com

0 commit comments

Comments
 (0)