Skip to content

Commit ea7e498

Browse files
committed
More DE changes
1 parent 38e36fd commit ea7e498

File tree

9 files changed

+128
-48
lines changed

9 files changed

+128
-48
lines changed

roles/common/defaults/main.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ common__external_data_suffix: "{{ globals.labels.external_data | def
4545
common__datalake_admin_suffix: "{{ globals.labels.datalake_admin | default('dladmin') }}"
4646
common__ranger_audit_suffix: "{{ globals.labels.ranger_audit | default('audit') }}"
4747
common__cml_suffix: "{{ globals.labels.cml | default('cml') }}"
48+
common__cde_suffix: "{{ globals.labels.cde | default('cde') }}"
4849
common__igw_suffix: "{{ globals.labels.internet_gateway | default('igw') }}"
4950
common__app_suffix: "{{ globals.labels.app | default('app') }}"
5051
common__group_suffix: "{{ globals.labels.group | default('group') }}"
@@ -141,4 +142,4 @@ common__include_datahub: "{{ datahub is defined | bool }}"
141142
common__include_opdb: "{{ opdb is defined | bool }}"
142143

143144
# Teardown
144-
common__force_teardown: "{{ globals.force_teardown | default(False) }}" # WARNING: This will purge your namespace and anything related to it, use with extreme caution
145+
common__force_teardown: "{{ globals.force_teardown | default(False) }}" # WARNING: This will purge your namespace and anything related to it, use with extreme caution

roles/info/tasks/main.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
- name: Set fact for the artifacts directory path
3535
ansible.builtin.set_fact:
3636
__artifacts_directory_path: "{{ __artifacts_directory_create.path }}"
37-
37+
3838
- name: Validate artifacts directory if it does exist
3939
when: __artifacts_directory.stat.exists
4040
block:
@@ -70,6 +70,11 @@
7070
env: "{{ info__env_name }}"
7171
register: __ml_info
7272

73+
- name: Query CDP DE Services
74+
cloudera.cloud.de_info:
75+
env: "{{ info__env_name }}"
76+
register: __de_info
77+
7378
- name: Query CDP Operational DBs
7479
cloudera.cloud.opdb_info:
7580
env: "{{ info__env_name }}"
@@ -82,11 +87,12 @@
8287
datalake: "{{ __datalake_info.datalakes | first | default({}) }}"
8388
datahubs: "{{ __datahubs_info.datahubs }}"
8489
workspaces: "{{ __ml_info.workspaces }}"
90+
services: "{{ __de_info.services }}"
8591
operational_dbs: "{{ __opdb_info.databases }}"
8692

8793
- name: Save the CDP deployment details locally
8894
when: info__create_deployment_details
8995
ansible.builtin.copy:
9096
content: "{{ { 'deployment': deployment } | to_nice_yaml(indent=2) }}"
9197
dest: "{{ __artifacts_directory_path | default('.') }}/deployment_info.yml"
92-
delegate_to: localhost
98+
delegate_to: localhost

roles/platform/tasks/initialize_teardown.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@
2828
- plat__env_info.environments[0].descendants.df | length == 0
2929
- plat__env_info.environments[0].descendants.dw | length == 0
3030
- plat__env_info.environments[0].descendants.opdb | length == 0
31+
- plat__env_info.environments[0].descendants.de | length == 0
3132
fail_msg: "Environment {{ plat__env_name }} has one or more child services registered, please check and try again"
3233
quiet: yes
3334

3435
- name: Include provider-specific initialization base
3536
ansible.builtin.include_tasks: "initialize_{{ plat__infra_type | lower }}.yml"
3637

3738
- name: Include provider-specific resources for CDP Public Environment teardown
38-
ansible.builtin.include_tasks: "initialize_teardown_{{ plat__infra_type | lower }}.yml"
39+
ansible.builtin.include_tasks: "initialize_teardown_{{ plat__infra_type | lower }}.yml"

