Molecule tests for chrony role

Change-Id: I2cfee4ef44b1aa0ddff0b5d93712390988846c90
Issue-ID: OOM-1710
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
diff --git a/ansible/roles/chrony/.yamllint b/ansible/roles/chrony/.yamllint
new file mode 100644
index 0000000..ad0be76
--- /dev/null
+++ b/ansible/roles/chrony/.yamllint
@@ -0,0 +1,11 @@
+extends: default
+
+rules:
+  braces:
+    max-spaces-inside: 1
+    level: error
+  brackets:
+    max-spaces-inside: 1
+    level: error
+  line-length: disable
+  truthy: disable
diff --git a/ansible/roles/chrony/defaults/main.yml b/ansible/roles/chrony/defaults/main.yml
index af433da..2dee84e 100644
--- a/ansible/roles/chrony/defaults/main.yml
+++ b/ansible/roles/chrony/defaults/main.yml
@@ -1,11 +1,11 @@
 ---
 timesync: {}
 chrony:
-  servers: "{{ timesync.servers | default([hostvars[groups.infrastructure[0]].cluster_ip]) }}" # chronyd's NTP servers
-  slewclock: "{{ timesync.slewclock | default(false) }}" # chronyd's makestep property
-  timezone: "{{ timesync.timezone | default('Universal') }}" # Timezone name according to tz database
+  servers: "{{ timesync.servers | default([hostvars[groups.infrastructure[0]].cluster_ip]) }}"  # chronyd's NTP servers
+  slewclock: "{{ timesync.slewclock | default(false) }}"  # chronyd's makestep property
+  timezone: "{{ timesync.timezone | default('Universal') }}"  # Timezone name according to tz database
   makestep: '1 -1'
-  maxjitter: 10 # Max allowed jitter if using infra as time source as it may by unstable due to pretending stratum 1 time source
+  maxjitter: 10  # Max allowed jitter if using infra as time source as it may by unstable due to pretending stratum 1 time source
   initstepslew: 30
   conf:
     RedHat:
diff --git a/ansible/roles/chrony/molecule/default/molecule.yml b/ansible/roles/chrony/molecule/default/molecule.yml
new file mode 100644
index 0000000..a5b4867
--- /dev/null
+++ b/ansible/roles/chrony/molecule/default/molecule.yml
@@ -0,0 +1,38 @@
+---
+dependency:
+  name: galaxy
+driver:
+  name: docker
+lint:
+  name: yamllint
+platforms:
+  - name: infra_host
+    image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+    pre_build_image: True
+    privileged: true
+    volume_mounts:
+      - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
+    override_command: False
+    groups:
+      - infrastructure
+  - name: node0
+    image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+    pre_build_image: True
+    privileged: true
+    volume_mounts:
+      - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
+    override_command: False
+    groups:
+      - kubernetes
+provisioner:
+  name: ansible
+  lint:
+    name: ansible-lint
+  env:
+    ANSIBLE_ROLES_PATH: ../../../../test/roles
+verifier:
+  name: testinfra
+  lint:
+    name: flake8
+  options:
+    v: 1
diff --git a/ansible/roles/chrony/molecule/default/playbook.yml b/ansible/roles/chrony/molecule/default/playbook.yml
new file mode 100644
index 0000000..7dccfc3
--- /dev/null
+++ b/ansible/roles/chrony/molecule/default/playbook.yml
@@ -0,0 +1,10 @@
+---
+- name: Converge infrastructure hosts
+  hosts: infrastructure
+  roles:
+    - chrony
+
+- name: Converge kubernetes hosts
+  hosts: kubernetes
+  roles:
+    - chrony
diff --git a/ansible/roles/chrony/molecule/default/prepare.yml b/ansible/roles/chrony/molecule/default/prepare.yml
new file mode 100644
index 0000000..73582dd
--- /dev/null
+++ b/ansible/roles/chrony/molecule/default/prepare.yml
@@ -0,0 +1,6 @@
+---
+- name: Setup all hosts for playing chrony role
+  hosts: all
+
+  roles:
+    - prepare-chrony
diff --git a/ansible/roles/chrony/molecule/ubuntu/molecule.yml b/ansible/roles/chrony/molecule/ubuntu/molecule.yml
new file mode 100644
index 0000000..dd2b965
--- /dev/null
+++ b/ansible/roles/chrony/molecule/ubuntu/molecule.yml
@@ -0,0 +1,39 @@
+---
+dependency:
+  name: galaxy
+driver:
+  name: docker
+lint:
+  name: yamllint
+platforms:
+  - name: infra_host-ubuntu
+    image: molecule-${PREBUILD_PLATFORM_DISTRO:-ubuntu}:${PREBUILD_DISTRO_VERSION:-18.04}
+    pre_build_image: True
+    privileged: true
+    volume_mounts:
+      - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
+    override_command: False
+    groups:
+      - infrastructure
+  - name: node0-ubuntu
+    image: molecule-${PREBUILD_PLATFORM_DISTRO:-ubuntu}:${PREBUILD_DISTRO_VERSION:-18.04}
+    pre_build_image: True
+    privileged: true
+    volume_mounts:
+      - "/sys/fs/cgroup:/sys/fs/cgroup:ro"
+    override_command: False
+    groups:
+      - kubernetes
+provisioner:
+  name: ansible
+  lint:
+    name: ansible-lint
+  env:
+    ANSIBLE_ROLES_PATH: ../../../../test/roles
+  playbooks:
+    prepare: ../default/prepare.yml
+    converge: ../default/playbook.yml
+verifier:
+  name: testinfra
+  lint:
+    name: flake8