summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason DeTiberus <detiber@gmail.com>2016-05-26 15:10:32 -0400
committerJason DeTiberus <detiber@gmail.com>2016-05-26 15:10:32 -0400
commitdc0d59545efd2e3cc4c7eedbc1e008fa6b382e6d (patch)
treeb178da6d218a31ace7a8591b8e8f03f4431edf88
parent643b9b30066f0130f35e9ce7b1a8a7c24a244cc7 (diff)
parent2eadb105d5d55c0c283bec33cd2c33bca1b5361a (diff)
downloadopenshift-dc0d59545efd2e3cc4c7eedbc1e008fa6b382e6d.tar.gz
openshift-dc0d59545efd2e3cc4c7eedbc1e008fa6b382e6d.tar.bz2
openshift-dc0d59545efd2e3cc4c7eedbc1e008fa6b382e6d.tar.xz
openshift-dc0d59545efd2e3cc4c7eedbc1e008fa6b382e6d.zip
Merge pull request #1672 from jstuever/os_clocks
Add openshift_clock role
-rw-r--r--inventory/byo/hosts.aep.example2
-rw-r--r--inventory/byo/hosts.origin.example3
-rw-r--r--inventory/byo/hosts.ose.example3
-rw-r--r--roles/openshift_clock/meta/main.yml15
-rw-r--r--roles/openshift_clock/tasks/main.yaml14
-rw-r--r--roles/openshift_etcd/meta/main.yml1
-rwxr-xr-xroles/openshift_facts/library/openshift_facts.py11
-rw-r--r--roles/openshift_master/meta/main.yml1
-rw-r--r--roles/openshift_node/meta/main.yml1
9 files changed, 51 insertions, 0 deletions
diff --git a/inventory/byo/hosts.aep.example b/inventory/byo/hosts.aep.example
index 5376dd353..defd53d43 100644
--- a/inventory/byo/hosts.aep.example
+++ b/inventory/byo/hosts.aep.example
@@ -409,6 +409,8 @@ openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true',
# masterConfig.volumeConfig.dynamicProvisioningEnabled, configurable as of 1.2/3.2, enabled by default
#openshift_master_dynamic_provisioning_enabled=False
+# Configure usage of openshift_clock role.
+#openshift_clock_enabled=true
# host group for masters
[masters]
diff --git a/inventory/byo/hosts.origin.example b/inventory/byo/hosts.origin.example
index cfbb7ff8c..b153e73fd 100644
--- a/inventory/byo/hosts.origin.example
+++ b/inventory/byo/hosts.origin.example
@@ -414,6 +414,9 @@ openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true',
# masterConfig.volumeConfig.dynamicProvisioningEnabled, configurable as of 1.2/3.2, enabled by default
#openshift_master_dynamic_provisioning_enabled=False
+# Configure usage of openshift_clock role.
+#openshift_clock_enabled=true
+
# host group for masters
[masters]
ose3-master[1:3]-ansible.test.example.com
diff --git a/inventory/byo/hosts.ose.example b/inventory/byo/hosts.ose.example
index 2a8d4c02b..d0f5c4c52 100644
--- a/inventory/byo/hosts.ose.example
+++ b/inventory/byo/hosts.ose.example
@@ -410,6 +410,9 @@ openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true',
# masterConfig.volumeConfig.dynamicProvisioningEnabled, configurable as of 1.2/3.2, enabled by default
#openshift_master_dynamic_provisioning_enabled=False
+# Configure usage of openshift_clock role.
+#openshift_clock_enabled=true
+
# host group for masters
[masters]
ose3-master[1:3]-ansible.test.example.com
diff --git a/roles/openshift_clock/meta/main.yml b/roles/openshift_clock/meta/main.yml
new file mode 100644
index 000000000..3e175beb0
--- /dev/null
+++ b/roles/openshift_clock/meta/main.yml
@@ -0,0 +1,15 @@
+---
+galaxy_info:
+ author: Jeremiah Stuever
+ description: OpenShift Clock
+ company: Red Hat, Inc.
+ license: Apache License, Version 2.0
+ min_ansible_version: 1.9
+ platforms:
+ - name: EL
+ versions:
+ - 7
+ categories:
+ - cloud
+dependencies:
+- { role: openshift_facts }
diff --git a/roles/openshift_clock/tasks/main.yaml b/roles/openshift_clock/tasks/main.yaml
new file mode 100644
index 000000000..5a8403f68
--- /dev/null
+++ b/roles/openshift_clock/tasks/main.yaml
@@ -0,0 +1,14 @@
+---
+- name: Set clock facts
+ openshift_facts:
+ role: clock
+ local_facts:
+ enabled: "{{ openshift_clock_enabled | default(None) }}"
+
+- name: Install ntp package
+ action: "{{ ansible_pkg_mgr }} name=ntp state=present"
+ when: openshift.clock.enabled | bool and not openshift.clock.chrony_installed | bool
+
+- name: Start and enable ntpd/chronyd
+ shell: timedatectl set-ntp true
+ when: openshift.clock.enabled | bool
diff --git a/roles/openshift_etcd/meta/main.yml b/roles/openshift_etcd/meta/main.yml
index 7cc548f69..de36b201b 100644
--- a/roles/openshift_etcd/meta/main.yml
+++ b/roles/openshift_etcd/meta/main.yml
@@ -13,6 +13,7 @@ galaxy_info:
- cloud
dependencies:
- role: openshift_etcd_facts
+- role: openshift_clock
- role: openshift_docker
when: openshift.common.is_containerized | bool
- role: etcd
diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py
index b13343776..6daaf6822 100755
--- a/roles/openshift_facts/library/openshift_facts.py
+++ b/roles/openshift_facts/library/openshift_facts.py
@@ -1549,6 +1549,7 @@ class OpenShiftFacts(object):
OpenShiftFactsUnsupportedRoleError:
"""
known_roles = ['builddefaults',
+ 'clock',
'cloudprovider',
'common',
'docker',
@@ -1719,6 +1720,16 @@ class OpenShiftFacts(object):
docker['version'] = version_info['version']
defaults['docker'] = docker
+ if 'clock' in roles:
+ exit_code, _, _ = module.run_command(['rpm', '-q', 'chrony'])
+ if exit_code == 0:
+ chrony_installed = True
+ else:
+ chrony_installed = False
+ defaults['clock'] = dict(
+ enabled=True,
+ chrony_installed=chrony_installed)
+
if 'cloudprovider' in roles:
defaults['cloudprovider'] = dict(kind=None)
diff --git a/roles/openshift_master/meta/main.yml b/roles/openshift_master/meta/main.yml
index 774f190c8..f6b926d74 100644
--- a/roles/openshift_master/meta/main.yml
+++ b/roles/openshift_master/meta/main.yml
@@ -12,6 +12,7 @@ galaxy_info:
categories:
- cloud
dependencies:
+- role: openshift_clock
- role: openshift_docker
- role: openshift_cli
- role: openshift_master_certificates
diff --git a/roles/openshift_node/meta/main.yml b/roles/openshift_node/meta/main.yml
index 4d35ec420..ea52bbb99 100644
--- a/roles/openshift_node/meta/main.yml
+++ b/roles/openshift_node/meta/main.yml
@@ -12,6 +12,7 @@ galaxy_info:
categories:
- cloud
dependencies:
+- role: openshift_clock
- role: openshift_docker
- role: openshift_node_certificates
- role: openshift_cloud_provider