Skip to content

Commit 8a2a655

Browse files
committed
Update testing framework to modern Chef standards
This is a massive update to bring this cookbook up to modern Chef standards. It requires ChefDK to be installed and assumes its use, which is the current best practice versus the Gemfile hell that we have had to maintain up until now. - Update Travis CI testing configuration from sous-chefs templates - Use Chef Delivery Local mode instead of Rake for testing - Remove unnecessary files for Rubocop and Foodcritic - Get rid of that terrible Gemfile (yay) - Use Dokken for testing inside Docker containers - Let `cookstyle -a` do it's thing - Functional tests for HDFS/YARN on - CentOS 7 - Ubuntu 14.04 - Ubuntu 16.04 - Updated ChefSpec platform versions to non-deprecated platforms - CentOS - 6.9 - Ubuntu - 14.04 - Updated ChefSpec tests to have better coverage - Use `do_nothing` matchers - Added a hadoop_test cookbook under test/fixtures/cookbooks - HDFS and YARN service setup and start - Force `systemctl daemon-reload` on systemd-based systems The hadoop_test cookbook can be updated to add more test coverage. This is a first pass and I didn't want to take all the fun. ;-) Signed-off-by: Chris Gianelloni <wolf31o2@gmail.com>
1 parent a3fc49b commit 8a2a655

File tree

107 files changed

+1297
-1476
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+1297
-1476
lines changed

.delivery/project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
remote_file = "https://raw.githubusercontent.com/chef-cookbooks/community_cookbook_tools/master/delivery/project.toml"

.foodcritic

Lines changed: 0 additions & 4 deletions
This file was deleted.

.kitchen.dokken.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
driver:
2+
name: dokken
3+
privileged: true
4+
chef_version: <%= ENV['CHEF_VERSION'] || 'current' %>
5+
6+
transport:
7+
name: dokken
8+
9+
provisioner:
10+
name: dokken
11+
# These three lines enforce Chef 13 compatibility
12+
client_rb:
13+
treat_deprecation_warnings_as_errors: true
14+
resource_cloning: false
15+
16+
platforms:
17+
- name: centos-6
18+
driver:
19+
chef_version: '12.21.3'
20+
hostname: 'localhost.localdomain'
21+
image: dokken/centos-6
22+
pid_one_command: /sbin/init
23+
platform: rhel
24+
- name: centos-7
25+
driver:
26+
image: dokken/centos-7
27+
intermediate_instructions:
28+
- RUN /usr/bin/yum install -y systemd-sysv
29+
pid_one_command: /usr/lib/systemd/systemd
30+
platform: rhel
31+
- name: ubuntu-12.04
32+
driver:
33+
chef_version: '12.21.3'
34+
image: dokken/ubuntu-12.04
35+
intermediate_instructions:
36+
- RUN /usr/bin/apt-get update
37+
pid_one_command: /sbin/init
38+
- name: ubuntu-14.04
39+
driver:
40+
image: dokken/ubuntu-14.04
41+
intermediate_instructions:
42+
- RUN /usr/bin/apt-get update
43+
pid_one_command: /sbin/init
44+
- name: ubuntu-16.04
45+
driver:
46+
image: dokken/ubuntu-16.04
47+
intermediate_instructions:
48+
- RUN /usr/bin/apt-get update
49+
pid_one_command: /bin/systemd
50+
51+
suites:
52+
- name: default
53+
run_list:
54+
- recipe[java::default]
55+
- recipe[hadoop_test::default]
56+
attributes:
57+
hadoop:
58+
hdfs_site:
59+
'dfs.datanode.max.transfer.threads': 4096
60+
hive:
61+
hive_site:
62+
'hive.support.concurrency': true
63+
'hive.zookeeper.quorum': 'localhost'
64+
java:
65+
jdk_version: 7

.kitchen.yml

Lines changed: 27 additions & 206 deletions
Original file line numberDiff line numberDiff line change
@@ -1,231 +1,52 @@
11
---
22
driver:
33
name: vagrant
4-
customize:
5-
cpus: 2
6-
memory: 4096
4+
# customize:
5+
# cpus: 2
6+
# memory: 4096
77

