Skip to content

Commit d8bae6c

Browse files
committedJan 4, 2022
Add basic molecule tests
1 parent 187cb67 commit d8bae6c

File tree

8 files changed

+116
-2
lines changed

8 files changed

+116
-2
lines changed
 

‎.yamllint

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
# Based on ansible-lint config
3+
extends: default
4+
5+
rules:
6+
braces:
7+
max-spaces-inside: 1
8+
level: error
9+
brackets:
10+
max-spaces-inside: 1
11+
level: error
12+
colons:
13+
max-spaces-after: -1
14+
level: error
15+
commas:
16+
max-spaces-after: -1
17+
level: error
18+
comments: disable
19+
comments-indentation: disable
20+
document-start: disable
21+
empty-lines:
22+
max: 3
23+
level: error
24+
hyphens:
25+
level: error
26+
indentation: disable
27+
key-duplicates: enable
28+
line-length: disable
29+
new-line-at-end-of-file: disable
30+
new-lines:
31+
type: unix
32+
trailing-spaces: disable
33+
truthy: disable

‎meta/main.yml

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
galaxy_info:
22
role_name: enroot
3+
namespace: nvidia
34
author: Luke Yeager
45
company: NVIDIA
56
description: Install enroot
@@ -10,6 +11,7 @@ galaxy_info:
1011
- name: Ubuntu
1112
versions:
1213
- 'bionic'
14+
- 'focal'
1315
- name: EL
1416
versions:
1517
- '7'

‎molecule/default/converge.yml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
- name: Converge
3+
hosts: all
4+
tasks:
5+
- name: "Include ansible-role-enroot"
6+
include_role:
7+
name: "ansible-role-enroot"

‎molecule/default/molecule.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
dependency:
3+
name: galaxy
4+
driver:
5+
name: docker
6+
platforms:
7+
- name: ubuntu-1804
8+
image: geerlingguy/docker-ubuntu1804-ansible
9+
pre_build_image: true
10+
- name: ubuntu-2004
11+
image: geerlingguy/docker-ubuntu2004-ansible
12+
pre_build_image: true
13+
- name: centos-7
14+
image: geerlingguy/docker-centos7-ansible
15+
pre_build_image: true
16+
- name: centos-8
17+
image: geerlingguy/docker-centos8-ansible
18+
pre_build_image: true
19+
provisioner:
20+
name: ansible
21+
verifier:
22+
name: ansible

‎molecule/default/verify.yml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
- name: Verify
3+
hosts: all
4+
tasks:
5+
- name: gather package facts
6+
package_facts:
7+
8+
- name: check that enroot is installed
9+
assert:
10+
that:
11+
- "'enroot' in ansible_facts.packages"
12+
- "'enroot+caps' in ansible_facts.packages"
13+
14+
- name: check for path to enroot
15+
command: which enroot
16+
register: which_enroot
17+
changed_when: which_enroot.rc != 0
18+
19+
- name: verify path to enroot
20+
assert:
21+
that:
22+
- "'/usr/bin/enroot' in which_enroot.stdout"
23+
24+
- name: check that bash completion is present
25+
command: ls /etc/bash_completion.d/enroot.bash_completion
26+
27+
- name: check that enroot.conf is present
28+
command: ls /etc/enroot/enroot.conf

‎tasks/main.yml

+8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
include_tasks: redhat.yml
88
when: ansible_os_family == 'RedHat'
99

10+
- name: ensure bash completion dir exists
11+
file:
12+
path: /etc/bash_completion.d
13+
owner: root
14+
group: root
15+
mode: 755
16+
state: directory
17+
1018
- name: install bash completions
1119
file:
1220
path: /etc/bash_completion.d/enroot.bash_completion

‎tasks/redhat.yml

+14-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
state: "absent"
4242
when:
4343
- "'enroot' in ansible_facts.packages"
44-
- "ansible_facts.packages['enroot'][0]['version'] != enroot_version_string"
44+
- "ansible_facts.packages['enroot'][0]['version'] != enroot_version_string.split('-')[0]"
4545
- name: enroot rpm packages
4646
yum:
4747
name: "{{ item }}"
@@ -53,17 +53,23 @@
5353
shell: "cat /proc/cmdline | grep 'namespace.unpriv_enable=1'"
5454
register: kernel_unpriv_enable
5555
failed_when: kernel_unpriv_enable.rc == 127
56+
tags:
57+
- molecule-notest
5658

5759
- name: check if user namespaces enabled
5860
shell: "cat /proc/cmdline | grep 'user_namespace.enable=1'"
5961
register: kernel_user_namespace
6062
failed_when: kernel_user_namespace.rc == 127
63+
tags:
64+
- molecule-notest
6165

6266
- name: install grubby if needed
6367
yum:
6468
name: "grubby"
6569
state: "present"
6670
when: ((kernel_unpriv_enable.rc == 1) or (kernel_user_namespace.rc == 1)) and enroot_configure_kernel_options
71+
tags:
72+
- molecule-notest
6773

6874
- name: add kernel options to use enroot
6975
command: "grubby --update-kernel={{ enroot_configure_kernel_options_versions }} --args={{ item }}"
@@ -73,15 +79,22 @@
7379
- "user_namespace.enable=1"
7480
notify:
7581
- reboot node
82+
tags:
83+
- molecule-notest
7684

7785
- name: set max_user_namespaces
7886
sysctl:
7987
name: user.max_user_namespaces
8088
value: "{{ enroot_max_user_namespaces }}"
8189
state: present
90+
tags:
91+
- molecule-notest
8292

8393
- name: set max_mnt_namespaces
8494
sysctl:
8595
name: user.max_mnt_namespaces
8696
value: "{{ enroot_max_mnt_namespaces }}"
8797
state: present
98+
tags:
99+
- molecule-notest
100+

‎tasks/ubuntu.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22
- name: enroot dependency packages
33
apt:
4+
update_cache: yes
45
name:
56
- bash-completion
67
- pigz
@@ -43,4 +44,4 @@
4344
name: "{{ enroot_packages }}"
4445
state: "{{ enroot_package_state }}"
4546
when: enroot_ubuntu_repo is defined
46-
47+

0 commit comments

Comments
 (0)
Please sign in to comment.