From 001b034eb5ff66f50f0d609b8e38bd7562f8b98d Mon Sep 17 00:00:00 2001
From: "Matthew X. Economou" <xenophon@irtnog.org>
Date: Tue, 29 Mar 2016 13:28:47 -0400
Subject: [PATCH 1/2] Replace absolute config pathname prefixes with the
 config_path variable

---
 salt/cloud.sls                        | 6 +++---
 salt/files/cloud.providers.d/ec2.conf | 9 +++++----
 salt/files/cloud.providers.d/gce.conf | 3 ++-
 salt/master.sls                       | 2 +-
 salt/minion.sls                       | 2 +-
 salt/standalone.sls                   | 2 +-
 6 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/salt/cloud.sls b/salt/cloud.sls
index 251f07e..fec735e 100644
--- a/salt/cloud.sls
+++ b/salt/cloud.sls
@@ -36,7 +36,7 @@ salt-cloud:
 {% for type in ['pem'] %}
 cloud-cert-{{ cert }}-pem:
   file.managed:
-    - name: /etc/salt/pki/cloud/{{ cert }}.pem
+    - name: {{ salt_settings.config_path }}/pki/cloud/{{ cert }}.pem
     - source: salt://{{ slspath }}/files/key
     - template: jinja
     - user: root
@@ -52,7 +52,7 @@ cloud-cert-{{ cert }}-pem:
 {%- for dir, templ_path in salt_settings.cloud.template_sources.items() %}
 salt-cloud-{{ dir }}:
   file.recurse:
-    - name: /etc/salt/cloud.{{ dir }}.d
+    - name: {{ salt_settings.config_path }}/cloud.{{ dir }}.d
     - source: {{ templ_path }}
     - template: jinja
     - makedirs: True
@@ -60,7 +60,7 @@ salt-cloud-{{ dir }}:
 
 salt-cloud-providers-permissions:
   file.directory:
-    - name: /etc/salt/cloud.providers.d
+    - name: {{ salt_settings.config_path }}/cloud.providers.d
     - user: root
     - group: root
     - file_mode: 600
diff --git a/salt/files/cloud.providers.d/ec2.conf b/salt/files/cloud.providers.d/ec2.conf
index 5cb7e05..990a476 100644
--- a/salt/files/cloud.providers.d/ec2.conf
+++ b/salt/files/cloud.providers.d/ec2.conf
@@ -1,6 +1,7 @@
 # This file managed by Salt, do not edit by hand!!
-{% set cloud = salt['pillar.get']('salt:cloud', {}) -%}
-{% if 'aws_key' in cloud %}
+{%- from "salt/map.jinja" import salt_settings with context -%}
+{%- set cloud = salt['pillar.get']('salt:cloud', {}) -%}
+{%- if 'aws_key' in cloud %}
 ec2_ubuntu_public:
   minion:
     master: {{ cloud.get('master', 'salt') }}
@@ -9,10 +10,10 @@ ec2_ubuntu_public:
   ssh_interface: public_ips
   id: {{ cloud.get('aws_key', 'DEFAULT') }}
   key: '{{ cloud.get('aws_secret', 'DEFAULT') }}'
-  private_key: /etc/salt/pki/cloud/ec2.pem
+  private_key: {{ salt_settings.config_path }}/pki/cloud/ec2.pem
   keyname: keyname
   location: eu-west-1
   availability_zone: eu-west-1a
   ssh_username: ubuntu
   provider: ec2
-{% endif %}
+{%- endif %}
diff --git a/salt/files/cloud.providers.d/gce.conf b/salt/files/cloud.providers.d/gce.conf
index d963143..4a8d762 100644
--- a/salt/files/cloud.providers.d/gce.conf
+++ b/salt/files/cloud.providers.d/gce.conf
@@ -1,10 +1,11 @@
 # This file managed by Salt, do not edit by hand!!
+{%- from "salt/map.jinja" import salt_settings with context -%}
 {%- set cloud = salt['pillar.get']('salt:cloud', {}) -%}
 {%- if 'gce_project' in cloud %}
 gce:
   project: "{{ cloud.get('gce_project', 'DEFAULT') }}"
   service_account_email_address: "{{ cloud.get('gce_service_account_email_address', 'DEFAULT') }}"
-  service_account_private_key: "/etc/salt/pki/cloud/gce.pem"
+  service_account_private_key: "{{ salt_settings.config_path }}/pki/cloud/gce.pem"
   minion:
     master: {{ cloud.get('master', 'salt') }}
   grains:
diff --git a/salt/master.sls b/salt/master.sls
index 1e29e23..3352353 100644
--- a/salt/master.sls
+++ b/salt/master.sls
@@ -24,4 +24,4 @@ salt-master:
 # clean up old _defaults.conf file if they have it around
 remove-old-master-conf-file:
   file.absent:
-    - name: /etc/salt/master.d/_defaults.conf
+    - name: {{ salt_settings.config_path }}/master.d/_defaults.conf
diff --git a/salt/minion.sls b/salt/minion.sls
index f682a62..2097abe 100644
--- a/salt/minion.sls
+++ b/salt/minion.sls
@@ -26,4 +26,4 @@ salt-minion:
 # clean up old _defaults.conf file if they have it around
 remove-old-minion-conf-file:
   file.absent:
-    - name: /etc/salt/minion.d/_defaults.conf
+    - name: {{ salt_settings.config_path }}/minion.d/_defaults.conf
diff --git a/salt/standalone.sls b/salt/standalone.sls
index 4bc3770..e98a58c 100644
--- a/salt/standalone.sls
+++ b/salt/standalone.sls
@@ -25,4 +25,4 @@ salt-minion:
 # clean up old _defaults.conf file if they have it around
 remove-old-standalone-conf-file:
   file.absent:
-    - name: /etc/salt/minion.d/_defaults.conf
+    - name: {{ salt_settings.config_path }}/minion.d/_defaults.conf

From abe9b91e66d0ea610f3167c1e47927a982293cf0 Mon Sep 17 00:00:00 2001
From: "Matthew X. Economou" <xenophon@irtnog.org>
Date: Tue, 29 Mar 2016 13:36:46 -0400
Subject: [PATCH 2/2] Replace reference to slspath with the complete URL of the
 source file

Without this change, importing map.jinja in config files (as opposed to
SLS files) causes a rendering error because `slspath` isn't defined.
The `salt_settings.key_url` variable gets used only in
`salt/pkgrepo/debian/init.sls`.
---
 salt/map.jinja | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/salt/map.jinja b/salt/map.jinja
index 2753a7d..368b5e6 100644
--- a/salt/map.jinja
+++ b/salt/map.jinja
@@ -11,7 +11,7 @@ that differ from whats in defaults.yaml
 {% set os_family_map = salt['grains.filter_by']({
     'Debian':  {
       'pkgrepo': 'deb http://debian.saltstack.com/debian ' + salt['grains.get']('oscodename') + '-saltstack main',
-      'key_url': 'salt://' + slspath + '/saltstack.gpg',
+      'key_url': 'salt://salt/pkgrepo/debian/saltstack.gpg',
       'libgit2': 'libgit2-22',
       'gitfs': {
         'pygit2': {