88
provisioner:
9-
name: chef_solo
9+
name: chef_zero
1010
require_chef_omnibus: true
1111

12+
verifier:
13+
name: inspec
14+
1215
platforms:
13-
- name: centos-6.6
14-
attributes:
15-
hadoop:
16-
hdfs_site:
17-
'dfs.datanode.max.transfer.threads': 4096
18-
hive:
19-
hive_site:
20-
'hive.support.concurrency': true
21-
'hive.zookeeper.quorum': 'localhost'
16+
- name: centos-6.7
17+
- name: centos-7.3
2218
- name: debian-6.0.10
2319
run_list:
2420
- apt::default
25-
attributes:
26-
hadoop:
27-
hdfs_site:
28-
'dfs.datanode.max.transfer.threads': 4096
29-
hive:
30-
hive_site:
31-
'hive.support.concurrency': true
32-
'hive.zookeeper.quorum': 'localhost'
3321
- name: ubuntu-12.04
3422
run_list:
3523
- apt::default
36-
attributes:
37-
hadoop:
38-
hdfs_site:
39-
'dfs.datanode.max.transfer.threads': 4096
40-
hive:
41-
hive_site:
42-
'hive.support.concurrency': true
43-
'hive.zookeeper.quorum': 'localhost'
4424
- name: ubuntu-14.04
4525
run_list:
4626
- apt::default
47-
attributes:
48-
hadoop:
49-
hdfs_site:
50-
'dfs.datanode.max.transfer.threads': 4096
51-
hive:
52-
hive_site:
53-
'hive.support.concurrency': true
54-
'hive.zookeeper.quorum': 'localhost'
27+
- name: ubuntu-16.04
28+
run_list:
29+
- apt::default
5530