roles/platform/vars/main.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ plat__cdp_iam_identities:
3939
dw_user: DWUser
4040
ml_admin: MLAdmin
4141
ml_user: MLUser
42+
de_admin: DEAdmin
43+
de_user: DEUser
4244

4345
plat__cdp_iam_admin_group_resource_roles_default:
4446
- "{{ plat__cdp_iam_identities.env_admin }}"
@@ -47,11 +49,14 @@ plat__cdp_iam_admin_group_resource_roles_default:
4749
- "{{ plat__cdp_iam_identities.dw_user }}"
4850
- "{{ plat__cdp_iam_identities.ml_admin }}"
4951
- "{{ plat__cdp_iam_identities.ml_user }}"
52+
- "{{ plat__cdp_iam_identities.de_admin }}"
53+
- "{{ plat__cdp_iam_identities.de_user }}"
5054

5155
plat__cdp_iam_user_group_resource_roles_default:
5256
- "{{ plat__cdp_iam_identities.env_user }}"
5357
- "{{ plat__cdp_iam_identities.dw_user }}"
5458
- "{{ plat__cdp_iam_identities.ml_user }}"
59+
- "{{ plat__cdp_iam_identities.de_user }}"
5560

5661
plat__gcp_xaccount_policy_bindings_default:
5762
- "roles/compute.instanceAdmin.v1"
@@ -73,4 +78,4 @@ plat__azure_roles:
7378
storown: 'Storage Blob Data Owner'
7479
storcnt: 'Storage Blob Data Contributor'
7580
contrib: 'Contributor'
76-
owner: 'Owner'
81+
owner: 'Owner'

roles/runtime/defaults/main.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,15 @@ run__ml_force_delete: "{{ ml.force_delete | default (run__force_te
6464
run__ml_remove_storage: "{{ ml.remove_storage | default (run__force_teardown) }}"
6565
run__ml_public_loadbalancer: "{{ ml.public_loadbalancer | default(run__public_endpoint_access) }}"
6666

67+
run__de_definitions: "{{ de.definitions | default([{}]) }}"
68+
run__de_suffix: "{{ de.suffix | default('de') }}"
69+
run__de_tags: "{{ de.tags | default(common__tags) }}"
70+
run__de_force_delete: "{{ de.force_delete | default (run__force_teardown) }}"
71+
6772
run__dw_definitions: "{{ dw.definitions | default([{}]) }}"
6873
run__dw_suffix: "{{ dw.suffix | default('dw') }}"
6974
run__dw_force_delete: "{{ dw.force_delete | default (run__force_teardown) }}"
7075

71-
run__de_definitions: "{{ de.definitions | default([{}]) }}"
72-
run__de_suffix: "{{ de.suffix | default('de') }}"
73-
7476
run__df_nodes_min: "{{ df.min_k8s_nodes | default(3) }}"
7577
run__df_nodes_max: "{{ df.max_k8s_nodes | default(5) }}"
7678
run__df_public_loadbalancer: "{{ df.public_loadbalancer | default(run__public_endpoint_access) }}"

roles/runtime/tasks/initialize_base.yml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -162,18 +162,19 @@
162162
loop_var: __ml_config
163163
label: "{{ config.name }}"
164164

165-
- name: Prepare for CDP DE experiences
165+
- name: Prepare for CDP DE Service experiences
166166
when: run__include_de
167167
block:
168-
- name: Retrieve CDP DE experiences
169-
cloudera.cloud.de_info:
170-
env: "{{ run__env_name }}"
171-
register: run__de_list
172-
173-
- name: Prepare for CDP DW experiences
174-
when: run__include_dw
175-
block:
176-
- name: Retrieve CDP DW experiences
177-
cloudera.cloud.dw_cluster_info:
178-
env: "{{ run__env_name }}"
179-
register: run__dw_list
168+
- name: Construct CDP DE Service configurations
169+
ansible.builtin.set_fact:
170+
run__de_configs: "{{ run__de_configs | default([]) | union([config]) }}"
171+
vars:
172+
include: "{{ lookup('template', __de_config.include | default('experiences_config_placeholder.j2')) | from_yaml }}"
173+
overlay_tags: "{{ __de_config.tags | default(include.tags) | default(run__de_tags) }}"
174+
config:
175+
name: "{{ __de_config.name | default([run__namespace_cdp, __de_config.suffix | default(include.suffix) | default(run__de_suffix)] | join('-')) }}"
176+
raw: "{{ __de_config }}"
177+
loop: "{{ run__de_definitions }}"
178+
loop_control:
179+
loop_var: __de_config
180+
label: "{{ config.name }}"

