Skip to content

Commit b71dded

Browse files
cmperroraju-saravananwmudge
authored
Add support for CDW Virtual Warehouses (#102)
* Support CDW VW changes Co-Authored-by: Saravanan Raju <saravanan.footloose@gmail.com> Co-Authored-by: Webster Mudge <wmudge@cloudera.com> Co-Authored-by: Chris Perro <cmperro@gmail.com> Signed-off-by: Chris Perro <cmperro@gmail.com>
1 parent d8895b6 commit b71dded

File tree

18 files changed

+360
-53
lines changed

18 files changed

+360
-53
lines changed

docs/configuration.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ datahub:
3030
gcp:
3131
suffix:
3232
tags:
33+
force_delete:
3334
de:
3435
definitions:
3536
suffix:
@@ -82,7 +83,35 @@ df:
8283
id: SECONDS|MINUTES|HOURS|DAYS
8384
dw:
8485
definitions:
86+
- name:
87+
use_default_dbc:
88+
load_demo_data:
89+
virtual_warehouses:
90+
- name:
91+
type:
92+
template:
93+
autoscaling:
94+
min_nodes:
95+
max_nodes:
96+
tags:
97+
configs:
98+
common_configs:
99+
application_configs:
100+
enable_sso:
101+
ldap_groups:
85102
suffix:
103+
vw:
104+
suffix:
105+
type:
106+
template:
107+
dbc:
108+
suffix:
109+
default_suffix:
110+
tags:
111+
overlay_network:
112+
private_load_balancer:
113+
private_worker_nodes:
114+
force_delete:
86115
env:
87116
aws:
88117
arn_partition: aws | aws-cn | aws-us-gov (See https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
@@ -250,6 +279,7 @@ globals:
250279
vm:
251280
count:
252281
os:
282+
force_teardown:
253283
gcloud_credential_file:
254284
infra_deployment_engine:
255285
infra_type:
@@ -413,6 +443,7 @@ ml:
413443
suffix:
414444
tags:
415445
public_loadbalancer:
446+
force_delete:
416447
opdb:
417448
definitions:
418449
suffix:

roles/common/defaults/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ common__aws_public_subnet_ids: "{{ infra.aws.vpc.existing.public_subn
111111
common__aws_private_subnet_ids: "{{ infra.aws.vpc.existing.private_subnet_ids | default([]) }}"
112112
common__aws_region: "{{ infra.aws.region | default('eu-west-1') }}"
113113
common__aws_role_suffix: "{{ infra.aws.role.suffix | default(common__role_suffix) }}"
114+
114115
common__aws_datalake_admin_role_name: "{{ env.aws.role.name.datalake_admin | default([common__namespace, common__aws_datalake_admin_suffix, common__aws_role_suffix] | join('-')) }}"
115116
common__aws_datalake_admin_suffix: "{{ env.aws.role.label.datalake_admin | default(common__datalake_admin_suffix) }}"
116117
common__aws_idbroker_role_name: "{{ env.aws.role.name.idbroker | default([common__namespace, common__aws_idbroker_suffix, common__aws_role_suffix] | join('-')) }}"

roles/common/meta/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
# limitations under the License.
1414

1515
galaxy_info:
16+
role_name: platform
17+
namespace: cloudera
1618
author: Webster Mudge (wmudge@cloudera.com)
1719
description: >
1820
Shared configuration variables managed by role dependency.

roles/infrastructure/defaults/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ infra__vpc_user_ports: "{{ infra.vpc.user_ports | default([infra__a
9595
infra__vpc_user_cidr: "{{ infra.vpc.user_cidr | default([]) }}"
9696
infra__vpc_tunneled_cidr: "{{ infra.vpc.tunneled_cidr | default([]) }}"
9797

98-
infra__aws_vpc_id: "{{ infra.aws.vpc.existing.vpc_id | default('') }}"
99-
infra__aws_public_subnet_ids: "{{ infra.aws.vpc.existing.public_subnet_ids | default([]) }}"
100-
infra__aws_private_subnet_ids: "{{ infra.aws.vpc.existing.private_subnet_ids | default([]) }}"
98+
infra__aws_vpc_id: "{{ common__aws_vpc_id }}"
99+
infra__aws_public_subnet_ids: "{{ common__aws_public_subnet_ids }}"
100+
infra__aws_private_subnet_ids: "{{ common__aws_private_subnet_ids }}"
101101

102102
infra__security_group_knox_name: "{{ common__security_group_knox_name }}"
103103
infra__security_group_default_name: "{{ common__security_group_default_name }}"

roles/infrastructure/tasks/initialize_aws.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@
115115

116116
- name: Set facts for existing AWS Public Subnet IDs
117117
ansible.builtin.set_fact:
118-
infra__aws_public_subnet_ids: "{{ infra__aws_public_subnet_ids }}"
119118
infra__aws_subnet_ids: "{{ infra__aws_subnet_ids | default([]) | union(infra__aws_public_subnet_ids) }}"
120119
infra__aws_vpc_id: "{{ __aws_public_subnets_info.subnets | map(attribute='vpc_id') | list | first }}"
121120

roles/infrastructure/tasks/setup.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
ansible.builtin.include_tasks: "setup_{{ infra__type | lower }}_utility_service.yml"
3434

3535
- name: Set up provider-specific Infrastructure Compute
36-
when: infra__dynamic_inventory_count
36+
when: infra__dynamic_inventory_count | int > 0
3737
ansible.builtin.include_tasks: "setup_{{ infra__type | lower }}_compute.yml"
3838

3939
- name: Set up for Terraform deployment engine

roles/platform/defaults/main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,9 @@ plat__aws_storage_suffix: "{{ env.aws.storage.suffix | defau
120120
plat__aws_role_tags: "{{ env.aws.role.tags | default({}) }}"
121121
plat__aws_policy_tags: "{{ env.aws.policy.tags | default({}) }}"
122122
plat__aws_storage_tags: "{{ env.aws.storage.tags | default({}) }}"
123+
plat__aws_vpc_id: "{{ common__aws_vpc_id }}"
124+
plat__aws_public_subnet_ids: "{{ common__aws_public_subnet_ids }}"
125+
plat__aws_private_subnet_ids: "{{ common__aws_private_subnet_ids }}"
123126

124127
plat__aws_xaccount_suffix: "{{ env.aws.role.label.cross_account | default(common__xaccount_suffix) }}"
125128
plat__aws_idbroker_suffix: "{{ common__aws_idbroker_suffix }}"

roles/platform/meta/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
# limitations under the License.
1414

1515
galaxy_info:
16+
role_name: platform
17+
namespace: cloudera
1618
author: Webster Mudge (wmudge@cloudera.com)
1719
description: >
1820
Deployment and management of Cloudera Data Platform (CDP) Public Cloud core

roles/platform/tasks/initialize_aws.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,9 @@
1717
- name: Retrieve AWS Caller details
1818
amazon.aws.aws_caller_info:
1919
register: __aws_caller_info
20-
failed_when: __aws_caller_info.account is not defined
20+
failed_when: __aws_caller_info.account is not defined
21+
22+
- name: Confirm AWS SSH Public Key ID exists
23+
ansible.builtin.command: aws ec2 describe-key-pairs --region "{{ plat__region }}" --key-name "{{ plat__public_key_id }}"
24+
register: __aws_ssh_key_pair
25+
failed_when: __aws_ssh_key_pair.rc != 0

roles/platform/tasks/initialize_setup_aws.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
plat__aws_xaccount_account_id: "{{ plat__cdp_xaccount_account_id }}"
5050

5151
# Runlevel first, upstream second, and discover third
52-
- name: Discover AWS VPC if not defined
52+
- name: Discover AWS VPC if not defined or established by Infrastructure
5353
when: plat__aws_vpc_id == "" and infra__aws_vpc_id is undefined
5454
block:
5555
- name: Query AWS VPC by name
@@ -71,13 +71,12 @@
7171
plat__aws_vpc_id: "{{ __aws_vpc_info.vpcs[0].id }}"
7272

7373
- name: Set fact for AWS VPC ID if established by Infrastructure
74-
when: infra__aws_vpc_id is defined
74+
when: plat__aws_vpc_id == "" and infra__aws_vpc_id is defined
7575
ansible.builtin.set_fact:
7676
plat__aws_vpc_id: "{{ infra__aws_vpc_id }}"
7777

78-
# Runlevel first, upstream second, and discover third
79-
- name: Handle AWS Public and Private VPC Subnets if not defined
80-
when: not plat__aws_public_subnet_ids or not plat__aws_private_subnet_ids
78+
- name: Handle AWS Subnet IDs if not defined
79+
when: not plat__aws_public_subnet_ids or not plat__aws_private_subnet_ids # Defaults are empty lists
8180
block:
8281
- name: Query AWS Subnets
8382
amazon.aws.ec2_vpc_subnet_info:
@@ -144,13 +143,15 @@
144143
ansible.builtin.set_fact:
145144
plat__endpoint_access_scheme: "PUBLIC"
146145

146+
# TODO Collapse the two SG queries together
147147
- name: Discover AWS Security Group for Knox
148148
when: infra__aws_security_group_knox_id is undefined
149149
block:
150150
- name: Query AWS Security Group for Knox
151151
amazon.aws.ec2_group_info:
152152
region: "{{ plat__region }}"
153153
filters:
154+
vpc-id: "{{ plat__aws_vpc_id }}"
154155
group-name: "{{ plat__security_group_knox_name }}"
155156
register: __aws_security_group_knox_info
156157

@@ -171,6 +172,7 @@
171172
amazon.aws.ec2_group_info:
172173
region: "{{ plat__region }}"
173174
filters:
175+
vpc-id: "{{ plat__aws_vpc_id }}"
174176
group-name: "{{ plat__security_group_default_name }}"
175177
register: __aws_security_group_default_info
176178

0 commit comments

Comments
 (0)