5631
suites:
57-
- name: cdh4
58-
run_list:
59-
- recipe[java::default]
60-
- recipe[hadoop::default]
61-
- recipe[hadoop::hadoop_hdfs_namenode]
62-
- recipe[hadoop::hadoop_hdfs_secondarynamenode]
63-
- recipe[hadoop::hadoop_hdfs_datanode]
64-
- recipe[hadoop::hadoop_mapreduce_historyserver]
65-
- recipe[hadoop::hadoop_yarn_resourcemanager]
66-
- recipe[hadoop::hadoop_yarn_nodemanager]
67-
- recipe[hadoop::hadoop_yarn_resourcemanager]
68-
- recipe[hadoop::hbase_master]
69-
- recipe[hadoop::hbase_regionserver]
70-
- recipe[hadoop::hbase_rest]
71-
- recipe[hadoop::hbase_thrift]
72-
- recipe[hadoop::hive_metastore]
73-
- recipe[hadoop::hive_server]
74-
- recipe[hadoop::hive_server2]
75-
- recipe[hadoop::oozie]
76-
- recipe[hadoop::oozie_client]
77-
- recipe[hadoop::pig]
78-
- recipe[hadoop::zookeeper]
79-
- recipe[hadoop::zookeeper_server]
80-
attributes: { hadoop: { distribution: 'cdh', distribution_version: 4 } }
81-
- name: cdh5
82-
run_list:
83-
- recipe[java::default]
84-
- recipe[hadoop::default]
85-
- recipe[hadoop::hadoop_hdfs_namenode]
86-
- recipe[hadoop::hadoop_hdfs_secondarynamenode]
87-
- recipe[hadoop::hadoop_hdfs_datanode]
88-
- recipe[hadoop::hadoop_mapreduce_historyserver]
89-
- recipe[hadoop::hadoop_yarn_resourcemanager]
90-
- recipe[hadoop::hadoop_yarn_nodemanager]
91-
- recipe[hadoop::hadoop_yarn_resourcemanager]
92-
- recipe[hadoop::hbase_master]
93-
- recipe[hadoop::hbase_regionserver]
94-
- recipe[hadoop::hbase_rest]
95-
- recipe[hadoop::hbase_thrift]
96-
- recipe[hadoop::hive_metastore]
97-
- recipe[hadoop::hive_server]
98-
- recipe[hadoop::hive_server2]
99-
- recipe[hadoop::oozie]
100-
- recipe[hadoop::oozie_client]
101-
- recipe[hadoop::pig]
102-
- recipe[hadoop::spark_master]
103-
- recipe[hadoop::spark_worker]
104-
- recipe[hadoop::spark_historyserver]
105-
- recipe[hadoop::zookeeper]
106-
- recipe[hadoop::zookeeper_server]
107-
attributes: { hadoop: { distribution: 'cdh', distribution_version: 5 } }
108-
- name: hdp20
109-
run_list:
110-
- recipe[java::default]
111-
- recipe[hadoop::default]
112-
- recipe[hadoop::hadoop_hdfs_namenode]
113-
- recipe[hadoop::hadoop_hdfs_secondarynamenode]
114-
- recipe[hadoop::hadoop_hdfs_datanode]
115-
- recipe[hadoop::hadoop_mapreduce_historyserver]
116-
- recipe[hadoop::hadoop_yarn_resourcemanager]
117-
- recipe[hadoop::hadoop_yarn_nodemanager]
118-
- recipe[hadoop::hadoop_yarn_resourcemanager]
119-
- recipe[hadoop::hbase_master]
120-
- recipe[hadoop::hbase_regionserver]
121-
- recipe[hadoop::hbase_rest]
122-
- recipe[hadoop::hbase_thrift]
123-
- recipe[hadoop::hive_metastore]
124-
- recipe[hadoop::hive_server]
125-
- recipe[hadoop::hive_server2]
126-
- recipe[hadoop::oozie]
127-
- recipe[hadoop::oozie_client]
128-
- recipe[hadoop::pig]
129-
- recipe[hadoop::zookeeper]
130-
- recipe[hadoop::zookeeper_server]
131-
attributes: { hadoop: { distribution: 'hdp', distribution_version: '2.0' } }
132-
- name: hdp21
133-
run_list:
134-
- recipe[java::default]
135-
- recipe[hadoop::default]
136-
- recipe[hadoop::hadoop_hdfs_namenode]
137-
- recipe[hadoop::hadoop_hdfs_secondarynamenode]
138-
- recipe[hadoop::hadoop_hdfs_datanode]
139-
- recipe[hadoop::hadoop_mapreduce_historyserver]
140-
- recipe[hadoop::hadoop_yarn_resourcemanager]
141-
- recipe[hadoop::hadoop_yarn_nodemanager]
142-
- recipe[hadoop::hadoop_yarn_resourcemanager]
143-
- recipe[hadoop::hbase_master]
144-
- recipe[hadoop::hbase_regionserver]
145-
- recipe[hadoop::hbase_rest]
146-
- recipe[hadoop::hbase_thrift]
147-
- recipe[hadoop::hive_metastore]
148-
- recipe[hadoop::hive_server]
149-
- recipe[hadoop::hive_server2]
150-
- recipe[hadoop::oozie]
151-
- recipe[hadoop::oozie_client]
152-
- recipe[hadoop::pig]
153-
- recipe[hadoop::zookeeper]
154-
- recipe[hadoop::zookeeper_server]
155-
attributes: { hadoop: { distribution: 'hdp', distribution_version: '2.1' } }
156-
- name: hdp22
157-
run_list:
158-
- recipe[java::default]
159-
- recipe[hadoop::default]
160-
- recipe[hadoop::hadoop_hdfs_namenode]
161-
- recipe[hadoop::hadoop_hdfs_secondarynamenode]
162-
- recipe[hadoop::hadoop_hdfs_datanode]
163-
- recipe[hadoop::hadoop_mapreduce_historyserver]
164-
- recipe[hadoop::hadoop_yarn_resourcemanager]
165-
- recipe[hadoop::hadoop_yarn_nodemanager]
166-
- recipe[hadoop::hadoop_yarn_resourcemanager]
167-
- recipe[hadoop::hbase_master]
168-
- recipe[hadoop::hbase_regionserver]
169-
- recipe[hadoop::hbase_rest]
170-
- recipe[hadoop::hbase_thrift]
171-
- recipe[hadoop::hive_metastore]
172-
- recipe[hadoop::hive_server]
173-
- recipe[hadoop::hive_server2]
174-
- recipe[hadoop::oozie]
175-
- recipe[hadoop::oozie_client]
176-
- recipe[hadoop::pig]
177-
- recipe[hadoop::zookeeper]
178-
- recipe[hadoop::zookeeper_server]
179-
attributes: { hadoop: { distribution: 'hdp', distribution_version: '2.2' } }
180-
- name: bigtop100
181-
excludes: debian-6.0.10
182-
run_list:
183-
- recipe[java::default]
184-
- recipe[hadoop::default]
185-
- recipe[hadoop::hadoop_hdfs_namenode]
186-
- recipe[hadoop::hadoop_hdfs_secondarynamenode]
187-
- recipe[hadoop::hadoop_hdfs_datanode]
188-
- recipe[hadoop::hadoop_mapreduce_historyserver]
189-
- recipe[hadoop::hadoop_yarn_resourcemanager]
190-
- recipe[hadoop::hadoop_yarn_nodemanager]
191-
- recipe[hadoop::hadoop_yarn_resourcemanager]
192-
- recipe[hadoop::hbase_master]
193-
- recipe[hadoop::hbase_regionserver]
194-
- recipe[hadoop::hbase_rest]
195-
- recipe[hadoop::hbase_thrift]
196-
- recipe[hadoop::hive_metastore]
197-
- recipe[hadoop::hive_server]
198-
- recipe[hadoop::hive_server2]
199-
- recipe[hadoop::oozie]
200-
- recipe[hadoop::oozie_client]
201-
- recipe[hadoop::pig]
202-
- recipe[hadoop::zookeeper]
203-
- recipe[hadoop::zookeeper_server]
204-
attributes: { hadoop: { distribution: 'bigtop', distribution_version: '1.0.0' } }
205-
- name: tuning
206-
run_list:
207-
- recipe[hadoop::_system_tuning]
208-
- name: iop4100
32+
- name: default
20933
run_list:
21034
- recipe[java::default]
21135
- recipe[hadoop::default]
212-
- recipe[hadoop::hadoop_hdfs_namenode]
213-
- recipe[hadoop::hadoop_hdfs_secondarynamenode]
214-
- recipe[hadoop::hadoop_hdfs_datanode]
215-
- recipe[hadoop::hadoop_mapreduce_historyserver]
216-
- recipe[hadoop::hadoop_yarn_resourcemanager]
217-
- recipe[hadoop::hadoop_yarn_nodemanager]
218-
- recipe[hadoop::hadoop_yarn_resourcemanager]
219-
- recipe[hadoop::hbase_master]
220-
- recipe[hadoop::hbase_regionserver]
221-
- recipe[hadoop::hbase_rest]
222-
- recipe[hadoop::hbase_thrift]
223-
- recipe[hadoop::hive_metastore]
224-
- recipe[hadoop::hive_server]
225-
- recipe[hadoop::hive_server2]
36+
- recipe[hadoop::hbase]
37+
- recipe[hadoop::hive]
22638
- recipe[hadoop::oozie]
227-
- recipe[hadoop::oozie_client]
22839
- recipe[hadoop::pig]
40+
- recipe[hadoop::spark]
41+
- recipe[hadoop::storm]
22942
- recipe[hadoop::zookeeper]
230-
- recipe[hadoop::zookeeper_server]
231-
attributes: { hadoop: { distribution: 'iop', distribution_version: '4.1.0.0' } }
43+
attributes:
44+
hadoop:
45+
hdfs_site:
46+
'dfs.datanode.max.transfer.threads': 4096
47+
hive:
48+
hive_site:
49+
'hive.support.concurrency': true
50+
'hive.zookeeper.quorum': 'localhost'
51+
java:
52+
jdk_version: 7

.rspec

Lines changed: 0 additions & 2 deletions
This file was deleted.

.rubocop.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)