roles/runtime/tasks/initialize_teardown.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,16 @@
6868
loop: "{{ run__env_info.environments[0].descendants.ml }}"
6969
loop_control:
7070
loop_var: __ml_config
71-
label: "{{ __ml_config.instanceName }}"
71+
label: "{{ __ml_config.instanceName }}"
72+
73+
- name: Prepare teardown list of all DE Services in Environment
74+
ansible.builtin.set_fact:
75+
run__de_configs: "{{ run__de_configs | default([]) | union([config]) }}"
76+
vars:
77+
config:
78+
name: "{{ __de_config.name }}"
79+
env: "{{ __de_config.environmentName }}"
80+
loop: "{{ run__env_info.environments[0].descendants.de }}"
81+
loop_control:
82+
loop_var: __de_config
83+
label: "{{ __de_config.name }}"

roles/runtime/tasks/setup_base.yml

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,34 @@
5959
poll: 0
6060
register: __ml_builds
6161

62+
- name: Execute CDP DE Service experiences setup
63+
when: run__include_de
64+
cloudera.cloud.de:
65+
name: "{{ __de_config_item.name }}"
66+
env: "{{ run__env_name }}"
67+
instance_type: "{{ __de_config_item.raw.instance_type }}"
68+
minimum_instances: "{{ __de_config_item.raw.minimum_instances }}"
69+
maximum_instances: "{{ __de_config_item.raw.maximum_instances }}"
70+
minimum_spot_instances: "{{ __de_config_item.raw.minimum_spot_instances | default(omit) }}"
71+
maximum_spot_instances: "{{ __de_config_item.raw.maximum_spot_instances | default(omit) }}"
72+
chart_value_overrides: "{{ __de_config_item.raw.chart_value_overrides | default(omit) }}"
73+
enable_public_endpoint: "{{ __de_config_item.enable_public_endpoint | default(omit) }}"
74+
enable_workload_analytics: "{{ __de_config_item.enable_workload_analytics | default(omit) }}"
75+
initial_instances: "{{ __de_config_item.initial_instances | default(omit) }}"
76+
initial_spot_instances: "{{ __de_config_item.initial_spot_instances | default(omit) }}"
77+
root_volume_size: "{{ __de_config_item.root_volume_size | default(omit) }}"
78+
skip_validation: "{{ __de_config_item.skip_validation | default(omit) }}"
79+
tags: "{{ __de_config_item.raw.tags | default(omit) }}"
80+
use_ssd: "{{ __de_config_item.use_ssd | default(omit) }}"
81+
whitelist_ips: "{{ __de_config_item.raw.whitelist_ips | default(omit) }}"
82+
loop_control:
83+
loop_var: __de_config_item
84+
label: "{{ __de_config_item.name | default ('None') }}"
85+
loop: "{{ run__de_configs }}"
86+
async: 7200 # 2 hour timeout
87+
poll: 0
88+
register: __de_builds
89+
6290
- name: Execute CDP OpDB setup
6391
when: run__include_opdb
6492
cloudera.cloud.opdb:
@@ -85,19 +113,6 @@
85113
state: present
86114
wait: no
87115

