summaryrefslogtreecommitdiffstats
path: root/fuel/build/f_resolvconf
diff options
context:
space:
mode:
Diffstat (limited to 'fuel/build/f_resolvconf')
-rw-r--r--fuel/build/f_resolvconf/Makefile28
-rw-r--r--fuel/build/f_resolvconf/README36
-rw-r--r--fuel/build/f_resolvconf/puppet/modules/opnfv/manifests/resolver.pp73
-rw-r--r--fuel/build/f_resolvconf/puppet/modules/opnfv/templates/resolv.conf.erb15
-rw-r--r--fuel/build/f_resolvconf/testing/README13
-rw-r--r--fuel/build/f_resolvconf/testing/fake_init.pp13
6 files changed, 178 insertions, 0 deletions
diff --git a/fuel/build/f_resolvconf/Makefile b/fuel/build/f_resolvconf/Makefile
new file mode 100644
index 000000000..0949737bc
--- /dev/null
+++ b/fuel/build/f_resolvconf/Makefile
@@ -0,0 +1,28 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+TOP := $(shell pwd)
+
+.PHONY: all
+all:
+
+.PHONY: clean
+clean:
+ @rm -rf tmp
+ @rm -rf release
+
+.PHONY: validate-cache
+validate-cache:
+ @echo "No cache validation schema available for $(shell pwd)"
+ @echo "Continuing ..."
+
+.PHONY: release
+release:
+ @cp -Rvp puppet/modules/* $(PUPPET_DEST)
diff --git a/fuel/build/f_resolvconf/README b/fuel/build/f_resolvconf/README
new file mode 100644
index 000000000..5ff570f0a
--- /dev/null
+++ b/fuel/build/f_resolvconf/README
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+Addition to generate resolv.conf separately for compute hosts and controller
+hosts through Astute.
+
+The astute.yaml file should contain entries as those below to have them picked
+up during deployment:
+
+opnfv:
+ dns:
+ compute:
+ - 100.100.100.2
+ - 100.100.100.3
+ controller:
+ - 100.100.100.102
+ - 100.100.100.104
+
+The suggested method for adding this information is to prepare for deployment
+with the Fuel GUI or CLI, but before actually deploying:
+
+1. Download the current deployment for all hosts: fuel --env 1 deployment --default
+2. Iterate through the hosts in "deployment_1" and add hosts configuration in
+ the above format to their respective yaml file.
+3. Upload the modifed deployment information: fuel --env 1 deployment --upload
+
+After deploying, the additions will be included in /etc/astute.yaml of each
+host.
+
diff --git a/fuel/build/f_resolvconf/puppet/modules/opnfv/manifests/resolver.pp b/fuel/build/f_resolvconf/puppet/modules/opnfv/manifests/resolver.pp
new file mode 100644
index 000000000..44f36a237
--- /dev/null
+++ b/fuel/build/f_resolvconf/puppet/modules/opnfv/manifests/resolver.pp
@@ -0,0 +1,73 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Class: opnfv::resolver
+#
+# Add resolver content passed through astute.yaml into resolv.conf
+# depending on the role
+#
+# Suitable yaml content:
+# <begin>
+# opnfv:
+# dns:
+# compute:
+# - 100.100.100.2
+# - 100.100.100.3
+# controller:
+# - 100.100.100.102
+# - 100.100.100.104
+# <end>
+#
+#
+#
+
+class opnfv::resolver()
+{
+ if $::fuel_settings['role'] {
+ if $::fuel_settings['role'] == 'primary-controller' {
+ $role = 'controller'
+ } else {
+ $role = $::fuel_settings['role']
+ }
+
+ if ($::fuel_settings['opnfv']
+ and $::fuel_settings['opnfv']['dns']
+ and $::fuel_settings['opnfv']['dns'][$role]) {
+ $nameservers=$::fuel_settings['opnfv']['dns'][$role]
+
+ file { '/etc/resolv.conf':
+ owner => root,
+ group => root,
+ mode => '0644',
+ content => template('opnfv/resolv.conf.erb'),
+ }
+
+ # /etc/resolv.conf is re-generated at each boot by resolvconf, so we
+ # need to store there as well.
+
+ case $::operatingsystem {
+ 'ubuntu': {
+ file { '/etc/resolvconf/resolv.conf.d/head':
+ owner => root,
+ group => root,
+ mode => '0644',
+ content => template('opnfv/resolv.conf.erb'),
+ }
+ }
+ 'centos': {
+ exec { 'for file in ifcfg-eth*; do grep -q -F "PEERDNS=" $file || echo "PEERDNS=no" >> $file; done ':
+ provider => 'shell',
+ cwd => '/etc/sysconfig/network-scripts',
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/fuel/build/f_resolvconf/puppet/modules/opnfv/templates/resolv.conf.erb b/fuel/build/f_resolvconf/puppet/modules/opnfv/templates/resolv.conf.erb
new file mode 100644
index 000000000..7a29dcaf7
--- /dev/null
+++ b/fuel/build/f_resolvconf/puppet/modules/opnfv/templates/resolv.conf.erb
@@ -0,0 +1,15 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
+# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
+# Modified by OPNFV.
+<% @nameservers.each do |ns| %>nameserver <%= ns %>
+<% end -%>
diff --git a/fuel/build/f_resolvconf/testing/README b/fuel/build/f_resolvconf/testing/README
new file mode 100644
index 000000000..6846a8dc9
--- /dev/null
+++ b/fuel/build/f_resolvconf/testing/README
@@ -0,0 +1,13 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+In order to test the functionality without performing a full deployment,
+run "puppet apply" on the fake_init.pp which will call only the
+opnfv::resolvconf class.
diff --git a/fuel/build/f_resolvconf/testing/fake_init.pp b/fuel/build/f_resolvconf/testing/fake_init.pp
new file mode 100644
index 000000000..496dcd216
--- /dev/null
+++ b/fuel/build/f_resolvconf/testing/fake_init.pp
@@ -0,0 +1,13 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+$fuel_settings = parseyaml($astute_settings_yaml)
+
+include opnfv::resolvconf