88-
- name: Execute CDP DE Workspace experiences setup
89-
when: run__include_de
90-
cloudera.cloud.de:
91-
name: "{{ __de_config_item.name }}"
92-
env: "{{ run__env_name }}"
93-
loop_control:
94-
loop_var: __de_config_item
95-
label: "{{ __de_config_item.name | default ('None') }}"
96-
loop: "{{ run__de_configs }}"
97-
async: 3600 # 1 hour timeout
98-
poll: 0
99-
register: __de_builds
100-
101116
- name: Wait for CDP Datahub deployments to complete
102117
when: run__include_datahub
103118
ansible.builtin.async_status:
@@ -124,6 +139,19 @@
124139
retries: 120
125140
delay: 30
126141

142+
- name: Wait for CDP DE Service experiences to complete
143+
when: run__include_de
144+
ansible.builtin.async_status:
145+
jid: "{{ __de_build.ansible_job_id }}"
146+
loop_control:
147+
loop_var: __de_build
148+
label: "{{ __de_build.__de_config_item.name | default ('None') }}"
149+
loop: "{{ __de_builds.results }}"
150+
register: __de_builds_async
151+
until: __de_builds_async.finished
152+
retries: 120
153+
delay: 60
154+
127155
- name: Wait for CDP OpDB deployments to complete
128156
when: run__include_opdb
129157
ansible.builtin.async_status:
@@ -142,16 +170,3 @@
142170
cloudera.cloud.df:
143171
name: "{{ run__cdp_env_crn }}"
144172
wait: yes
145-
146-
- name: Wait for CDP DE Workspace experiences to complete
147-
when: run__include_de
148-
ansible.builtin.async_status:
149-
jid: "{{ __de_build.ansible_job_id }}"
150-
loop_control:
151-
loop_var: __de_build
152-
label: "{{ __de_build.__de_config_item.name | default ('None') }}"
153-
loop: "{{ __de_builds.results }}"
154-
register: __de_builds_async
155-
until: __de_builds_async.finished
156-
retries: 120
157-
delay: 30

roles/runtime/tasks/teardown_base.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,27 @@
7979
poll: 0
8080
register: __ml_teardowns_info
8181

82+
- name: Execute CDP DE Service teardown
83+
when:
84+
- run__include_de or run__force_teardown | bool
85+
- run__de_configs is defined
86+
- run__de_configs | length > 0
87+
cloudera.cloud.de:
88+
name: "{{ __de_config_item.name }}"
89+
env: "{{ run__env_name }}"
90+
instance_type: "{{ __de_config_item.raw.instance_type }}"
91+
minimum_instances: "{{ __de_config_item.raw.minimum_instances }}"
92+
maximum_instances: "{{ __de_config_item.raw.maximum_instances }}"
93+
state: absent
94+
force_delete: "{{ run__de_force_delete }}"
95+
loop_control:
96+
loop_var: __de_config_item
97+
label: "{{ __de_config_item.name | default('de') }}"
98+
loop: "{{ run__de_configs }}"
99+
async: 3600 # 1 hour timeout
100+
poll: 0
101+
register: __de_teardowns_info
102+
82103
- name: Execute CDP Datahub teardown
83104
when:
84105
- run__include_datahub or run__force_teardown | bool
@@ -113,6 +134,22 @@
113134
retries: 120
114135
delay: 30
115136

137+
- name: Wait for CDP DE Service deployments to decommission
138+
when:
139+
- __de_teardowns_info is defined
140+
- __de_teardowns_info.results is defined
141+
- __de_teardowns_info.results | length > 0
142+
ansible.builtin.async_status:
143+
jid: "{{ __de_teardown.ansible_job_id }}"
144+
loop_control:
145+
loop_var: __de_teardown
146+
label: "{{ __de_teardown.__de_config_item.name | default('de') }}"
147+
loop: "{{ __de_teardowns_info.results }}"
148+
register: __de_teardowns_async
149+
until: __de_teardowns_async.finished
150+
retries: 120
151+
delay: 30
152+
116153
- name: Wait for CDP Datahub deployments to decommission
117154
when:
118155
- __datahub_teardowns_info is defined

0 commit comments

Comments
 (0)